본문 바로가기

프로그램언어/C++

클래스 예제2

음식주문

 

- menu_list.h -

 

#include <iostream>

#include <string>

using namespace std;

 

class Menu {

public:

    int food_num = 0;

    string food_name = "";

    int price = 0;

    void menu_list();

    void print_order();

};

 

 

void Menu::menu_list()

{

    cout << "\n######### 메뉴 리스트 #########" << endl;

    cout << "# 번호" << "\t" << "이름" << "\t\t" << "가격 #" << endl;

    for (int i = 0; i < 6; i++)

        cout << "# " << this[i].food_num << "\t" << this[i].food_name << "\t" << this[i].price << " #" << endl;

    cout << "###############################\n" << endl;

}

 

void Menu::print_order()

{

    cout << "**** 대전 패밀리 레스토랑 ****" << endl;

    cout << "\t1.주문입력" << endl;

    cout << "\t5.주문결제" << endl;

    cout << "\t6.주문종료" << endl;

    cout << "******************************" << endl;

}

 

- 소스.cpp -

#include <iostream>
#include <string>
#include "menu_list.h"
using namespace std;

class Restaurant
{
    int table_num;
    string food_name[10];
    int food_cnt;
    int food_price[10];
    int food_cnt_price;
    int food_total_price;
    bool isChecked;
public:
    Restaurant();
    void inputOrder(int num);
    void calculateOrder();
    void ShowTablenum();
    void ShowTablenum_list();
    void Table_payment(int t_num);
};
Restaurant::Restaurant()
{
    isChecked = false;
    food_cnt_price = 0;
    food_total_price = 0;
}
void Restaurant::inputOrder(int num)
{
    cout << num << "손님 : " << "테이블번호 입력 : ";
    cin >> table_num;

    cout << "주문수 입력(10이하) : ";
    cin >> food_cnt;

    for (int i = 0; i < food_cnt; i++)
    {
        //system("cls");
        cout << "음식이름과 가격 입력 : ";
        cin >> food_name[i] >> food_price[i];
    }
    cout << endl;
}
void Restaurant::calculateOrder()
{
    for (int i = 0; i < food_cnt; i++)
        food_total_price += food_price[i];
}
void Restaurant::ShowTablenum()
{
    cout << "####### " << table_num << "번 테이블 #######" << endl;

    cout << "음식이름" << "\t" << "가격" << endl;
    for (int i = 0; i < food_cnt; i++)
    {
        cout << food_name[i] << "\t" << food_price[i] << endl;
    }
    cout << "총 합계 : " << food_total_price << endl;
}

void Restaurant::ShowTablenum_list()
{
    cout << "####### " << table_num << "번 테이블 #######" << endl;

    cout << "음식이름" << "\t" << "가격" << endl;
    for (int i = 0; i < food_cnt; i++)
    {
        cout << food_name[i] << "\t" << food_price[i] << endl;
    }   
    cout << "총 합계 : " << food_total_price << "\t" << "결제 : " << isChecked << endl;
}

void Restaurant::Table_payment(int t_num)
{
    char money;
    table_num = t_num;
    ShowTablenum_list();

    cout << "결제확인(Y/N) : ";
    cin >> money;
    if (money == 'Y' || money == 'y')
        isChecked = true;
    else
        return;

    ShowTablenum_list();
    system("PAUSE");
}


int main()
{
    Menu menulist[6] = { { 1,"그린샐러드",18000 },{ 2,"치킨샐러드",19000 },{ 3,"찹스테이크",32000 },
                                 { 4,"티본스테이크",30000 },{ 5,"치즈파스타",17000 },{ 6,"치즈피자",15000 } };

    Menu* menusu;  
    menusu = menulist;

    int i, selectMenu, num, tablenum, list_su;

    Restaurant current[100];   //하루 최대주문수 100개

    i = 0;
    while (1)
    {
        system("cls");
        menusu->menu_list(); //메뉴보기
        menusu->print_order();
        cout << "번호 입력 : ";
        cin >> selectMenu;

        if (selectMenu == 1)
        {
            i++;
            while (1)
            {

                switch (selectMenu) {   
                case 1:
                    system("cls");
                    menusu->menu_list();
                    current[i].inputOrder(i);
                    current[i].calculateOrder();
                    break;
                case 2:
                    current[i].ShowTablenum();
                    break;
                }
               if (selectMenu == 3)
               {
                   cout << "주문이 완료";
                   break;
               }

               cout << "주문확인(2번)/주문환료(3번) 숫자입력 : ";
               cin >> selectMenu;
            }
        }
        else if (selectMenu == 5)
        {
            cout << "주문자 번호 : ";
            cin >> list_su;
            cout << "테이블 번호 : ";
            cin >> tablenum;
            current[list_su].Table_payment(tablenum);
        }
        else if (selectMenu == 6)
            break;
        else
            cout << "잘못입력하였습니다.!!!!!" << endl;
    }

    system("cls");
    cout << "일일 주문리스트 보기\n";
    for (int j = 1; j <= i; j++)
    {
        current[j].ShowTablenum_list();
        cout << "\n\n";
    }
    cout << "\n\n\n";
}

위에서 3번을 입력하면

 

'프로그램언어 > C++' 카테고리의 다른 글

파일 입출력  (0) 2020.08.24
템플릿  (0) 2020.08.20
연산자2  (0) 2020.08.09
연산자1  (0) 2020.08.09
클래스5 문제  (0) 2020.08.08