




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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();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.money,temp.g);i+;printf(n 请输入第%d个记录:n,i);printf( 卡号(用#结束输入):);dogets(temp.num);while(strcmp(temp.num,)=0);printf( 姓名(用#结束输入):);gets();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();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.money,&temp.g);printf(%15s%15s%15f%15dn,temp.num,,temp.money,temp.g);n+;if(n=0) printf(n 文件中无记录!n);e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 股权质押续展合同样本
- 2025年河北省石家庄市中考物理模拟试卷(含解析)
- 收入管理收入审核具体要求课件
- 苗木定制服务合同
- 铁路市场营销铁路货运市场细分的标准课件
- 中国与美国的区别
- 与小学生讲党史课件
- 股权退出转让合同书
- 襄阳汽车职业技术学院《工程设计原理》2023-2024学年第二学期期末试卷
- 嘉善县2024-2025学年数学五年级第二学期期末综合测试模拟试题含答案
- 小区物业消防安全实施方案
- 混凝土台阶工程施工方案
- 【八年级下册历史】单元测试 第一、二单元测试题
- 《微观经济学》试题及参考答案(三)
- 智能人行通道速、摆闸建筑施工安装布线调试方案
- 邮政金融主任竞聘
- 纺织材料创新与应用
- 防火巡查、检查和火灾隐患整改制度(2篇)
- 茶叶销售课件教学课件
- 图文转换-图表(小题训练)(解析版)-2025年部编版中考语文一轮复习
- 与数列相结合的概率综合问题-2022年高考数学二轮复习之大题专练(解析版)
评论
0/150
提交评论