C语言课程设计报告饭卡管理程序完成日期:2009年12月【题目描述】该程序为饭卡管理程序,具有下列功能:(1)录入某位持卡人的基本信息。教师:职工号、姓名、院系、金额;学生:学号、姓名、院系、金额;随机分配一个密码,分配一个卡号。(2)给定卡号,显示此卡的基本信息;(3)给定卡号,修改密码或查询密码;(4)给定卡号,修改持卡人信息;(5)给定卡号,查询余额或加钱;(6)给定卡号,输入密码后,若余额充足即可消费;(7)挂失处理;给定卡号或职工号(学号)等信息进行挂失处理,挂失处理后能查到该卡号,但显示“该卡已挂失”信息。(8)删除处理;给定卡号或职工号(学号),对该卡进行删除处理;删除处理后无法找到该卡号。(9)提供一些统计各类信息的功能。可统计当前教师、学生持卡人数;当前已挂失卡卡号;当前卡中余额少于10元的卡号,并显示其余额。【用户文档】应用程序功能详细说明1、进入操作菜单。按照菜单提示选择需要的操作。选择0~9号,若超出该范围,系统将提示警告信息,且切回到主菜单。若需退出系统选择0。每项操作执行完毕,将出现是否返回原菜单的提示信息,选择是将返回主菜单,选择否将返回该项操作的选择菜单。2、录入持卡人信息:该程序可分别管理教师学生各100人。持卡人分教师卡和学生两种,进入录入界面后,用户按菜单选择卡的类别。之后按照程序提示的文本格式及长度要求,按顺序依次输入教师号(学生号)、姓名、院系及金额。超出允许的范围,系统可能出现运行错误。3、查询饭卡基本信息:进入查询界面,输入卡号,即可显示持卡人的卡号、姓名、教师号(学生号)、院系、卡上金额。若输入卡号不存在,系统将提示卡号错误。4、修改或查询密码:进入密码编辑界面,输入卡号,将会显示出命令选择菜单。根据提示选择希望进行的操作。密码修改成功后,系统会给出密码修改成功信息。若输入卡号不存在,系统将提示卡号错误。5、修改个人信息:进入修改界面输入卡号,系统将逐项询问是否要修改该项信息,选择是即可修改,选择否,将跳转到下一条信息修改。修改信息的格式及长度要求与录入相同。若输入卡号不存在,系统将提示卡号错误。6、饭卡加钱或查询余额:进入余额操作界面,输入卡号,根据屏幕提示选择需要的操作。加钱成功后系统会显示成功操作信息。若输入卡号不存在,系统将提示卡号错误。7、处理消费信息:进入消费界面,按照提示输入卡号以及消费金额,系统会提示输入密码。若密码正确,则显示消费成功信息,并从账户中扣除相应余额,若密码错误,系统将警告密码错误,并返回主菜单。若消费金额超出余额范围,则系统提示余额不足信息,消费不成功并返回主菜单。若输入卡号不存在,系统将提示卡号错误。8、挂失:进入挂失界面,根据系统提示选择输入卡号或输入教师号(学生号)进行操作。若正确输入相应卡号系统将确认是否挂失,选择是则挂失成功。挂失后若进行以上各项操作以及删除操作,系统均将提示已挂失信息,并无法进行操作。若输入卡号不存在,系统将提示卡号错误。9、删除:进入删除界面,根据菜单提示选择输入卡号还是教师号(学生号),输入相应号码,系统将询问是否要删除该号码。选择是,则提示该卡删除成功,选择否,将返回主菜单。若输入的号码不存在,系统将提示号码错误并返回主菜单。删除后,该卡在系统中将不能被查出。10、统计其他信息:进入统计界面,根据菜单选择需要进行哪项统计。选择1,将统计出当前教师及学生的持卡人数;选择2,将统计出当前所有挂失卡卡号;选择3,将统计出当前卡中余额不足10元的卡号及相应余额。应用程序运行环境的要求TurboC2.0或Win-tc环境下均可运行。应用程序的安装与启动方法将程序源代码置入TurboC2.0或Win-tc中,运行程序。或直接双击运行.exe格式的可执行文件运行该程序。程序的界面、交互方式和操作方法以下是程序运行后的主菜单操作界面。按照系统的询问,选择需要的操作。程序运行过程中输入命令完毕需键入回车键确认。输入数据类型、格式和内容限制教师及学生的个人信息属于结构体型数据;菜单选择项:整型数据,只可输入系统提供的选项代号;确认选项:字符型数据,大小写均可,只可输入Y或N;教师号(学生号):整型数据,只可输入介于1000至9999间的整型数据;姓名:字符型一维数组,姓氏与名字之间用空格隔开,少于20个字符;院系:字符型一维数组,院与系之间可用空格隔开,少于50个字符;金额:单精度实型数据,精确到分,可输入介于0.00至5000.00间的数据;卡号、密码:整型数据,介于1000至9999之间随机产生。应用程序运行中,用户需要使用的交互命令名称、功能和格式的详细解决和示例1)数字选择交互命令。以菜单为例,在操作界面中选下需要的操作所对应的数字,按回车键,即可进入相应的操作界面。2)Y、N选择交互命令。当系统询问否是,选择Y,键入回车即为是,选择N键入回车即为否。如上图,选择Y回车,即返回主菜单;选择N回车即不返回主菜单,继续执行该项操作。【技术文档】程序整体结构以及各模块功能描述程序整体分为10个模块。分别为:1)菜单模块函数原型:voiddisplayMenu();函数功能:显示并输出主菜单;无返回值。2)注册信息模块函数原型:voidregisting(teaT[],stuS[]);函数功能:输入持卡人基本信息;无返回值。i——持卡人身份选项,用于选择持卡人身份;x——用于记录程序中中的字符量。3)查询模块函数原型:voidsearchInfo(teaT[],stuS[]);函数功能:查询持卡人基本信息;无返回值。number——卡号,用于输入卡号并在程序中查找该卡号;flag—用于判断该函数—操作是否完毕;i——教师循环控制变量;j——学生循环控制变量。4)密码操作模块函数原型:voideditpassword(teaT[],stuS[]);函数功能:查询或修改密码;无返回值。c——功能选项,用于选择修改密码还是查询密码;number——卡号,用于输入卡号并在程序中查找该卡号;flag—用于判断该函数—操作是否完毕;i——教师循环控制变量;j——学生循环控制变量。5)信息修改模块函数原型:voideditinfo(teaT[],stuS[]);函数功能:修改持卡人个人信息;无返回值。number——卡号,用于输入卡号并在程序中查找该卡号;flag—用于判断该函数—操作是否完毕;i——教师循环控制变量;j——学生循环控制变量;decide——用于确定是否进行该项操作。6)余额操作模块函数原型:voideditmoney(teaT[],stuS[]);函数功能:饭卡加钱或查询余额;无返回值。c——功能选项,用于选择加钱还是查询余额;number——卡号,用于输入卡号并在程序中查找该卡号;flag—用于判断该函数—操作是否完毕;i——教师循环控制变量;j——学生循环控制变量;money——用于记录函数中要操作的钱数。7)消费模块函数原型:voideditmealinfo(teaT[],stuS[]);函数功能:处理消费信息;无返回值。number——卡号,用于输入卡号并在程序中查找该卡号;money——金额,用于输入需要消费的金额;flag—用于判断该函数—操作是否完毕;i——教师循环控制变量;j——学生循环控制变量;password——函数中用于记录密码。8)挂失模块函数原型:voidreportloss(teaT[],stuS[]);函数功能:账户挂失注册;无返回值。c——功能选项,用于选择输入卡号还是教师号(学生号);i——教师循环控制变量;j——学生循环控制变量;number——号码,用于输入号码并在程序中查找是卡号还是教师号(学生号);decide——确认选择,用于确认是否确实要挂失;flag—用于判断该函数—操作是否完毕。9)删除模块函数原型:voiddeleterecord(teaT[],stuS[]);函数功能:删除账户;无返回值。c——功能选项,用于选择输入卡号还是教师号(学生号);number——号码,用于输入号码并在程序中查找是卡号还是教师号(学生号);tn——教师卡数,用于程序中记录教师卡数量;sn——学生卡数,用于程序中记录学生卡数量;i——教师循环控制变量;j——学生循环控制变量;k——循环控制变量,用于使教师及学生卡号注销的循环中;decide——确认选择,用于确认是否确实要挂失;flag—用于判断该函数—操作是否完毕。10)统计模块函数原型:voidcountotherinfo(teaT[],stuS[]);函数功能:统计持卡人数、统计挂失卡信息、统计余额不足卡信息;无返回值。i——教师循环控制变量;j——学生循环控制变量;c——功能选项,用于程序中选择想要统计的内容。各模块的主要算法和数据结构解释1)主函数NYNY2)菜单模块开始输出主菜单结束choice!=0return0清屏choice=1~9执行对应函数开始结束3)信息注册模块NYNYi==1i==2开始输入教师信息输入学生信息结束4)信息查询模块NYNYNYNYNYNY0→iitni++flag==0number==tcnumbe开始输出教师信息jsnnumber==scnumber0→j输出学生信息j++flag==0提示号码错误结束5)密码操作模块NYNYNYc==1flag==0c==2开始输入新密码输出密码输出号码错误结束6)信息修改模块NYNYNYNYNYNY0→iitni++flag==0number==tcnumbe开始输入教师信息jsnnumber==scnumber0→j输入学生信息j++flag==0提示号码错误结束7)余额操作模块NYYYNYc==1flag==0c==2开始输出号码错误结束输出加钱金额输入卡号输入卡号输出卡中余额8)消费模块NYNYNYNYNYNY0→iitni++flag==0number==tcnumbe开始输入消费金额及密jsnnumber==scnumber0→j输入消费金额及密j++flag==0提示号码错误结束9)挂失模块NYNYc==1c==2开始输入卡号loss=1输入学生号或教师号loss=1结束10)统计模块NYNYNY选用的测试数据及测试结果信息注册测试结果如下:c==1c==2c==3开始输出教师卡及学生卡数量输出挂失卡卡号输出余额不足卡卡号及余额结束信息查询测试结果如下:密码修改测试结果如下:密码查询测试结果如下:信息修改测试结果如下:加钱测试结果如下:查询余额测试结果如下:消费测试结果如下:挂失测试结果如下:删除测试结果如下:输入号码错误测试结果如下:挂失后查询基本信息测试结果如下:程序运行环境以及有关信息该程序在windowsXP操作系统中运行成功,在此环境下运行TC2.0或Win-tc写入源代码均可。或直接运行.exe格式的可执行文件。程序源代码清单#includestdio.h/*I/O函数*/#includestring.h/*字符串函数*/#includestdlib.h/*其它说明*/#includeconio.h/*屏幕操作函数*/intsn=0;/*学生卡人数初始化*/inttn=0;/*教师卡人数初始化*/typedefstructstudent{/*定义学生卡数据结构*/intsnumber;/*学号*/intscnumber;/*学生卡号*/charsname[20];/*学生姓名数组*/charscollege[50];/*学生院系数组*/floatsmoney;/*学生卡余额*/intspassword;/*学生卡密码*/intsloss;/*学生卡挂失变量*/}stu;typedefstructteacher{/*定义教师卡数据结构*/inttnumber;/*教师号*/inttcnumber;/*教师卡号*/chartname[20];/*教师姓名数组*/chartcollege[50];/*教师院系数组*/floattmoney;/*教师卡余额*/inttpassword;/*教