1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > c语言点菜菜单程序大学一 数据结构实训报告 c语言点餐系统 net

c语言点菜菜单程序大学一 数据结构实训报告 c语言点餐系统 net

时间:2019-12-22 00:16:50

相关推荐

c语言点菜菜单程序大学一 数据结构实训报告 c语言点餐系统 net

《数据结构实训报告 c语言点餐系统 net》由会员分享,可在线阅读,更多相关《数据结构实训报告 c语言点餐系统 net(14页珍藏版)》请在人人文库网上搜索。

1、北京联合大学数据结构实训报告课程名称: 数据结构实训 项目名称: 餐厅点餐系统 学 院: 管理学院 专 业:信息管理与信息系统姓 名: * 学 号: * 指导老师: * 1月13日 目录北京联合大学1数据结构实训报告1一、实践题目2二、实践目的2三、实践内容21选择的数据结构:22程序代码及注释23程序运行流程图74结果7四、个人总结14一、实践题目餐厅点餐系统二、实践目的编写出一个有用户界面的容易使用的点餐系统,服务员可以通过这个系统为顾客点餐,点完餐后可以直接打印出来或在餐厅后堂打印出来方便厨师及时了解顾客的点餐,如果是餐厅管理者在使用还可以查看原材料的余量,以便及时进货。三、 。

2、实践内容1 选择的数据结构:线性表,线性存储结构2程序代码及注释#include#include#include#includewindows.hstruct cai /*cai结构体 实现对菜品 已点份数、名称、原材料 的记录*/int fenshu;char name50;int use;int price;typedef int ElemType;struct List /*该线性表实现对菜品原材料的剩余量的记录,线性表【i】对应菜品的点餐菜单编码*/ ElemType* list;int size;int MaxSize;/*以下为线性表的函数*/void InitList(struc。

3、t List* L,int ms) if(msMaxSize=ms;L-list=malloc(ms*sizeof(ElemType);if(!L-list)printf(动态存储分配失败!);exit(1);L-size=0;void againMalloc(struct List *L)ElemType *p=realloc(L-list,2*L-MaxSize*sizeof(ElemType);if(!p)printf(分配存储空间失败!);exit(1);L-list=p;L-MaxSize=2*L-MaxSize;void InsertLastList(struct List *L,。

4、ElemType x)if(L-size=L-MaxSize)againMalloc(L);L-listL-size=x;L-size+;/*表格函数*/void cddayin(struct cai a)int i=0,j=0,s=0;for(i=0;i0)j+;if(j!=0)printf(已点菜/酒品编号 已点菜品名称 已点份数/瓶数 价格n);for(i=0;i0)printf( %5d %10s%14d %d¥ n,i,ai.name,ai.fenshu,ai.fenshu*ai.price);s=s+ai.fenshu*ai.price; printf( 您好,您点餐价格合计=%d。

5、¥n,s);if(j=0)printf(顾客尚未点餐,无法进行菜单打印!n);void ycliao(struct List *yuan,struct cai a)int i=1,p=0,k=0;for(i=0;ilistp=yuan-listp-ai.fenshu;ai.use=ai.use/100;while(ai.use!=0);printf(|-|-|n);printf(|-原材料余量-|-酒品余量-|n);printf(|-|-|n);printf(| 10.鸡肉=%3d 11.猪肉=%3d 12.鱼肉=%3d | 50.雪花啤酒=%3d |n,yuan-list10,yuan-li。

6、st11,yuan-list12,yuan-list50);printf(| 13.黄瓜=%3d 14.土豆=%3d 15.豆腐=%3d | 51.燕京啤酒=%3d |n,yuan-list13,yuan-list14,yuan-list15,yuan-list51);printf(| 16.茄子=%3d 17.青椒=%3d 18.牛肉=%3d | 52.二锅头=%3d |n,yuan-list16,yuan-list17,yuan-list18,yuan-list52);printf(| 19.大葱=%3d 20.鲜鸭血=%3d 21.花生=%3d | |n,yuan-list19,yuan。

7、-list20,yuan-list21);printf(| 22.花椒=%3d 23.酱=%3d 24.胡萝卜=%3d | |n,yuan-list22,yuan-list23,yuan-list24);printf(| 25.辣椒=%3d 26.芹菜=%3d 27.豆皮=%3d | |n,yuan-list25,yuan-list26,yuan-list27);printf(|-|-|n);printf(|-|-|n);void diancai(struct cai a)int p=0,wep=0;doprintf( |-|-|n);printf( |-菜品(输入-1确认并结束点餐)-|-酒。

8、品-|n);printf( |-|-|n);printf( | 1.宫爆鸡丁 2.鱼香肉丝 3.京酱肉丝 | 21.雪花啤酒 |n);printf( | 4.地三鲜 5.水煮鱼 6.麻婆豆腐 | 22.燕京啤酒 |n);printf( | 7.夫妻肺片 8.拍黄瓜 9.鲜鸭血 | 23.二锅头 |n);printf( |-|-|n);printf( |-|-|n);scanf(%d,&p);system(CLS);if(p=1&p50)system(CLS);printf(您输入的值异常或过大,请您检查输入的值!n);continue;/*防止误输入*/else if(wep=21&p50)s。

9、ystem(CLS);printf(您输入的值异常或过大,请您检查输入的值!n);continue;/*防止误输入*/else if(wep=50)ap.fenshu+=wep;system(CLS);else if(p!=-1)printf(对不起,你输入的编码没有对应菜品,请重新输入!n);while(p!=-1);system(CLS);cddayin(a);void ycldayin(struct List yuan,struct cai a)char l=0;printf(显示原材料余量?(Y/N)n);l=getch();if(l=Y|l=y)system(CLS);ycliao(。

10、&yuan,a);elsesystem(CLS);printf(nnnn);main()int i=0;char l=0;struct List yuan; /* yuan前不用加“*” */struct cai a30=0,0,0,0,宫爆鸡丁,15,0,鱼香肉丝,1124,14,0,京酱肉丝,16,0,地三鲜,10,0,水煮鱼,50,0,麻婆豆腐,11,0,夫妻肺片,17,0,拍黄瓜,8,0,鲜鸭血,20,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,雪花啤酒,50,5,0,燕京啤酒,51,6,。

11、0,二锅头,52,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;InitList(&yuan,60);for(i=0;i60;i+)InsertLastList(&yuan,100);/+rand()%50printf(nnnnnnnn);printf( |-|n);printf( |- 欢迎来到春晓点餐系统! -|n); printf( |-|n);Sleep(2500);system(CLS);diancai(a); /*点餐函数,开始点餐吧!*/ycldayin(yuan,a);printf(nnnn);printf( |-|n);printf( |- 欢迎。

12、再次使用春晓点餐系统! -|n); printf( |-|n);printf(nnnnnn);3程序运行流程图开始显示主菜单输入菜品编号进行点餐菜品编号酒品编号判断菜品or酒品or退出(-1)显示酒品数量选择菜单显示菜品数量选择菜单-1打印已点菜单Y原材料余量打印打印原材料余量表N结束4结果模拟场景:顾客点了如下菜品及酒品宫保鸡丁 1份 , 京酱肉丝 1份 ,鸭血 3份 , 水煮鱼 1份 ,麻婆豆腐 1份雪花啤酒 6瓶服务员通过点餐系统为顾客点餐,并打印出菜单,此时后厨也收到了此菜单并开始备菜,管理者通过查看原材料余量判断是否进货。主菜单:开始点餐1宫保鸡丁 一份2京酱肉丝 一份其他类似菜品点。

13、餐过程省略3.雪花啤酒 6瓶4.结束并确认(输入-1)5打印出的菜单6 选择是否显示原材料余量(Y/N)如果选择Y(y) 打印出原材料余量表(程序默认所有原材料初始余量为100)如果选择N(n)系统结束四、个人总结在本次数据结构实训过程中,我知道了独立的去完成一个程序的基本步骤:先构思方向,再思考大体的程序运行流程,然后编写程序中要使用的结构体、线性表等函数,最后在main()函数中将以上的函数串起来。整个编写程序的过程最麻烦的倒不是编写程序,而是调试。我为了能减少麻烦,每编写完一个函数就对整体进行编译找出错误,直到把问题解决再继续编写下一个函数。这样做可以避免多个函数中出现相同的错误或者出现由于上一个函数的错误引起的下一个函数无法正常调用的问题,到时候就不好改了。在整个程序中我使用了一个结构体和一个顺序存储线性表,来实现程序的主要功能。在这个过程中发现许多问题并解决了,对于线性表的理解也更加的深刻。当然这个程序还存在很多的不足,首先这个程序如果应用到实际中无法实现存储功能,另一个就是我设计这个程序的初衷是想让它能够真的将菜单在打印机上打印出来,但是本人技术知识不足没有写到那个份上。所以还有很多东西要好好学习的。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。