餐饮结账管理系统设计要点(正式版)

上传人:s****a 文档编号:63303564 上传时间:2022-03-18 格式:DOC 页数:28 大小:777KB
收藏 版权申诉 举报 下载
餐饮结账管理系统设计要点(正式版)_第1页
第1页 / 共28页
餐饮结账管理系统设计要点(正式版)_第2页
第2页 / 共28页
餐饮结账管理系统设计要点(正式版)_第3页
第3页 / 共28页
资源描述:

《餐饮结账管理系统设计要点(正式版)》由会员分享,可在线阅读,更多相关《餐饮结账管理系统设计要点(正式版)(28页珍藏版)》请在装配图网上搜索。

1、C语言程序设计课程设计报告设计题目:餐饮结账管理系统设计1 设计任务1.1 设计题目的描述功能: 餐饮结账信息包括:编号、时间、台面号、顾客数量、接待服务生、实收金额。试设计一餐饮结账管理系统,使之能提供以下功能:1 结账信息录入、修改、删除功能;2 查询浏览功能:按台面号查询、按接待服务生查询;3 按照实收金额排序。4 统计总收入、顾客总数等功能。1.2 设计要求( 1)仔细审题,明确题目要求。( 2)按照结构化的程序设计思想,将程序模块化,将相对独立的功能写成函数。( 3)要求编程、调试通过并演示;程序编写规范,添加适当注释。( 4)按照课程设计报告的内容和格式要求,撰写课程设计报告,并且

2、打印。2 设计方案说明2.1 数据的存储结构餐饮结账信息包括:编号、时间、台面号、顾客数量、接待服务生、实收金额。因此需要使用结构体,而结账信息又不止是一个,所以使用结构体数组,这里定义结构体 struct bill,定义数组billM。struct billint num;/编号int time4;/时间int table;/台面号int count;/顾客数量char name20;/服务生姓名int money;/实收金额billM;2.2 函数之间的调用关系说明mainmenuInputsortdeletersearchincomemodifysearch2numbermodify_a

3、savedisplayDisplay_allreadFromFile2.3 函数说明1)函数void menu()void menu()菜单函数此函数为主菜单,从此处进入其他模块。变量c :使用 c 选择进入其它功能。C=1 ?是否C=2?执行是否Input执行C=Modify2)函数void input()void input()信息录入,将录入的信息存入文件bill中此函数将从键盘输入的信息录入文件bill中。使用scanf输入结构体中各个量;打开文件bill 成功选择输入的信息个数N输入第 i 个信息直到 i=N保存并关闭文件3)函数void readFromFile()voidread

4、FromFile()从文件中读取信息并存入数组bill30此函数将文件bill 中信息读出并存入bill打开文件读第 i 个文件直到 i=N关闭文件4)函数void save()void save()/* 保存函数*/此函数用于在修改与删除后保存数据。打开文件写入第 i 个文件直到 i=N关闭文件5)函数void display_all()void display_all()信息全部显示通过此函数可显示所有输入信息。readFromFile() 读取文件中信息printf显示第i 个信息直到6)函数i7|cbilli+1.money)是否t=billi;billi=billi+1;billi+

5、1=t;不变i=0 iN-1-ji+j=0jN-1j+display(i)i=0iNi+w0=2输入 w0 的值判断是否返回13)函数void income()void income()总收入统计此函数用于统计总收入并输出。关键变量sum 用于统计总收入从文件 bill 中读取文件sum=sum+billi.moneyi=0;iN;i+输出 sumw0=2输入 w0 的值判断是否返回14)函数void number()void number()顾客总数统计此函数用于统计顾客总数。关键变量number 用于统计顾客总数从文件 bill 中读取文件number=number+billi.count

6、;i=0;iN;i+输出 numberw0=2输入 w0 的值判断是否返回3 设计题目源代码清单#include#include#include#define M 30struct billint num;/编号int time4;/时间int table;/台面号int count;/顾客数量char name20;/服务生姓名int money;/实收金额billM;int N;/* 菜单 */void menu()char c;void input();void modify();void deleter();void search1();void search2();void sort

7、();void income();void number();doprintf(nnn);printf(n);printf(-n);printf(nn);printf(-1录入2修改3删除-nn);printf(-4台面号查询5接待服务生查询 -nn);printf(-6金额排序7 总收入8顾客总数-nn);printf(-0退出-nn);printf(-n);printf(nn);printf(请选择服务 (0-8);c=getchar();switch(c)case 1: input();getchar();break;case 2: modify();getchar();break;ca

8、se 3: deleter();getchar();break;case 4: search1();getchar();break;case 5: search2();getchar();break;case 6: sort();getchar();break;case 7: income();getchar();break;case 8: number();getchar();break;case 0:printf(n谢谢使用,再见!);exit(0);printf(n);default:printf(n输入有误,重试!:);c=getchar();while(1);/* 信息录入 , 将录

9、入的信息存入文件bill中 */void input()FILE *fp;int i;if(fp=fopen(bill,w)=NULL)printf(cannot open the filen);return;printf(输入信息个数 (0-%d)?:,M-1);scanf(%d,&N);printf(请输入数据 :n);for(i=0;iN;i+)printf(输入账单 %d 信息 :n,i+1);printf(编号 :);scanf(%d,&billi.num);printf(时间(月 . 日 时 : 分) :);scanf(%d%d%d%d,&billi.time0,&billi.ti

10、me1,&billi.time2,&billi.time3);printf(台面号 :);scanf(%d,&billi.table);printf(顾客数量 :);scanf(%d,&billi.count);printf(接待服务生 :);scanf(%s,billi.name);printf(实收金额 :);scanf(%d,&billi.money);for(i=0;iN;i+)if(fwrite(&billi,sizeof(struct bill),1,fp)!=1)printf(file write errorn);return;fclose(fp);/* 从文件中读取信息并存入数

11、组sbillN*/void readFromFile()int i;FILE *fp;if(fp=fopen(bill,rb)=NULL)printf(cannot open the filen);return;for(i=0;iN;i+)fread(&billi,sizeof(struct bill),1,fp);fclose(fp);/* 保存函数 */void save()FILE *fp;int i;if(fp=fopen(bill,w)=NULL)printf(cannot open the filen);return;for(i=0;iN;i+)if(billi.num!=0)if

12、(fwrite(&billi,sizeof(struct bill),1,fp)!=1)printf(file write errorn);return;fclose(fp);/* 信息全部显示*/void display_all()int i;readFromFile();printf(全部信息: n);for(i=0;inn 1).编号2).时间3).台面号4).顾客数量5). 接待服务生6).实收金额7).取消并返回 );printf(请选择 ?: );scanf(%d,&c);if(c7|c1)printf(n选择错误,请重试);getchar();doswitch(c) case 1

13、: printf(编号 :); scanf(%d,&billi.num); break;case 2:printf(时间 :) ; scanf(%d.%d%d:%d,&billi.time0,&billi.time1,&billi.time2,&billi.time3);break;case 3: printf(台面号:); scanf(%d,&billi.table); break;case 4: printf(顾客数量:); scanf(%d,&billi.count); break;case 5: printf(接待服务生:); scanf(%s,billi.name); break;c

14、ase 6: printf(实收金额:); scanf(%d,&billi.money); break;case 7: menu();printf(ndisplay(i);现在 :n);printf(n确定 ?n 1).是 2).不,重新修改3).返回不保存 );scanf(%d,&w1);while(w1=2);return(w1);/* 修改信息 */void modify()int i,n,k,w0=1,w1;readFromFile();dok=-1;display_all();doprintf(n 输入要修改的编号数 n 编号 :); scanf(%d,&n);for(i=0;iN;

15、i+)if(billi.num-n=0)k=i;if(k=-1)printf(nn没有记录请重新输入!);while(k=-1);w1=modify_a(k);if(w1=1)printf(n修改成功n是否继续 ? 1). 是 2).保存返回 );save();scanf(%d,&w0);while(w0=1);/* 删除记录 */void deleter()int i,k,n,w0,w1;readFromFile();dok=-1;display_all();doprintf(n输入要删除的编号:n);scanf(%d,&n);for(i=0;iN;i+)if(n-billi.num=0)k

16、=i;if(k=-1)printf(n无记录,请重新输入!n);while(k=-1);display(i);printf(n确定删除?1) 是 2)返回 n );scanf(%d,&w0);if(w0=1)for(i=k;iN;i+)billi=billi+1;save();else break;display_all();printf(n删除成功,是否继续?1) 是 2) 返回 );scanf(%d,&w1);while(w1=1);/* 台面号查询 */void search1()int i,j,w0;int number;readFromFile();doj=-1;printf(n请输

17、入台面号查询:);scanf(%d,&number);for(i=0;iN;i+)if(number=billi.table)j=i;display(j);printf(n);if(j=-1)printf(无此号 !);printf(n继续 ? 1)是 2)返回);scanf(%d,&w0);while(w0=1);/* 接待服务生查询*/void search2()char a20;int i,j,w0;doj=-1;printf(n请输入接待服务生姓名查询:);scanf(%s,a);for(i=0;iN;i+)if(strcmp(billi.name,a)=0)j=i;display(j

18、);printf(n);if(j=-1)printf(无此姓名 !);printf(n继续? 1)是 2)返回);scanf(%d,&w0);while(w0=1);/* 金额排序 */void sort()int i,j,w0;struct bill t;readFromFile();printf(nn);for(j=0;jN-1;j+)for(i=0;iN-1-j;i+)if(billi.moneybilli+1.money)t=billi;billi=billi+1;/*调换 billi与 billi+1的值 */billi+1=t;printf(由大到小为 :n);for(i=0;iN

19、;i+)display(i);printf(n);doprintf(n返回 ? 1)是 2) 否);scanf(%d,&w0);while(w0=2);/* 总收入统计 */void income()int i,sum=0,w0;readFromFile();for(i=0;iN;i+)sum=sum+billi.money;printf(nn);printf(总收入 :%d,sum);doprintf(n返回 ? 1)是 2) 否);scanf(%5d,&w0);while(w0=2);/* 顾客总数统计*/void number()int i,number=0,w0;readFromFil

20、e();for(i=0;iN;i+)number=number+billi.count;printf(nn);printf(顾客总数 :%d,number);doprintf(n返回 ? 1)是 2) 否);scanf(%5d,&w0);while(w0=2);/* 主函数 */void main()menu();4 程序测试4.1 测试数据说明测试数据包括:编号、时间、台面号、顾客数量、接待服务生、实收金额。编号时间台面号顾客数量接待服务生实收金额(int 数组 )IntIntchar 数组Int17.2 12:1252li3227.2 12:2236wang12837.2 12:3228z

21、hao18647.2 12:4243zhang9557.2 12:5215li1054.2 输出结果说明1) 菜单界面,进入系统首先显示主菜单,之后可通过选择不同的数字来运用此餐饮结账系统的各项功能。图1 菜单2) 录入界面,选择 1 后根据提示输入需要输入的信息个数,之后可依次录入几条不同信息。图2录入3)修改界面,选择2 后依次输入修改编号1, 与项目 6,并更改为35,保存返回。4) 按台面号查询信息,选择图 3 修改信息4 后依次查询台面号3 与6,之后返回。图 4台面号查询5)按服务生姓名查询,选择5 后查询服务生li ,之后返回。图 5服务生查询6)按金额排序,选择6 后可按金额从

22、大到小排序显示,之后返回。图 6按金额排序7)求总收入,选择7 后可求出总收入,之后返回。图7 总收入8) 求顾客总数,选择 8 后可求出顾客总数,之后返回。图 8顾客总数9)删除信息,选择3 后输入要删除的编号3,删除后显示,并返回。图 9删除信息10)退出程序,选择0 后退出餐饮结账管理系统。图10退出5 课程设计总结通过为期一周的课程设计,我们对C 语言这门课程有了更深一步的了解。它是计算机程序设计的重要理论技术基础,在我们的学习中占据着十分重要的地位。1 这次课程设计运用C 语言知识,编写一个参饮结账管理系统。其中遇到了不少问题,平时自己在编写一些普通常见的程序时感觉得心应手,非常简单

23、,但此次拿到这个程序的要求后第一感觉就是无法下手。通过老师指导终于有了思路,在之后的编写中碰到修改这个函数时只知道通过直接输入可以代替原有数据,但不知道如何使修改更加完美,后来通过网上查找资料而解决了此问题,从而使各个数据互不影响的修改,而不是要改就必须重新输入一遍。最大问题是删除,开始时绞尽脑计都想不到该如何删除,曾经试过许多的办法都无法完成,到最后所有其他的功能完成后才从排序时的互换billi 与 billi+1 的影响下想到用后一个代替前一个的想法。剩下的都就是一些小的细节问题,例如如何使每项功能完成后返回主菜单而在退出时却不返回(解决方法是在主菜单函数中加入while ( 1),而把退出的数字有9 变为 0),如何使功能完成后不会直接返回而有人为控制(在函数后使用dowhile 在用w0 控制退出与否) 。剩余就是一些符号如 “ & ”、“ =”“ = =” d 等的使用一定要注意细节。2通过完成本课题,我进一步熟悉C 语言的基本知识,并掌握真正的较复杂的程序的一些基本算法思想,掌握C 语言的文件操作(包括从磁盘读入和向磁盘写入内容),进一步熟悉结构体的用法,数组的建立运用和函数的调用等。同时也使我知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。因为我们学习知识就是为了实践。而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!