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);
	}
}

 

 

출력 결과