课程设计报告校园卡管理系统.doc

上传人:laozhun 文档编号:3043307 上传时间:2023-03-09 格式:DOC 页数:38 大小:376.50KB
返回 下载 相关 举报
课程设计报告校园卡管理系统.doc_第1页
第1页 / 共38页
课程设计报告校园卡管理系统.doc_第2页
第2页 / 共38页
课程设计报告校园卡管理系统.doc_第3页
第3页 / 共38页
课程设计报告校园卡管理系统.doc_第4页
第4页 / 共38页
课程设计报告校园卡管理系统.doc_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《课程设计报告校园卡管理系统.doc》由会员分享,可在线阅读,更多相关《课程设计报告校园卡管理系统.doc(38页珍藏版)》请在三一办公上搜索。

1、题目校园卡管理系统系别数学与计算机科学系班级数学与应用数学姓名杨翠萍学号1106131086胡守鹏1106131008彭俊1106131026李娟娟1106131071程晨1106131058王中杰1106131041指导老师束红职称讲师二一二年六月课程设计报告C语言课程设计任务书一.课程设计的内容1.题目:校园卡管理系统2.功能:重复显示主菜单,在主菜单上选择任意一项,均实现相应功能。在主菜单中选择1:建立名为JILU.TXT的文件,并在其中添加若干人的饭卡号,金额,挂失信息:要求饭卡号唯一。在主菜单中选择2:要求用户输入卡号,饭费,然后系统自动从该人的饭卡中减去饭钱,。并显示金额,如果饭卡

2、中不足5元,则不能买饭,显示“余额不足,请续钱!”,如果挂失信息为真,则显示“本卡已挂失!”。在主菜单中选择3:要求用户输入饭卡号,续钱额,续钱完成后分别显示续钱前后的金额。在主菜单中选择4:添加新饭卡,这时要求新饭卡号和以有的卡号不能重号。在主菜单中选择5:注销旧饭卡。在主菜单中选择6:要求用户输入饭卡号和挂失信息,然后更新该饭卡的挂失信息。在主菜单中选择7:此项功能学生自由发挥,根据本组爱好增加新功能。在主菜单中选择0:显示结束信息,按任意键后,退出本系统。3.分步实施:初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;建立一个文件,将小组成员信息写入文件中,显示于屏幕上。二.

3、课程设计的要求1.用C语言实现程序设计;2.要求使用模块化设计,将各个功能设计成独立的函数;3.凡等候用户输入时,给出提示信息;4.界面友好(良好的人机交互),程序加必要的注释。三.课程设计应完成的工作1.完成程序的编制、调试,并能正确运行;2.完成课程设计说明书的编写,其内容包括(1)封面;(2)任务书;(3)目录;(4)正文:设计目的;总体设计;详细设计;调试分析;总结;(5)参考文献;(6)附录。目录1.设计目的52.总体设计62.1 总62.2 总流程图73.详细设计83.1 函数mycreate流程图3.2 函数mybuy流程图3.3 函数mysave流程图3.4 函数myadd流程

4、图3.5 函数mydelete流程图3.6 函数mylost流程图3.7 函数mydisplayall流程图84.调试分析154.1 Main函数154.1.1 Main函数的测试数据154.1.2 Main函数的测试结果154.2 mycreate 函数164.2.1 mycreate 函数的测试数据164.2.2 mycreat函数的测试结果164.3 mybuy 函数174.3.1 mybuy 函数的测试数据174.3.2 mybuy函数的测试结果174.4 mysave 函数184.4.1 mysave 函数的测试数据184.4.2 mysave函数的测试结果184.5 myadd 函

5、数194.5.1 myadd 函数的写实数据194.5.2 myadd函数的测试结果194.6 mydel函数204.6.1 mydel函数的测试数据204.6.2 mydel函数的测试结果204.7 mylost函数214.7.1 mylost函数的测试数据214.7.2 mylost函数的测试结果214.8 mydisplayall函数224.8.1 mydisplayall函数的测试数据224.8.2 mydisplayall函数的测试结果225.总结23参考文献24附录1 程序清单25附录2 用户使用说明书361.设计目的(1)训练学生灵活应用所学知识,独立完成问题分析,结合C程序设计

6、理论知识,编写程序求解指定问题。 (2)初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;(3)提高综合运用所学的理论知识和方法独立分析和解决问题的能力;(4)训练用系统的观点和软件开发一般规范进行软件开发,巩固、深化学生的理论知识,提高编程水平,并在此过程中培养他们严谨的科学态度和良好的工作作风。2.总体设计2.1 系统结构图全部信息设置与挂失注销旧饭卡添加新饭卡充值消费创建饭卡校园卡管理系统2.2 系统流程图3.详细设计3.1 函数mycreate流程图NYN打开打开文件打开成功输入卡号,姓名,金额合法记录?将记录写入文件,数值增1输入卡号,姓名,金额关闭文件出口结

7、束图3:函数mycreate流程图3.2 函数mybuy流程图3.3 函数mysave流程图3.4 函数myadd流程图3.5 函数mydelete流程图3.6 函数mylost流程图3.7 函数mydisplayall流程图4.调试分析4.1 Main函数测试数据类型测试数据预期结果实测结果合法数据1调用mycreate成功调用2调用mybuy成功调用3调用mysave成功调用4调用myadd成功调用5调用mydel成功调用6调用mylost成功调用7调用mydisplayall成功调用0结束 结束N或n按任意键退出按任意键退出Y或y返回主菜单返回主菜单非法数据9显示“9为非法选项”显示“9

8、为非法选项”4.1.1 Main函数的测试数据4.1.2 Main函数的测试结果4.2 mycreate 函数4.2.1 mycreate 函数的测试数据测试数据类型测试数据预期结果实测结果合法数据输入卡号:1输入卡号输入卡号输入姓名:小李输入姓名输入姓名输入金额:100输入金额输入金额输入挂失信息:1输入挂失信息输入挂失信息N或n按任意键退出按任意键退出Y或y返回主菜单返回主菜单非法数据输入金额:a无法输入无法输入输入挂失信息:a无法输入无法输入4.2.2 mycreat函数的测试结果4.3 mybuy 函数4.3.1 mybuy 函数的测试数据测试数据类型测试数据预期结果实测结果合法数据输

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

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

11、额输入挂失信息:-1输入挂失信息输入挂失信息N或n按任意键退出按任意键退出Y或y返回主菜单返回主菜单非法数据输入金额:a无法输入无法输入输入挂失信息:a无法输入无法输入4.5.1 myadd 函数的写实数据4.5.2 myadd函数的测试结果4.6 mydel函数4.6.1 mydel函数的测试数据测试数据类型测试数据预期结果实测结果合法数据输入卡号:1删除饭卡1删除饭卡1输入卡号:3无此卡无此卡N或n按任意键退出按任意键退出Y或y返回主菜单返回主菜单非法数据输入卡号:a无法输入无此卡4.6.2 mydel函数的测试结果4.7 mylost函数4.7.1 mylost函数的测试数据测试数据类型

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

13、果5.总结对c语言和课程设计的认识:课程设计是把我们所学的理论知识进行系统的总结并应用于实践的良好机会,有利于加强我们用知识理论来分析实际问题的能力,进而加强了我们对知识认识的实践度,巩固了我们的理论知识,深化了对知识的认识,并为走向社会打下一个良好的基础。在这次课程设计中我遇到许多问题和麻烦,得到了老师的帮助和指导,才能够使得这次课程设计顺利的进行下去,另外,在程序调试过程中,也得到很多同学的帮助,给我及时指出错误,提出许多宝贵意见。在此对老师和同学们表示感谢!经历这一周的锻炼,我也比较满意自己的表现。在这过程中我查阅了很多书,学到了很多课堂上没有的东西。很多知识我之前不知道的现在大部分都知

14、道了,不过理解不够深透,,导致在这一周里碰了不少壁!我觉得编程既是一项费时费力但也是有趣的。说它费时费力是因为它繁琐,而有趣是因为我很享受一段段的小程序编成功之后的喜悦,苦尽干来啊。我觉得编程是一件快乐的差事,我想我今后会加把时间学习它,把它学好。通过这次课程设计,使我们更加熟悉的掌握了C语言的运用。帮助我们熟悉了更多C语言的功能,提高了我们的动手能力,学到了许多解决实际问题的宝贵经验同时也挖掘出了我们潜在的能力,使我们对自己更有自信,对编程也更有兴趣。我相信,只要努力、勤奋、坚持不懈,就没有什么做不到的事,不能还没开始就退缩,要勇于拼搏,敢于创新。参考文献1崔武子,李青,李红豫等.C程序设计

15、辅导与实训(第二版)M.北京:清华大学出版社,2009.52崔武子,赵重敏,李青.C程序设计教程(第二版)M.北京:清华大学出版社,2007.6附录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 mydel();void mylost();void mydisplayall();voi

16、d main()char choose=0,yes_no=0;domyprint();printf( );choose=getch();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);de

17、fault:printf(n %c为非法选项!n,choose);printf(n 要继续选择吗(Y/N)?n);doyes_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);printf( | 请输入选项编号(0-7): |n);printf( |-|n);printf( | 1- 创建饭卡 |n);printf(

18、| 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;FILE * fp=NULL;fp=fopen(d:校园卡管理系统JiLu.txt,w);if (fp=NULL)printf(n 打开文件夹失败!n); retu

19、rn;system(cls); /*调用清屏函数。若在TC下运行,改用clrscr()*/printf(n 请输入第一个记录:n);printf( 卡号(用#结束输入):);dogets(temp.num);while(strcmp(temp.num,)=0);printf( 姓名(用#结束输入):);gets(temp.name);printf( 金额(用#结束输入):);scanf(%f,&temp.money);printf( 挂失信息(1有,-1无)(用#结束输入):);scanf(%d,&temp.g);while(temp.num0!=#) fprintf(fp,%15s%15s%

20、15f%15dn,temp.num,temp.name,temp.money,temp.g);i+;printf(n 请输入第%d个记录:n,i);printf( 卡号(用#结束输入):);dogets(temp.num);while(strcmp(temp.num,)=0);printf( 姓名(用#结束输入):);gets(temp.name);printf( 金额(用#结束输入):);scanf(%f,&temp.money);printf( 挂失信息(1有,-1无)(用#结束输入):);scanf(%d,&temp.g);fclose(fp);void mybuy() /*定义买饭的函

21、数*/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.txt,r);if(fp=NULL)printf(n 打开文件失败!n);return;p=record;while(feof(fp)=0)fscanf(fp,%15s%15s%15f%15dn,p-num,p-name,&p-money,&p-g);p+;n+;fclose(fp);if(n=0)(n 文件中无记录!n);retur

22、n;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;elseif(p-moneymoney5.0) printf(请输入金额);scanf(%f,&mtemp);if(p-moneymtemp) printf(Before:%f元n,(p-money);(p-money)=(p-money)-mtemp;printf(After:%f元n,(p-money);if(p-

23、moneymtemp) printf(金额不足,请续钱n);return;fp=fopen(d:校园卡管理系统JiLu.txt,w);if(fp=NULL)printf(n 打开文件失败!n);return;for(p=record;pnum,p-name,p-money,p-g);fclose(fp);void mysave() /*定义续钱的函数*/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:校园卡管理

24、系统JiLu.txt,r);if(fp=NULL)printf(n 打开文件失败!n);return;p=record;while(feof(fp)=0)fscanf(fp,%15s%15s%15f%15dn,p-num,p-name,&p-money,&p-g);p+;n+;fclose(fp);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;printf(请输入金额

25、:);scanf(%f,&mtemp);printf(Before:%f元n,(p-money);(p-money)=(p-money)+mtemp;printf(After:%f元n,(p-money);fp=fopen(d:校园卡管理系统JiLu.txt,w);if(fp=NULL)printf(n 打开文件失败!n);return;for(p=record;pnum,p-name,p-money,p-g);fclose(fp);void myadd() /*定义添加新饭卡的函数*/char c=0;int n=0;struct card temp=0,recordN=0,*p=NULL;

26、FILE * fp=NULL; fflush(stdin);fp=fopen(d:校园卡管理系统JiLu.txt,r);if(fp=NULL)printf(n 打开文件失败!n );p=record;while(feof(fp)=0) fscanf(fp,%15s%15s%15f%15dn,p-num,p-name,&(p-money),&(p-g);p+;n+;fclose(fp);doprintf(n 请输入新添加的卡号:);dogets(temp.num);while(strcmp(temp.num,)=0);printf(n 请输入新添加的姓名: );gets(temp.name);p

27、rintf(n 请输入新添加的金额: );scanf(%f,&temp.money);printf(n 请输入新添加的挂失信息: );scanf(%d,&temp.g);for(p=record;pnum)=0)printf(n 卡号重复,要重新输入吗(Y/N)?);doc=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);fp=fopen(d:校园卡管理系统JiLu.txt,w);if(fp=NULL)printf(n 打开文件失败!n);return

28、;for(p=record;pnum,p-name,(p-money),(p-g);fclose(fp);void mydel() /*定义注销饭卡的函数*/char tempnum8=;int n=0;struct card recordN=0,*p=NULL,*k=NULL;FILE*fp=NULL; fflush(stdin); fp=fopen(d:校园卡管理系统JiLu.txt,r);if(fp=NULL)printf(n 打开文件失败!n);return;p=record;while(feof(fp)=0) fscanf(fp,%15s%15s%15f%15dn,p-num,p-n

29、ame,&p-money,&p-g);p+;n+;fclose(fp);printf(n 请输入要注销的卡号:);gets(tempnum); p=record;for(k=record;knum)=0) break;if(krecord+n)for(p=k;pk+n-1;p+)*p=*(p+1);else printf(n 无此卡!n);fp=fopen(d:校园卡管理系统JiLu.txt,w);if(fp=NULL)printf(n 打开文件失败!n);return;for(p=record;pnum,p-name,p-money,p-g);fclose(fp);void mylost()

30、 /* 定义修改挂失信息的函数*/char c=0;int n=0;struct card *find=NULL,temp=0,record100=0,*p=NULL;FILE*fp=NULL; fflush(stdin);fp=fopen(d:校园卡管理系统JiLu.txt,r);if(fp=NULL)printf(n 打开文件失败!n);return;p=record;while(feof(fp)=0)fscanf(fp,%15s%15s%15f%15dn,p-num,p-name,&p-money,&p-g);p+;n+;fclose(fp);if(n=0)printf(n 文件中无记录

31、!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);fp=fopen(d:校园卡管理系统JiLu.txt,w);if(fp=NULL)printf(n 打开文件失败!n);return;for(p=record;pnum,p-name,p-money,p-g);fclose(fp);void mydisplayall() /*定义显示全部信

32、息的函数*/int n=0;struct card temp=0;FILE*fp=NULL;fp=fopen(d:校园卡管理系统JiLu.txt,r);if(fp=NULL)printf(n 打开文件失败!n); return;system(cls);printf( 卡号 姓名 金额 挂失信息n);while(feof(fp)=0) fscanf(fp,%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

33、+;if(n=0) printf(n 文件中无记录!n);else printf(n 文件中共有%d个记录!n,n);fclose(fp);附录2 用户使用说明书1.使用方法:(1)打开并运行程序。(2)进入主菜单后,按“1”创建饭卡;需要输入卡号,姓名,金额,挂失信息(1代表没挂失,-1代表已挂失)。(3)按“2”买饭;此卡在没有挂失的情况下才能买饭,且金额必须大于5元,当金额不足5元时将无法买饭,需要续费;当金额大于5元时可以买饭,将按输入金额从饭卡中扣除,但如果减去输入的金额后余额不足5元也将无法买饭。(4)按“3”续钱;将按输入的续钱金额进行续钱。(5)按“4”添加新饭卡;需要输入要添

34、加的卡号,姓名,金额,挂失信息(1代表没挂失,-1代表已挂失)。(6)按“5”注销旧饭卡;注销后该饭卡的全部信息将被删除。(7)按“6”设置与解除挂失;再次可以更改挂失信息,挂失后该饭卡将不能买饭。(8)按“7”显示全部信息;在此将显示所有饭卡的全部信息。(9)按“0”结束程序。(10)另外,在完成每项任务时将有“是否继续”的选项,输入“Y”或“y”将返回主菜单即可进行其他操作,输入“N”或“n”将结束程序。(11)按任意键将退出程序。2.注意事项:在使用过程中要谨防病毒,防止个人信息被盗取甚至更改。铜 陵 学 院 数 学 与 计 算 机 科 学 系 C语言程序设计 课程设计成绩评定表班级: 应数本 学生姓名: 指 导 教 师 评 审 意 见评价内容具 体 要 求权重评 分加权分调 研论 证能独立查阅文献,收集资料;能制定课程设计方案和日程安排。0.15432工作能力态 度工作态度认真,遵守纪律,出勤情况是否良好,能够独立完

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号