C语言饭卡管理系统课程设计报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1. 问题描述...................................................................................................2
2. 功能要求...................................................................................................2
fclose(fp); do {
printf("\n 请输入第%d 个记录:\n\n",i); printf(" 卡号:");scanf("%s",&temp.num); if(myexist(temp.num)!=1) {
fp=fopen("D:\\饭卡管理系统\\files\\card.dat","a"); printf(" 姓名:"); scanf("%s",&temp.name); printf(" 充值钱数:"); scanf("%f",&temp.yu);
( 2 ) 设计各模块的算法,这是逐步细化的过程。 1,建立饭卡模块,函数名 mycreat。
在该模块中输入学生的卡号,姓名,充值钱数,并将它们存放在文件中;每输入 一组数据,记录数增 1。 建立饭卡的程序设计如下:
void mycreat() { int i=1; struct card temp={0};
图 1 初始的主模块
图 2 细分后的主模块图
2.数据结构
例如: struct card { char name[10],num[10]; float yu,sum; int guashi; }; num[10]表示学号放在一维数组中,name[10]表示姓名放在一维数组中,yu 表示余额,sum
表示消费金额的累积,guashi 表示挂失的情况。
结束语................................................................................... 错误!未定义书签。
附录Ⅰ 程序清单................................................................................................................23
第 1 页 共 36 页
第 1 部分 课程设计题目与要求
1.问题描述
学校等大单位集体食堂买饭时间非常集中,这时如果食堂使用饭票卖饭,大家
就得排长队等候,而且还要经过先去买饭票等麻烦的经历。因此食堂提出使用计算
机进行管理,食堂用饭卡卖饭,不仅提高卖饭速度,还易于 管理,减少不必要的麻烦,同时减轻管理人员的工作负担。 请输入选项编号(0~7):
第 12 页 共 36 页
FILE *fp=NULL; char yes_no='\0'; temp.guashi=0; temp.sum=0; system("cls"); fp=fopen("D:\\饭卡管理系统\\files\\card.dat","a"); if(fp==NULL) {printf("\n\n 饭 卡 文 件 丢 失 ! 按 任 意 键 继 续...");getchar();exit(0);} else {
4,作为菜单,应该给用户一个正常的出口,即满足一定条件时退出程序。 为了给用户提供方便,我们采用人机对话形式,当用户选择某一菜单项后,系统立 即完成相应的功能,然后询问用户是否需要继续选择,只要用户继续选择(输入 y 或 Y),主菜单就会在屏幕上反复出现,只有当用户不再选择(输入 N 或 n),才 可退出主菜单。除此之外,为了使用方便,在主菜单中还特设 0 选项,选择它也能 正常退出程序。为了实现上述功能,有关语句都应放在 do-while 循环体中。 选择选项的程序段可设计成如下形式:
5.测试与调试..................................................................................................... 22
第 3 部分 课程设计总结................................................................... 错误!未定义书签。
fprintf(fp,"%10s%10s%20.2f%4d%20.2f\n",temp.num,temp.name,temp.y u,temp.guashi,temp.sum);
fclose(fp); i++; } else printf(" 卡号重复!\n"); printf("\n 请问您要继续吗?"); do { yes_no=getchar();
3.
算法设计...................................................................................................4
4.程序代码设计................................................................................................. 12
1.总体设计........................................................................................................... 3
2.数据结构........................................................................................................... 3
choose=getchar(); switch(choose) {
case '1':mycreat();break; case '2':mybuy();break; case '3':myaddyu();break; case '4':myaddcard();break; case '5':myzhuxiao();break; case '6':mysetguashi();break; case '7':mynew();break; case '0':{printf("\n 非 常 感 谢 使 用 本 软 件 ! \n 已 正 常 退 出 , 按 任 意 键 结 束....");exit(0);}break; default :{printf("\n 该选项非法!");}break; }
图 9 设置与解除挂失模块流程图 第 10 页 共 36 页
图 10 创新功能模块流程图 第 11 页 共 36 页
4.程序代码设计
采用模块化的思想,按照“自顶向下,逐步细化”的原则设计算法。 (1) 菜单的设计
1, 本例需要输出主菜单选择界面,简单菜单的制作可利用 printf 函数实 现。用 printf 函数将菜单项逐一打印到屏幕上,界面中的边框可以通过多个 printf 函数输出的“|”和“-”拼接起来。
在主菜单中选择 5,注销旧饭卡。
在主菜单中选择 6,要求用户输入饭卡号和挂失信息,然后更新该饭卡的挂失信息。
在主菜单中选择 7,
在主菜单中选择 0,显示“感谢使用本软件!已正常退出,按任意键结束。”按任
意键退出本系统。
第 2 页 共 36 页
第 2 部分 《饭卡管理系统》的设计与功能 实现
1.总体设计
个人总结............................................................................... 错误!未定义书签。
个人总结............................................................................... 错误!未定义书签。
3. 任务分工.................................................................错误!未定义书签。
第 2 部分 《饭卡管理系统》的设计与功能实现........................................................... 3
附录Ⅱ 用户使用说明书....................................................................................................34
参考文献..............................................................................................................................35
第 13 页 共 36 页
建立新饭卡,否则返回主菜单。
2,买饭设计模块,函数名 mybuy.
void mybuy()
system("cls");
fp=fopen("D:\\饭卡管理系统\\files\\card.dat","r");
第 3 页 共 36 页
3. 算法设计
图 3 主函数流程图 第 4 页 共 36 页
图 4 建立饭卡模块流程图 第 5 页 共 36 页
图 5 买饭模块流程图 第 6 页 共 36 页
图 6 续钱模块流程图 第 7 页 共 36 页
图 7 添加新饭卡模块流程图 第 8 页 共 36 页
图 8 注销旧饭卡模块流程图 第 9 页 共 36 页
在主菜单中选择 2,要求用户输入饭卡号、饭费,然后系统自动从该人的饭卡中减
去饭钱,并分别显示买饭前后的金额,如果原来饭卡中的金额不足 5 元,则不能买
饭,而且显示“金额不足够,请续钱!”,如果挂失信息为真,则显示“本卡已冻
结!”。
在主菜单中选择 4,添加新饭卡,这时要求新饭卡号和已有的饭卡号不能重号。
}while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n'); }while(yes_no=='Y'||yes_no=='y');
} }
在文件夹中寻找已输入的卡号用函数 myexist 系统自动用循环将文件中读入的学 号一一做比较。 用 fp=fopen("D:\\饭卡管理系统\\files\\card.dat","a");追加打开文件,输入学 生的姓名,充值钱数,并将它们存放在文件中;每输入一组数据,记录数增 1。 用 do---while 语句实现人机对话的功能,机器问用户是否继续,如果继续就接着
课程设计报告
课程名称: 项目名称: 学 院: 姓 名: 学 号: 指导教师:
C 语言程序设计课设 饭Βιβλιοθήκη Baidu管理系统
专 业:
成 绩:
目录
第 1 部分 课程设计题目与要求..........................................................................................2
1—建立饭卡文件
2—买饭
3—续钱
2.功能要求
4—添加新饭卡 5—注销旧饭卡
6—设置与解除挂失
重复显示如图所示的主菜单,在主菜单中选择任意一项,均 7—创新功能
实现相应功能。
0—退出系统
在主菜单中选择 1,建立名为 card.dat 的文件,并在其中
添加若干人的饭卡号、姓名、金额、挂失信息,要求饭卡号是唯一的。
2, 菜单应根据用户的选择做出不同的反应,因此需要使用分支结构实现选 择选项的功能。根据题意,主菜单含有 8 个菜单选项,属于多分支条件判断, 使用带 break 和 switch 语句最为合适。
3, 因为本例具有重复选择主菜单选项的功能,因此需要使用循环结构。在 本例中菜单至少要显示一次,随后才判断是否继续选择主菜单,所以使用 do-while 循坏比较好,因为 do-while 循坏是先执行循环体,然后再判断表达式。
相关文档
最新文档