ImageVerifierCode 换一换
格式:DOCX , 页数:38 ,大小:558.45KB ,
资源ID:15419127      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-15419127.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(饭卡管理系统实训报告书.docx)为本站会员(b****7)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

饭卡管理系统实训报告书.docx

1、饭卡管理系统实训报告书一、实训题目与要求1. 问题提出学校等大单位集体食堂买饭时间非常集中,这时如果食堂使用饭票买饭,大家就得排长队等候,而且还有经过先去买饭票等麻烦的经历。因此食堂提出使用计算机进行管理,食堂用饭卡卖饭,不仅提高卖饭速度,还更易于管理减少不必要的麻烦,同时减轻工作人员的工作负担。因此,用饭卡管理系统解决了这个问题。2.功能要求重复显示主菜单,在主菜单上选择任意一项,均实现相应功能。在主菜单中选择1,建立名为card.dat的文件,并在其中添加若干人的饭卡号,金额,挂失信息,要求饭卡号唯一。在主菜单中选择2,要求用户输入卡号,饭费,然后系统自动从该人的饭卡中减去饭钱,。并显示金

2、额,如果饭卡中不足5元,则不能买饭,显示“余额不足,请续钱!”,如果挂失信息为真,则显示“本卡已挂失!”。在主菜单中选择3,要求用户输入饭卡号,续钱额,续钱完成后分别显示续钱前后的金额。在主菜单中选择4,添加新饭卡,这时要求新饭卡号和以有的卡号不能重号。在主菜单中选择5,注销旧饭卡。在主菜单中选择6,要求用户输入饭卡号和挂失信息,然后更新该饭卡的挂失信息。在主菜单中选择7,此项功能学生自由发挥,根据本组爱好增加新功能。在主菜单中选择0,显示结束信息,按任意键后,退出本系统。3.任务分工组长:潘永培负责小组主程序的模块设计和主函数的流程图,以及myprint,mycreate两个函数的算法设计和

3、模块流程图,起到了领导与组织的较好作用。组员:余文宇负责小组程序的mybuy,mysave,myadd三个函数的算法设计和相应模块的流程图。积极配合全组的工作,塌实肯干。组员:罗耀祖负责小组程序的mydel,mydlost,mydisplayall三个函数的算法设计和相应模块的流程图。与其他两位同学协作默契,认真卖力。二、设计实训题目功能1.总体设计图1:主模块图2.算法设计图2:主流程图图3:函数mycreate流程图图4:函数mybuy流程图图5:函数mysave流程图图6:函数myadd流程图图7:函数mydelete流程图图8:函数mylost流程图图9:函数mydisplayall流

4、程图3.数据结构名称属性长度说明numstring10卡号namestring10姓名moneyfloat金额gint2挂失信息4.程序代码设计(1)函数main()主要用了switch语句switch(choose) case1:mycreate();break; case2:mybuy();break; case3:mysave();break; case4:myadd();break; case5:mydel();break; case6:mylost();break; case7:mydisplayall();break; case0:exit(0); default:printf(n

5、 %c为非法选项!n,choose); (2)函数 myprint()主要使用函数printf输出(3)函数mycreate()主要使用do while和while语句实现: printf(n 请输入第一个记录:n); printf( 卡号(用#结束输入):); do gets(temp.num); while(strcmp(temp.num,)=0); printf( 姓名(用#结束输入):); gets(temp.name); printf( 金额(用#结束输入):); scanf(%f,&temp.money); printf( 挂失信息(1有,-1无)(用#结束输入):); scanf

6、(%d,&temp.g); while(temp.num0!=#) fprintf(fp,%15s%15s%15f%15dn,temp.num,temp.name,temp.money,temp.g); i+; printf(n 请输入第%d个记录:n,i); printf( 卡号(用#结束输入):); do gets(temp.num); while(strcmp(temp.num,)=0); printf( 姓名(用#结束输入):); gets(temp.name); printf( 金额 (用#结束输入):); scanf(%f,&temp.money); printf( 挂失信息 (1

7、有,-1无)(用#结束输入):); scanf(%d,&temp.g); (4)函数mybuy()主要使用if嵌套和for循环实现: if(n=0) (n 文件中无记录!n);return; printf(n请输入要买饭的学号:); gets(temp.num); for(p=record;pnum)=0) find=p;break; if(p=record+n) printf(n 无此卡!n);return; if(p-g=-1) printf(此卡已挂失n); return; else if(p-moneymoney5.0) printf(请输入金额); scanf(%f,&mtemp);

8、 if(p-moneymtemp) printf(Before:%f元n,(p-money); (p-money)=(p-money)-mtemp; printf(After:%f元n,(p-money); if(p-moneymtemp) printf(金额不足,请续钱n); return; fp=fopen(d:JiLu.dat,w); if(fp=NULL) printf(n 打开文件失败!n);return; (5)函数mysave()主要利用for循环和if嵌套:for(p=record;pnum)=0) find=p;break; if(p=record+n) printf(n 无

9、此卡!n);return; if(p-g=-1) printf(此卡已挂失n); return; printf(请输入金额:); scanf(%f,&mtemp); printf(Before:%f元n,(p-money); (p-money)=(p-money)+mtemp; printf(After:%f元n,(p-money);(6)函数myadd()主要使用do while和for循环: do printf(n 请输入新添加的卡号:); do gets(temp.num); while(strcmp(temp.num,)=0); printf(n 请输入新添加的姓名: ); gets(

10、temp.name); printf(n 请输入新添加的金额: ); scanf(%f,&temp.money); printf(n 请输入新添加的挂失信息: ); scanf(%d,&temp.g); for(p=record;pnum)=0) printf(n 卡号重复,要重新输入吗(Y/N)?); do c=getche(); while(c!=Y&c!=y&c!=N&c!=n); putchar(n); break; if(p=record+n) *p=temp;break; while(c=y|c=Y); (7)函数mydel()主要通过for和if打开和写入文件:for(k=rec

11、ord;knum)=0) break; if(krecord+n) for(p=k;pk+n-1;p+) *p=*(p+1); else printf(n 无此卡!n); fp=fopen(d:JiLu.dat,w); if(fp=NULL) printf(n 打开文件失败!n);return; for(p=record;pnum,p-name,&(p-money),&(p-g);(8)函数mylost()主要使用while、if、for 修改信息: while(feof(fp)=0) fscanf(fp,%15s%15s%15f%15dn,p-num,p-name,&p-money,&p-g

12、); p+; n+; fclose(fp); if(n=0) printf(n 文件中无记录!n);return; printf(n 请输入要修改挂失信息的卡号:); gets(temp.num); for(p=record;pnum)=0) find=p;break; if(p=record+n) printf(n 无此卡!n);return; printf( 请输入挂失信息:); scanf(%d,&p-g);(9)函数mydisplayall()主要通过printf和while输出信息:printf( 卡号 姓名 金额 挂失信息n); while(feof(fp)=0) fscanf(f

13、p,%15s%15s%15f%15dn,temp.num,temp.name,&temp.money,&temp.g); printf(%15s%15s%15f%15dn,temp.num,temp.name,temp.money,temp.g); n+; if(n=0) printf(n 文件中无记录!n); else printf(n 文件中共有%d个记录!n,n);注:完整程序请参见附录A 5.测试与调试Main:测试数据类型测试数据预期结果实测结果合法数据1调用mycreate成功调用2调用mybuy成功调用3调用mysave成功调用4调用myadd成功调用5调用mydel成功调用6调

14、用mylost成功调用7调用mydisplayall成功调用0结束 结束N或n按任意键退出按任意键退出Y或y返回主菜单返回主菜单非法数据9显示“9为非法选项”显示“9为非法选项”mycreate:测试数据类型测试数据预期结果实测结果合法数据输入卡号:1输入卡号输入卡号输入姓名:小李输入姓名输入姓名输入金额:100输入金额输入金额输入挂失信息:1输入挂失信息输入挂失信息N或n按任意键退出按任意键退出Y或y返回主菜单返回主菜单非法数据输入金额:a无法输入无法输入输入挂失信息:a无法输入无法输入mybuy:测试数据类型测试数据预期结果实测结果合法数据输入买饭卡号1显示“输入金额”显示“输入金额”输入

15、卡号99显示“无此卡”显示“无此卡”输入卡号1金额1显示余额99元显示余额99输入卡号1金额99显示余额1元,金额不足五元,请续钱显示余额1元,金额不足五元,请续钱输入卡号1金额101显示“金额不足,请续钱”显示“金额不足,请续钱”输入卡号2显示“此卡已挂失”显示“此卡已挂失”“N”or”n”按任意键退出按任意键退出“Y”or”y”返回主菜单返回主菜单非法数据输入卡号 a显示“无此卡”显示“无此卡”输入卡号1金额a显示无意义数字显示无意义数字mysave:测试数据类型测试数据预期结果实测结果合法数据输入续费卡号1显示“输入金额”显示“输入金额”输入续费卡号1金额1显示余额101显示余额101输

16、入续费卡号2显示” 此卡已挂失”显示” 此卡已挂失”输入续费卡号99显示“无此卡”显示“无此卡”“N”or”n”按任意键退出按任意键退出“Y”or”y”返回主菜单返回主菜单非法数据输入续费卡号a显示“无此卡”显示“无此卡”输入续费卡号1金额a显示无意义数字显示无意义数字myadd:测试数据类型测试数据预期结果实测结果合法数据输入卡号:2输入卡号输入卡号输入姓名:小王输入姓名输入姓名输入金额:200输入金额输入金额输入挂失信息:-1输入挂失信息输入挂失信息N或n按任意键退出按任意键退出Y或y返回主菜单返回主菜单非法数据输入金额:a无法输入无法输入输入挂失信息:a无法输入无法输入mydel:测试数

17、据类型测试数据预期结果实测结果合法数据输入卡号:1删除饭卡1删除饭卡1输入卡号:3无此卡无此卡N或n按任意键退出按任意键退出Y或y返回主菜单返回主菜单非法数据输入卡号:a无法输入无此卡mylost:测试数据类型测试数据预期结果实测结果合法数据输入卡号1挂失信息-1卡1挂失卡1挂失输入卡号2挂失信息1卡2解除挂失卡2解除挂失“N”or”n”按任意键退出按任意键退出“Y”or”y”返回主菜单返回主菜单非法数据输入卡号a显示“无此卡”显示“无此卡”输入卡号1挂失信息3挂失信息无意义挂失信息无意义输入卡号1挂失信息a挂失信息不变挂失信息不变mydisplayall:测试数据类型测试数据预期结果实测结果

18、合法数据N或n按任意键退出按任意键退出Y或y返回主菜单返回主菜单2.结束语这次实训非常的感谢指导老师对我们的帮助,还有同学们放弃自己的任务来帮我们改错。在这里我们组谢谢各位帮助过我们的人,特别是指导老师对我们帮助才使我们顺利地完成任务。附录1 程序清单#include#include#include#include#define N 100struct card char num10; char name10;float money;int g;void myprint();void mycreate();void mybuy();void mysave();void myadd();void

19、 mydel();void mylost();void mydisplayall();void main() char choose=0,yes_no=0; do myprint(); printf( ); choose=getch(); switch(choose) case1:mycreate();break; /*创建*/ case2:mybuy();break; /*买饭*/ case3:mysave();break; /*续钱*/ case4:myadd();break; /*添加*/ case5:mydel();break; /*注销*/ case6:mylost();break;

20、 /*挂失*/ case7:mydisplayall();break;/*显示全部*/ case0:exit(0); default:printf(n %c为非法选项!n,choose); printf(n 要继续选择吗(Y/N)?n); do yes_no=getche(); while(yes_no!=Y&yes_no!=y&yes_no!=N&yes_no!=n); while(yes_no=Y|yes_no=y);void myprint() /*显示菜单界面*/ system(cls); /*调用清屏函数。若在TC下运行,改用clrscr()*/ printf( |-|n); pri

21、ntf( | 请输入选项编号(0-7): |n); printf( |-|n); printf( | 1- 创建饭卡 |n); printf( | 2- 买饭 |n); printf( | 3- 续钱 |n); printf( | 4- 添加新饭卡 |n); printf( | 5- 注销旧饭卡 |n); printf( | 6- 设置与解除挂失 |n); printf( | 7- 显示全部信息 |n); printf( | 0- 退出 |n); printf( |-|n);void mycreate() /*定义创建饭卡的函数*/ int i=1; struct card temp =0;

22、FILE * fp=NULL; fp=fopen(d:JiLu.dat,w); if (fp=NULL) printf(n 打开文件夹失败!n); return; system(cls); /*调用清屏函数。若在TC下运行,改用clrscr()*/ printf(n 请输入第一个记录:n); printf( 卡号(用#结束输入):); do gets(temp.num); while(strcmp(temp.num,)=0); printf( 姓名(用#结束输入):); gets(temp.name); printf( 金额(用#结束输入):); scanf(%f,&temp.money);

23、printf( 挂失信息(1有,-1无)(用#结束输入):); scanf(%d,&temp.g); while(temp.num0!=#) fprintf(fp,%15s%15s%15f%15dn,temp.num,temp.name,temp.money,temp.g); i+; printf(n 请输入第%d个记录:n,i); printf( 卡号(用#结束输入):); do gets(temp.num); while(strcmp(temp.num,)=0); printf( 姓名(用#结束输入):); gets(temp.name); printf( 金额(用#结束输入):); sc

24、anf(%f,&temp.money); printf( 挂失信息(1有,-1无)(用#结束输入):); scanf(%d,&temp.g); fclose(fp);void mybuy() /*定义买饭的函数*/ char c=0; int n=0;float mtemp; struct card*find=NULL,temp=0,record100=0,*p=NULL; FILE*fp=NULL; fflush(stdin); fp=fopen(d:JiLu.dat,r); if(fp=NULL) printf(n 打开文件失败!n);return; p=record; while(feof(fp)=0) fscanf(fp,%1

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2