[Java] 객체지향 콘솔 성적관리 프로그램

자바를 초창기때 배웠을때 만들어봤었던 콘솔 성적관리 프로그램입니다. 지금 보면 정말 별거아니지만 그 당시 밤을 새워가며 열심히 코딩했었던 기억이 나네요. 그때가 정말 그립습니다. ㅎㅎㅎ


프로그램 구조는 HashMap<Integer, Student> 이런식으로 되어있습니다. Student클래스에 학생성적의 정보를 담아두고 Map을 put하거나 remove하는 방식입니다.


Main.java

package CollectionScore;
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Score score = new Score();
int i=0; while(true){ Student student = new Student(); System.out.println("1.입력 2.수정(이름) 3.삭제(이름) 4.출력"); int select = sc.nextInt(); switch (select) { case 1: score.Input(student);
i++; break; case 2: score.Modify();
break; case 3: score.Delete();
break; case 4: score.Output();
break; default: break; } } } }


Student.java

package CollectionScore;

public class Student {
	String name;
	int kor;
	int eng;
	int mat;
	int sum;
	double avg;
	
	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 getSum() {
		return sum;
	}
	public void setSum(int kor,int eng,int mat) {
		sum = kor+eng+mat;
		avg = sum/3.f;
	}
	public double getAvg() {
		return avg;
	}
	public void setAvg(double avg) {
		this.avg = avg;
	}
	
	public void Modify(int kor,int eng,int mat){
		this.kor = kor;
		this.eng = eng;
		this.mat = mat;
		
		result();
	}

	public void result(){
		avg=sum/3.f;
	}
}


Score.java

package CollectionScore;
import java.util.HashMap; import java.util.Iterator; import java.util.Scanner; import java.util.Set; public class Score{ int people; Scanner sc; HashMap<Integer, Student> stu; int number=0; Score() {
sc = new Scanner(System.in); stu = new HashMap<Integer, Student>(); } public void Input(Student st) { sc = new Scanner(System.in); System.out.println("이름을 입력해주세요"); String name = sc.next(); st.setName(name); System.out.println(name + "의 국어 성적을 입력해주세요"); int kor = sc.nextInt(); st.setKor(kor); System.out.println(name + "의 영어 성적을 입력해주세요"); int eng = sc.nextInt(); st.setEng(eng); System.out.println(name + "의 수학 성적을 입력해주세요"); int mat = sc.nextInt(); st.setMat(mat); st.setSum(kor, eng, mat); st.result(); stu.put(number,st); number = number+1; } public void Output() { Set<Integer> keySet = stu.keySet(); Iterator<Integer> iterator = keySet.iterator(); while (iterator.hasNext()) { int key = iterator.next(); System.out.print(" 이름 :" + stu.get(key).getName()); System.out.print(" 국어 :" + stu.get(key).getKor()); System.out.print(" 영어 :" + stu.get(key).getEng()); System.out.print(" 수학 :" + stu.get(key).getMat()); System.out.print(" 총점 :" + stu.get(key).getSum()); System.out.print(" 평균 :" + stu.get(key).getAvg()); System.out.println(" "); } } public void Modify() { System.out.println("누구를 수정하시겠습니까?"); String name = sc.next(); Set<Integer> keySet = stu.keySet(); Iterator<Integer> iterator = keySet.iterator(); while (iterator.hasNext()) { int key = iterator.next(); if (name.equals(stu.get(key).getName())) { System.out.println(stu.get(key).getName() + "님의 바뀐 국어성적을 입력해주세요"); int kor = sc.nextInt(); stu.get(key).setKor(kor); System.out.println(stu.get(key).getName() + "님의 바뀐 영어성적을 입력해주세요"); int eng = sc.nextInt(); stu.get(key).setEng(eng); System.out.println(stu.get(key).getName() + "님의 바뀐 수학성적을 입력해주세요"); int mat = sc.nextInt(); stu.get(key).setMat(mat); stu.get(key).setSum(kor, eng, mat); stu.get(key).result(); } } } public void Delete() { System.out.println("누구를 삭제하시겠습니까?"); String name = sc.next(); for (int i = 0; i < stu.size(); i++) { if (name.equals(stu.get(i).getName())) { stu.remove(i); } } } }



댓글

Designed by JB FACTORY