Java/Java icia 9일차

배운것들을 이용해서 학점시스템 만들기

swkn 2023. 3. 6. 19:53
package day9;

public class Student {
	private static int num = 100;
	
	private String sno;
	private String name;
	private int kor;
	private int eng;
	private int mat;
	private int total;
	private double avg;
	private char grade;
	
	public Student() {
		this.sno = "S"+num++;		
	}
	public String getSno() {
		return sno;
	}
	public void setSno(String sno) {
		this.sno = sno;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getKor() {
		return kor;
	}
	public void setKor(int kor) {
		this.kor = kor;
	}
	public int getEng() {
		return eng;
	}
	public void setEng(int eng) {
		this.eng = eng;
	}

	public int getMat() {
		return mat;
	}
	public void setMat(int mat) {
		this.mat = mat;
	}
	public int getTotal() {
		return total;
	}
	public void setTotal() {
		this.total = kor+eng+mat;
	}
	public double getAvg() {
		return avg;
	}
	public void setAvg() {
		this.avg = (kor+eng+mat)/(double)3;
	}
	public char getGrade() {
		return grade;
	}
	public void setGrade() {
		char grade = ' ';
		if(this.avg >= 90) {
			grade = 'A';
		}else if(this.avg >= 80) {
			grade = 'B';
		}else if(this.avg >= 70) {
			grade = 'C';
		}else if(this.avg >= 60) {
			grade= 'D';
		}else {
			grade = 'F';
		}
		this.grade = grade;
	}
	public void print() {
		System.out.printf("%s\t%s\t%d\t%d\t%d\t%d\t%f\t%c\n",sno,name,kor,eng,mat,total,avg,grade);
	}
}

메인

package day9;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class StudentMain {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		List<Student> list = new ArrayList<>();
		
		while(true) {
			System.out.println("=====학사관리시스템=====");
			System.out.println("1.학생등록 2.리스트 3.검색 4.수정 5.삭제 0.종료");
			System.out.print("메뉴선택> ");
			int menu = sc.nextInt();
			
			if(menu == 1) {
				Student student = new Student();
				System.out.print("이름> ");
				student.setName(sc.next());
				System.out.print("국어점수> ");
				student.setKor(sc.nextInt());
				System.out.print("영어점수> ");
				student.setEng(sc.nextInt());
				System.out.print("수학점수> ");
				student.setMat(sc.nextInt());
				student.setTotal();
				student.setAvg();
				student.setGrade();
				list.add(student);
				System.out.println(student.getName()+"학생이 등록되었습니다");
			}else if(menu == 2) {
				System.out.println("학번\t이름\t국어\t영어\t수학\t총점\t평균\t학점");
				System.out.println("---------------------------------------------------");
				for(Student s : list) {
					s.print();
				}
			}else if(menu == 3) {
				System.out.print("검색할 학번> ");
				String sno = sc.next();
				boolean find = false;
				for(Student s : list) {
					//  int == 는 스택변수에 저장된 값을 비교 ,String 참조값을 비교할때에는 equals() 사용
					if(sno.equals(s.getSno())) {
						System.out.println("학번\t이름\t국어\t영어\t수학\t총점\t평균\t학점");
						System.out.println("---------------------------------------------------");
						s.print();
						find = true;
						break;
					}
				}
				if(!find) {
					System.out.println("조회할 수 없는 학번입니다ㅜㅜ");
				}
			}else if(menu == 4) {
				System.out.print("수정할 학번> ");
				String sno = sc.next();
				boolean find = false;
				for(Student s : list) {
					if(sno.equals(s.getSno())) {
						System.out.print("수정할 이름> ");
						s.setName(sc.next());
						System.out.print("수정할 국어> ");
						s.setKor(sc.nextInt());
						System.out.print("수정할 영어> ");
						s.setEng(sc.nextInt());
						System.out.print("수정할 수학> ");
						s.setMat(sc.nextInt());
						s.setTotal();
						s.setAvg();
						s.setGrade();
						System.out.println("수정성공!");
						find = true;
						break;
					}
				}
				if(!find) {
					System.out.println("조회할 수 없는 학번입니다");
				}
			}else if(menu == 5) {
				System.out.print("삭제할 학번> ");
				String sno = sc.next();
				boolean find = false;
				for(Student s : list) {
					if(sno.equals(s.getSno())) {
						list.remove(s);
						System.out.println("삭제성공");
						find = true;
						break;
					}
				}
				if(!find) {
					System.out.println("조회할 수 없는 학번입니다");
				}
			}else if(menu == 0) {
				break;
			}else {
				System.out.println("다시입력");
			}
			System.out.println();
		}
		System.out.println("프로그램 종료");

	}

}