package class01;
import java.util.Scanner;
class Student {
String name; // 학생이름
int score; // 학생 점수
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
void showInfo() {
System.out.println(this.name + "학생은 " + this.score + "점입니다."); // 내 멤버변수니까 가독성 위해 this 붙이는게 좋음
}
Student(String name, int score) {
this.name = name;
this.score = score;
System.out.println(this.name + "학생 입력완료!");
}
}
public class Test02 {
public static void main(String[] args) {
Student[] data = new Student[3]; // 3명의 학생을 저장받을 것이다.
int index = 0; // 현재 저장되어있는 학생의 수 관리
// 최대 크기 : data.length
Scanner sc = new Scanner(System.in); // 사용자의 입력을 받아줄 스캐너
while (true) {
// 학생부 프로그램
// 학생 정보를 배열에 저장해서 관리하는 프로그램
// CRUD
// 비즈니스 메서드
// 핵심 로직
System.out.println("1. 추가");
System.out.println("2. 출력");
System.out.println("3. 변경");
System.out.println("4. 종료");
System.out.print("입력) ");
int act = sc.nextInt();
// 사용자가 입력하면 -> 유효성 검사!
if (act == 1) {
if (index == data.length) { // 학생 공간을 넣을 배열을 넘게되면,
System.out.println("데이터공간이 부족!");
continue;
}
System.out.print("학생이름 입력: ");
String name = sc.next();
System.out.print("학생성적 입력: ");
int score = sc.nextInt();
data[index] = new Student(name, score); // 입력 받은 내용을 학생저장
index++;
} else if (act == 2) {
if (index == 0) {
System.out.println("저장한 정보가 없습니다!");
continue;
}
System.out.println("===학생목록===");
for (int i = 0; i < index; i++) { // 0명 생성되있는 경우도 있으니까. index로
data[i].showInfo();
}
} else if (act == 3) {
if (index == 0) {
System.out.println("저장한 정보가 없습니다!"); // 사용자 편의성 증가
continue;
}
System.out.print("정보를 변경할 학생의 번호입력: ");
int num = sc.nextInt();
num--; // 번호와 인덱스넘버의 차이
if (num < 0 || index <= num) { // 유효성 검사
System.out.println("없는 번호입니다! 확인후 다시이용해주세요~~");
continue;
}
System.out.print("변경할 점수입력: ");
data[num].score = sc.nextInt();
System.out.println(data[num].name + "학생 정보 변경완료!");
} else if (act == 4) {
if(index==0) { // 만약 인덱스가 없다면 , 유효성 검사
System.out.println("삭제할 데이터가 없습니다");
}
System.out.println(" 최근 데이터 삭제중...");
index--; // 인덱스를 --; 함으로 그 전에 있던 배열을 삭제함
System.out.println("삭제 완료");
} else if (act == 5) { // 만약 사용자가 종료버튼을 누른다면 종료합니다.
System.out.println("종료됩니다...");
break;
} else {
System.out.println("잘못된 입력입니다."); // 유효성 검사
}
}
}
}