餐饮业管理系统(基于C++的)


题目:餐饮业管理系统(基于C++的)

 

问题描述:

建立一个餐饮业管理系统,可以处理以下对象:

(1)餐馆基本信息

(2)顾客信息

(3)菜品信息

(4)服务员信息

 

设计一个餐饮业管理系统,使之能提供以下基本功能:

(1)查询餐馆的总信息。

(2)查询服务员的信息。

(3)查询顾客的信息。

(4)查询菜品信息

(5)增加顾客(顾客桌号、排队号、所点菜(若干))

(6)顾客结账。

(7)增加新的菜品

(8)增加服务员

 

 

2.设计思想

该餐厅管理系统共有四个类菜单类(Menus),顾客类(Customer),餐厅类(Reataurant),员工类(Waiter).每个类中都有相应的录入信息set()函数,查询信息search()函数。之后通过全局函数Set(),Search()来分情况调用不同类中的查询search()录入set()函数另外设有点餐order_dish()函数以及评价函数evaluate().


3.源代码

#include <iostream>
#include <fstream>
#include <iomanip>
#include <stdlib.h>
using namespace std;
class Restaurant
{
private:
    char location[50];
    char phone_number[20];
    char evaluates[200];

public:
    void Search();
    void Set();
    void evaluate();
};
class Customer
{
private:
    int desk;
    char dishes[20];
    int queues;
    char write_evaluate[200];
    static int total;
public:
    Customer();
    void order();
    void write();

};
class Waiter
{
private:
    int job_number;
    char name[25];
    char sex[5];
    char phone_number[20];
public:
    void Search();
    void Set();

};
class Menus
{
private:
    static int sums;
    int number;
    int price;
    char dish_name[30];
public:
    friend void Customer::order();
    void Search();
    void Set();
    void show();
};
int Customer::total=0;
int Menus::sums=0;

//****全局函数***//
void Menu()
{
    cout<<endl;cout<<endl;cout<<endl;cout<<endl;cout<<endl;cout<<endl;
    cout<<setw(40)<<"餐饮业管理系统"<<endl;
    cout<<endl;
    cout<<setw(50)<<"1**************信息查询*************"<<endl;
        cout<<endl;
    cout<<setw(50)<<"2**************信息录入*************"<<endl;
        cout<<endl;
    cout<<setw(50)<<"3**************顾客点餐*************"<<endl;
    cout<<endl;
    cout<<setw(50)<<"4**************顾客评价*************"<<endl;
    cout<<endl;
    cout<<setw(50)<<"0*************退出程序*************"<<endl;
    cout<<endl;
}

void Search()
{
   system("cls");
    cout<<endl;cout<<endl;cout<<endl;cout<<endl;cout<<endl;

   cout<<"         1   查询餐厅信息"<<endl;
       cout<<endl;

   cout<<"         2   查询服务员信息"<<endl;
       cout<<endl;

   cout<<"         3   查询菜单"<<endl;
       cout<<endl;
       cout<<"         4    查看评价"<<endl;
       cout<<endl;

   cout<<"         5   返回上一级菜单"<<endl;
       cout<<endl;

   cout<<" "<<"请选择:"<<endl;
   int choice;
   Restaurant restaurant;
   Waiter waiter;
   Menus dish;
   cin>>choice;
   switch(choice)
   {
       case 1: restaurant.Search();break;
       case 2: waiter.Search();break;
       case 3: dish.Search();break;
       case 4: restaurant.evaluate();break;
       case 5: Menu();break;
   }
}
void Set()
{
    system("cls");
    cout<<endl<<endl<<endl<<endl;
    cout<<"              1 添加菜品"<<endl<<endl;
    cout<<"              2 添加服务员"<<endl<<endl;
    cout<<"              3 添加餐厅信息"<<endl<<endl;
    cout<<"              4 返回上一级菜单"<<endl<<endl;
    cout<<"         请选择:"<<endl;
    Menus dish;
    int choice;
    Waiter waiter;
    Restaurant restaurant;
    cin>>choice;
   switch(choice)
   {
       case 1:dish.Set();break;
       case 2:waiter.Set();break;
       case 3:restaurant.Set();break;
       case 4: Menu();break;
   }
}
void orderdish()
{
    Customer customer;
    customer.order();
    //system("cls");
    Menu();
}
void customer_evaluate()
{
    char evaluate[200];
    cout<<"请评价:"<<endl;
    cin>>evaluate;
    ofstream out("evaluate.txt",ios::app);
    out<<evaluate<<endl;
    out.close();
    Menu();
}
int main()
{

    Menu();
    do
    {
        cout<<"请输入你的选择:"<<endl;
        int choice;
        cin>>choice;
        switch(choice)
        {
           case 1:Search();break;
           case 2:Set();break;
            case 3:orderdish();break;
           case 4:customer_evaluate();break;
           case 0:exit(1);break;
        }

    }while(1);
    return 0;
}
Customer::Customer()
{
    system("cls");
    total++;
    cout<<"            你当前排队号码为:"<<total<<endl<<endl;
}

void Customer::order()
{
    int temp[50];
    int j=0;
    int sum =0;
    char flag ='y';
    int num =0;

    Menus menu[50];
    cout<<"         菜单"<<endl<<endl;

    ifstream in ("Menus.txt");
    int i=0;
    while(in>>menu[i].number>>menu[i].dish_name>>menu[i].price)
    {
    cout<<"  "<<menu[i].number<<setw(10)<<menu[i].dish_name<<setw(10)<<menu[i].price<<endl;
    i++;
    }
    in.close();

        while(flag == 'y')
        {
            cout<<"请点餐,选择相应编号:"<<endl;
           cin>>temp[num];
           num++;
           cout<<"是否继续y or n"<<endl;
           cin>>flag;
        }
         for(j=0;j<num;j++)
        {
            for(i=0;i<10;i++)
            {
               if(temp[j]==menu[i].number)
               {
                  sum = sum + menu[i].price;
               }
            }
        }
    cout<<"总价钱:"<<sum<<endl;

}


void Waiter::Set()
{
    system("cls");
    char flag ='y';
    do
    {
    cout<<"输入服务员的工号,姓名,性别,电话号码:"<<endl;
    cin>>job_number>>name>>sex>>phone_number;
    ofstream out("Waiter.txt",ios::app);
    out<<job_number<<" "<<name<<" "<<sex<<" "<<phone_number<<endl;
    out.close();
    cout<<"是否继续是(y)否(n)"<<endl;
    cin>>flag;
    }while(flag == 'y');
    Menu();
}
void Menus::Set()
{
    system("cls");
    char flag = 'y';
    do
    {
    sums++;
    cout<<"输入编号,菜名,价格"<<endl;
    cin>>number>>dish_name>>price;
    ofstream out("Menus.txt",ios::app);
    out<<number<<"  "<<dish_name<<"  "<<price<<"  "<<endl;
    out.close();
    cout<<"是否继续是(y)否(n)"<<endl;
    cin>>flag;
    }while(flag == 'y');
    Menu();
}
void Restaurant::Set()
{
    cout<<"输入餐厅位置,电话号码"<<endl;
    cin>>location>>phone_number;
    ofstream out("Restaurant.txt");
    out<<location<<"  "<<phone_number<<endl;
    out.close();
    Menu();
}
void Restaurant::Search()
{
    system("cls");
    cout<<endl<<endl;
    ifstream in ("Restaurant.txt");
    cout<<"地址"<<"         "<<"联系电话"<<endl;
    while(in>>location>>phone_number)
    {
    cout<<location<<"  "<<phone_number<<endl;
    }
    in.close();
    Menu();
}
void Restaurant::evaluate()
{
    system("cls");
    cout<<endl<<"       历史评价:"<<endl<<endl;
    ifstream in("evaluate.txt");
    while(in>>evaluates)
        cout<<"             "<<evaluates<<endl<<endl;
    in.close();
    Menu();
}
void Waiter::Search()
{
    system("cls");
    ifstream in("Waiter.txt");
    cout<<endl<<endl;
    cout<<"   工号"<<"  "<<"姓名"<<"    "<<"性别"<<"  "<<"电话号码"<<endl;
    while(in>>job_number>>name>>sex>>phone_number)
    {
    cout<<"    "<<job_number<<"    "<<name<<"    "<<sex<<"    "<<phone_number<<endl;
    }
    in.close();
    Menu();
}
void Menus::Search()
{
    system("cls");
    ifstream in ("Menus.txt");
    cout<<endl<<endl;
    cout<<"  编号"<<setw(10)<<"菜名"<<setw(10)<<"价格"<<endl;
    while(in>>number>>dish_name>>price)
    {
    cout<<"  "<<number<<"   "<<setw(10)<<dish_name<<setw(10)<<price<<endl;
    }
    in.close();
    Menu();
}

一个简单的管理系统可自行添加其他功能

  • 21
    点赞
  • 175
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: C++是一种高效、可靠且广泛使用的编程语言,而Qt则是一个跨平台的GUI(图形用户界面)应用程序开发框架,用于创建基于C++的应用程序。因此,C++和Qt的结合可以提供一个强大和高性能的管理系统,此系统能够理解和处理设计和管理大量数据的需求。 利用Qt,开发人员可以创建具有现代外观和功能丰富的图形用户界面。此外,Qt库还提供了几个模块,包括网络模块、数据库模块和XML模块等,这些模块共同构成了一个完整的应用程序框架,可以实现统一的数据管理。这也使得管理系统的开发更容易和高效。 Qt还提供了许多便捷的工具和类库,它们可以轻松地与C++集成,从而使管理系统中的功能更加易于维护和扩展。开发人员可以利用Qt的强大特性,例如界面、线程和信号等,来更好地实现管理系统中的各种操作。 总之,利用C++和Qt的混合技术,可以在管理系统中实现高效和动态的数据处理和管理,这也使得系统更加易于使用和维护。因此,管理系统基于Qt是一个可行的选择。 ### 回答2: Qt是一个跨平台的应用程序开发框架,其具有高度的可维护性、组件化、模块化、可扩展性等特点,可以帮助开发者快速、高效地开发应用程序。因此,使用Qt作为C管理系统的基础,具有以下优势: 1. 高度的可移植性。Qt可以在多种操作系统和平台上运行,包括Windows、Linux、MacOS、Android等。这样,无论用户使用何种操作系统,都可以使用C管理系统。 2. 界面美观、便于交互。Qt的GUI组件可以很容易地实现各种漂亮的界面,而且还支持多种应用程序之间的交互方式,如剪切板、拖放、消息传递、事件处理等。 3. 简洁高效的库函数。Qt提供了许多简单易用的函数库,使得开发者可以高效、方便地开发出各种应用程序。 4. 强大的程序调试功能。Qt提供了许多强大的程序调试工具,如Qt Creator、Qt Designer等,可以让开发者快速地定位和解决程序中的问题。 5. 易于开发和维护。Qt具有高度组件化和模块化的特点,可以有效地分离各个功能模块,使得开发、测试和维护更加容易。 总之,使用Qt作为C管理系统的基础,可以快速、高效地开发出一款优秀的管理系统,并且可以满足不同用户的需求。 ### 回答3: Qt是一种跨平台的应用程序开发框架,其提供了丰富的图形用户界面组件、网络通信、数据库访问、XML解析、多线程等功能。C是一种高级编程语言,稳定、可靠、优秀的外部函数支持,可用于开发各种类型的软件。 基于Qt的C管理系统具有许多优点。首先,Qt具有良好的跨平台性,开发者只需编写一份代码,就可以将应用程序移植到多种不同的操作系统上,例如Windows、MacOS、Linux等等。其次,Qt为开发者提供了丰富的界面控件,如文本框、按钮、列表框等等,还可以实现扩展性和自定义控件。此外,Qt还提供了方便和快速的设计器,使开发者可以轻松地设计出符合自己需求的应用界面。 C语言提供了丰富而强大的函数库,可以轻松实现各种操作和算法。在基于Qt的C管理系统中,C语言可以作为该系统的编程语言,实现与Qt相结合的操作,例如无缝对接数据库、处理多线程等。此外,C语言还可以直接调用操作系统提供的分配内存等系统调用,提高程序的运行效率。 综上所述,基于Qt的C管理系统拥有良好的跨平台性、丰富的图形用户界面和控件、快速的设计器、强大的C编程功能等优点。这些优点使得基于Qt的C管理系统在各个领域都具有重要的应用价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值