본문 바로가기
자바 풀스택 공부

Day 13.

by seung_nari 2022. 1. 18.

Q. 코드 작성!!

> 학생 관리 

 

class Student {
	int id;
	String name;
	int LanguageScore;
	int EnglishScore;
	int MathScore;
	
	double average() {
		return ((LanguageScore + EnglishScore + MathScore) / 3.0 * 100) / 100;
	}
	
	int TotalScore() {
		return LanguageScore + EnglishScore + MathScore;
	}
}
package chap06;

import java.util.*;

public class StudentEx {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		Student[] st = new Student[10]; // 크기 10만큼 Student 배열 선언
		
		for(int i = 0; i < st.length; i++) {
			st[i] = new Student();
		} // 초기값 null로 초기화
		
		st[0] = new Student();
		
		st[0].id = 20197028;
		st[0].name = "김승종";
		st[0].LanguageScore = 61;
		st[0].EnglishScore = 85;
		st[0].MathScore = 99;
		
		int menu = 0;
		int count;
		int search;
		
		while(menu != 5) {
			
			// 인터페이스
			System.out.println("1. 목록 조회");
			System.out.println("2. 학생 등록");
			System.out.println("3. 학생 정보 수정");
			System.out.println("4. 학생 삭제");
			System.out.println("5. 종료");
			System.out.println();
			
			System.out.println("번호를 입력해주세요. > ");
			
			menu = 0;
			
			boolean selectMenu = menu >= 1 && menu <= 5;
			
			while(!selectMenu) {
				menu = Integer.parseInt(sc.nextLine());
				
				selectMenu = menu >= 1 && menu <= 5;
				
				if(!selectMenu)
					System.out.print("다시 입력해주세요. > ");
			}
			
			switch(menu) {
				case 1:
					System.out.println("===========================");
					
					count = 0;
					
					for(int i = 0; i < st.length; i++) {
						if(st[i].name != null) {
							System.out.printf("학번 : %d, 이름 : %s, 국어점수 : %d, 영어점수 : %d, 수학점수: %d, 총점수 : %d, 평균점수 : %.2f \n", 
									st[i].id, st[i].name, st[i].LanguageScore, st[i].EnglishScore, st[i].MathScore, st[i].TotalScore(), (float)st[i].average());
							
							count++;
						}
					}
					
					if(count > 0)
						System.out.println("총 " + count + "명 학생이 등록되어있습니다.");
					else
						System.out.println("등록되어 있는 학생이 없습니다.");
					
					System.out.println("===========================");
					System.out.println();
					System.out.println();
					
					break;
					
				case 2:
					System.out.println("===========================");
					
					count = 0;
					
					for(int i = 0; i < st.length; i++) {
						if(st[i].name == null) {
							st[i] = new Student();
							
							System.out.print("학번을 입력하세요. > ");
							st[i].id = Integer.parseInt(sc.nextLine());
							System.out.print("이름을 입력하세요. > ");
							st[i].name = sc.nextLine();
							System.out.print("국어점수를 입력하세요. > ");
							st[i].LanguageScore = Integer.parseInt(sc.nextLine());
							System.out.print("영어점수를 입력하세요. > ");
							st[i].EnglishScore = Integer.parseInt(sc.nextLine());
							System.out.print("수학점수를 입력하세요. > ");
							st[i].MathScore = Integer.parseInt(sc.nextLine());
							
							System.out.println();
							
							System.out.println("입력하신 학생의 정보는");
							System.out.printf("학번 : %d, 이름 : %s, 국어점수 : %d, 영어점수 : %d, 수학점수: %d\n", 
									st[i].id, st[i].name, st[i].LanguageScore, st[i].EnglishScore, st[i].MathScore);
							System.out.println("입니다.");
							
							count++;
							
							break;
						}
					}
					
					if(count == 0) {
						System.out.println("현재 저장할 수 있는 공간이 없습니다.");
						System.out.println("저장공간 추가 및 데이터를 삭제 후 이용해주세요.");
					}
					
					System.out.println("===========================");
					
					break;
					
				case 3:
					System.out.println("===========================");
					
					count = 0;
					
					System.out.print("수정하려는 학생의 학번을 입력해주세요. > ");
					search = Integer.parseInt(sc.nextLine());
					
					for(int i = 0; i < st.length; i++) {
						if(st[i].id == search) {
							System.out.println("입력되어있는 학생의 정보는");
							System.out.printf("학번 : %d, 이름 : %s, 국어점수 : %d, 영어점수 : %d, 수학점수: %d\n", 
									st[i].id, st[i].name, st[i].LanguageScore, st[i].EnglishScore, st[i].MathScore);
							System.out.println("입니다.");
							
							System.out.println("수정합니다.");
							System.out.println();
							
							System.out.print("학번을 입력하세요. > ");
							st[i].id = Integer.parseInt(sc.nextLine());
							System.out.print("이름을 입력하세요. > ");
							st[i].name = sc.nextLine();
							System.out.print("국어점수를 입력하세요. > ");
							st[i].LanguageScore = Integer.parseInt(sc.nextLine());
							System.out.print("영어점수를 입력하세요. > ");
							st[i].EnglishScore = Integer.parseInt(sc.nextLine());
							System.out.print("수학점수를 입력하세요. > ");
							st[i].MathScore = Integer.parseInt(sc.nextLine());
							
							System.out.println();
							
							System.out.println("수정한 학생의 정보는");
							System.out.printf("학번 : %d, 이름 : %s, 국어점수 : %d, 영어점수 : %d, 수학점수: %d\n", 
									st[i].id, st[i].name, st[i].LanguageScore, st[i].EnglishScore, st[i].MathScore);
							System.out.println("입니다.");
							
							count++;
							
							break;
						}
						
					}
					if(count == 0)
						System.out.println("입력하신 학번과 일치하는 학생은 데이터에 없습니다.");
					
					System.out.println();
					System.out.println("===========================");
					
					break;
					
				case 4:
					System.out.println("===========================");
					
					count = 0;
					
					System.out.print("삭제하려는 학생의 학번을 입력해주세요. > ");
					search = Integer.parseInt(sc.nextLine());
					
					for(int i = 0; i < st.length; i++) {
						if(st[i].id == search) {
							System.out.println("입력되어있는 학생의 정보는");
							System.out.printf("학번 : %d, 이름 : %s, 국어점수 : %d, 영어점수 : %d, 수학점수: %d\n", 
									st[i].id, st[i].name, st[i].LanguageScore, st[i].EnglishScore, st[i].MathScore);
							System.out.println("입니다.");
							
							System.out.println("삭제합니다.");
							
							st[i] = new Student();
							
							count++;
							
							break;
						}
						
					}
					
					if(count == 0)
						System.out.println("입력하신 학번과 일치하는 학생은 데이터에 없습니다.");
					
					System.out.println();
					System.out.println("===========================");
					
					break;
					
				case 5:
					System.out.println("종료합니다.");
					break;
				
			} // switch 종료
			
		} // while문 종료
		
		sc.close();
	} // main end
} // class end

'자바 풀스택 공부' 카테고리의 다른 글

Day 14.  (0) 2022.01.19
Day 13-2.  (0) 2022.01.19
Day 12-3.  (0) 2022.01.18
Day 12-2.  (0) 2022.01.18
Day 12-1.  (0) 2022.01.16

댓글