학교/JAVA

컬렉션 연습문제 (Student, Main)

서윤-정 2023. 10. 27. 11:38

01. Student 클래스

package arrayList;

public class Student {
	private String name;
	private String number;
	private int scoreJava;
	private int scoreWeb;
	private int scoreAndroid;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getNumber() {
		return number;
	}
	public void setNumber(String number) {
		this.number = number;
	}
	public int getScoreJava() {
		return scoreJava;
	}
	public void setScoreJava(int scoreJava) {
		this.scoreJava = scoreJava;
	}
	public int getScoreWeb() {
		return scoreWeb;
	}
	public void setScoreWeb(int scoreWeb) {
		this.scoreWeb = scoreWeb;
	}
	public int getScoreAndroid() {
		return scoreAndroid;
	}
	public void setScoreAndroid(int scoreAndroid) {
		this.scoreAndroid = scoreAndroid;
	}
	@Override
	public String toString() {
		return "Student [name=" + name + ", number=" + number + ", scoreJava=" + scoreJava + ", scoreWeb=" + scoreWeb
				+ ", scoreAndroid=" + scoreAndroid + "]";
	}
	public Student(String name, String number, int scoreJava, int scoreWeb, int scoreAndroid) {
		this.name = name;
		this.number = number;
		this.scoreJava = scoreJava;
		this.scoreWeb = scoreWeb;
		this.scoreAndroid = scoreAndroid;
	}
	
	
}

 

 

 

 

02. Main 클래스

1) 다음과 같이 메뉴 출력

2) [4] 종료 선택 시 프로그램 종료

3) Student 객체 담을 수 있는 ArrayList 생성

4) [1]성적입력 선택 시 이름, 학번, 성적 입력받아 ArrayList에 추가

5) [2] 전체조회 선택 시 다음과 같이 출력

6) 단, 등록되어있는 정보 없을 시에는 '조회할 데이터가 없습니다.'

7) [4]학생검색 선택 시 검색할 이름 입력받아 동일한 이름의 정보 찾아 다음과 같이 출력

8) 단, 검색한 이름이 없을 경우 '검색한 이름의 정보가 없습니다.'

package arrayList;

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

public class StudentMain {

	public static void main(String[] args) {
	
		Scanner sc = new Scanner(System.in);
		
		ArrayList<Student> list = new ArrayList<>();
		
		while(true) {
			System.out.println("[1]성적입력 [2]전체조회 [3]학생검색 [4]프로그램 종료");
			int menu = sc.nextInt();
			
			if(menu==4) {
				System.out.println("프로그램이 종료되었습니다...");
				break;
			}
			
			if(menu==1) {
				System.out.println("이름 : ");
				String name = sc.next();

				System.out.println("학번 : ");
				String number = sc.next();
				
				System.out.println("Java 점수 : ");
				int javaScore = sc.nextInt();

				System.out.println("Web 점수 : ");
				int webScore = sc.nextInt();

				System.out.println("Android 점수 : ");
				int androidScore = sc.nextInt();
				
				Student s = new Student(name, number, javaScore, webScore, androidScore);
				
				list.add(s);
			}
			
			if(menu==2) {
				if(list.isEmpty()) {
					System.out.println("조회 할 데이터가 없습니다.");
				}else {
					System.out.print("이름\t");
					System.out.print("학번\t");
					System.out.print("Java\t");
					System.out.print("Android\t");
					System.out.print("Web\n");
					
					for(Student s : list) {
						System.out.print(s.getName()+"\t");
						System.out.print(s.getNumber()+"\t");
						System.out.print(s.getScoreJava()+"\t");
						System.out.print(s.getScoreAndroid()+"\t");
						System.out.print(s.getScoreWeb()+"\n");
					}
				}
			}
			
			if(menu==3) {
				System.out.println("검색할 이름 입력: ");
				String name = sc.next();
				
				boolean found = false;
				
				for(Student s : list) {
					if(s.getName().equals(name)) {
						found = true;
						
						System.out.print(s.getName()+"\t");
						System.out.print(s.getNumber()+"\t");
						System.out.print(s.getScoreJava()+"\t");
						System.out.print(s.getScoreAndroid()+"\t");
						System.out.print(s.getScoreWeb()+"\n");
					
						double average = (s.getScoreJava() + s.getScoreAndroid() + s.getScoreWeb()) / 3.0;
						System.out.println("평균점수: " + average);
						
						String grade;
						
						if(average <= 50) {
							grade = "C";
						}else if(average <= 70) {
							grade = "B";
						}else {
							grade = "A";
						}
						System.out.println("학점: " + grade);
						
						break;
					}
				}
				
				if(!found) {
					System.out.println("검색한 이름의 정보가 없습니다.");
					break;
				}
			}
		}
	}
}