ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java 실습] 성적 관리 프로그램
    Java/Java 실습 2022. 7. 12. 09:32

    성적 관리 프로그램은 입력, 출력, 검색, 삭제, 종료가 가능하다.

     

    입력 : 전체 입력

    출력 : 전체 출력, 개인 출력

    검색 : 특정 점수 이상의 총점을 받은 학생 출력

    삭제 : 삭제하고 싶은 학생의 이름이 있다면 삭제

    종료 : 시스템 종료


    Student.java

    package Example;
    
    // 성적 관리 프로그램
    
    // 학생 이름, 국, 영, 수, 총점, 평균
    
    class Student{
    	String name;
    	int kor;
    	int eng;
    	int mat;
    	int total;
    	float avg;
    	
    	public Student() {};
    	public Student(String name, int kor, int eng, int mat) {
    		this.name = name;
    		this.kor = kor;
    		this.eng = eng;
    		this.mat = mat;
    		setTotal();
    		setAvg();
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setKor(int kor) {
    		this.kor = kor;
    	}
    	public int getKor() {
    		return kor;
    	}
    	public void setEng(int eng) {
    		this.eng = eng;
    	}
    	public int getEng() {
    		return eng;
    	}
    	public void setMat(int mat) {
    		this.mat = mat;
    	}
    	public int getMat() {
    		return eng;
    	}
    	public void setTotal() {
    		this.total = kor + eng + mat;
    	}
    	public int getTotal() {
    		return total;
    	}
    	public void setAvg() {
    		this.avg = (kor + eng + mat) / 3.f;
    	}
    	public float getAvg() {
    		return avg;
    	}
    	
    	public void disp() {
    		System.out.println("이름 : " + getName());
    		System.out.println("국어 점수 : " + getKor());
    		System.out.println("영어 점수 : " + getEng());
    		System.out.println("수학 점수 : " + getMat());
    		System.out.println("총점 : " + getTotal());
    		System.out.println("평균 : " + getAvg());
    	}
    }

     

    main.java

    package Example;
    
    import java.util.Arrays;
    import java.util.InputMismatchException;
    import java.util.Scanner;
    
    // 성적관리 프로그램
    
    // 1.입력, 2.출력, 3.검색, 4.삭제, 5.종료
    // 출력 : 전체 출력, 개인 출력
    // 검색 : 총점이 몇점 이상인 학생 검색
    // 삭제 : 학생의 이름이 맞다면 삭제
    
    
    // 1.이름, 2.국어 점수, 3.영어 점수, 4.수학 점수
    public class main {
    	public static void main(String[] args) {
    	
    		int num=0; // 시작 인덱스 번호
    		Student []st = new Student[5];	// 배열 크기 = 5
    		
    		while(true) {
    			try {	// InputMismatchException 예외 처리
    				Scanner sc = new Scanner(System.in);
    				System.out.println("1.입력, 2.출력, 3.검색, 4.삭제, 5.종료");
    				int user_input = sc.nextInt();
    				switch(user_input) {
    				
    					// 입력
    					case 1:
    						System.out.print("이름을 입력하세요.");
    						String name = sc.next();
    						System.out.print("국어 점수를 입력하세요.");
    						int korScore = sc.nextInt();
    						System.out.print("영어 점수를 입력하세요.");
    						int engScore = sc.nextInt();
    						System.out.print("수학 점수를 입력하세요.");
    						int matScore = sc.nextInt();
    						
    						st[num] = new Student(name, korScore, engScore, matScore);
    						num++;
    						break;
    						
    					// 출력
    					case 2:
    						System.out.println("1.전체 출력, 2.개인 출력");
    						int select1 = sc.nextInt();
    						switch(select1) {
    							case 1:
    								System.out.println("전체 출력");
    								for(int i=0; i<num; i++) {
                                    	// disp() 메소드를 통해 출력
    									st[i].disp();
    								}
    								break;
    							case 2:
    								System.out.println("개인 출력");
    								System.out.print("찾고싶은 학생의 이름을 입력하세요. : ");
    								String stdName = sc.next();
    								for(int i=0; i<num; i++) {
                                    	// 이름이 같으면 출력
    									if(st[i].getName().equals(stdName)) {
    										st[i].disp();
    									}
    								}
    								break;
    						}
    						break;
    				
    					// 검색
    					case 3:
    						System.out.println("몇점 이상의 총점을 보고싶으세요?");
    						int score = sc.nextInt();
    						for(int i=0; i<num; i++) {
                           	 // 총점이 입력값보다 높으면 출력
    							if(st[i].getTotal() >= score) {
    								st[i].disp();
    							}
    						}
    						break;
    						
    					case 4:
    						System.out.println("삭제하고 싶은 학생의 이름을 입력하세요. : ");
    						String stdName = sc.next();
    						for(int i=0; i<num; i++) {
    							if(st[i].getName().equals(stdName)) {
    								st[i] = null;
    							}
    						}
    	
    					// 종료
    					case 5:
    						System.exit(-1);	// scanner 종료
    						
    					// 오류
    					default:	// 나머지 case
    						System.out.print("잘못된 입력입니다. 다시 입력하세요.");
    				}
                    
                 // 입력 데이터 타입이 다르면 예외처리
                 // 오류 문구가 뜨지 않는 StackTrace라 사용해 봄
    			} catch(InputMismatchException e) {	
    				e.fillInStackTrace();
    			}
    		}
    	}
    }
Designed by Tistory.