1. toString 정의
// toString 정의
public String toString() {
return String.format(" %5s%5s \t %3d \t %3d \t %3d \t %3d \t %2.2f",
no, name, kor, eng, mat, sum(), avg());
}
2. 수정 기능 구현
void modify() { // 수정 기능 구현
System.out.println("수정 기능 구현");
// 학번으로 학생을 탐색 후 학생 데이터 중 이름, 국어, 영어, 수학점수를 수정
System.out.print("수정할 학생의 학번 >");
String no = StudentEx.scanner.nextLine();
for (int i = 0; i < cnt; i++) {
if (students[i].no.equals(no)) {
System.out.print("이름 >");
String name = StudentEx.scanner.nextLine();
System.out.print("국어 >");
int kor = Integer.parseInt(StudentEx.scanner.nextLine());
System.out.print("영어 >");
int eng = Integer.parseInt(StudentEx.scanner.nextLine());
System.out.print("수학 >");
int mat = Integer.parseInt(StudentEx.scanner.nextLine());
students[i].name = name;
students[i].kor = kor;
students[i].eng = eng;
students[i].mat = mat;
System.out.println("수정 완료 되었습니다.");
break;
}
}
}
- class StudentEx
package student;
import java.util.Scanner;
public class StudentEx {
static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
StudentService service = new StudentService();
// 1. 목록 조회 2. 학생 등록 3. 학생 정보 수정 4. 학생 삭제 5. 종료
for (boolean b = true ; b ;) {
System.out.println("1. 목록 조회 2. 학생 등록 3. 학생 정보 수정 4. 학생 삭제 5. 종료");
int input = Integer.parseInt(scanner.nextLine());
switch (input) {
case 1:
System.out.println("목록 조회입니다.");
service.list();
break;
case 2:
System.out.println("학생 등록입니다.");
service.register();
break;
case 3:
System.out.println("학생 정보 수정입니다.");
service.modify();
break;
case 4:
System.out.println("학생 삭제입니다.");
break;
case 5:
System.out.println("종료합니다.");
b = false;
break;
default:
System.out.println("올바른 번호를 입력하세요.");
break;
}
}
scanner.close();
}
}
- class Student
package student;
// VO : Value Object : 값을 저장할 목적의 객체
public class Student {
// 학번, 이름, 국어, 영어, 수학
String no;
String name;
int kor;
int eng;
int mat;
// 생성자 만들기
Student(String no, String name, int kor, int eng, int mat) {
this.no = no;
this.name = name;
this.kor = kor;
this.eng = eng;
this.mat = mat;
}
Student() {
this ("220003", "이길동", 20, 30, 40);
}
public Student (int kor, int eng, int mat) {
this("220004", "김길동", kor, eng, mat);
}
public Student (String no, String name) {
this (70, 70, 70);
this.no = no;
this.name = name;
}
// 총점, 평균
int sum () {
return kor + eng + mat;
}
double avg () {
return (int)(sum() / 3d * 100) / 100d;
}
// toString 정의
public String toString() {
return String.format(" %5s%5s \t %3d \t %3d \t %3d \t %3d \t %2.2f", no, name,
kor, eng, mat, sum(), avg());
}
}
- class StudentService
package student;
// 기능 담당
public class StudentService {
Student[] students = new Student[10]; // 학생들
int cnt; // 학생의 인원수
{
String[] names = { "김경보", "김동엽", "김상현", "김승종", "김예찬", "김경보", "김태윤" };
for (int i = 0; i < names.length; i++) {
students[cnt] = new Student(22000 + cnt + 1 + "", names[cnt], getScore(), getScore(), getScore());
cnt++;
}
System.out.println("임시 데이터 초기화 완료");
}
int getScore() {
return (int) (Math.random() * 41) + 60; // 국어, 영어, 수학 점수 랜덤 출력
}
// 1. 조회하기
void list() { // 조회 기능 구현
System.out.println("조회 기능 구현");
System.out.printf(" 학번 \t 이름 \t 국어 \t 영어 \t 수학 \t 총점 \t 평균 %n");
System.out.printf("======================================================%n");
for (int i = 0; i < cnt; i++) {
System.out.println(students[i]);
}
}
// 2. 등록하기
void register() { // 등록 기능 구현
System.out.println("등록 기능 구현");
// 1. 데이터 입력 받기
System.out.print("학번 >");
String no = StudentEx.scanner.nextLine();
System.out.print("이름 >");
String name = StudentEx.scanner.nextLine();
System.out.print("국어 >");
int kor = Integer.parseInt(StudentEx.scanner.nextLine());
System.out.print("영어 >");
int eng = Integer.parseInt(StudentEx.scanner.nextLine());
System.out.print("수학 >");
int mat = Integer.parseInt(StudentEx.scanner.nextLine());
// 2. 입력 받은 데이터를 학생 타입의 인스턴스 생성
Student student = new Student(no, name, kor, eng, mat);
// 3. students 배열의 cnt 위치에 대입후 cnt 1 증가
students[cnt++] = student;
System.out.println("정상 등록 되었습니다.");
}
// 3. 수정하기
void modify() { // 수정 기능 구현
System.out.println("수정 기능 구현");
// 학번으로 학생을 탐색 후 학생 데이터 중 이름, 국어, 영어, 수학점수를 수정
System.out.print("수정할 학생의 학번 >");
String no = StudentEx.scanner.nextLine();
for (int i = 0; i < cnt; i++) {
if (students[i].no.equals(no)) {
System.out.print("이름 >");
String name = StudentEx.scanner.nextLine();
System.out.print("국어 >");
int kor = Integer.parseInt(StudentEx.scanner.nextLine());
System.out.print("영어 >");
int eng = Integer.parseInt(StudentEx.scanner.nextLine());
System.out.print("수학 >");
int mat = Integer.parseInt(StudentEx.scanner.nextLine());
students[i].name = name;
students[i].kor = kor;
students[i].eng = eng;
students[i].mat = mat;
System.out.println("수정 완료 되었습니다.");
break;
}
}
}
// 4. 삭제하기
}
}