문제 )
팀 과제
가계부 프로그램 만들기
배열을 사용하여 가계부 프로그램을 만듭니다.
10개 내역을 작성하기
수입, 지출
잔액, 전체 수입 금액, 전체 지출 금액이 출력되도록.
전체 내역 출력(마지막에 잔액 출력)
입력 데이터
날짜, 금액, 수입/지출, (내역)
메뉴
1. 내역 등록
2. 전체 출력
3. 수입 출력
4. 지출 출력
5. 종료
import java.util.Scanner;
public class MoneyBook {
public static void main(String[] args) {
final int MAX = 2;
String date[] = new String[MAX];
int money[] = new int[MAX];
int inMoney[] = new int[MAX];
int outMoney[] = new int[MAX];
String List[] = new String[MAX];
int balance = 0;
int totalInMoney = 0;
int totalOutMoney = 0;
String totalList[] = new String[MAX];
int select = 0; //메뉴 입력 저장 변수
int input;
Scanner scan = new Scanner(System.in);
System.out.println("-- 가계부 프로그램 --");
while(true) {
System.out.println("<< 메뉴 >>");
System.out.println("1. 내역 등록");
System.out.println("2. 전체 출력");
System.out.println("3. 수입 출력");
System.out.println("4. 지출 출력");
System.out.println("5. 종료");
System.out.print("선택 > ");
select = scan.nextInt();
if(select == 5) {
System.out.println("종료합니다.");
break;
}
switch (select) {// 날짜, 금액, 수입/지출, (내역)
case 1:
System.out.println("내역 등록");
for (int i = 0; i < MAX; i++) {
System.out.println("--------------------");
scan.nextLine(); //버퍼에 있는 엔터 제거 방법1)
System.out.print("날짜 : ");
date[i] = scan.nextLine();
System.out.print("금액 : ");
money[i] = scan.nextInt();
System.out.print("수입: 1번입력 /지출: 2번입력 : ");
input = scan.nextInt();
if(input == 1){
inMoney[i] = money[i];
totalInMoney += inMoney[i];
}
else if(input == 2){
outMoney[i] = money[i];
totalOutMoney += outMoney[i];
}
// System.out.print("수입 : ");
// inMoney[i] = scan.nextInt();
// System.out.print("지출 : ");
// outMoney[i] = scan.nextInt();
System.out.print("내역 : ");
List[i] = scan.next();
}
break;
case 2:
System.out.println("전체 출력");
for (int i = 0; i < MAX; i++) {
System.out.println("--------------------");
System.out.println("날짜 : " + date[i]);
// System.out.println("금액 : " + money[i]);
System.out.printf("금액 : %,d원%n", money[i]);
// System.out.println("수입 : " + inMoney[i]);
System.out.printf("지출 : %,d원%n", money[i]);
// System.out.println("지출 : " + outMoney[i]);
System.out.printf("지출 : %,d원%n", money[i]);
System.out.println("내역 : " + List[i]);
System.out.println();
}
break;
case 3:
System.out.println();
System.out.println("수입 출력");
for (int i = 0; i < MAX; i++) {
System.out.printf("수입 금액 : %,d원%n", money[i]);
}
System.out.println("전체 수입 금액 : " + totalInMoney);
break;
case 4:
System.out.println();
System.out.println("지출 출력");
for (int i = 0; i < MAX; i++) {
System.out.printf("지출 금액 : %,d원%n", outMoney[i]);
}
System.out.printf("전체 지출 금액 : %,d원%n", totalOutMoney);
break;
case 5:
System.out.println("내역 출력");
for (int i = 0; i < MAX; i++) {
System.out.println("내역 출력 : "+ i + " " + totalList[i]);
}
break;
default:
break;
}
balance = totalInMoney - totalOutMoney;
System.out.printf("잔액 : %,d원%n", balance);
}
}
}
'JAVA' 카테고리의 다른 글
JAVA(16) - 객체(object) /객체지향/객체 지향의 4대 특성/Class/Class 실습/필드의 초기화/메소드/변수의 종류/클래스맴버/인스턴스맴버/패키지 (0) | 2020.03.16 |
---|---|
JAVA(15) - (0) | 2020.03.12 |
JAVA(13) - 배열 자료 구조/최대/최소/SWAP/버블 정렬/선택 정렬 (0) | 2020.03.11 |
JAVA(12) - 학생 관리 프로그램/버퍼/버퍼에 있는 엔터 제거 방법 (0) | 2020.03.11 |
JAVA(11) - 메소드/메소드 특징/메소드 종류/작성 형식/main 메소드/4칙 연산 계산기/파라미터/반환값/반환형 (0) | 2020.03.10 |