C语言课程设计报告 饭卡管理程序_第1页
C语言课程设计报告 饭卡管理程序_第2页
C语言课程设计报告 饭卡管理程序_第3页
C语言课程设计报告 饭卡管理程序_第4页
C语言课程设计报告 饭卡管理程序_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言课程设计报告饭卡管理程序完成日期:2009年12月【题目描述】该程序为饭卡管理程序,具有下列功能:(1) 录入某位持卡人的基本信息。教师:职工号、姓名、院系、金额;学生:学号、姓名、院系、金额;随机分配一个密码,分配一个卡号。(2) 给定卡号,显示此卡的基本信息;(3) 给定卡号,修改密码或查询密码;(4) 给定卡号,修改持卡人信息;(5) 给定卡号,查询余额或加钱; (6) 给定卡号,输入密码后,若余额充足即可消费;(7) 挂失处理;给定卡号或职工号(学号)等信息进行挂失处理,挂失处理后能查到该卡号,但显示“该卡已挂失”信息。(8) 删除处理;给定卡号或职工号(学号),对该卡进行删除处

2、理;删除处理后无法找到该卡号。(9) 提供一些统计各类信息的功能。可统计当前教师、学生持卡人数;当前已挂失卡卡号;当前卡中余额少于10元的卡号,并显示其余额。【用户文档】应用程序功能详细说明1、进入操作菜单。按照菜单提示选择需要的操作。选择09号,若超出该范围,系统将提示警告信息,且切回到主菜单。若需退出系统选择0。每项操作执行完毕,将出现是否返回原菜单的提示信息,选择是将返回主菜单,选择否将返回该项操作的选择菜单。2、录入持卡人信息:该程序可分别管理教师学生各100人。持卡人分教师卡和学生两种,进入录入界面后,用户按菜单选择卡的类别。之后按照程序提示的文本格式及长度要求,按顺序依次输入教师号

3、(学生号)、姓名、院系及金额。超出允许的范围,系统可能出现运行错误。查询饭卡基本信息:进入查询界面,输入卡号,即可显示持卡人的卡号、姓名、教师号(学生号)、院系、卡上金额。若输入卡号不存在,系统将提示卡号错误。修改或查询密码:进入密码编辑界面,输入卡号,将会显示出命令选择菜单。根据提示选择希望进行的操作。密码修改成功后,系统会给出密码修改成功信息。若输入卡号不存在,系统将提示卡号错误。修改个人信息:进入修改界面输入卡号,系统将逐项询问是否要修改该项信息,选择是即可修改,选择否,将跳转到下一条信息修改。修改信息的格式及长度要求与录入相同。若输入卡号不存在,系统将提示卡号错误。饭卡加钱或查询余额:

4、进入余额操作界面,输入卡号,根据屏幕提示选择需要的操作。加钱成功后系统会显示成功操作信息。若输入卡号不存在,系统将提示卡号错误。处理消费信息:进入消费界面,按照提示输入卡号以及消费金额,系统会提示输入密码。若密码正确,则显示消费成功信息,并从账户中扣除相应余额,若密码错误,系统将警告密码错误,并返回主菜单。若消费金额超出余额范围,则系统提示余额不足信息,消费不成功并返回主菜单。若输入卡号不存在,系统将提示卡号错误。挂失:进入挂失界面,根据系统提示选择输入卡号或输入教师号(学生号)进行操作。若正确输入相应卡号系统将确认是否挂失,选择是则挂失成功。挂失后若进行以上各项操作以及删除操作,系统均将提示

5、已挂失信息,并无法进行操作。若输入卡号不存在,系统将提示卡号错误。删除:进入删除界面,根据菜单提示选择输入卡号还是教师号(学生号),输入相应号码,系统将询问是否要删除该号码。选择是,则提示该卡删除成功,选择否,将返回主菜单。若输入的号码不存在,系统将提示号码错误并返回主菜单。删除后,该卡在系统中将不能被查出。统计其他信息:进入统计界面,根据菜单选择需要进行哪项统计。选择1,将统计出当前教师及学生的持卡人数;选择2,将统计出当前所有挂失卡卡号;选择3,将统计出当前卡中余额不足10元的卡号及相应余额。应用程序运行环境的要求或Win-tc环境下均可运行。应用程序的安装与启动方法将程序源代码置入或Wi

6、n-tc中,运行程序。或直接双击运行.exe格式的可执行文件运行该程序。程序的界面、交互方式和操作方法以下是程序运行后的主菜单操作界面。按照系统的询问,选择需要的操作。程序运行过程中输入命令完毕需键入回车键确认。输入数据类型、格式和内容限制教师及学生的个人信息属于结构体型数据;菜单选择项:整型数据,只可输入系统提供的选项代号;确认选项:字符型数据,大小写均可,只可输入Y或N;教师号(学生号):整型数据,只可输入介于1000至9999间的整型数据;姓名:字符型一维数组,姓氏与名字之间用空格隔开,少于20个字符;院系:字符型一维数组,院与系之间可用空格隔开,少于50个字符;金额:单精度实型数据,精

7、确到分,可输入介于至间的数据;卡号、密码:整型数据,介于1000至9999之间随机产生。应用程序运行中,用户需要使用的交互命令名称、功能和格式的详细解决和示例数字选择交互命令。以菜单为例,在操作界面中选下需要的操作所对应的数字,按回车键,即可进入相应的操作界面。Y、N选择交互命令。 当系统询问否是,选择Y,键入回车即为是,选择N键入回车即为否。如上图,选择Y回车,即返回主菜单;选择N回车即不返回主菜单,继续执行该项操作。【技术文档】程序整体结构以及各模块功能描述程序整体分为10个模块。分别为:菜单模块函数原型:void displayMenu();函数功能:显示并输出主菜单;无返回值。注册信息

8、模块函数原型:void registing(tea T,stu S);函数功能:输入持卡人基本信息;无返回值。i持卡人身份选项,用于选择持卡人身份;x用于记录程序中中的字符量。查询模块函数原型:void searchInfo(tea T,stu S);函数功能:查询持卡人基本信息;无返回值。number卡号,用于输入卡号并在程序中查找该卡号;flag用于判断该函数操作是否完毕; i教师循环控制变量; j学生循环控制变量。密码操作模块函数原型:void editpassword(tea T,stu S);函数功能:查询或修改密码;无返回值。c功能选项,用于选择修改密码还是查询密码; number

9、卡号,用于输入卡号并在程序中查找该卡号; flag用于判断该函数操作是否完毕; i教师循环控制变量; j学生循环控制变量。信息修改模块函数原型:void editinfo(tea T,stu S);函数功能:修改持卡人个人信息;无返回值。number卡号,用于输入卡号并在程序中查找该卡号;flag用于判断该函数操作是否完毕; i教师循环控制变量; j学生循环控制变量;decide用于确定是否进行该项操作。余额操作模块函数原型:void editmoney(tea T,stu S);函数功能:饭卡加钱或查询余额;无返回值。c功能选项,用于选择加钱还是查询余额; number卡号,用于输入卡号并在

10、程序中查找该卡号; flag用于判断该函数操作是否完毕; i教师循环控制变量; j学生循环控制变量; money用于记录函数中要操作的钱数。消费模块函数原型:void editmealinfo(tea T,stu S);函数功能:处理消费信息;无返回值。number卡号,用于输入卡号并在程序中查找该卡号; money金额,用于输入需要消费的金额;flag用于判断该函数操作是否完毕; i教师循环控制变量; j学生循环控制变量;password函数中用于记录密码。挂失模块函数原型:void reportloss(tea T,stu S);函数功能:账户挂失注册;无返回值。c功能选项,用于选择输入卡

11、号还是教师号(学生号);i教师循环控制变量;j学生循环控制变量; number号码,用于输入号码并在程序中查找是卡号还是教师号(学生号);decide确认选择,用于确认是否确实要挂失;flag用于判断该函数操作是否完毕。删除模块函数原型:void deleterecord(tea T,stu S);函数功能:删除账户;无返回值。c功能选项,用于选择输入卡号还是教师号(学生号); number号码,用于输入号码并在程序中查找是卡号还是教师号(学生号);tn教师卡数,用于程序中记录教师卡数量;sn学生卡数,用于程序中记录学生卡数量;i教师循环控制变量;j学生循环控制变量;k循环控制变量,用于使教师

12、及学生卡号注销的循环中;decide确认选择,用于确认是否确实要挂失;flag用于判断该函数操作是否完毕。统计模块函数原型:void countotherinfo(tea T,stu S);函数功能:统计持卡人数、统计挂失卡信息、统计余额不足卡信息;无返回值。i教师循环控制变量;j学生循环控制变量;c功能选项,用于程序中选择想要统计的内容。各模块的主要算法和数据结构解释1)主函数结束开始执行对应函数choice=19清屏return0choice!=0 N Y N Y开始菜单模块输出主菜单结束 3)信息注册模块结束输入学生信息输入教师信息开始i=2i=1 N Y N Y 4)信息查询模块fla

13、g=0结束提示号码错误j+输出学生信息number=scnumberjsn0jflag=0i+number=tcnumberitn开始0i N Y N 输出教师信息 Y N Y N Y N Y N Y5)密码操作模块结束输出号码错误输出密码输入新密码开始c=2flag=0c=1 N Y N Y N Y 6)信息修改模块flag=0结束提示号码错误j+输入学生信息number=scnumberjsn0jflag=0i+number=tcnumberitn开始0i N Y N 输入教师信息 Y N Y N Y N Y N Y 7)余额操作模块c=1 开始 Nc=2输入卡号 Y Y Y 输入卡号 输

14、出加钱金额 输出卡中余额flag=0结束输出号码错误 N Y 8)消费模块flag=0结束提示号码错误j+输入消费金额及密码number=scnumberjsn0jflag=0i+number=tcnumberitn开始0i N Y N 输入消费金额及密码 Y N Y N Y N Y N Y 9)挂失模块结束loss=1输入学生号或教师号c=2输入卡号loss=1开始c=1 N Y N Y 10)统计模块输出余额不足卡卡号及余额卡号结束输出挂失卡卡号输出教师卡及学生卡数量开始c=3c=2c=1 N Y N Y N Y选用的测试数据及测试结果信息注册测试结果如下:信息查询测试结果如下:密码修改测

15、试结果如下:密码查询测试结果如下:信息修改测试结果如下:加钱测试结果如下:查询余额测试结果如下:消费测试结果如下:挂失测试结果如下:删除测试结果如下:输入号码错误测试结果如下:挂失后查询基本信息测试结果如下:程序运行环境以及有关信息该程序在windows XP操作系统中运行成功,在此环境下运行或Win-tc写入源代码均可。或直接运行.exe格式的可执行文件。程序源代码清单#include /*I/O函数*/#include /*字符串函数*/#include /*其它说明*/#include /*屏幕操作函数*/int sn=0; /*学生卡人数初始化*/int tn=0; /*教师卡人数初始

16、化*/typedef struct student /*定义学生卡数据结构*/ int snumber; /*学号*/ int scnumber; /*学生卡号*/ char sname20; /*学生姓名数组*/ char scollege50; /*学生院系数组*/ float smoney; /*学生卡余额*/ int spassword; /*学生卡密码*/ int sloss; /*学生卡挂失变量*/stu;typedef struct teacher /*定义教师卡数据结构*/ int tnumber; /*教师号*/ int tcnumber; /*教师卡号*/ char tna

17、me20; /*教师姓名数组*/ char tcollege50; /*教师院系数组*/ float tmoney; /*教师卡余额*/ int tpassword; /*教师卡密码*/ int tloss; /*教师卡挂失变量*/tea; void displayMenu(void); /*列菜单函数*/void registing(tea T,stu S); /*注册函数*/void searchInfo(tea T,stu S); /*信息查找函数*/void editpassword(tea T,stu S); /*密码修改或查询函数*/void editinfo(tea T,stu

18、S); /*信息修改函数*/void editmoney(tea T,stu S); /*加钱或查询余额函数*/void editmealinfo(tea T,stu S); /*就餐信息处理函数*/void reportloss(tea T,stu S); /*挂失函数*/ void deleterecord(tea T,stu S); /*账户删除函数*/void countotherinfo(tea T,stu S); /*统计函数*/*主函数*/main() stu S100; /*学生结构体数组*/ tea T100; /*教师结构体数组*/ int choice; char x;

19、randomize(); /*初始化随机数发生器*/ displayMenu(); /*显示菜单*/ scanf(%d,&choice); /*输入函数选择*/ while(choice!=0) switch(choice) case 1: do registing(T,S); /*信息注册*/ printf(Do you want to return to the menu?(Y or N):); getchar(); /*输入是否返回主菜单*/ scanf(%c,&x); while(x=N|x=n); break; case 2: do searchInfo(T,S); /*信息查找*/

20、 printf(Do you want to return to the menu?(Y or N):); getchar(); scanf(%c,&x); while(x=N|x=n); break; case 3: do editpassword(T,S); /*密码修改或查询*/ printf(Do you want to return to the menu?(Y or N):); getchar(); scanf(%c,&x); while(x=N|x=n); break; case 4: do editinfo(T,S); /*信息修改*/ printf(Do you want t

21、o return to the menu?(Y or N):); getchar(); scanf(%c,&x); while(x=N|x=n); break; case 5: do editmoney(T,S); /*饭卡加钱或查询余额*/ printf(Do you want to return to the menu?(Y or N):); getchar(); scanf(%c,&x); while(x=N|x=n); break; case 6: do editmealinfo(T,S); /*处理就餐信息*/ printf(Do you want to return to the

22、menu?(Y or N):); getchar(); scanf(%c,&x); while(x=N|x=n); break; case 7: do reportloss(T,S); /*挂失*/ printf(Do you want to return to the menu?(Y or N):); getchar(); scanf(%c,&x); while(x=N|x=n); break; case 8: do deleterecord(T,S); /*删除*/ printf(Do you want to return to the menu?(Y or N):); getchar()

23、; scanf(%c,&x); while(x=N|x=n); break; case 9: do countotherinfo(T,S); /*统计*/ printf(Do you want to return to the menu?(Y or N):); getchar(); scanf(%c,&x); while(x=N|x=n); break; default : printf(warning:wrong choice!Please enter the right choice.n); /*提示错误信息*/ break; clrscr(); /*清屏*/ displayMenu();

24、 scanf(%d,&choice); return 0;/*主菜单*/void displayMenu() printf(n=MENU=n); printf(Input personal information.1n); /*输入个人信息*/ printf(The basic information of the card.2n); /*饭卡基本信息*/ printf(Change or inquire the password.3n); /*修改或查询密码*/ printf(Change personal information.4n); /*修改个人信息*/ printf(Inquire

25、 balance or add money.5n); /*查询余额或加钱*/ printf(Manage the dining information.6n); /*处理就餐信息*/ printf(Report the loss of the card.7n); /*挂失*/ printf(Delate process.8n); /*删除*/ printf(Count other information.9n); /*统计其他信息*/ printf(Exit.0n); /*退出*/ printf(=n); printf(Please choose the service you want:(0

26、9); /*请选择需要的服务*/*账户注册*/void registing(tea T,stu S) int i; /*身份变量*/ char x; /*姓名*/ clrscr(); /*清屏*/ printf(=system of registing=n); printf(Please choose your positionn); printf(1-teachern); printf(2-studentn); printf(Please input your choice (1 or 2):); scanf(%d,&i); if(i=1) /*选择教师*/ printf(Please in

27、put your teacher number(4 numbers):); scanf(%d,&Ttn.tnumber); /*输入教师号*/ printf(Please input name(less than 20 letters):(Wang Ming); scanf(%c,&x); /*输入姓名*/ gets(Ttn.tname); printf(Please input college information(less than 50 integers):(mechanic electricity)n); gets(Ttn.tcollege); /*输入院系*/ printf(Ple

28、ase input the money(0.005000.00):); scanf(%f,&Ttn.tmoney); /*输入金额*/ Ttn.tcnumber=random(8999)+1000; /*随机分配卡号*/ printf(The card number is:%dn,Ttn.tcnumber); /*输出卡号*/ Ttn.tpassword=random(8999)+1000; /*随机分配密码*/ printf(The password is:%dn,Ttn.tpassword); /*输出密码*/ Ttn.tloss=0; /*初始化挂失变量*/ tn+; /*教师卡数累加*

29、/ else if(i=2) /*选择学生*/printf(Please input your school number(less than 4 numbers):);scanf(%d,&Ssn.snumber); /*输入学生号*/ printf(Please input name(less than 20 integers):(Wang Ming); scanf(%c,&x); /*输入姓名*/ gets(Ssn.sname); printf(Please input college information(less than 50 integers):(mechanic electri

30、city)n); gets(Ssn.scollege); /*输入院系*/ printf(Please input the money(0.005000.00):); scanf(%f,&Ssn.smoney); /*输入金额*/ Ssn.scnumber=random(8999)+1000; /*随机分配卡号*/ printf(The card number is:%dn,Ssn.scnumber); /*输出卡号*/ Ssn.spassword=random(8999)+1000; /*随机分配密码*/ printf(The password is:%dn,Ssn.spassword);

31、/*输出密码*/ Ssn.sloss=0; /*初始化挂失变量*/ sn+; /*学生卡数累加*/ /*信息查找*/void searchInfo(tea T,stu S) int number,flag=0; /*number记录卡号、flag记录查找是否结束*/ int i,j; /*i为控制教师的循环变量、j为控制学生的循环变量*/ clrscr(); /*清屏*/ printf(=system of inquiring personal information=n); printf(Please enter your card number(4 numbers):); scanf(%d

32、,&number); /*输入卡号*/ for(i=0;itn;i+) if(number=Ti.tcnumber) /*若为教师卡号*/ if(Ti.tloss=1) /*若该卡已挂失*/ printf(This card is registed loss!nYou must go to the office to restart it.n); flag=1; /*提示挂失信息*/ else printf(=information=n); /*输出教师基本信息*/ printf(CardNumber: %dn,Ti.tcnumber); printf(Name: %sn,Ti.tname);

33、 printf(Teacher number: %dn,Ti.tnumber); printf(College: %sn,Ti.tcollege); printf(Money: %4.2fn,Ti.tmoney); flag=1; break; if(flag=0) for(j=0;jsn;j+) /*若为学生卡号*/ if(number=Sj.scnumber) if(Sj.sloss=1) /*若该卡已挂失*/ printf(This card is registed loss!nYou must go to the office to restart it.n); flag=1; /*提

34、示挂失信息*/ else printf(=information=n); /*输出学生基本信息*/ printf(CardNumber: %dn,Sj.scnumber); printf(Name: %sn,Sj.sname); printf(School number: %dn,Sj.snumber); printf(College: %sn,Sj.scollege); printf(Money: %4.2fn,Sj.smoney); flag=1; break; if(flag=0) /*若未找到该卡号*/ printf(=warning=n); /*提示卡号错误*/ printf(Thi

35、s is a wrong number.n); /*密码查询或修改*/void editpassword(tea T,stu S) int number,flag=0; /*number记录卡号、flag记录挂失程序是否完成*/ int i,j,c; /*i为控制教师的循环变量、j为控制学生的循环变量、c为命令选择变量*/ clrscr(); /*清屏*/ printf(=system of changing/inquiring password=n); printf(Please enter the card number:); scanf(%d,&number); /*输入卡号*/ pri

36、ntf(1-change the passwordn); /*修改密码*/ printf(2-inquire the passwordn); /*查询密码*/ printf(Please choose the service you want:(1 or 2); scanf(%d,&c); /*选择需要的操作*/ if(c=1) /*选择修改密码*/ for(i=0;itn;i+) if(number=Ti.tcnumber) /*若为教师卡号*/ if(Ti.tloss=1) /*若该卡已挂失*/ printf(This card is registed loss!nYou must go

37、to the office to restart it.n); flag=1; /*提示挂失信息*/ else /*若未挂失*/ printf(Please enter your new password:(00009999); scanf(%d,&Ti.tpassword); /*输入新密码*/ printf(The password is changed successfully.n); /*提示密码修改成功信息*/ flag=1; break; if(flag=0) for(j=0;jsn;j+) if(number=Sj.scnumber) /*若为学生卡号*/ if(Sj.sloss

38、=1) /*若该卡已挂失*/ printf(This card is registed loss!nYou must go to the office to restart it.n); flag=1; /*提示挂失信息*/ else /*若未挂失*/ printf(Please enter your new password:(00009999); scanf(%d,&Sj.spassword); /*输入新密码*/ printf(The password is changed successfully.n); /*提示密码修改成功信息*/ flag=1; break; else if(c=

39、2) /*选择查询密码*/ for(i=0;itn;i+) if(number=Ti.tcnumber) /*若为教师卡号*/ if(Ti.tloss=1) /*若该卡已挂失*/ printf(This card is registed loss!nYou must go to the office to restart it.n); flag=1; /*提示挂失信息*/ else /*若未挂失*/ printf(=password information=n); printf(password:%dn,Ti.tpassword); /*输出密码*/ flag=1; break; if(fla

40、g=0) for(j=0;jsn;j+) if(number=Sj.scnumber) /*若为学生卡号*/ if(Sj.sloss=1) /*若该卡已挂失*/ printf(This card is registed loss!nYou must go to the office to restart it.n); flag=1; ; /*提示挂失信息*/ else /*若未挂失*/ printf(=password information=n); printf(password:%dn,Sj.spassword); /*输出密码*/ flag=1; break; if(flag=0) /*

41、若未找到该卡号*/ printf(=password information=n); printf(It is a wrong number.n); /*提示卡号错误*/ /*基本信息修改*/void editinfo(tea T,stu S) int i,j; /*i为控制教师的循环变量、j为控制学生的循环变量*/ int number,flag=0; /*number记录卡号、flag记录修改程序是否完成*/ char decide; /*decide记录是否更改*/ clrscr(); /*清屏*/ printf(=system of changing personal informat

42、ion=n); printf(Please enter your card number:(4 numbers); scanf(%d,&number); /*输入卡号*/ getchar(); for(i=0;itn;i+) if(number=Ti.tcnumber) /*若为教师卡号*/ if(Ti.tloss=1) /*若该卡已挂失*/ printf(This card is registed loss!nYou must go to the office to restart it.n); flag=1; /*提示挂失信息*/ else /*若未挂失*/ printf(=persona

43、l information=n); /*输出可更改的基本信息*/ printf(Name: %sn,Ti.tname); printf(School number: %dn,Ti.tnumber); printf(College: %sn,Ti.tcollege); printf(Do you want to change your name?(Y or N):); /*是否更改姓名*/ scanf(%c,&decide); getchar(); if(decide=Y|decide=y) printf(Please enter your new name(less than 20 integ

44、ers):(Wang Ming); gets(Ti.tname); /*输入新姓名*/ printf(Do you want to change your college?(Y or N):); /*是否更改院系*/ scanf(%c,&decide); getchar(); if(decide=Y|decide=y) printf(Please enter your new college:(less than 50 integers); gets(Ti.tcollege); /*输入新院系*/ printf(Do you want to change your teacher number

45、?(Y or N):); /*是否更改教师号*/ scanf(%c,&decide); getchar(); if(decide=Y|decide=y) printf(Please enter your new teacher number(4 numbers):); scanf(%d,&Ti.tnumber); /*输入新教师号*/ getchar(); flag=1; break; if(flag=0) for(j=0;jtn;j+) if(number=Sj.scnumber) /*若为学生卡号*/ if(Sj.sloss=1) /*若该卡已挂失*/ printf(This card i

46、s registed loss!nYou must go to the office to restart it.n); flag=1; /*提示挂失信息*/ else /*若未挂失*/ printf(=personal information=n); /*输出可更改的基本信息*/ printf(Name: %sn,Sj.sname); printf(School number: %dn,Sj.snumber); printf(College: %sn,Sj.scollege); printf(Do you want to change your name?(Y or N):); /*是否更改

47、姓名*/ scanf(%c,&decide); getchar(); if(decide=Y|decide=y) printf(Please enter your new name(less than 20 integers):(Wang Hong); gets(Sj.sname); /*输入新姓名*/ printf(Do you want to change your college?(Y or N):); /*是否更改院系*/ scanf(%c,&decide); getchar(); if(decide=Y|decide=y) printf(Please enter your new c

48、ollege:(less than 50 integers); gets(Sj.scollege); /*输入新院系*/ printf(Do you want to change your school number?(Y or N):); /*是否更改学生号*/ scanf(%c,&decide); getchar(); if(decide=Y|decide=y) printf(Please enter your new school number:(09999); scanf(%d,&Sj.snumber); /*输入新学生号*/ getchar(); flag=1; break; if(

49、flag=0) /*若未找到该卡号*/ printf(=warning=n); printf(It is a wrong number.n); /*提示卡号错误*/ void editmoney(tea T,stu S) int i,j,c; /*i为控制教师的循环变量、j为控制学生的循环变量、c为买命令选择变量*/ int number,flag=0; /*number记录卡号、flag记录挂失程序是否完成*/ float money; /*加入钱数*/ clrscr(); /*清屏*/ printf(=system of adding/inquiring money=n); printf(

50、Please enter your card number:); scanf(%d,&number); /*输入卡号*/ printf(1-Add moneyn); /*加钱*/ printf(2-Inquire the moneyn); /*查询余额*/ printf(Please choose the service you want(1 or 2):); scanf(%d,&c); /*输入需要的操作*/ if(c=1) /*若选择加钱*/ for(i=0;itn;i+) if(number=Ti.tcnumber) /*若为教师卡号*/ if(Ti.tloss=1) /*若该卡已挂失*

51、/ printf(This card is registed loss!nYou must go to the office to restart it.n); flag=1; /*提示挂失信息*/ else /*若未挂失*/ printf(Please enter the amount of money you want to add:(0.005000.00); scanf(%f,&money); /*输入需要加入的金额*/ Ti.tmoney+=money; printf(=information=n); printf(The money is successfully added.n)

52、; /*提示加钱成功*/ printf(The money in the card now:%4.2fn,Ti.tmoney); /*输出现有余额*/ flag=1; break; if(flag=0) for(j=0;jsn;j+) if(number=Sj.scnumber) /*若为学生卡号*/ if(Sj.sloss=1) /*若该卡已挂失*/ printf(This card is registed loss!nYou must go to the office to restart it.n); flag=1; /*提示挂失信息*/ else /*若未挂失*/ printf(Ple

53、ase enter the amount of money you want to add:(0.005000.00); scanf(%f,&money); /*输入需要加入的金额*/ Sj.smoney+=money; printf(=information=n); printf(The money is successfully added.n); /*提示加钱成功*/ printf(The money in the card now:%4.2fn,Sj.smoney); /*输出现有余额*/ flag=1; break; else if(c=2) /*若选择查询余额*/ for(i=0;

54、itn;i+) if(number=Ti.tcnumber) /*若为教师卡号*/ if(Ti.tloss=1) /*若该卡已挂失*/ printf(This card is registed loss!nYou must go to the office to restart it.n); flag=1; /*提示挂失信息*/ else /*若未挂失*/ printf(=money information=n); printf(money:%4.2fn,Ti.tmoney); /*输出卡中余额*/ flag=1; break; if(flag=0) for(j=0;jsn;j+) if(nu

55、mber=Sj.scnumber) /*若为学生卡号*/ if(Sj.sloss=1) /*若该卡已挂失*/ printf(This card is registed loss!nYou must go to the office to restart it.n); flag=1; /*提示挂失信息*/ else /*若未挂失*/ printf(=money information=n); printf(money: %4.2fn,Sj.smoney); /*输出卡中余额*/ flag=1; break; if(flag=0) /*若未找到该卡号*/ printf(=warning=n); p

56、rintf(It is a wrong number.n); /*提示卡号错误*/ /*处理就餐信息*/void editmealinfo(tea T,stu S) int i,j,password; /*i为控制教师的循环变量、j为控制学生的循环变量、password为密码*/ int number,flag=0; /*number记录卡号、flag记录挂失程序是否完成*/ float money; /*加入钱数*/ clrscr(); /*清屏*/ printf(=system of consumption=n); printf(Please enter the card number(4

57、 numbers):); scanf(%d,&number); /*输入卡号*/ for(i=0;i=money) /*若余额充足*/ Ti.tmoney-=money; printf(=consumption information=n); printf(The money in the card now: %4.2fn,Ti.tmoney); /*显示消费后余额*/ flag=1; break; else /*若余额不足*/ printf(The money is not enough.You need to charge it.n); /*提示充值*/ flag=1; break; el

58、se /*若密码错误*/ printf(=warning=n); printf(Wrong password!n); /*提示密码错误*/ flag=1; break; if(flag=0) for(j=0;j=money) /*若余额充足*/ Sj.smoney-=money; printf(=consumption information=n); printf(The money in the card now: %4.2fn,Sj.smoney); /*显示消费后余额*/ flag=1; break; else /*若余额不足*/ printf(The money is not enou

59、gh.You need to charge it.n); /*提示充值*/ flag=1; break; else /*若密码错误*/ printf(=warning=n); printf(Wrong password!n); /*提示密码错误*/ flag=1; break; if(flag=0) /*若未找到该卡号*/ printf(=warning=n); printf(It is a wrong number.n); /*提示卡号错误*/ /*挂失*/void reportloss(tea T,stu S) int i,j,c; /*i为控制教师的循环变量、j为控制学生的循环变量、c为

60、操作方法选项*/ int number,flag=0; /*number记录卡号、flag记录挂失程序是否完成*/ char decide; /*decide记录是否更改*/ clrscr(); /*清屏*/ printf(=system of registing loss=n); printf(1-Enter card numbern); /*输入卡号*/ printf(2-Enter school numbern); /*输入教师号(学生号)*/ printf(Please enter the service you want(1 or 2):); scanf(%d,&c); if(c=1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论