package PhoneBook;
import java.util.Scanner;
class PhoneInfo {
String name;
String phoneNumber;
String addr;
public PhoneInfo(String name, String phoneNumber, String addr) {
this.name = name;
this.phoneNumber = phoneNumber;
this.addr = addr;
}
// 전체 출력을 위한 재정의 할 메소드
public void showData() { // 친구 기본정보 + 추가정보 출력하려고 만든 메소드
System.out.println("이름: " + name);
System.out.println("전화: " + phoneNumber);
System.out.println("주소: " + addr);
}
}
class PhoneUnivInfo extends PhoneInfo {
String major;
String year;
public PhoneUnivInfo(String name, String phoneNumber, String addr, String major, String year) {
super(name, phoneNumber, addr);
this.major = major;
this.year = year;
}
@Override
public void showData() {
super.showData();
System.out.println("전공: " + major);
System.out.println("학년: " + year);
}
}
class PhoneCompanyInfo extends PhoneInfo {
String company;
public PhoneCompanyInfo(String name, String phoneNumber, String addr, String company) {
super(name, phoneNumber, addr);
this.company = company;
}
@Override
public void showData() {
// TODO Auto-generated method stub
super.showData();
System.out.println("회사: " + company);
}
}
class Menu {
Scanner scan = new Scanner(System.in);
PhoneInfo[] data = new PhoneInfo[100];
int cnt = 0;
void mainmenu() {
while (true) {
System.out.println("메뉴를 선택하세요.");
System.out.println("1. 데이터 입력");
System.out.println("2. 데이터 검색");
System.out.println("3. 데이터 삭제");
System.out.println("4. 데이터 출력");
System.out.println("5. 프로그램 종료");
System.out.print("선택> ");
int select = scan.nextInt();
switch (select) {
case 1:
System.out.println("데이터 입력을 시작합니다.");
submenu();
break;
case 2:
System.out.println("데이터 검색을 시작합니다.");
submenu2();
break;
case 3:
System.out.println("데이터 삭제를 시작합니다.");
submenu3();
break;
case 4:
System.out.println("데이터를 출력합니다.");
submenu4();
break;
case 5:
System.out.println("프로그램을 종료합니다.");
System.exit(0);
}
}
}
void submenu() { // 1.데이터입력
System.out.println("1. 일반 / 2.대학 / 3. 회사");
System.out.print("선택 >");
int select2 = scan.nextInt();
if (select2 == 1) { // 1.일반
System.out.print("이름: ");
String name = scan.next();
System.out.print("전화번호: ");
String phoneNumber = scan.next();
System.out.print("주소: ");
String addr = scan.next();
data[cnt++] = new PhoneInfo(name, phoneNumber, addr);
System.out.println("데이터 입력이 완료되었습니다.\n");
}
if (select2 == 2) { // 2.대학
System.out.print("이름: ");
String name = scan.next();
System.out.print("전화번호: ");
String phoneNumber = scan.next();
System.out.print("주소: ");
String addr = scan.next();
System.out.print("전공: ");
String major = scan.next();
System.out.print("학년: ");
String year = scan.next();
data[cnt++] = new PhoneUnivInfo(name, phoneNumber, addr, major, year);
System.out.println("데이터 입력이 완료되었습니다.\n");
}
if (select2 == 3) { // 3.회사
System.out.print("이름: ");
String name = scan.next();
System.out.print("전화번호: ");
String phoneNumber = scan.next();
System.out.print("주소: ");
String addr = scan.next();
System.out.print("회사: ");
String company = scan.next();
data[cnt++] = new PhoneCompanyInfo(name, phoneNumber, addr, company);
System.out.println("데이터 입력이 완료되었습니다.\n");
}
}
void submenu2() { // 2.데이터검색
System.out.print("검색할 이름 입력: ");
String name = scan.next();
for (int i = 0; i < cnt; i++) {
if (data[i].name.equals(name)) {
data[i].showData();
}
}
System.out.println("검색이 완료되었습니다.\n");
}
void submenu3() { // 3.데이터삭제
System.out.print("삭제할 이름 입력: ");
String name = scan.next();
for (int i = 0; i < cnt; i++) {
if (data[i].name.equals(name)) {
data[i] = null;
}
}
System.out.println("삭제가 완료되었습니다.\n");
}
void submenu4() { // 4.데이터출력
for (int i = 0; i < data.length; i++) {
if (data[i] != null) {
data[i].showData();
System.out.println();
}
}
}
}
public class PhoneBookEx {
public static void main(String[] args) {
// TODO Auto-generated method stub
Menu m = new Menu();
m.mainmenu();
}
}
'IT > Java' 카테고리의 다른 글
Java GUI (피자주문) (0) | 2021.06.24 |
---|---|
Java GUI (원 넓이 구하기) (0) | 2021.06.21 |
Java (상속_친구정보 등록관리_저장,출력) (0) | 2021.06.11 |
Java (메소드_콘서트예약프로그램) (0) | 2021.05.31 |
Java (메소드_스케줄관리) (0) | 2021.05.31 |