import java.util.Scanner;
 
enum Week {
    MON, TUE, WED, THU, FRI, SAT, SUN
}
 
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Week[] values = Week.values();
        boolean flag;
 
        while (true) {
            System.out.print("요일을 입력하세요: ");
            String input = sc.nextLine();
            flag = false;
 
            // case 1. 'XXX'를 입력하면, 종료시킨다.
            if (input.equals("XXX")) {
                System.out.println("프로그램을 종료합니다.");
                break;
            }
 
            // case 2. 'XXX'가 아니면, 값들을 Week Enum과 비교해본다.
            for (Week week : values) {
                if (week.name().equals(input)) {
                    DisplayInfo(week);
                    flag = true;
                }
            }
 
            // default, 위 과정이 모두 아닌경우엔 예외 입력이다.
            if (flag) {
                System.out.println("");
            } else {
                System.out.println("잘못 입력하셨습니다.\n");
            }
        }
    }
 
    public static void DisplayInfo(Week week) {
        switch (week) {
        case MON:
            System.out.println("주간회의가 있습니다.");
            break;
        case TUE:
            System.out.println("프로젝트 기획 회의가 있습니다.");
            break;
        case WED:
            System.out.println("진행사항 보고하는 날입니다.");
            break;
        case THU:
            System.out.println("사내 축구시합이 있는 날입니다.");
            break;
        case FRI:
            System.out.println("프로젝트 마감일입니다.");
            break;
        case SAT:
            System.out.println("가족과 함께 즐거운 시간을 보내세요.");
            break;
        case SUN:
            System.out.println("오늘은 휴일입니다.");
            break;
        }
    }
}
 
cs

 

 

 

import java.lang.Math;
 
public class JavaTest {
    public static void main(String[] args) {
        Shape shape[] = new Shape[3];
        shape[0= new Square(4);
        shape[1= new Circle(2);
        shape[2= new Square(5);
        for (Shape s : shape) {
            printShape(s);
        }
    }
 
    public static void printShape(Shape shape) {
        System.out.print("Area: " + shape.getArea());
        System.out.println(" , Perimeter: " + shape.getPerimeter());
    }
}
 
abstract class Shape {
    protected abstract double getArea();
 
    protected abstract double getPerimeter();
}
 
class Square extends Shape {
    private double side;
 
    public Square(int side) {
        this.side = side;
    }
 
    @Override
    public double getArea() {
        return side * side;
    }
 
    @Override
    public double getPerimeter() { // 둘레
        return 4 * side;
    }
}
 
class Circle extends Shape {
    private double rad;
 
    public Circle(int rad) {
        this.rad = rad;
    }
 
    @Override
    public double getArea() {
        return Math.floor(Math.PI * rad * rad * 100/ 100;
    }
 
    @Override
    public double getPerimeter() {
        return Math.floor(Math.PI * 2 * rad * 100/ 100;
    }
}
 
cs



interface PersonalNumberStorage {
    void addPersonalInfo(String name, int age);
 
    String searchName(int age);
}
 
class Test {
    public static void main(String[] args) {
        PersonalNumberStorage storage = new PersonalNumberStorageImpl(100);
        storage.addPersonalInfo("Jack"22);
        storage.addPersonalInfo("King"33);
        System.out.println(storage.searchName(22));
        System.out.println(storage.searchName(33));
        System.out.println(storage.searchName(44));
    }
}
 
class PersonalNumberStorageImpl implements PersonalNumberStorage {
    PersonalNumInfo[] perArr;
    int numOfPerInfo;
 
    PersonalNumberStorageImpl(int sz) {
        perArr = new PersonalNumInfo[sz];
        numOfPerInfo = 0;
    }
 
    public void addPersonalInfo(String name, int perNum) {
        perArr[numOfPerInfo] = new PersonalNumInfo(name, perNum);
        numOfPerInfo++;
    }
 
    public String searchName(int perNum) {
        for (int i = 0; i < numOfPerInfo; i++) {
            if (perNum == perArr[i].getNumber())    // 숫자끼리 비교!
                return perArr[i].getName();
        }
        return "no one";
    }
}
 
class PersonalNumInfo {
    String name;
    int number;
 
    PersonalNumInfo(String name, int number) {
        this.name = name;
        this.number = number;
    }
 
    String getName() {
        return name;
    }
 
    int getNumber() {
        return number;
    }
}
cs

 

 

 

package _1006_D;
/*
 * 전화번호 관리 프로그램 구현 프로젝트
 * Version 0.5
 */
 
import java.util.Scanner;
 
interface INIT_MENU
{
    int INPUT=1, SEARCH=2, DELETE=3, EXIT=4;
}
 
interface INPUT_SELECT
{
    int NORMAL=1, UNIV=2, COMPANY=3;
}
 
class PhoneInfo
{
    String name;
    String phoneNumber;
    
    public PhoneInfo(String name, String num)
    {
        this.name=name;
        phoneNumber=num;
    }
    
    public void showPhoneInfo()
    {
        System.out.println("name: "+name);
        System.out.println("phone: "+phoneNumber);
    }
}
 
class PhoneUnivInfo extends PhoneInfo
{
    String major;
    int year;    
    
    public PhoneUnivInfo(String name, String num, String major, int year)
    {
        super(name, num);
        this.major=major;
        this.year=year;
    }
    
    public void showPhoneInfo()
    {
        super.showPhoneInfo();
        System.out.println("major: "+major);
        System.out.println("year: "+year);
    }
}
 
class PhoneCompanyInfo extends PhoneInfo
{
    String company;
    
    public PhoneCompanyInfo(String name, String num, String company)
    {
        super(name, num);
        this.company=company;
    }
    
    public void showPhoneInfo()
    {
        super.showPhoneInfo();
        System.out.println("company: "+company);
    }
}
 
class PhoneBookManager
{
    final int MAX_CNT=100;
    PhoneInfo[] infoStorage=new PhoneInfo[MAX_CNT];
    int curCnt=0;
    
    static PhoneBookManager inst=null;
    public static PhoneBookManager createManagerInst()
    {
        if(inst==null)
            inst=new PhoneBookManager();
        
        return inst;
    }
    
    private PhoneBookManager(){}
    
    private PhoneInfo readFriendInfo()
    {
        System.out.print("이름: ");
        String name=MenuViewer.keyboard.nextLine();
        System.out.print("전화번호: ");
        String phone=MenuViewer.keyboard.nextLine();
        return new PhoneInfo(name, phone);
    }
    
    private PhoneInfo readUnivFriendInfo()
    {
        System.out.print("이름: ");
        String name=MenuViewer.keyboard.nextLine();
        System.out.print("전화번호: ");
        String phone=MenuViewer.keyboard.nextLine();
        System.out.print("전공: ");
        String major=MenuViewer.keyboard.nextLine();
        System.out.print("학년: ");
        int year=MenuViewer.keyboard.nextInt();
        MenuViewer.keyboard.nextLine();
        return new PhoneUnivInfo(name, phone, major, year);
    }
    
    private PhoneInfo readCompanyFriendInfo()
    {
        System.out.print("이름: ");
        String name=MenuViewer.keyboard.nextLine();
        System.out.print("전화번호: ");
        String phone=MenuViewer.keyboard.nextLine();
        System.out.print("회사: ");
        String company=MenuViewer.keyboard.nextLine();
        return new PhoneCompanyInfo(name, phone, company);    
    }    
    
    public void inputData()
    {
        System.out.println("데이터 입력을 시작합니다..");
        System.out.println("1. 일반, 2. 대학, 3. 회사");
        System.out.print("선택>> ");
        int choice=MenuViewer.keyboard.nextInt();
        MenuViewer.keyboard.nextLine();
        PhoneInfo info=null;
        
        switch(choice)
        {
        case INPUT_SELECT.NORMAL:
            info=readFriendInfo();
            break;
        case INPUT_SELECT.UNIV:
            info=readUnivFriendInfo();
            break;
        case INPUT_SELECT.COMPANY:
            info=readCompanyFriendInfo();
            break;
        }
        
        infoStorage[curCnt++]=info;
        System.out.println("데이터 입력이 완료되었습니다. \n");        
    }
    
    public void searchData()
    {
        System.out.println("데이터 검색을 시작합니다..");
        
        System.out.print("이름: ");
        String name=MenuViewer.keyboard.nextLine();
        
        int dataIdx=search(name);
        if(dataIdx<0)
        {
            System.out.println("해당하는 데이터가 존재하지 않습니다. \n");
        }
        else
        {
            infoStorage[dataIdx].showPhoneInfo();
            System.out.println("데이터 검색이 완료되었습니다. \n");
        }
    }
    
    public void deleteData()
    {
        System.out.println("데이터 삭제를 시작합니다..");
        
        System.out.print("이름: ");
        String name=MenuViewer.keyboard.nextLine();
        
        int dataIdx=search(name);
        if(dataIdx<0)
        {
            System.out.println("해당하는 데이터가 존재하지 않습니다. \n");
        }
        else
        {
            for(int idx=dataIdx; idx<(curCnt-1); idx++)
                infoStorage[idx]=infoStorage[idx+1];
            
            curCnt--;
            System.out.println("데이터 삭제가 완료되었습니다. \n");
        }
    }
    
    private int search(String name)
    {
        for(int idx=0; idx<curCnt; idx++)
        {
            PhoneInfo curInfo=infoStorage[idx];
            if(name.compareTo(curInfo.name)==0)
                return idx;
        }
        return -1;
    }
}
 
 
 
class MenuViewer
{
    public static Scanner keyboard=new Scanner(System.in);
    
    public static void showMenu()
    {
        System.out.println("선택하세요...");
        System.out.println("1. 데이터 입력");
        System.out.println("2. 데이터 검색");
        System.out.println("3. 데이터 삭제");
        System.out.println("4. 프로그램 종료");
        System.out.print("선택: ");
    }
}
 
class Test
{    
    public static void main(String[] args)
    {
        //Untitled From Jackdclee
        //https://pastebin.com/DXgRBJG4
        
        //PhoneBookManager은 createManagerInst()함수를 통한 인스턴스 생성만 가능하게 구현(싱글톤 패턴을 이용하기 위해)
        //PhoneBookManager manager=PhoneBookManager.createManagerInst();
        
        //PhoneBookManager를 담는 변수를 3개 만들고, 변수(레퍼런스)는 3개이지만 PhoneBookManager.createManagerInst();
        //싱글톤 패턴을 적용한 클래스이기에 실제로는 하나의 인스턴스에 대한 레퍼런스는 동일하다.
        PhoneBookManager manager1=PhoneBookManager.createManagerInst();
        PhoneBookManager manager2=PhoneBookManager.createManagerInst();
        PhoneBookManager manager3=PhoneBookManager.createManagerInst();
        
        //생성자가 Private로 되어있어 생성자를 통한 인스턴스 생성이 불가
        //PhoneBookManager managerInst2 = new PhoneBookManager();
        
        int choice;
        
        while(true)
        {
            MenuViewer.showMenu();
            choice=MenuViewer.keyboard.nextInt();
            MenuViewer.keyboard.nextLine();    
            
            switch(choice)
            {
            case INIT_MENU.INPUT:
                manager1.inputData();
                break;
            case INIT_MENU.SEARCH:
                manager2.searchData();
                break;
            case INIT_MENU.DELETE:
                manager3.deleteData();
                break;                
            case INIT_MENU.EXIT:
                System.out.println("프로그램을 종료합니다.");
                return;
            }
        }
    }
}
cs
bonnate