본문 바로가기
IT/Java

Java (상속_친구정보 등록관리_검색,삭제)

by hjshims 2021. 6. 11.

 

 

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