본문 바로가기
Spring-Java/Java

Day05_배열예제

by 현대타운301 2023. 8. 20.

예제

 

source code

package day05;

import java.util.Scanner;

public class Example_5 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		// 성적표
		Scanner sc = new Scanner(System.in);

		String[] name = new String[10];		// index0~9까지 길이 10짜리 배열
		int[] kor = new int[10];
		int[] mat = new int[10];
		int[] eng = new int[10];
		double[] avg = new double[10];
		String[] grade = new String[10];
		int i = 0;

		while (true) {
			System.out.println("==========성적표==========");
			System.out.println("1.성적등록 2.성적리스트 0.종료");
			System.out.print("메뉴입력 > ");
			int menu = sc.nextInt();

			if (menu == 1) {
				System.out.print("\n이름 > ");
				name[i] = sc.next();
				System.out.print("국어점수 > ");
				kor[i] = sc.nextInt();
				System.out.print("수학점수 > ");
				mat[i] = sc.nextInt();
				System.out.print("영어점수 > ");
				eng[i] = sc.nextInt();
				// sum을 double로 받아야 나눴을 때 소숫점 아래가 제대로 표시됨
				double sum = (kor[i] + mat[i] + eng[i]);
				avg[i] = sum / (3);
				if (avg[i] >= 90) {
					grade[i] = "A";
				} else if (avg[i] >= 80) {
					grade[i] = "B";
				} else if (avg[i] >= 70) {
					grade[i] = "C";
				} else if (avg[i] >= 60) {
					grade[i] = "D";
				} else {
					grade[i] = "F";
				}
				System.out.println("성적입력 완료!");
				i++;
			} else if (menu == 2) {
				System.out.println("이름\t국어\t수학\t영어\t평균\t학점");
				System.out.println("===========================================");
				for (int j = 0; j < i; j++) {
					System.out.printf("\n%s\t%d\t%d\t%d\t%.2f\t%s\n", name[j], kor[j],
							mat[j], eng[j], avg[j], grade[j]);
				}
			} else if (menu == 0) {
				System.out.println("프로그램 종료...");
				break;
			}
		}
	}
}
package day05;

import java.util.Scanner;

public class Example_6 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		// 은행계좌개설
		Scanner sc = new Scanner(System.in);
		String[] name = new String[10];
		String[] account = new String[10];
		int[] balance = new int[10];
		int i = 0;
		
		while(true) {
			boolean run_1 = true;
			boolean run_2 = true;
			System.out.println("==========라즈베리은행==========");
			System.out.println("1.계좌개설 2.입금 3.출금 4.계좌목록 5.계좌조회 0.종료");
			System.out.print("메뉴선택 > ");
			int menu = sc.nextInt();
			
			if (menu == 1) {
				System.out.print("예금주명 > ");
				name[i] = sc.next();
				System.out.print("계좌번호(12자리숫자) > ");
				String accounts = sc.next();
				System.out.print("초기 잔액 > ");
				balance[i] = sc.nextInt();
				String charValue = "";
				// (문자열).length() : 문자열 길이
				for (int j = 0; j < accounts.length(); j++) {	
					// 문자열은 char의 배열로, 각 index로 분해가능
					charValue += accounts.charAt(j);
					if (j == 2 || j == 5) {
						charValue += "-";
					}
				}
				account[i] = charValue;
				System.out.println("'"+name[i]+"'"+"님, 계좌개설을 축하드립니다!");
				i++;
			} else if (menu == 2) {
				while (run_1) {
					int cnt = 0;
					System.out.println("입금계좌 입력 > ");
					String accountsAdd = sc.next();
					String charValueAdd = "";
					for (int j = 0; j < accountsAdd.length(); j++) {
						charValueAdd += accountsAdd.charAt(j);
						if (j == 2 || j == 5) {
							charValueAdd += "-";
						}
					} for (int k = 0; k < i; k++) {
						if (charValueAdd.equals(account[k])) {
							System.out.println("얼마를 입금 하시겠습니까? > ");
							int money = sc.nextInt();
							balance[k] += money;
							System.out.println("입금완료!");
							cnt++;
							run_1 = false;
							break;
						}
					}
					if (cnt == 0) {
						System.out.println("계좌조회 실패...다시 입력하세요");
					}
				}
			} else if (menu == 3) {
				while (run_1) {
					int cnt = 0;
					System.out.println("출금계좌 입력 > ");
					String accountsAdd = sc.next();
					String charValueAdd = "";
					for (int j = 0; j < accountsAdd.length(); j++) {
						charValueAdd += accountsAdd.charAt(j);
						if (j == 2 || j == 5) {
							charValueAdd += "-";
						}
					} for (int k = 0; k < i; k++) {
						if (charValueAdd.equals(account[k])) {
							while(run_2) {
								System.out.println("얼마를 출금 하시겠습니까? > ");
								int money = sc.nextInt();
								if (balance[k] >= money) {
									balance[k] -= money;
									System.out.println("출금완료!");
									cnt++;
									run_1 = false;
									run_2 = false;
									break;
								} else if (balance[k] < money) {
									System.out.println("잔액이 부족합니다...");
								}
							}
						}
					}
					if (cnt == 0) {
						System.out.println("계좌조회 실패...다시 입력하세요");
					}
				}
			} else if (menu == 4) {
				System.out.println("예금주\t계좌번호\t\t잔액");
				for (int j = 0; j < i; j++) {
					System.out.printf("%s\t%s\t%,d원\n", name[j], account[j], balance[j]);
				}
			} else if (menu == 5) {
				while (run_1) {
					int cnt = 0;
					System.out.println("계좌번호 입력 > ");
					String accountsAdd = sc.next();
					String charValueAdd = "";
					for (int j = 0; j < accountsAdd.length(); j++) {
						charValueAdd += accountsAdd.charAt(j);
						if (j == 2 || j == 5) {
							charValueAdd += "-";
						}
					} for (int k = 0; k < i; k++) {
						if (charValueAdd.equals(account[k])) {
							System.out.println("예금주\t잔액");
							System.out.printf("%s\t%,d원\n", name[k], balance[k]);
							cnt++;
							run_1 = false;
							break;
						}
					}
					if (cnt == 0) {
						System.out.println("계좌조회 실패...다시 입력하세요");
					}
				}
			} else if (menu == 0) {
				System.out.println("프로그램을 종료합니다...");
				break;
			}
		}
	}
}

 

실행결과

==========성적표==========
1.성적등록 2.성적리스트 0.종료
메뉴입력 > 1

이름 > 홍길동
국어점수 > 100
수학점수 > 90
영어점수 > 83
성적입력 완료!
==========성적표==========
1.성적등록 2.성적리스트 0.종료
메뉴입력 > 1

이름 > 이순신
국어점수 > 89
수학점수 > 76
영어점수 > 55
성적입력 완료!
==========성적표==========
1.성적등록 2.성적리스트 0.종료
메뉴입력 > 2
이름	국어	수학	영어	평균	학점
===========================================

홍길동	100	90	83	91.00	A

이순신	89	76	55	73.33	C
==========성적표==========
1.성적등록 2.성적리스트 0.종료
메뉴입력 > 0
프로그램 종료...
==========라즈베리은행==========
1.계좌개설 2.입금 3.출금 4.계좌목록 5.계좌조회 0.종료
메뉴선택 > 1
예금주명 > 홍길동
계좌번호(12자리숫자) > 123123123456
초기 잔액 > 900000
'홍길동'님, 계좌개설을 축하드립니다!
==========라즈베리은행==========
1.계좌개설 2.입금 3.출금 4.계좌목록 5.계좌조회 0.종료
메뉴선택 > 1
예금주명 > 이순신
계좌번호(12자리숫자) > 234234234567
초기 잔액 > 5000000
'이순신'님, 계좌개설을 축하드립니다!
==========라즈베리은행==========
1.계좌개설 2.입금 3.출금 4.계좌목록 5.계좌조회 0.종료
메뉴선택 > 4
예금주	계좌번호		잔액
홍길동	123-123-123456	900,000원
이순신	234-234-234567	5,000,000원
==========라즈베리은행==========
1.계좌개설 2.입금 3.출금 4.계좌목록 5.계좌조회 0.종료
메뉴선택 > 2
입금계좌 입력 > 
123
계좌조회 실패...다시 입력하세요
입금계좌 입력 > 
123123123456
얼마를 입금 하시겠습니까? > 
40000
입금완료!
==========라즈베리은행==========
1.계좌개설 2.입금 3.출금 4.계좌목록 5.계좌조회 0.종료
메뉴선택 > 2
입금계좌 입력 > 
234234234567
얼마를 입금 하시겠습니까? > 
350000
입금완료!
==========라즈베리은행==========
1.계좌개설 2.입금 3.출금 4.계좌목록 5.계좌조회 0.종료
메뉴선택 > 5
계좌번호 입력 > 
123
계좌조회 실패...다시 입력하세요
계좌번호 입력 > 
123123123456
예금주	잔액
홍길동	940,000원
==========라즈베리은행==========
1.계좌개설 2.입금 3.출금 4.계좌목록 5.계좌조회 0.종료
메뉴선택 > 5
계좌번호 입력 > 
234234234567
예금주	잔액
이순신	5,350,000원
==========라즈베리은행==========
1.계좌개설 2.입금 3.출금 4.계좌목록 5.계좌조회 0.종료
메뉴선택 > 3
출금계좌 입력 > 
123
계좌조회 실패...다시 입력하세요
출금계좌 입력 > 
123123123456
얼마를 출금 하시겠습니까? > 
100000
출금완료!
==========라즈베리은행==========
1.계좌개설 2.입금 3.출금 4.계좌목록 5.계좌조회 0.종료
메뉴선택 > 3
출금계좌 입력 > 
234234234567
얼마를 출금 하시겠습니까? > 
10000000
잔액이 부족합니다...
얼마를 출금 하시겠습니까? > 
1250000
출금완료!
==========라즈베리은행==========
1.계좌개설 2.입금 3.출금 4.계좌목록 5.계좌조회 0.종료
메뉴선택 > 4
예금주	계좌번호		잔액
홍길동	123-123-123456	840,000원
이순신	234-234-234567	4,100,000원
==========라즈베리은행==========
1.계좌개설 2.입금 3.출금 4.계좌목록 5.계좌조회 0.종료
메뉴선택 > 0
프로그램을 종료합니다...

 

'Spring-Java > Java' 카테고리의 다른 글

Day07_접근제한자, class(필드, 생성자, 메소드)  (0) 2023.08.23
Day06_배열예제2  (0) 2023.08.21
Day04_while(boolean), 배열(Array)  (0) 2023.08.17
Day03_package, printf, while  (0) 2023.08.17
Day02_String, switch-case, for  (0) 2023.08.16