1.main.cpp文件
#include#include #include #include #include using namespace std; class Customer//顾客类 { private: char table[20];//桌号 int queues;//排队号码 char dishes[20];//菜品 int amount;//账户余额 static int total;//顾客总数 public: Customer(); void order();//点菜函数 void Printf();//输出顾客信息 friend class LQueue; }; class LQueue; class Menus//菜单类 { private: int number;//菜单编号 int price;//价格 char dish_name[30];//菜名 static int sums;//菜品总数 public: void Set();//增加菜品 void show();//显示菜品信息 void correct_menus();//修改菜品 void delete_menus();//删除菜品 void renew_menus();//恢复菜单 friend class LQueue; friend void Customer::order(); }; int Customer::total=0; int Menus::sums=5; struct QNode { Customer data; QNode *next; }; class LQueue//队列类 { private: QNode *front,*rear;//队头和队尾 public: LQueue(); void InLQueue();//增加顾客 int EmptyLQueue();//判队空 void OutLQueue();//删除队头元素 void PrintQueue();//输出队伍信息 void correct_customer(LQueue *L);//修改队伍信息 void delete_customer(LQueue *L);//删除队伍元素 ~LQueue(); }; int menu() { char i; puts("**********************主菜单**********************tn"); puts("tt1.增加新菜品n"); puts("tt2.增加新顾客n"); puts("tt3.顾客结账n"); puts("tt4.显示顾客信息n"); puts("tt5.显示菜品信息n"); puts("tt6.修改顾客点菜信息n"); puts("tt7.修改菜品信息n"); puts("tt8.删除顾客n"); puts("tt9.删除菜品n"); puts("tt0.退出n"); puts("**************************************************tn"); i=getchar(); system("cls"); return i; } int main() { LQueue L; Menus m; while(1) { switch(menu()) { case'1': m.Set(); break; case'2': L.InLQueue(); break; case'3': L.OutLQueue(); break; case'4': L.PrintQueue(); break; case'5': m.show(); break; case'6': L.correct_customer(&L); break; case'7': m.correct_menus(); break; case'8': L.delete_customer(&L); break; case'9': m.delete_menus(); break; case'0': m.renew_menus(); return 0; } } return 0; } LQueue::LQueue() { rear=0; front=0; } void LQueue::PrintQueue() { QNode *p; p=front; if(p==NULL) { cout<<"队内无顾客!"< data.Printf(); p=p->next; } getchar(); getchar(); system("cls"); } void LQueue::InLQueue() { QNode *p; p=new QNode; p->next=NULL; p->data.order(); if(front==0) { front=p; rear=p; } else { rear->next=p; rear=p; } getchar(); getchar(); system("cls"); } int LQueue::EmptyLQueue() { if(front==NULL&&rear==NULL) return 1; else return 0; } void LQueue::OutLQueue() { int i=0; QNode *p; Menus menu[50]; if(EmptyLQueue()==1) { cout<<"队内无顾客!"< next; ifstream in("Menus.txt"); while(in>>menu[i].number>>menu[i].dish_name>>menu[i].price) { if(strcmp(p->data.dishes,menu[i].dish_name)==0) { p->data.amount-=menu[i].price; break; } i++; } cout<<"首位顾客点餐之后的信息:n"<<"桌号"< data.table< data.queues< data.dishes< data.amount< front; q=front; if(q==NULL) cout<<"队列中无顾客!"< data.Printf(); q=q->next; } cout< >numb; cout< >menu[i].number>>menu[i].dish_name>>menu[i].price) { cout<<" "<



