C语言答辩报告.docx
《C语言答辩报告.docx》由会员分享,可在线阅读,更多相关《C语言答辩报告.docx(15页珍藏版)》请在冰豆网上搜索。
C语言答辩报告
饭店管理系统
一.需求分析
设计一个饭店的系统用来实现预约订餐等基本功能。
饭店管理系统的主要功能:
1。
餐饮管理包括提前预约、点菜的功能;通过这项功能从而能够使得客户在到饭店以前就可以提前预约好,从而可以使客户能够在未到饭店以前就可以约定好了.
2。
收银管理为结账.
3。
查询管理包括账单查询和预约查询。
预约查询可以查询客户已经预约的情况.从而当预约的客户过来时能够方便的验证。
账单查询能够方便的显示出各个桌子的消费情况。
二.思路分析
首先编写一个程序用来存储本店的菜单以及菜的价格,这样就可以快捷方便的调用出来,接下来开始编写主要的程序。
本系统总共有三个模块,分辨是餐饮管理,查询管理,以及收银管理,餐饮管理用来存储顾客的预约信息和点菜的信息,查询管理用来查看顾客的预约信息,从而来确认以及每个桌子上的消费信息,最后收银管理用来结账。
三.概要设计
四.详细设计
菜单设定程序代码
#include〈stdio。
h>
#definesize15
structcaidan_type
{
charcainame[15];
intjiage;
}caidan[10000];
voidsave()
{
FILE*fp;
inti;
if((fp=fopen(”caidan_list",”wb”))==NULL)
{
printf(”cannotopenfile");
return;
}
for(i=0;i〈size;i++)
{
if(fwrite(&caidan[i],sizeof(structcaidan_type),1,fp)!
=1)
printf(”filewriteerror\n");}
fclose(fp);
}
voidmain()
{
inti;
for(i=0;i〈size;i++)
{
scanf(”%s%d",caidan[i]。
cainame,&caidan[i]。
jiage);
save();
}
}
饭店系统代码
#include
#definesize10000
structyuyuexitong_type//定义顾客的预约信息
{
charname[10];
intmobilenum;
inttime;
}yuyue[10000];
structcaidan_type//定义菜单的信息
{
charcainame[15];
intjiage;
}caidan[10000];
structdiancai_type//定义每个桌子点菜的信息
{
intzhuoweihao;
charcaiming[15];
intjiage;
}dian[1000];
voidsave(inti,intf)//储存预约人信息
{
FILE*fp;
if((fp=fopen("yuyu_list",”wb”))==NULL)
{
printf("cannotopenfile");
return;
}
for(i=0;i{
if(fwrite(&yuyue[i],sizeof(structyuyuexitong_type),1,fp)!
=1)
printf(”filewriteerror\n”);
}
fclose(fp);
}
voidsavedian(intg,inte)//储存每个桌子的点菜的信息
{
FILE*fp;
if((fp=fopen(”diancai_list”,”wb”))==NULL)
{
printf(”cannotopenfile”);
return;
}
for(g=0;g{
if(fwrite(&dian[g],sizeof(structdiancai_type),1,fp)!
=1)
printf("filewriteerror\n");
}
fclose(fp);
}
voidcaidanxianshi()//显示菜单
{
inti;
FILE*fp;
fp=fopen(”caidan_list","rb”);
for(i=0;i<15;i++)
{
fread(&caidan[i],sizeof(structcaidan_type),1,fp);
printf(”%-12s%-12d\n",caidan[i].cainame,caidan[i].jiage);
}fclose(fp);
}
voidxianshi(intf)//显示预约者的信息
{
inti;
FILE*fp;
fp=fopen(”yuyu_list”,"rb”);//显示每个桌子的点菜的信息
for(i=0;i〈f;i++)
{
fread(&yuyue[i],sizeof(structyuyuexitong_type),1,fp);
printf(”%—12s%-12d%—12d\n”,yuyue[i].name,yuyue[i]。
mobilenum,yuyue[i]。
time);
}fclose(fp);
}
voiddiancaixianshi(inth)
{
inti;
FILE*fp;
fp=fopen(”diancai_list","rb”);
for(i=0;i〈h;i++)
{
fread(&dian[i],sizeof(structdiancai_type),1,fp);
printf("%-12d%-12s%-12d\n”,dian[i]。
zhuoweihao,dian[i].caiming,dian[i].jiage);
}
fclose(fp);
}
voidmain()//主函数
{
inti=0,n,f,nn,m,a=0,b,d,e,g,h=0,j,k,l;
longz;
re:
printf(”请输入6位密码进入系统\n");//输入密码用来组织非本店人员的进入
scanf("%d”,&z);
if(z==695730)
{printf("进入饭店管理系统\n");
kaishi:
printf("功能选项1。
餐饮管理2。
查询管理3。
收银管理4.退出系统\n”);
scanf("%d",&nn);
if(nn==1)//进入餐饮管理功能
{
ss:
printf("餐饮管理选项1.预约记录2.桌台点菜3。
退出\n”);
scanf(”%d”,&n);
f=i;
b=a;
if(n==1)
{printf(”记录预约信息\n");
printf(”姓名手机后四位时间(点)\n");
scanf(”%s%d%d”,yuyue[i]。
name,&yuyue[i]。
mobilenum,&yuyue[i].time);
save(i,f);
printf("记录完毕\n");
i++;
gotoss;}
if(n==2)
{printf(”分配桌位号为(总共有35个桌子)\n”);
scanf("%d”,&d);
printf("显示菜单\n");
printf(”菜名价格(元)\n");
caidanxianshi();
printf("记录客人点的菜\n");
printf(”所点菜的数目:
");
scanf(”%d",&e);
printf(”桌位号菜名价格(元)\n”);
for(g=h;g{scanf("%d%s%d",&dian[g].zhuoweihao,dian[g].caiming,&dian[g].jiage);
savedian(g,e);}
printf("记录完毕\n");
h=h+e;
gotoss;
}
if(n==3)
{gotokaishi;
}
else{
printf("输入有误请重新输入\n");
gotoss;
}
}
if(nn==2)//进入查询管理功能
{
mm:
printf(”功能选项1。
预约信息查询2.消费查询3。
退出\n");
scanf(”%d”,&m);
if(m==1)
{
printf(”显示预约信息\n”);
printf("姓名手机后四位时间(点)\n");
xianshi(f);
gotomm;
}
if(m==2)
{
printf("显示消费信息\n”);
printf(”桌位号菜名价格(元)\n”);
diancaixianshi(h);
gotomm;
}
if(m==3)
{
gotokaishi;
}
else{
printf("输入有误请重新输入\n");
gotomm;
}
}
if(nn==3)//进入收银管理功能
{
l=0;
printf("请输入要结账的桌位号\n");
scanf(”%d”,&j);
for(k=0;k〈g;k++)
{if(j==dian[k].zhuoweihao)
{
l=dian[k].jiage+l;
}
}printf("%d",l);
printf(”元\n”);
printf(”收银成功\n");
gotokaishi;
}
if(nn==4)
{
printf("退出系统\n");
}
else{
printf(”输入有误请重新输入\n”);
gotokaishi;
}
}
else{
printf(”输入有误请重新输入\n”);
gotore;
}
}
五.测试数据及其结果分析
总体测试中基本能够符合要求主要不好的原因还是界面太难看以及操作有点繁琐。
六、调试过程中的问题
在调试中有时因为里面fot循环没有用好的情况而使得里面储存数据的时候出现了错误,存储的顺序不对,其次就是数据的整型,字符行,字符串的设定上出了问题,还有显示存储信息时把调用的地址写错误,从而出现了一堆的乱码.
七、专业课程设计总结
通过本次的实验,是我掌握了以前C语言中不太了解的数据的输入输出的使用。
以及一个简单系统的简单开发的方法,首先我们要先设定好这个程序的具体大概使用的功能,然后设计好每个功能里具体好友那些模块,紧接着画出流程图,最好编写程序,编写完成后还有步很重的事情,就是程序的测试,用来检查出程序的不完整之处.
最后小组里一起的讨论也能帮助你的设计和开发,可以得到其它的意见.
这次课程设计让我们原本就已经很少动手的大学生活里多了一次实践的机会,
我相信只有通过这种方式才能有效的增强我们的能力。