Java/JAVA STUDY
JAVA 친구 주소록 관리 프로그램
hansulin922
2021. 1. 18. 21:22
문제) 고등학교/대학교 친구 주소록 관리 프로그램.
키보드로부터 입력 받아 저장하고, 사용자의 요청시 출력하는 기능을 구현하세요.
- 고등학교 친구 : 이름 / 폰번호 / 주소 / 직업.
- 대학교 친구 : 이름 / 폰번호 / 주소 / 전공.
package exam13;
public class AddressBook {
/*
* 문제) 고등학교/대학교 친구 주소록 관리 프로그램.
* - 고등학교 친구 : 이름 / 폰번호 / 주소 / 직업.
* - 대학교 친구 : 이름 / 폰번호 / 주소 / 전공.
*
* 키보드로부터 입력 받아 저장하고,
* 사용자의 요청시 출력하는 기능을 구현하세요.
*/
public static void main(String[] args) {
Menu menu = new Menu();
menu.displayMenu();
}
}
package exam13;
import java.util.Scanner;
class Menu {
FriendInfoController controller;
Menu(){
controller = new FriendInfoController();
}
public void displayMenu() {
while(true) {
System.out.println("***** 메뉴 선택 *****");
System.out.println("0. 프로그램 종료.");
System.out.println("1. 고교 친구 정보 저장.");
System.out.println("2. 대학교 친구 정보 저장.");
System.out.println("3. 고교 친구 정보 출력.");
System.out.println("4. 대학교 친구 정보 출력.");
System.out.print("원하는 항목 번호를 선택하세요>> ");
Scanner input = new Scanner(System.in);
int choice = input.nextInt();
switch(choice) {
case 0:
System.out.println("프로그램을 종료합니다.");
return;
case 1: case 2: // 고/대학교 친구 정보 저장.
controller.addFriend(choice);
break;
case 3: // 고교 친구 정보 출력
controller.displayHighFriendInfo();
break;
case 4: // 대학교 친구 정보 출력
controller.displayUnivFriendInfo();
break;
default:
System.out.println("잘못된 입력을 하셨습니다.");
System.out.println("번호를 확인하세요.");
break;
}
}
}
}
package exam13;
import java.util.Scanner;
// menu -> 데이터 입력 -> 저장
class FriendInfoController {
private HighFriend[] highFriend;
private UnivFriend[] univFriend;
private int indexOfHigh;
private int indexOfUniv;
final private int MAX_HIGH;
final private int MAX_UNIV;
FriendInfoController(){
MAX_HIGH = 100;
indexOfHigh = 0;
highFriend = new HighFriend[MAX_HIGH];
MAX_UNIV = 100;
indexOfUniv = 0;
univFriend = new UnivFriend[MAX_UNIV];
}
public void addFriend(int choice) {
Scanner input = new Scanner(System.in);
String work, major;
System.out.print("이름을 입력하세요 : ");
String name = input.nextLine();
System.out.print("전화번호를 입력하세요 : ");
String phone = input.nextLine();
System.out.print("주소를 입력하세요 : ");
String address = input.nextLine();
if(choice == 1) {
System.out.print("직업을 입력하세요 : ");
work = input.nextLine();
highFriend[indexOfHigh++] = new HighFriend(name, phone, address, work);
//indexOfHigh++;
}else if(choice == 2){
System.out.print("전공을 입력하세요 : ");
major = input.nextLine();
univFriend[indexOfUniv++] = new UnivFriend(name, phone, address, major);
//indexOfUniv++;
}
}
public void displayHighFriendInfo() { // 3번 기능
for(int i = 0; i < indexOfHigh; i++) {
highFriend[i].displayHighFriendInfo();
System.out.println();
}
}
public void displayUnivFriendInfo() { // 4번 기능
for(int i = 0; i < indexOfUniv; i++) {
univFriend[i].displayUnivFriendInfo();
System.out.println();
}
}
}
package exam13;
class Friend {
// field
private String name; // 이름
private String phoneNum; // 폰번호
private String address; // 주소
// Constructor
Friend(String name, String phoneNum, String address){
this.name = name;
this.phoneNum = phoneNum;
this.address = address;
}
// Method
public void displayFriendInfo() {
System.out.println("이름 : "+name);
System.out.println("폰번호 : "+phoneNum);
System.out.println("주소 : "+address);
}
}
package exam13;
class HighFriend extends Friend{ // 고등학교 친구
private String work; // 직업
HighFriend(String name, String phoneNum, String address, String work){
super(name, phoneNum, address);
this.work = work;
}
public void displayHighFriendInfo() {
displayFriendInfo();
System.out.println("직업 : "+work);
}
}
package exam13;
class UnivFriend extends Friend{
private String major; // 전공
UnivFriend(String name, String phoneNum, String address, String major){
super(name, phoneNum, address);
this.major = major;
}
public void displayUnivFriendInfo() {
displayFriendInfo();
System.out.println("전공 : "+major);
}
}
출력 결과