본문 바로가기

개발자노트

클래스) 학생부

package class04;

import java.util.Scanner;

class Student {

	String name;

	int score;

	void showInfo() {

		System.out.println(name + "학생은 " + score + "점입니다.");

	}

	Student(String name, int score) {

		this.name = name;

		this.score = score;

		System.out.println(this.name + "학생 입력완료.");

	}

}

public class Test09 {

	public static void main(String[] args) {

		Student[] data = new Student[3]; // 객체배열

		int index = 0; // 실질적으로 몇명이 담겨있는지 출력하기 위해, length 쓰면 그냥 3나옴

		Scanner sc = new Scanner(System.in);

		while (true) {

			System.out.println("1. 추가");

			System.out.println("2. 출력");

			System.out.println("3. 변경");

			System.out.println("4. 종료");

			int act = sc.nextInt();

// 사용자가 입력하면 무조건 -> 유효성 검사!!

			if (act == 1) {

				if (index == data.length) { // 만약에 이미 인덱스길이인 3이 가득 찼다면,

					System.out.println("데이터 공간이 부족!");

					continue;

				}

				System.out.println("학생이름 입력: ");

				String name = sc.next();

				System.out.println("학생성적 입력: ");

				int score = sc.nextInt();

				data[index] = new Student(name, score); // 학생을 한명씩만 만드는거

				index++; // 학생 한명을 index[0]번에 만들었기 때문에 다음은 1번에 저장해야하기 때문에 ++함

			}

			else if (act == 2) {

				if (index == 0) {

					System.out.println("저장한 정보가 없습니다!");

					continue; // if문이 실행되면 위로!

				}

				System.out.println("===학생목록===");

				for (int i = 0; i < index; i++) {

					data[i].showInfo();

				}

			}

			else if (act == 3) {

				System.out.println("정보를 변경할 학생의 번호입력: ");

				int num = sc.nextInt(); // 1->[0] ,

				num--; // 실제 번호와 인덱스 넘버의 차이가 있다는 것을 생각해야함!!

				if (num < 0 || index <= num) { // 유효성 검사 , 학생이 2명밖에 기록이 안돼있을 경우도 있으니까 1~3의값을 받아야한다고 생각하면 안됨

					System.out.println("없는 번호입니다! 확인 후 다시이용해주세요~");

					continue;

				}

				System.out.print(data[num].name + "학생의 변경할 점수 입력: ");

				data[num].score = sc.nextInt();

				System.out.println(data[num].name + "학생 정보 초기화 완료!");

			}

			else if (act == 4) {

				System.out.println("종료됩니다..");

				break;

			}

			else {

				System.out.println("잘못된 입력입니다.");

			}

		}

	}

}