오늘 오전에 언어 스터디를 했는데 조원분이 너무 멋진 객체지향 예제(보러가보세요!)를 보여주셔서 자극을 받아 바로 만들어 봅니다. 저는 식당 메뉴 별로 가격을 정하고 판매량 입력 후 매출 정산하는 프로그램을 만들어 보려고 합니다.

 

객체지향 예제

필드 선언

public class restaurantRevenue {
    //필드 선언
    private int price;
    private int revenue;
    private String menu;

    private int sold;

    //기본 생성자

    restaurantRevenue () {}



    //매개변수를 가진 생성자
    public restaurantRevenue(String menu, int price, int sold, int revenue) {
        this.menu = menu;
        this.price = price;
        this.sold = sold;
        this.revenue = revenue;
    }

    // getter setter 단축키 cmmd + N
    public int getPrice() {
        return price;
    }

    public void setPrice(int price) {
        this.price = price;
    }

    public int getRevenue() {
        return revenue;
    }

    public void setRevenue(int revenue) {
        this.revenue = revenue;
    }

    public int getSold() {
        return sold;
    }

    public void setSold(int sold) {
        this.sold = sold;
    }

    public String getMenu() {
        return menu;
    }

    public void setMenu(String menu) {
        this.menu = menu;
    }
}

 

 

메뉴 입력 프로그램 만들기

import java.util.Scanner;

public class revenueExample {
    private Scanner scanner = new Scanner(System.in);

    private restaurantRevenue newMenu = null; //새 메뉴가 저장될 객체

    public revenueExample (){}; //기본 생성자

    public void display() { //메뉴화면 메소드

        int option = 0;

        do {
            System.out.println("=====*메뉴입력하기*=====");
            System.out.println("1. 메뉴입력");
            System.out.println("2. 판매량입력");
            System.out.println("3. 매출보기");
            System.out.println("0. 종료하기");
            System.out.print("선택>>");



            option = scanner.nextInt();

            switch (option) {
                case 1:
                    System.out.println(entermenu());
                    break;
                case 2:
                    System.out.println(sold());
                    break;
                case 3:
                    System.out.println(revenue());
                    break;
                case 0:
                    System.out.println("프로그램 종료!");
                    break;
                default:
                    System.out.println("다시 입력해주세요 -_-^");
            }


        }


        while (option != 0);
    }
    public String entermenu(){ //메뉴입력하기
        System.out.println("=====메뉴입력=====");
        System.out.print("메뉴명> ");
        String menu = scanner.next();
        System.out.print("가격> ");
        int price = scanner.nextInt();

        newMenu = new restaurantRevenue(menu, price,0,0);

        return "메뉴명:"+menu+" 가격: "+price+"원";
    }

    public String sold(){
        System.out.println("=====판매량입력=====");
        System.out.print("메뉴명> ");
        String menu = scanner.next();
        System.out.print("판매량> ");
        int sold = scanner.nextInt();

        if(menu.equals((newMenu.getMenu()))){
            newMenu = new restaurantRevenue(menu, newMenu.getPrice(), sold, sold* newMenu.getPrice());
            return "메뉴명: "+ menu + " 판매량: "+sold;
        }else {
            return "메뉴정보가 없습니다.";
        }


    }

    public String revenue(){
        System.out.println("=====매출보기=====");
        System.out.print("메뉴명> ");
        String menu = scanner.next();

        if(menu.equals((newMenu.getMenu()))) {
            return "메뉴명 " + menu + " 매출: " + newMenu.getRevenue();
        } else{
            return "메뉴정보가 없습니다.";
        }

    }

    public static void main(String[] args) {
        revenueExample revenue = new revenueExample();
        revenue.display();
    }

}


 

 

결과

=====*메뉴입력하기*=====
1. 메뉴입력
2. 판매량입력
3. 매출보기
0. 종료하기
선택>>1
=====메뉴입력=====
메뉴명> pasta
가격> 25000
메뉴명:pasta 가격: 25000원
=====*메뉴입력하기*=====
1. 메뉴입력
2. 판매량입력
3. 매출보기
0. 종료하기
선택>>2
=====판매량입력=====
메뉴명> pasta
판매량> 12
메뉴명: pasta 판매량: 12
=====*메뉴입력하기*=====
1. 메뉴입력
2. 판매량입력
3. 매출보기
0. 종료하기
선택>>3
=====매출보기=====
메뉴명> pasta
메뉴명 pasta 매출: 300000
=====*메뉴입력하기*=====
1. 메뉴입력
2. 판매량입력
3. 매출보기
0. 종료하기
선택>>2
=====판매량입력=====
메뉴명> rice
판매량> 40
메뉴정보가 없습니다.
=====*메뉴입력하기*=====
1. 메뉴입력
2. 판매량입력
3. 매출보기
0. 종료하기
선택>>3
=====매출보기=====
메뉴명> risotto
메뉴정보가 없습니다.
=====*메뉴입력하기*=====
1. 메뉴입력
2. 판매량입력
3. 매출보기
0. 종료하기
선택>>0
프로그램 종료!

Process finished with exit code 0

 

매우 간단하지만 굿 실습이었습니다.

+ Recent posts