-
[Java] ArrayList 성적관리 프로그램Java 2022. 9. 19. 01:37
Student.java
import java.util.ArrayList; import java.util.List; import java.util.Scanner; class Student { private int ban; private String name; private ArrayList<String> subject; private ArrayList<Integer> grade; private int total; private float avg; private String flag; private Scanner scan = new Scanner(System.in); public Student() { subject = new ArrayList<String>(); grade = new ArrayList<Integer>(); System.out.println("반을 입력해주세요"); ban = scan.nextInt(); System.out.println("이름을 입력해주세요"); name = scan.next(); do { System.out.println("과목 이름을 입력해주세요"); subject.add(scan.next()); System.out.println("계속 입력하시겠습니까? Y/N"); flag = scan.next(); }while(flag.equals("Y") || flag.equals("y")); for(int i = 0; i < subject.size(); i++) { System.out.println(getSubject().get(i) + "점수를 입력해주세요"); int score = scan.nextInt(); grade.add(score); total += score; } avg = (float) total / subject.size(); } public void disp() { System.out.println(getBan() + "반"); System.out.println("이름: " + getName()); for(int j = 0; j < getSubject().size(); j++) { System.out.print(getSubject().get(j) + ": "); System.out.println(getGrade().get(j) + "점"); } System.out.println("총점: " + getTotal()); System.out.println("평균: " + getAvg()); System.out.println(); } public int getBan() { return ban; } public void setBan(int ban) { this.ban = ban; } public String getName() { return name; } public void setName(String name) { this.name = name; } public ArrayList<String> getSubject() { return subject; } public void setSubject(String subject, String name, int score) { int index = this.subject.indexOf(subject); this.subject.set(index, name); grade.set(index, score); } public ArrayList<Integer> getGrade() { return grade; } public float getAvg() { return avg; } public void setAvg(float avg) { this.avg = avg; } public int getTotal() { return total; } public void setTotal(int total) { this.total = total; } }
Main.java
import java.util.ArrayList; import java.util.Scanner; public class Main { private ArrayList<Student> stu; private ArrayList<Student> newStu; public Main() { stu = new ArrayList<Student>(); newStu = new ArrayList<>(); } public static void main(String[] args) { Main m = new Main(); Scanner scan = new Scanner(System.in); String name; while(true) { System.out.println("번호를 입력하세요(1. 입력, 2. 출력, 3. 검색, 4. 삭제, 5. 수정, 6. 종료)"); int num = scan.nextInt(); switch(num) { case 1: m.stu.add(new Student()); break; case 2: // 전체 출력(반, 이름, 과목, 점수, 총점, 평균) for(int i = 0; i < m.stu.size() ; i++) { m.stu.get(i).disp(); } break; case 3: System.out.println("1. 반 검색, 2. 이름 검색, 3. 점수 검색"); int inputNum = scan.nextInt(); // 반 검색 if(inputNum == 1) { System.out.println("검색하실 반을 입력해주세요"); int ban = scan.nextInt(); for(int i = 0; i < m.stu.size(); i++) { if(m.stu.get(i).getBan() == ban) { m.stu.get(i).disp(); } } break; } // 이름 검색 else if(inputNum == 2) { System.out.println("검색하실 이름을 입력해주세요"); name = scan.next(); for(int i = 0; i < m.stu.size(); i++) { if(m.stu.get(i).getName().equals(name)) { m.stu.get(i).disp(); } } break; } // 점수 검색 else if(inputNum == 3) { System.out.println("1. 평균, 2. 과목점수"); int inputNum2 = scan.nextInt(); // 평균 if(inputNum2 == 1) { System.out.println("검색하실 평균을 입력해주세요"); int avg = scan.nextInt(); for(int i = 0; i < m.stu.size(); i++) { if(m.stu.get(i).getAvg() >= avg) { m.stu.get(i).disp(); } } } // 과목 당 else if(inputNum2 == 2) { System.out.println("검색하실 과목을 입력해주세요"); String sb = scan.next(); int pointer = 0 ; int score = 0; for(int i = 0; i < m.stu.size(); i++) { for(int j = 0; j < m.stu.get(i).getSubject().size(); j++) { if(m.stu.get(i).getSubject().get(j).equals(sb)) { if(pointer == 0) { System.out.println("검색하실 점수를 입력해주세요"); score = scan.nextInt(); pointer++; } if(m.stu.get(i).getGrade().get(j) >= score) { m.stu.get(i).disp(); } } } } } break; } case 4: // 삭제 System.out.println("삭제하실 학생의 이름을 입력해주세요"); name = scan.next(); for(int i = 0; i < m.stu.size(); i++) { if(m.stu.get(i).getName().equals(name)) { m.stu.remove(i); } } break; case 5: // 수정 System.out.println("수정하실 학생의 이름을 입력해주세요"); name = scan.next(); m.newStu = new ArrayList<>(); for(int i = 0; i < m.stu.size() ; i++) { if(m.stu.get(i).getName().equals(name)) { m.newStu.add(m.stu.get(i)); } } for(int i = 0; i < m.newStu.size(); i++) { System.out.println((i) + "번"); m.newStu.get(i).disp(); } int size = m.newStu.size(); System.out.println("동명이인 중 선택해주세요 (0 ~ " + (size-1) + ")"); int search = scan.nextInt(); if(search == 0 || search == size) { System.out.println("1. 반, 2. 이름, 3. 과목 점수"); int inputNum1 = scan.nextInt(); if(inputNum1 == 1) { System.out.println("변경하실 반을 입력해주세요"); m.newStu.get(search).setBan(scan.nextInt()); }else if(inputNum1 == 2) { System.out.println("변경하실 이름을 입력해주세요"); m.newStu.get(search).setName(scan.next()); } else if(inputNum1 == 3) { for(int k = 0; k < m.newStu.get(search).getSubject().size(); k++) { System.out.println("변경을 원하시는 과목을 입력해주세요"); String subject = scan.next(); System.out.println("변경하실 과목명을 입력해주세요"); name = scan.next(); System.out.println("점수를 입력해주세요"); int score = scan.nextInt(); m.newStu.get(search).setSubject(subject, name, score); } System.out.println("수정이 완료되었습니다"); m.newStu.get(search).disp(); } } break; case 6: System.exit(-1); default: System.out.println("다시 입력해주세요"); } } } }
728x90'Java' 카테고리의 다른 글
[Java] Map 성적관리 프로그램 (0) 2022.09.19 [Java] Set 성적관리 프로그램 (0) 2022.09.19 [Java] 참조 자료형 (0) 2022.07.09 [Java] 제어문 (0) 2022.07.08 [Java] 연산자 (0) 2022.07.08