C语言餐饮结账管理系统设计Word格式文档下载.docx
- 文档编号:17052932
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:25
- 大小:353.26KB
C语言餐饮结账管理系统设计Word格式文档下载.docx
《C语言餐饮结账管理系统设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言餐饮结账管理系统设计Word格式文档下载.docx(25页珍藏版)》请在冰豆网上搜索。
此函数为主菜单,从此处进入其它模块。
变量c:
使用c选择进入其它功能。
2)函数voidinput()
voidinput()信息录入,将录入的信息存入文件bill中
此函数将从键盘输入的信息录入文件bill中。
使用scanf输入结构体中各个量;
打开文件bill成功
选择输入的信息个数N
输入第i个信息
直到i>
=N
保存并关闭文件
3)函数voidreadFromFile()
voidreadFromFile()从文件中读取信息并存入数组bill[30]
此函数将文件bill中信息读出并存入bill[]
4)函数voidsave()
voidsave()/*保存函数*/
此函数用于在修改与删除后保存数据。
5)函数voiddisplay_all()
voiddisplay_all()信息全部显示
经过此函数可显示所有输入信息。
readFromFile()读取文件中信息
printf显示第i个信息
直到i<
6)函数voiddisplay(inti)
voiddisplay(inti)单个信息显示i为要修改的信息号从modify函数中读入
此函数用于在修改等功能后显示第i个信息,用于核对。
用printf显示第i个信息的所有数据
7)函数intmodify_a(inti)
intmodify_a(inti)修改主函数时调用此函数
此函数用于修改其中一个或多个信息,并返回一个数值用于确定是否修改。
变量c用于确定修改项目
从键盘输入一个C的值
c>
7||c<
1
是否
错误w1==2
重试c=1
输入新信息c=…………
显示修改后第i个信息
输入w1的值
返回值w1
8)函数voidmodify()
voidmodify()修改信息主函数
此函数用于修改其中一个信息并保存
从文件bill中读入数据
w0==1
k==-1
输入n的值
循环判断bill[i].num-n==0?
k=ik=-1
输出无记录
w1=modify_a(k);
w1=1?
保存输入w0值结束
9)函数voiddeleter()
voiddeleter()删除记录
此函数用于删除记录中的一条信息。
10)函数voidsearch1()
voidsearch1()台面号查询
此函数用于按台面号查询信息并输出信息。
从文件bill中读入信息
输入number
循环判断number==bill[i].table?
j=ij=-1
display(j)无此号
输入w0的值
11)函数voidsearch2()
voidsearch2()接待服务生查询
此函数用于按接待服务生姓名查询信息并显示。
12)函数voidsort()
voidsort()金额排序
此函数用于按金额对所有信息进行排序并输出。
关键变量structbillt为中间变量,用于交换bill[i]与bill[i+1]的值。
13)函数voidincome()
voidincome()总收入统计
此函数用于统计总收入并输出。
关键变量sum用于统计总收入
14)函数voidnumber()
voidnumber()顾客总数统计
此函数用于统计顾客总数。
关键变量number用于统计顾客总数
3设计题目源代码清单
#include<
stdio.h>
string.h>
stdlib.h>
#defineM30
intN;
/*菜单*/
voidmenu()
charc;
voidinput();
voidmodify();
voiddeleter();
voidsearch1();
voidsearch2();
voidsort();
voidincome();
voidnumber();
do
{
printf("
\n\n\n"
);
printf("
<
<
餐饮结账管理系统>
>
\n"
----------------------------------------------------\n"
\n\n"
---1录入2修改3删除----\n\n"
---4台面号查询5接待服务生查询----\n\n"
---6金额排序7总收入8顾客总数----\n\n"
---0退出----\n\n"
---------------------------------------------------\n"
请选择服务(0-8)"
c=getchar();
switch(c)
{
case'
1'
:
{input();
getchar();
break;
}
2'
{modify();
3'
{deleter();
4'
{search1();
5'
{search2();
6'
{sort();
7'
{income();
8'
{number();
0'
{
\n谢谢使用,再见!
"
exit(0);
\n"
}
default:
\n输入有误,重试!
:
"
}
}while
(1);
/*信息录入,将录入的信息存入文件bill中*/
voidinput()
FILE*fp;
inti;
if((fp=fopen("
bill"
"
w"
))==NULL)
cannotopenthefile\n"
return;
}
输入信息个数(0-%d)?
M-1);
scanf("
%d"
&
N);
请输入数据:
for(i=0;
i<
N;
i++)
输入账单%d信息:
i+1);
编号:
bill[i].num);
时间(月.日时:
分):
%d%d%d%d"
bill[i].time[0],&
bill[i].time[1],&
bill[i].
time[2],&
bill[i].time[3]);
台面号:
bill[i].table);
顾客数量:
bill[i].count);
接待服务生:
%s"
bill[i].name);
实收金额:
bill[i].money);
if(fwrite(&
bill[i],sizeof(structbill),1,fp)!
=1)
filewriteerror\n"
fclose(fp);
/*从文件中读取信息并存入数组sbill[N]*/
voidreadFromFile()
rb"
fread(&
bill[i],sizeof(structbill),1,fp);
/*保存函数*/
voidsave()
if(bill[i].num!
='
\0'
)
/*信息全部显示*/
voiddisplay_all()
readFromFile();
全部信息:
%d时间:
%d.%d%d:
%d台面号:
%d顾客数量:
%d接待服务生:
%s实施金额:
bill[i].num,bill[i].time[0],bill[i].time[1],bill[i].time[2],bill[i].time[3],bill[i].table,bill[i].count,bill[i].name,bill[i].money);
/*单个信息显示*/
voiddisplay(inti)
{
printf("
%d%d%d%d台面号:
bill[i].num,bill[i].time[0],bill[i].time[1],bill[i].time[2],bill[i].time[3],bill[i].table,bill[i].count,bill[i].name,bill[i].money);
/*修改函数调用函数*/
intmodify_a(inti)
intc,w1;
\n修改选项=>
\n\n1).编号2).时间3).台面号4).顾客数量5).接待服务生6).实收金额7).取消并返回"
请选择?
[]"
c);
if(c>
1)
{
\n选择错误,请重试"
getchar();
{case1:
break;
case2:
时间:
);
%d.%d%d:
bill
[i].time[1],&
bill[i].time[2],&
case3:
case4:
case5:
case6:
case7:
menu();
\n现在:
display(i);
\n确定?
\n1).是2).不,重新修改3).返回不保存["
w1);
}while(w1==2);
return(w1);
/*修改信息*/
voidmodify()
inti,n,k,w0=1,w1;
k=-1;
display_all();
{
printf("
\n输入要修改的编号数\n编号:
n);
if(bill[i].num-n==0)
k=i;
if(k==-1)
\n\n没有记录请重新输入!
}while(k==-1);
w1=modify_a(k);
if(w1==1)
\n修改成功\n是否继续?
1).是2).保存返回["
save();
w0);
}while(w0==1);
/*删除记录*/
voiddeleter()
inti,k,n,w0,w1;
display_all();
do
\n输入要删除的编号:
scanf("
if(n-bill[i].num==0)
{
k=i;
}
if(k==-1)
\n无记录,请重新输入!
\n确定删除?
1)是2)返回\n["
if(w0==1)
for(i=k;
bill[i]=bill[i+1];
save();
elsebreak;
\n删除成功,是否继续?
1)是2)返回["
}while(w1==1);
/*台面号查询*/
voidsearch1()
inti,j,w0;
intnumber;
j=-1;
\n请输入台面号查询:
number);
if(number==bill[i].table)
j=i;
display(j);
}
if(j==-1)
无此号!
\n继续?
1)是2)返回["
/*接待服务生查询*/
voidsearch2()
chara[20];
\n请输入接待服务生姓名查询:
a);
if(strcmp(bill[i].name,a)==0)
}
无此姓名!
/*金额排序*/
voidsort()
structbillt;
for(j=0;
j<
N-1;
j++)
for(i=0;
N-1-j;
if(bill[i].money<
bill[i+1].money)
t=bill[i];
bill[i]=bill[i+1];
/*调换bill[i]与bill[i+1]的值*/
bill[i+1]=t;
由大到小为:
display(i);
\n返回?
1)是2)否"
}while(w0==2);
/*总收入统计*/
voidincome()
inti,sum=0,w0;
sum=sum+bill[i].money;
总收入:
sum);
%5d"
/*顾客总数统计*/
voidnumber()
inti,number=0,w0;
number=number+bill[i].count;
顾客总数:
number);
/*主函数*/
voidmain()
4程序测试
4.1测试数据说明
测试数据包括:
编号
时间
(int数组)
台面号
Int
顾客数量
接待服务生
char数组
实收金额
7.212:
12
5
2
li
32
22
3
6
wang
128
8
zhao
186
4
42
zhang
95
52
105
4.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后退出餐饮结账管理系统。
图10退出
5课程设计总结
经过为期一周的课程设计,我们对《C语言》这门课程有了更深一步的了解。
它是计算机程序设计的重要理论技术基础,在我们的学习中占据着十分重要的地位。
1.这次课程设计运用《C语言》知识,编写一个参饮结账管理系统。
其中遇到了不少问题,平时自己在编写一些普一般见的程序时感觉得心应手,非常简单,但此次拿到这个程序的要求后第一感觉就
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 餐饮 结账 管理 系统 设计