KH9일차
2022. 6. 30. 18:12ㆍ코딩/Java
getter,setter를 이용한 프로그래밍
studentMgr1
package kr.or.iei.student.controller;
import java.util.Scanner;
public class StudentController {
// 학생정보를 관리하는 프로그램(10명)
// 학생정보 이름,나이,주소
// 동명이인없음,데이터는 정상적으로 입력된다.
private String[] name;
private int[] age;
private String[] addr;
private Scanner sc;
// 배열 관리번호(학생 정보 추가시 학생정보가 들어갈 배열위치를 저장할 변수)
private int index;
public StudentController() {
name = new String[10];
age = new int[10];
addr = new String[10];
sc = new Scanner(System.in);
index = 0;
}
// 최초 실행 메소드(메뉴를 제공)
public void main() {
while (true) {
System.out.println("\n=====학생관리프로그램V1====="); // C.R.U.D 라고한다
System.out.println("1. 학생 정보 등록"); // Create :데이터를 만들어서 저장하는 기능
System.out.println("2. 학생 정보 출력(전체학생정보)"); // Read : 저장되어 있는 데이터를 읽어오는 기능
System.out.println("3. 학생 정보 출력(1명:이름으로검색)"); // Read
System.out.println("4. 학생 정보 수정"); // Update: 저장되어 있는 데이터를 수정
System.out.println("5. 학생 정보 삭제"); // Delete: 저장되어 있는 데이터를 삭제
System.out.println("0. 프로그램 종료");
System.out.print("선택 >");
int sel = sc.nextInt();
switch (sel) {
case 1:
insertStudent();
break;
case 2:
printAllStudent();
break;
case 3:
printOneStudent();
break;
case 4:
updateStudent();
break;
case 5:
deleteStudent();
break;
case 0:
System.out.println("시스템을 종료합니다.");
return;
default:
System.out.println("잘못입력하셨습니다.");
break;
}// switch종료
} // while종료
}// main 종료
// 학생정보를 입력받아서 배열에 저장하는 메소드
public void insertStudent() {
System.out.println("\n=====학생 정보 등록=====\n");
System.out.print("학생 이름 입력 : ");
String studentName = sc.next();
System.out.print("학생 나이 입력 : ");
int studentAge = sc.nextInt();
System.out.print("학생 주소 입력 : ");
sc.nextLine();// 버퍼의 엔터 제거용
String studentAddr = sc.nextLine();
name[index] = studentName;
age[index] = studentAge;
addr[index] = studentAddr;
index++;
System.out.println("학생정보 등록 완료!");
}// insertStudent() 종료
// 배열에 저장되어 있는 모든 학생 정보를 출력하는 메소드
public void printAllStudent() {
System.out.println("\n=====전체 학생 정보 출력=====");
System.out.println("이름\t나이\t주소");
System.out.println("============================");
for (int i = 0; i < index; i++) {
System.out.println(name[i] + "\t" + age[i] + "\t" + addr[i]);
}
}// printAllStudent()종료
// 학생 이름을 입력받아 호회 후 해당 학생 정보를 출력하는 메소드
public void printOneStudent() {
System.out.println("\n-----학생 1명 정보 출력-----");
System.out.print("조회 할 학생 이름 입력 : ");
String searchName = sc.next();
int searchIndex = searchStudent(searchName);
if (searchIndex == -1) {
System.out.println("학생정보를 조회 할 수 없습니다.");
} else {
System.out.println("이름 : " + name[searchIndex]);
System.out.println("나이 : " + age[searchIndex]);
System.out.println("주소 : " + addr[searchIndex]);
}
}// printOneStudent()종료
// 학생이름을 입력받아 해당 학생의 정보를 수정하는 메소드
public void updateStudent() {
System.out.println("\n=====학생 정보 수정=====");
System.out.print("정보 수정할 학생 이름 입력 :");
String searchName = sc.next();
int searchIndex = searchStudent(searchName);
if (searchIndex == -1) {
System.out.println("학생 정보를 조회 할 수 없습니다.");
} else {
System.out.print("수정할 이름 입력 : ");
name[searchIndex] = sc.next();
System.out.print("수정할 나이 입력 : ");
age[searchIndex] = sc.nextInt();
System.out.print("수정할 주소 입력 : ");
sc.nextLine();
addr[searchIndex] = sc.nextLine();
System.out.println("정보 수정 완료!");
}
}// updateStudent()종료
public void deleteStudent() {
System.out.println("\n=====학생정보삭제=====");
System.out.print("삭제할 학생 이름 입력 :");
String searchName = sc.next();
int searchIndex = searchStudent(searchName);
if (searchIndex == -1) {
System.out.println("학생 정보를 조회 할 수 없습니다.");
} else {
// 회원5
// 배열0~4 index:5
// 3번회원 삭제 2번인덱스 데이터 삭제
// 2 : 3번데이터 입력
for (int i = searchIndex; i < index - 1; i++) {
name[i] = name[i + 1];
age[i] = age[i + 1];
addr[i] = addr[i + 1];
}
index--;
System.out.println("삭제완료!");
}
}
// 매개변수로 받은 이름이 name 배열 몇번에 존재하는지 되돌려주는 메소드 (조회 실패시 -1 리턴)
public int searchStudent(String searchName) {
for (int i = 0; i < index; i++) {
if (searchName.equals(name[i])) {
return i;
}
}
return -1;
}// searchStudent 종료
}// 클래스 종료
studentMgr2
controller
package kr.or.iei.student.controller;
import java.util.Scanner;
import kr.or.iei.student.vo.Student;
public class StudentController {
private Student[] students;
private Scanner sc;
private int index;
public StudentController() {
students = new Student[10];
sc = new Scanner(System.in);
index = 0;
}
public void main() {
while(true) {
System.out.println("\n=====학생 관리 프로그램V2=====");
System.out.println("1. 학생 정보 등록");
System.out.println("2. 학생 정보 출력(전체)");
System.out.println("3. 학생 정보 출력(1명)");
System.out.println("4. 학생 정보 수정");
System.out.println("5. 학생 정보 삭제");
System.out.println("0. 프로그램 종료");
System.out.print(" 선택 > ");
int sel = sc.nextInt();
switch(sel) {
case 1:
insertStudent();
break;
case 2:
printAllStudent();
break;
case 3:
printOneStudent();
break;
case 4:
updateStudent();
break;
case 5:
deleteStudent();
break;
case 0:
System.out.println("시스템을 종료합니다.");
return;
default:
System.out.println("잘못 입력 하셨습니다.");
break;
}
}
}//main 종료
public void insertStudent() {
System.out.println("\n=====학생 정보 등록=====\n");
System.out.print("등록 할 학생 이름 입력 : ");
String name = sc.next();
System.out.print("등록 할 학생 나이 입력 : ");
int age = sc.nextInt();
System.out.print("등록 할 학생 주소 입력 : ");
sc.nextLine();
String addr = sc.nextLine();
//1)기본생성자 이용
// Student s = new Student();
// s.setName(name);
// s.setAge(age);
// s.setAddr(addr);
//2) 매개변수 있는 생성자 이용
Student s = new Student(name,age,addr);
students[index++] = s;
System.out.println("학생 정보 등록 완료!");
}//insertStudent()종료
public void printAllStudent() {
System.out.println("\n=====전체 학생 정보 출력=====\n");
System.out.println("이름\t나이\t주소");
System.out.println("============================");
//students -> 배열 타입
//students[인덱스번호] -> 우리가 저장해둔 Student 타입
//students[인덱스번호].getter -> getter호출 타입
for(int i=0;i<index;i++) {
// System.out.println(students[0].getName());
// System.out.println(students[0].getAge());
System.out.println(students[i].getName()+"\t"+students[i].getAge()+"\t"+students[i].getAddr());
}
}//printAllStudent()종료
public void printOneStudent() {
System.out.println("\n=====학생 정보 출력=====\n");
System.out.print("조회할 학생 이름 입력 :");
String name = sc.next();
int searchIndex = searchStudent(name);
if (searchIndex == -1) {
System.out.println("학생 정보를 조회 할 수 없습니다.");
}else {
System.out.println("이름 : "+students[searchIndex].getName());
System.out.println("나이 : "+students[searchIndex].getAge());
System.out.println("주소 : "+students[searchIndex].getAddr());
}
}//printOneStudent()종료
public void updateStudent() {
System.out.println("\n=====회원 정보 수정=====");
System.out.print("수정할 회원 이름 입력 : ");
String name = sc.next();
int searchIndex = searchStudent(name);
if(searchIndex==-1) {
System.out.println("회원 정보를 조회할 수 없습니다");
}else {
System.out.print("수정 할 이름 입력 : ");
sc.nextLine();
String updateName = sc.nextLine();
System.out.print("수정 할 나이 입력 : ");
int updateAge = sc.nextInt();
System.out.print("수정 할 주소 입력 : ");
sc.nextLine();
String updateaddr = sc.nextLine();
Student s = students[searchIndex];
s.setName(updateName);
s.setAge(updateAge);
s.setAddr(updateaddr);
}
}//updateStudent()종료
public void deleteStudent() {
System.out.println("\n=====회원 정보 삭제=====\n");
System.out.println("삭제 할 회원 이름 입력 : ");
String name = sc.next();
int searchIndex = searchStudent(name);
if(searchIndex == -1) {
System.out.println("회원정보를 조회할 수 없습니다.");
}else {
for(int i = searchIndex;i<index-1;i++) {
students[i] = students[i+1];
}
index--;
System.out.println("정보 삭제 완료!");
}
}
public int searchStudent(String searchName) {
for (int i = 0; i<index; i++) {
Student s = students[i];
if (searchName.equals(students[i].getName())) {
return i;
}
}
return -1;
}
}//클래스 종료
VO(기능관련)
package kr.or.iei.student.vo;
public class Student {
private String name;
private int age;
private String addr;
// 데이터가 되는 클래스 (VO)
// 기본생성자,모든변수값을 저장할수있는 매개변수,
// getter,setter
// 기본생성자
public Student() {
}
// 매개 변수가 있는 생성자
public Student(String name, int age, String addr) {
this.name = name;
this.age = age;
this.addr = addr;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getAddr() {
return addr;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setAddr(String addr) {
this.addr = addr;
}
}
pointMgr1
controller
package kr.or.iei.point.controller;
import java.util.Scanner;
import java.util.logging.Level;
import kr.or.iei.point.vo.Silver;
public class PointController {
private Silver[] silver;
private Scanner sc;
private int index;
public PointController() {
silver = new Silver[10];
sc = new Scanner(System.in);
index = 0;
}
public void main() {
while (true) {
System.out.println("\n=====포인트 관리 프로그램=====\n");
System.out.println("1. 회원 정보 등록");
System.out.println("2. 전체 회원 조회");
System.out.println("3. 회원 1명 조회");
System.out.println("4. 회원 정보 수정");
System.out.println("5. 회원 정보 삭제");
System.out.println("0. 프로그램 종료");
System.out.print(" 선택 > ");
int sel = sc.nextInt();
switch (sel) {
case 1:
insertMember();
break;
case 2:
printAllMember();
break;
case 3:
printOneMember();
break;
case 4:
updateMember();
break;
case 5:
deleteMember();
break;
case 0:
System.out.println("시스템을 종료합니다.");
return;
default:
System.out.println("잘못 입력 하셨습니다.");
break;
}
}
}// main종료
public void insertMember() {
System.out.println("\n=====회원 정보 등록=====\n");
System.out.print("회원 등급 입력[silver] : ");
String level = sc.next();
System.out.print("회원 이름 입력 : ");
sc.nextLine();
String name = sc.next();
System.out.print("회원 포인트 입력 : ");
int point = sc.nextInt();
Silver s = new Silver();
s.setLevel(level);
s.setName(name);
s.setPoint(point);
silver[index++] = s;
System.out.println("회원 정보 등록 완료!");
}// insertMember()종료
public void printAllMember() {
System.out.println("\n=====전체 회원 정보 출력=====\n");
System.out.println("등급\t이름\t포인트\t보너스");
System.out.println("=============================");
for (int i = 0; i < index; i++) {
System.out.println(silver[i].getLevel() + "\t" + silver[i].getName() + "\t" + silver[i].getPoint()+"\t"+silver[i].getBonus());
}
}// printAllMember()종료
public void printOneMember() {
System.out.println("\n=====회원 정보 출력=====\n");
System.out.print("조회할 회원 이름 입력 :");
String name = sc.next();
int searchIndex = searchMember(name);
if (searchIndex == -1) {
System.out.println("회원 정보를 조회 할 수 없습니다.");
} else {
System.out.println("등급 : " + silver[searchIndex].getLevel());
System.out.println("이름 : " + silver[searchIndex].getName());
System.out.println("포인트 : " + silver[searchIndex].getPoint());
System.out.println("보너스 : " + silver[searchIndex].getBonus());
}
}// printOneMember()종료
public void updateMember() {
System.out.println("\n=====회원 정보 수정=====\n");
System.out.print("수정할 회원 이름 입력 : ");
String name = sc.next();
int searchIndex = searchMember(name);
if (searchIndex == -1) {
System.out.println("회원 정보를 조회할 수 없습니다.");
} else {
System.out.print("수정할 회원 등급 입력[silver] : ");
sc.nextLine();
String updateLevel = sc.nextLine();
System.out.print("수정할 이름 입력 : ");
//sc.nextLine();
String updateName = sc.nextLine();
System.out.print("수정할 회원 포인트 입력 : ");
int updatePoint = sc.nextInt();
Silver s = silver[searchIndex];
s.setLevel(updateLevel);
s.setName(updateName);
s.setPoint(updatePoint);
}
}// updateMember()종료
public void deleteMember() {
System.out.println("\n=====회원 정보 삭제=====\n");
System.out.print("삭제 할 회원 이름 입력 : ");
String name = sc.next();
int searchIndex = searchMember(name);
if(searchIndex == -1) {
System.out.println("회원정보를 조회할 수 없습니다.");
}else {
for(int i = searchIndex;i<index-1;i++) {
silver[i] = silver[i+1];
}
index--;
System.out.println("정보 삭제 완료!");
}
}// deleteMember()종료
public int searchMember(String searchName) {
for (int i = 0; i < index; i++) {
Silver s = silver[i];
if (searchName.equals(silver[i].getName())) {
return i;
}
}
return -1;
}// 멤버 찾는 메소드
}
VO
package kr.or.iei.point.vo;
public class Silver {
private String name;
private int point;
private String level;
private double bonus;
public Silver() {
}
public Silver(String name, int point, String level,double bouns) {
this.name = name;
this.point = point;
this.level = level;
}
public String getName() {
return name;
}
public int getPoint() {
return point;
}
public String getLevel() {
return level;
}
public double getBonus() {
return point*0.02;
}
public void setName(String name) {
this.name = name;
}
public void setPoint(int point) {
this.point = point;
}
public void setLevel(String level) {
this.level = level;
}
}