C语言程序课程设计报告-餐饮结账管理系统设计.doc_第1页
C语言程序课程设计报告-餐饮结账管理系统设计.doc_第2页
C语言程序课程设计报告-餐饮结账管理系统设计.doc_第3页
C语言程序课程设计报告-餐饮结账管理系统设计.doc_第4页
C语言程序课程设计报告-餐饮结账管理系统设计.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

c语言程序设计课程设计报告设计题目:餐饮结账管理系统设计 1 设计任务1.1 设计题目的描述功能:餐饮结账信息包括:编号、时间、台面号、顾客数量、接待服务生、实收金额。试设计一餐饮结账管理系统,使之能提供以下功能:1结账信息录入、修改、删除功能;2查询浏览功能:按台面号查询、按接待服务生查询;3 按照实收金额排序。4统计总收入、顾客总数等功能。1.2 设计要求(1)仔细审题,明确题目要求。(2)按照结构化的程序设计思想,将程序模块化,将相对独立的功能写成函数。(3)要求编程、调试通过并演示;程序编写规范,添加适当注释。(4)按照课程设计报告的内容和格式要求,撰写课程设计报告,并且打印。2 设计方案说明2.1 数据的存储结构餐饮结账信息包括:编号、时间、台面号、顾客数量、接待服务生、实收金额。因此需要使用结构体,而结账信息又不止是一个,所以使用结构体数组,这里定义结构体struct bill,定义数组billm。struct billint num; /编号int time4; /时间int table; /台面号int count; /顾客数量char name20; /服务生姓名int money; /实收金额billm;2.2函数之间的调用关系说明 main menuinputmodifydeletersearchsearch2sortincomenumbermodify_asavedisplay_allreadfromfiledisplay2.3函数说明1)函数 void menu() void menu() 菜单函数 此函数为主菜单,从此处进入其他模块。 变量 c :使用c选择进入其它功能。c=1?是 否 c=2?执行 是 否input 执行 c= modify 2)函数void input()void input() 信息录入,将录入的信息存入文件bill中此函数将从键盘输入的信息录入文件bill中。使用scanf输入结构体中各个量;打开文件bill成功选择输入的信息个数n输入第i个信息直到i=n保存并关闭文件3)函数 void readfromfile()void readfromfile() 从文件中读取信息并存入数组bill30此函数将文件bill中信息读出并存入bill打开文件读第i个文件直到i=n关闭文件4)函数 void save()void save() /*保存函数*/此函数用于在修改与删除后保存数据。打开文件写入第i个文件直到i=n关闭文件5)函数 void display_all() void display_all() 信息全部显示通过此函数可显示所有输入信息。readfromfile()读取文件中信息printf显示第i个信息直到i7|cbilli+1.money)是 否t=billi;billi=billi+1;billi+1=t; 不变i=0 in-1-j i+j=0 jn-1 j+display(i)i=0 in i+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;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();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; case 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); /*信息录入,将录入的信息存入文件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.time1,&billi.time2,&billi.time3); printf(台面号:); scanf(%d,&billi.table); printf(顾客数量:); scanf(%d,&billi.count); printf(接待服务生:); scanf(%s,); 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);/*从文件中读取信息并存入数组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(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();do switch(c) case 1: 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,); break; case 6: printf(实收金额:); scanf(%d,&billi.money); break; case 7: menu(); printf(n现在:n); display(i); printf(n确定?n 1).是 2).不,重新修改 3).返回不保存 ); scanf(%d,&w1); while(w1=2); return(w1);/*修改信息*/void modify() int i,n,k,w0=1,w1; readfromfile(); do k=-1; display_all(); do printf(n输入要修改的编号数n编号:); scanf(%d,&n); for(i=0;in;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();do printf(n输入要删除的编号:n); scanf(%d,&n); for(i=0;in;i+) if(n-billi.num=0) k=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(); do j=-1; printf(n请输入台面号查询:); 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; do j=-1; printf(n请输入接待服务生姓名查询:); scanf(%s,a); for(i=0;in;i+) if(strcmp(,a)=0) j=i; display(j); 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;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; readfromfile();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 数组)台面号int顾客数量int接待服务生char数组实收金额int17.2 12:1252li3227.2 12:2236wang12837.2 12:3228zhao18647.2 12:4243zhang9557.2 12:5215li1054.2 输出结果说明1)菜单界面,进入系统首先显示主菜单,之后可通过选择不同的数字来运用此餐饮结账系统的各项功能。 图1 菜单2)录入界面,选择1后根据提示输入需要输入的信息个数,之后可依次录入几条不同信息。 图2 录入3)修改界面,选择2后依次输入修改编号1, 与项目6,并更改为35,保存返回。 图3 修改信息4)按台面号查询信息,选择4后依次查询台面号3与6,之后返回。 图4 台面号查询5)按服务生姓名查询,选择5后查询服务生li,之后返回。 图5 服务生查询6)按金额排序,选择6后可按金额从大到小排序显示,之后返回。 图6 按金额排序7)求总收入,选择7后可求出总收入,之后返回。 图7 总收入8)求顾客总数,选择8后可求出顾客总数,之后返回。 图8 顾客总数9)删除信息,选择3后输入要删除的编号3,删除后显示,并返回。 图9 删除信息10)退出程序,选择0后退出餐饮结账管理系

温馨提示

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

评论

0/150

提交评论