자바 가계부 만들기 - jaba gagyebu mandeulgi


문제 )

팀 과제

가계부 프로그램 만들기
배열을 사용하여 가계부 프로그램을 만듭니다.
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);
			
			
		}
		
	}

}


Full-Stack 개발자가 되려는 작은 개발자의 블로그

강의 정리/Java

Java를 이용한 학생 관리 프로그램/가계부 프로그램

jhjin 2020. 3. 11. 15:29

배열을 이용한 가계부 프로그램

import java.util.Scanner;

public class KeepingBook {
	public static void main(String[] args) {
		Scanner scan=new Scanner(System.in);
		final int MAX=3;
		
		String inOutDate[]=new String[MAX];
		String inOutSort[]=new String[MAX];
		int inOutMoney[]=new int[MAX];
		
		int totalMoney=1517;//총 잔액
		int inMon=0;//수입 총 합
		int outMon=0;//지출 총 합

		int select=0;
		
		System.out.println("가계부 프로그램");
		while(true) {
			System.out.println("==================================================");
			System.out.println("1.내용 등록 2.전체 출력 3.수입 출력 4.지출 출력 5.종료");
			System.out.println("==================================================");
			System.out.print("선택 > ");
			select=scan.nextInt();
			
			if(select==5) {
				System.out.println("프로그램을 종료합니다.");
				break;
			}
			switch(select) {
			case 1: //내용 등록
				for(int i=0;i<MAX;i++) {
					scan.nextLine();
					System.out.println("(지출 or 수입)"); 
					inOutSort[i]=scan.nextLine();
					System.out.println("날짜를 입력해주세요 > ");
					inOutDate[i]=scan.nextLine();
					System.out.println("금액을 입력해주세요");
					inOutMoney[i]=scan.nextInt();
					if(inOutSort[i].equals("in")) {
						totalMoney+=inOutMoney[i];
						inMon+=inOutMoney[i];
					}else if(inOutSort[i].equals("out")) {
						totalMoney-=inOutMoney[i];
						outMon-=inOutMoney[i];
					}
				}
				break;
			case 2: //전체 출력
				System.out.printf("날짜\t\t금액\t\t수입/지출\n");
				for(int i=0;i<MAX;i++) {
					System.out.printf("%s\t\t%d\t\t%s\n",inOutDate[i],inOutMoney[i],inOutSort[i]);
				}
				System.out.println("잔액 : "+totalMoney);
				break;
			case 3: //수입 출력
				System.out.printf("날짜\t\t금액\t\t수입\n");
				for(int i=0;i<MAX;i++) {
					if(inOutSort[i].equals("in")) {
						System.out.printf("%s\t\t+%d\t\t%s\n",inOutDate[i],inOutMoney[i],inOutSort[i]);
					}
				}
				System.out.println("수입 총 합 : "+inMon);
				break;
			case 4: //지출 출력
				System.out.printf("날짜\t\t금액\t\t지출\n");
				for(int i=0;i<MAX;i++) {
					if(inOutSort[i].equals("out")) {
						System.out.printf("%s\t\t-%d\t\t%s\n",inOutDate[i],inOutMoney[i],inOutSort[i]);
					}
				}
				System.out.println("지출 총 합 : "+outMon);
				break;
			}
		}
	}
}

입출력 메소드를 활용 학생 관리 프로그램

import java.util.Scanner;

public class StudentManager2 {
	static Scanner scan=new Scanner(System.in);
	final static int MAX=3; //학생의 전체 인원
	static String names[]=new String[MAX];
	static String major[]=new String[MAX];
	static String phoneNumber[]=new String[MAX];//int로 잡을 경우 앞자리 0을 입력하면 짤린다. 
	static int stuNumber[]=new int[MAX];
	static float avgScore[]=new float[MAX];
	
	public static int printMenu() {
		System.out.println("1.정보입력 2.정보출력 3.종료");
		System.out.println("========================================");
		System.out.print("선택 >");
		int selMenu=scan.nextInt();
		
		return selMenu;
	}
	public static void inputStuInfo() {
		System.out.println("학생을 등록해주세요!");
		for(int i=0;i<MAX;i++) {
			System.out.println("===================");
			System.out.print("이름 > ");
			names[i]=scan.next();
			System.out.print("전공 > ");
			major[i]=scan.next();
			System.out.print("학번 > ");
			stuNumber[i]=scan.nextInt();
			System.out.print("전화번호 > ");
			phoneNumber[i]=scan.next();
			System.out.print("학점 > ");
			avgScore[i]=scan.nextFloat();
		}
	}
	public static void printStuInfo() {
		for(int i=0;i<MAX;i++) {
			System.out.println("===============================");
			System.out.println((i+1)+"번 학생 정보");
			System.out.println(names[i]);
			System.out.println(major[i]);
			System.out.println(stuNumber[i]);
			System.out.println(phoneNumber[i]);
			System.out.println(avgScore[i]);
		}
	}
	public static void main(String[] args) {
		int selMenu=0;//메뉴 입력 값을 저장 할 변수
		
		System.out.println("학생 관리 프로그램");
		System.out.println("========================================");
		while(true) {
			selMenu=printMenu();
			
			//먼저 처리할 메뉴
			if(selMenu==3) {
				System.out.println("프로그램을 종료합니다.");
				break;
			}
			switch(selMenu) {
			case 1: //입력 처리 메뉴
				inputStuInfo();
				break;
			case 2: //출력 처리 메뉴
				printStuInfo();
				
				break;
			default://잘못된 메뉴 입력   
				break;
			}
		}
	}//main()
}