C语言课程设计-学生饭卡管理系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

课程设计说明书No1沈阳大学1.课程设计的目的随着网络技术的发展,各种电子设备在人群中普及开来,人们的生活方式也发生了很大的变化。现金付款逐渐被方便、安全、卫生的刷卡消费所代替。例如校园餐厅的就餐卡的使用就让学生在方便的同时最大限地减少了疾病的传播。这就需要一个操作系统来管理餐卡数据。于是尝试用C语言编写了一个小的餐厅餐卡管理系统,希望对餐厅有所帮助,也可以参考使用。本程序一共有六个选项,可以进行添加用户、查询用户、充值、消费、删除用户、退出系统等功能。能够实现学生在餐厅充值、刷卡消费、余额查询等活动。操作界面简洁,操作方法简单实用,足以帮助餐厅管理学生消费。程序用了条件、循环、函数、结构体等知识点,综合了链表和文件的打开和保存编写的。本程序可运用于小的餐厅餐卡管理软件。本软件运用菜单实现交互式管理,用户轻松的按键既可实现对软件的操作,操作简单易懂,功能丰富,可以很好的满足餐厅工作人员的需要。课程设计说明书No2沈阳大学2.设计方案论证2.1设计思路建立一个函数,用来保存学生的学号、姓名、电话号码、班级、餐卡余额、密码等信息,完成餐厅就餐卡的功能。主函数可以调用六个子函数,分别完成添加用户、查询用户、充值、消费、删除用户、退出系统六个功能。在主函数中可以1、2、3、4、5、6数字键分别可以执行某个功能模块。主要功能模块即如图1所示:图1.就餐卡主要功能模块2.2程序设计①main()主函数:主函数十分简洁,定义了本程序用到的各个变量及函数,然后读取文件后进入主菜单,显示函数各功能。其运行的流程图如图2所示。图2.就餐卡主函数运行流程图添加用户查询用户删除用户充值收费主菜单退出系统开始读取文件正确读取?输出主菜单结束YN课程设计说明书No3沈阳大学②select()主菜单[1],主菜单链接各个分菜单,其功能即如图1所示。addnewcard(),添加用户函数。searchcard(),查询用户函数。addbalance(),充值函数函数。charge(),收费函数函数。deletecard(),删除用户函数。exit(0),退出系统函数。用户可以键入相应数字进入各个功能的操作界面。同时设置一个断点,即当返回值为“6”时运行exit(0)函数来结束程序,以免造成死循环。其运行流程图如图3所示。Y图3.就餐卡菜单函数流程图开始输入ii=1?i=2?i=3?i=4?i=5?结束NYYYYNNN调用addnewcard()调用searchcard()调用addbalance()调用charge()调用deletecard()YN课程设计说明书No4沈阳大学③newrecord()添加用户菜单。餐厅管理人员可以按需要根据提示来直接添加学生用户,每次添加完毕系统会询问“是否继续添加?(Y/N)”当返回值为“n”或不是系统要求输入数值时,系统自动保存数据并返回主菜单。④searchcard()查询用户[2]。在主菜单输入“2”时自动进入查询学生信息,每次当输入卡号不存在时系统自动警告没有该用户。查询结束按任意键返回主菜单。其流程图如图4所示。⑤addbalance()、charge(),充值/收费模块[3]。这两个模块十分相似餐厅管理人员只要输入所要充值学生的学号,就可以对相应学生充值或者扣除相应金额,操作十分简单。充值或扣费结束后系统自动显示操作后该学生信息并自动保存。餐卡充值运行流程图如图5所示。收费流程图类似充值,不再重复。⑥deletecard()删除用户模块[5]。餐卡管理人员可以通过该模块选择删除需要注销的就餐卡。如果餐卡内余额不为零,系统则提示返还相应金额给学生。图4.查询用户流程图图5.充值流程图开始输入学号nm=student[i].cardnumberi=0i=i+1m=n输出该学生信息结束YN输入学号n开始m=student[i].cardnumberi=0i=i+1m=n输出该学生信息输入学号nNY输入添加金额k结束student[i].balance+=k输出该学生信息课程设计说明书No5沈阳大学2.3.源程序#includestdio.h#includestdlib.h#includestring.h#includeconio.h#includemath.hstructrecord{charcardnumber[10];charname[20];charphone[20];charclassn[40];charpassword[10];intbalance;}student[500];intnum=0;/*外部变量num为文件中的纪录数*/FILE*fp;voidselect();/*主菜单*/voidaddnewcard();/*添加用户*/voidsearchcard();/*查询用户*/voidreadfile();/*读取文件*/voiddeletecard();/*删除用户*/voidaddbalance();/*充值*/voidpassword();/*密码*/voidcharge();/*收费*/voidmain()/*主函数*/{readfile();/*读取文件*/while(1){select();/*主菜单*/}}voidreadfile()/*导入文件,打开欢迎进入界面*/{if((fp=fopen(student.bin,rb))==NULL){if((fp=fopen(student.bin,wb))==NULL){exit(0);}else{课程设计说明书No6沈阳大学getch();return;}exit(0);}fseek(fp,0,2);if(ftell(fp)0)/*文件非空*/{rewind(fp);for(num=0;!feof(fp)&&fread(&student[num],sizeof(structrecord),1,fp);num++);return;}}voidselect()/*主菜单*/{charchoic;system(cls);printf(\n\t\t********************主菜单********************);printf(\n\t\t***********1-添加用户2-查询用户************);printf(\n\t\t***********3-充值4-消费************);printf(\n\t\t***********5-删除用户6-退出系统************);printf(\n\t\t************************************************);printf(\n\t\t请选择:);choic=getch();switch(choic){case'1':addnewcard();break;case'2':searchcard();break;case'3':addbalance();break;case'4':charge();break;case'5':deletecard();break;case'6':exit(0);default:select();}}voidaddnewcard()/*添加用户*/{printf(\n\t\t***************请输入学生信息***************\n);printf(\n\t\t输入学号:);scanf(%s,&student[num].cardnumber);printf(\n\t\t输入姓名:);scanf(%s,&student[num].name);printf(\n\t\t输入电话号码:);scanf(%s,&student[num].phone);课程设计说明书No7沈阳大学printf(\n\t\t输入班级:);scanf(%s,&student[num].classn);printf(\n\t\t输入密码:);scanf(%s,&student[num].password);printf(\n\t\t输入添加金额:);scanf(%d,&student[num].balance);num++;printf(\n\t\t是否继续添加?(Y/N):);if(getch()=='y')addnewcard();return;}voidsearchcard()/*查询用户*/{intmark=0;inti;inta=0;printf(\n\t\t*****************按学号查找*****************\n);charcardnumber[10];printf(\n\t\t请输入学号:);scanf(%s,cardnumber);for(i=0;inum;i++){if(strcmp(student[i].cardnumber,cardnumber)==0){printf(\n\t\t**************以下是您查找的学生信息**********);printf(\n\t\t学号:%s,student[i].cardnumber);printf(\n\t\t姓名:%s,student[i].name);printf(\n\t\t电话:%s,student[i].phone);printf(\n\t\t班级:%s,student[i].classn);printf(\n\t\t余额:%d,student[i].balance);printf(\n\t\t密码:%s,student[i].password);printf(\n\t\t************************************************);printf(\n\t\t按任意键返回主菜单:);mark++;getch();return;}}if(mark==0){printf(\n\t\t没有改学生的信息);printf(\n\t\t按任意键返回主菜单);getch();return;课程设计说明书No8沈阳大学}}voidaddbalance()/*充值*/{inti;intm;inta=0;printf(\n\t\t***************按学号添加金额***************\n);charcardnumber[10];printf(\n\t\t请输入学号:);scanf(%s,cardnumber);for(i=0;inum;i++){if(strcmp(student[i].cardnumber,cardnumber)==0){printf(\n\t\t*************以下是您所选择学生信息***********);printf(\n\t\t学号:%s,student[i].cardnumber);printf(\n\t\t姓名:%s,student[i].name);printf(\n\t\t电话:%s,student[i].phone);printf(\n\t\t班级:%s,student[i].classn);printf(\n\t\t余额:%d,student[i].balance);printf(\n\t\t密码:%s,student[i].password);printf(\n\t\t************************************************);printf(\n\t\t是否添加金额?(y/n));if(getch()=='y'){printf(\n\t\t请输入你要添加金额:);scanf(%d,&m);printf(\t\t确认添加%d元给%s(y/n)?,m,student[i].name);if(getch()=='y'){student[i].balance=student[i].balance+m;}printf(\n\t\t添加金额成功);}printf(\n\t\t********以下是您选择学生添加金额后信息*******

1 / 18
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功