알고리즘이란?
문제를 해결하기 위한 절차적인과정
1. 카페 프로그램 알고리즘

2. 알고리즘을 토대로 코드 구현하기
1) 무한반복
반복이 종료되지 않고 계속 실행되는 구조. 따라서, 종료조건과 함께 사용!
2) 문자열 배열?
배열의 각 요소가 문자열(String)인 배열
3. 필요한 변수
1) 전체 개수 저장할 변수
2) 주문한 메뉴를 저장할 문자열 배열
3) 총 금액 저장할 변수

1. 카페 알고리즘 짜기
카페 프로그램의 기능
1) 주문하기, 2) 취소하기, 3) 결제하기, 4) 끝내기
2. 상세 기능에 따른 코드 구현
A. 주문하기
1) 주문 가능한 메뉴를 출력한다,
2) 주문 받을 메뉴를 입력 받는다.
3) 주문한 메뉴의 가격을 총 금액에 누적한다.
4) 주문한 메뉴를 전체 메뉴리스트에 추가한다.
5) 주문한 개수를 한 개 증가한다.

B. 취소하기
1) 주문한 메뉴리스트를 출력한다.
2) 그 중에서 취소한 메뉴를 입력 받는다.
3) 입력 받은 메뉴를 주문 리스트에서 제거한다.
4) 입력 받은 메뉴의 금액을 총 금액에서 차감한다,
5) 주문한 개수를 한 개 감소한다.

3)번 예시

만약 주문을 위와 같은 순서로 주문했다고 가정했을 때
컴퓨터의 배열 순서는 0부터 시작하고 사용자가 보았을 땐 1부터 시작하게 된다. 만약 3번째 에스프레소 메뉴를 취소할 시
카운트는 4
System.out.print("취소할 메뉴번호 : ");
int cancelNum=sc.nextInt(); // 취소할 번호 3번 입력 i = 3
if(1<=cancelNum && cancelNum<=count) { //취소할 번호가 1~count 번호 사이인 3
//delMenu에 cancelNum-1에 있는 값을 저장
String delMenu = orderlist[cancelNum-1];
//따라서 cancelNum은 3이고 3 - 1 이므로 배열 순서에서 인덱스 [2]의 값이 변수 delMenu의 값이 됨.
for(int i=cancelNum-1;i<count;i++) { //항목을 삭제할 시 뒤에있는 항목을 앞으로 땡겨주기 위함
orderlist[i] = orderlist[i+1]; // i번째에 있는 항목을 i+1번째로 바꿈 >> cancelNum = 2이므로 i = 2
>> 따라서 orderlist[2] (에스프레소)의 값에 orderlist[3] (카페라떼)를 저장한다.
>> orderlist[2] = 카페라떼
C. 결제하기
1) 결제해야할 총 금액을 출력한다.
2) 사용자에게 지불할 금액을 입력 받는다.
3) 지불한 금액과 총 금액을 비교해서 지불한 금액 값에 따라 "잔돈이 부족합니다" or 잔돈과 함께 "계산완료"를 출력한다.
4) 총 금액은 0원으로 주문 리스트는 비워준다.
5) 전체 개수를 0개로 초기화한다.

D. 끝내기

1. 전체 코드



2. 결과 값



'IT Study > 따즈아 Java & Java 기초' 카테고리의 다른 글
따즈아 java 멘토 시리즈 18강 - 배열_메서드 오버로딩 (0) | 2022.12.27 |
---|---|
따즈아 java 멘토 시리즈 17강 - 배열_메서드/접근 제한자 리턴타입 매개변수 (0) | 2022.12.26 |
따즈아 java 멘토 시리즈 15강 - 배열의 복제 및 for each문 (0) | 2022.12.26 |
따즈아 java 멘토 시리즈 14강 - 다차원 배열 (0) | 2022.12.26 |
따즈아 java 멘토 시리즈 13강 - 배열 로또번호 생성기 실습 (0) | 2022.12.26 |
댓글