1.课程设计的目的。
随着网络技术的发展,各种电子设备在人群中普及开来,人们的生活方式也发生了很大的变化。现金付款逐渐被方便、安全、卫生的刷卡消费所代替。例如校园餐厅的就餐卡的使用就让学生在方便的同时最大限地减少了疾病的传播。
这就需要一个操作系统来管理餐卡数据。于是尝试用c语言编写了一个小的餐厅餐卡管理系统,希望对餐厅有所帮助,也可以参考使用。
本程序一共有六个选项,可以进行添加用户、查询用户、充值、消费、删除用户、退出系统等功能。能够实现学生在餐厅充值、刷卡消费、余额查询等活动。操作界面简洁,操作方法简单实用,足以帮助餐厅管理学生消费。
程序用了条件、循环、函数、结构体等知识点,综合了链表和文件的打开和保存编写的。本程序可运用于小的餐厅餐卡管理软件。本软件运用菜单实现交互式管理,用户轻松的按键既可实现对软件的操作,操作简单易懂,功能丰富,可以很好的满足餐厅工作人员的需要。
2.设计方案论证。
2.1设计思路。
建立一个函数,用来保存学生的学号、姓名、**号码、班级、餐卡余额、密码等信息,完成餐厅就餐卡的功能。主函数可以调用六个子函数,分别完成添加用户、查询用户、充值、消费、删除用户、退出系统六个功能。在主函数中可以数字键分别可以执行某个功能模块。
主要功能模块即如图1所示:
图1. 就餐卡主要功能模块。
2.2程序设计。
main ()主函数:
主函数十分简洁,定义了本程序。
用到的各个变量及函数,然后读取文件后进。
入主菜单, 显示函数各功能。
其运行的流程图如图2所示。
图2. 就餐卡主函数运行流程图。
select()主菜单[1],主菜单链接各个分菜单,其功能即如图1所示。
addnewcard(),添加用户函数。
searchcard(),查询用户函数。
addbalance(),充值函数函数。
charge(),收费函数函数。
deletecard(),删除用户函数。
exit(0), 退出系统函数。
用户可以键入相应数字进入各个功能的操作界面。同时设置一个断点,即当返回值为“6”时运行exit(0)函数来结束程序,以免造成死循环。其运行流程图如图3所示。
y 图3.就餐卡菜单函数流程图。
newrecord()添加用户菜单。餐厅管理人员可以按需要根据提示来直接添加学生用户,每次添加完毕系统会询问“是否继续添加?(y/n)”当返回值为“n”或不是系统要求输入数值时,系统自动保存数据并返回主菜单。
searchcard()查询用户[2]。在主菜单输入“2”时自动进入查询学生信息,每次当输入卡号不存在时系统自动警告没有该用户。查询结束按任意键返回主菜单。其流程图如图4所示。
addbalance()、charge(),充值/收费模块[3]。这两个模块十分相似餐厅管理人员只要输入所要充值学生的学号,就可以对相应学生充值或者扣除相应金额,操作十分简单。充值或扣费结束后系统自动显示操作后该学生信息并自动保存。
餐卡充值运行流程图如图5所示。收费流程图类似充值,不再重复。
deletecard()删除用户模块[5]。餐卡管理人员可以通过该模块选择删除需要注销的就餐卡。如果餐卡内余额不为零,系统则提示返还相应金额给学生。
图4.查询用户流程图。
图5.充值流程图。
2.3.源程序。
#include <>
#include <>
#include <>
#include <>
#include <>
struct record
char cardnumber[10];
char name[20];
char phone[20];
char classn[40];
char password[10];
int balance;
student[500];
int num=0外部变量num为文件中的纪录数 */
file *fp;
void select主菜单 */
void addnewcard添加用户*/
void searchcard查询用户*/
void readfile读取文件*/
void deletecard删除用户*/
void addbalance充值 */
void password密码 */
void charge收费 */
void main主函数 */
readfile读取文件*/
while (1)
void readfile导入文件,打开欢迎进入界面*/
if((fp=fopen(""rb"))null)
fseek(fp,0,2
if (ftell(fp)>0文件非空*/
void select主菜单 */
char choic;
system("cls");
printf("\t\t主菜单。
printf("\t\t1-添加用户 2-查询用户。
printf("\t\t3- 充值 4- 消费。
printf("\t\t5-删除用户 6-退出系统。
printf("\t\t
printf("\t\t请选择:")
choic=getch();
switch (choic)
void addnewcard添加用户*/
printf("\t\t请输入学生信息n");
printf("\t\t输入学号:")
scanf("%s",&student[num].cardnumber);
printf("\t\t输入姓名:")
scanf("%s",&student[num].name);
printf("\t\t输入**号码:")
scanf("%s",&student[num].phone);
printf("\t\t输入班级:")
scanf("%s",&student[num].classn);
printf("\t\t输入密码:")
scanf("%s",&student[num].password);
printf("\t\t输入添加金额:")
scanf("%d",&student[num].balance);
num++;
printf("\t\t是否继续添加?(y/n):"
if (getch()=y')
addnewcard();
return;
void searchcard查询用户 */
int mark=0;
int i;
int a=0;
printf("\t\t按学号查找n");
char cardnumber[10];
printf("\t\t请输入学号:")
scanf("%s",cardnumber);
for(i=0;i {
if (strcmp(student[i].cardnumber,cardnumber)==0)
printf("\t\t以下是您查找的学生信息。
printf("\t\t学号: %s",student[i].cardnumber);
printf("\t\t姓名: %s",student[i].name);
printf("\t\t**: %s",student[i].phone);
printf("\t\t班级: %s",student[i].classn);
c语言饭卡管理系统课程设计报告
课程设计报告。课程名称c语言程序设计课设。项目名称饭卡管理系统。学院专业 姓名。学号。指导教师成绩。学校等大单位集体食堂买饭时间非常集中,这时如果食堂使用饭票卖饭,大家就得排长队等候,而且还要经过先去买饭票等麻烦的经历。因此食堂提出使用计算机进行管理,食堂用饭卡卖饭,不仅提高卖饭速度,还易于管理,减...
C语言课程设计 学生管理系统
计算机程序设计 c语言 课程设计报告。题目 学生管理系统。学院 专业 班级 姓名 指导教师 设计日期 2013年 6月 24日。一 概述 日常生活中,希望对每个学生的姓名,学号,年龄,各科成绩等各项内容进行汇总,使用一个简单的c语言程序对这些内容可以惊醒编辑,修改等,方便了对学生的管理工作。二 概要...
C语言课程设计 学生学籍管理系统
目录。一 分析系统功能,绘制系统功能结构框架图 1 1.1 分析系统功能 1 1.2 结构框架图 1 二 程序 以及界面形式 2 2.1程序 如下 2 2.2 界面形式 7 三 使用说明 7 四 日志 9 五 心得体会 12 六 参考文献 12 1 用户进入主菜单后,就会在看到,菜单选项中添加有系统...