版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、题目要求系统主要功能模块:1实现系统内制卡,发卡功能。实现系统内购物卡帐户及相关帐户管理。实现购物卡交易和合法性检查。实现购物卡交易积分功能。实现购物卡报表功能。数据以文件形式存储。提示:制卡:指申请一个购物卡,但还没有使用。发卡:指该卡已经起用。实现卡交易:指从卡中消费掉一定金额。二、需求分析根据题目要求,由于购物卡信息是存放在文件中,所以应提供文件的输入、输出等操作;在程序中需浏览购物卡的信息,应提供报表、查询等操作;另外还应提供键盘式选择菜单实现功能选择。三、总体设计根据需求分析,可以将系统分为五大模块:制卡、发卡、登陆、报表、积分。四、详细设计1、主函数将main()函数体内的界面选择部分语句单独抽取出来作为一独立函数,目的在于系统执行完每部分功能模块后能够方便返回到系统界面。voidmenu()
intv,w1;do{printf("\t\t*********************MENU*********************\n\n");printf("\t\t\t\t1.card-made\n");printf("\t\t\t\t2.card-life\n");printf("\t\t\t\t3.card-enter\n");printf("\t\t\t\t4.card-browse\n");printf("\t\t\t\t5.exit\n");printf("\n\n\t\t**********************************************\n");printf("Choiceyournumber(1-5):[]\b\b");scanf("%d",&v);if(v<1||v>5){w1=1;getchar();}elsew1=0;}while(w1==1);switch(v){case1:made();break;case2:life();break;case3:enter();break;case4:browse();break;case5:exit(0);}2}2、各功能模块设计(1)制卡模块【数据结构】structcredicard{intnumber;charname[20];charID[20];charword[8];intflag;floataccount;intintegal;}card[M];/*card[M]中每个数组元素对应一个运动员信息*/【程序】voidmade(){inti;charh[20];do{printf("\n\n\tInputyournumber:<\t\t\t>\b\b\b\b\b\b\b");scanf("%s",h);if(strlen(h)!=6){printf("\n\n\n\t\t***************Wrong!Inputagain****************\n\n");continue;}for(i=0;i<n;i++)if(strcmp(card[i].ID,h)==0){printf("\n\n\t\t***********Thenumberexist,inputagain************\n\n");break;}}while(((strlen(h))!=6)||strcmp(card[i].ID,h)==0);card[n].number=n;strcpy(card[n].name,"***");strcpy(card[n].ID,h);strcpy(card[n].word,"000000");card[n].flag=0;card[n].account=0.00;card[n].integal=0;printf("\n\n\n\t\t********************Thecardismade!**********************\n\n");print_one(n);n++;add();menu();}print_one(n):显示一张卡信息的函数。【程序】voidprint_one(intj){printf("\n|||||||");printf("\n|NO.|name|ID|flag|account|integal|");printf("\n|||||||");printf("\n|%4d|%20s|%20s|%4d|%10.2f|%10d|",card[j].number,card[j].name,card[j].ID,card[j].flag,card[j].account,card[j].integal);printf("\n|||||||");}发卡模块voidlife(){intk=-1;charh[20];if(n==0)printf("\n\n\t\t****************Makecardfirst*********************\n");else{printf("\n\n\tInputyourappliednumber:<\t\t\t>\b\b\b\b\b\b\b");scanf("%s",h);k=search(h);if(k==-1)printf("\n\n\t\t\t*****************Wrongnumber!****************\n");else{if(card[k].flag==1)printf("\n\n\t\t****************Lifealready!*****************\n");elsehuo(k);}}menu();}huo(k):激活一张卡的函数。voidhuo(intk){charm[20],p[8];intx,w2;do{printf("\n\n\t\tLife?(1)Yes(2)No\n");printf("\n\t\tChioceyournumber:<>\b\b");scanf("%d",&x);if(x<1||x>2){w2=1;getchar();}elsew2=0;}while(w2==1);if(x==1){printf("\n\n\t\tInputyourname:<\t\t\t>\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");scanf("%s",m);strcpy(card[k].name,m);printf("\n\n\t\tInputsix-numbercode:<>\b\b\b\b\b\b\b");scanf("%s",p);strcpy(card[k].word,p);card[k].flag=1;printf("\n\n\n\t\t********************Life!**********************\n\n");print_one(k);add();}}登陆模块voidenter(){intk=-1;charh[20];if(n==0)printf("\n\n\t\t****************Makecardfirst*********************\n");else{printf("\n\n\tInputyourappliednumber:<\t\t\t>\b\b\b\b\b\b\b");scanf("%s",h);k=search(h);if(k==-1)printf("\n\n\t\t\t*****************Wrongnumber!****************\n");else{if(card[k].flag=0)printf("\n\n\t\t************LIFEFIRST!************\n");elsehedui(k);}}menu();}hedui(k):登陆信息。voidhedui(intk){intc=0,w3=0;charp[8];do{printf("\n\n\t\t*******Inputyourcode:<>\b\b\b\b\b\b\b");scanf("%s",p);}}if(strcmp(card[k].word,p)!=0){printf("\n\n\t\t********Wrongcode!**********\n");c++;continue;}else{printf("\n\n\t\t**********Rightcode!***********\n");w3=1;menu1(k);}}while(w3==0&&c<3);}子菜单设计如下:voidmenu1(intk){intv,w4;printf("\t\t\t\t1.Inquire\n");printf("\t\t\t\t2.Deposit\n");printf("\t\t\t\t3.fetch\n");printf("\t\t\t\t4.changecode\n");printf("\t\t\t\t5.backtomenu\n");printf("\n\n\t\t*********************************************\n");printf("Choiceyournumber(1--5):<>\b\b");scanf("%d",&v);if(v<1||v>5){w4=1;getchar();}elsew4=0;}while(w4==1);switch(v){case1:stat_one(k);break;case2:deposit(k);break;case3:fetch(k);break;case4:change(k);break;case5:menu();子模块设计如下查询模块:voidstat_one(intk){printf("\n\n\t\t*************Operatesuccessfully!***************");print_one(k);menu1(k);}储蓄模块voiddeposit(intk){floata=0.00;printf("\n\n\t\tInputyouramount:<\t\t>\b\b\b\b\b\b\b\b\b\b\b");scanf("%f",&a);card[k].account+=a;printf("\n\n\t\t**********depositsuccessfully!***********");print_one(k);add();menu1(k);}消费模块:voidfetch(intk){floatb=0.00;printf("\n\n\t\tInputyouramount:<\t\t>\b\b\b\b\b\b\b\b\b\b\b");scanf("%f",&b);if(b>card[k].account)printf("\n\n\t\t**********Remainingsumisnotenough!*************");else{card[k].account-=b;card[k].integal=b;printf("\n\n\t\t**********Yourpatronage!***********");print_one(k);add();}menu1(k);}修改密码模块:voidchange(intk){chara[8],b[8];printf("\n\n\t\tInputnewsix-numbercode:<>\b\b\b\b\b\b\b");scanf("%s",a);printf("\n\t\tInputnewcodeagain:<>\b\b\b\b\b\b\b");scanf("%s",b);if(strcmp(a,b)==0){printf("\n\n\t\t**********Codechange!*************");add();}elseprintf("\n\n\t\tDifferentcodes,codechangefailed!");menu1(k);}报表模块:voidbrowse(){inti;if(n==0)printf("\n\n\t\t**********Makecardfirst!***********");else{printf("\n\n\t\t*************Operatesuccessfully!**************\n");TOC\o"1-5"\h\zprintf("\n|||||||");printf("\n|NO.|name|ID|flag|account|integal|");printf("\n|||||||");for(i=0;i<n;i++)printf("\n|%4d|%20s|%20s|%4d|%10.2f|%10d|",card[i].number,card[i].name,card[i].ID,card[i].flag,card[i].account,card[i].integal);printf("\n|||||||");}menu();}3、公共函数(1)保存函数voidadd(){inti;FILE*fp;if((fp=fopen("score.txt","wb"))==NULL){printf("\t\tCannotopenthefile\n");return;}for(i=0;i<n;i++)if(fwrite(&card[i],sizeof(structcredicard),1,fp)!=1){{printf("\t\tFilewriteerror\n");return;}fclose(fp);printf("\n\n\n\t\t************Keep!!!************\n");}(2)查找函数intsearch(charh[20]){inti,k=-1;for(i=0;i<n;i++)if(strcmp(card[i].ID,h)==0)k=i;return(k);}五、运行结果(1)主菜单2)制卡模块:输入卡号3)制卡成功11N0_:11N0_:iiii!name!IB1111111!flag-!accou.nt111111!integal1i0:■i111:***:0000011111111!9:9.0011111!01I"C:\Debug\Text1-eze"ickickjcmjcmjcmjcmjcmjckkkTliecardisnadet旦豪旦豪旦豪旦豪嵐賈嵐賈嵐賈嵐賈嵐賈嵐凤宣凤jcj(jcj(jcj(jcj(jcj(jcj(KeeP?t?mmKKKKKK|1FH[JKKKKKKKKKK)OC)OC)OC)OC)OCX1■card—nade2.card—1ife3■card—entev■card—lii'owse■exit
4)发卡模块LdChioceyoupnumberChoiceyournuiniberCl-5>:4)发卡模块LdChioceyoupnumberChoiceyournuiniberCl-5>:2]Inputyourappliednumber:<1.card-nadecard-lifecard-enter4.card-browse5-exit5)发卡成功6)登录模块000602>Clioiceyournumbep<l―5>InputyourappliednumberMMMMMMM000602>Clioiceyournumbep<l―5>InputyourappliednumberMMMMMMMlRpUtC□:<000000>J<HJ<HJ<HJ<HJ<HRigJltCOde?1-Inquire2.Depositfetchchangecode5.backtonenu11!N0_111iii11!N0_111iii!nane!ID1111111!£lAjf!Account111111!integal!1111!11■i111!lisi!0000021111111!0!200.00111111!0!11Inputnewsix-nunhercode:<000001>Inputnewcodeagain=<000001>jckjckjckjckjckCcidecliangefjcxjcxjcxjcxjcxjcxjc)(就)(就)(就)(就)(就)(就1(巳epfff就就就就就就就就就就就就XJCXJCXJCXJCXJCXJCXJCXJCXJCXJCXJCXJCXJCXJCXJCXJCXJCXJCXJCXJCXJCXJCX(ChuicE勺tjui*nunJjEFVi.一一5〉=V>7)储蓄成功Inputspoufanount:<200jckjckjcmjcmjcjuIep訂sitsuccessfully!mmtxxxxxxxxxxxxKeep***xxxxxxmxxxxxxxxxxxxxxxxxxxxxHENUhxhxhxhxhxhxhxhxhxhx1■Inquire2.Deposit3.fetcli4.cliangecode5.baclbtomenuXlCXJCJtJCJtJCJtJCJtJCJtJCJtJCJtJCJtJCJtJCJtJCNJCNJCNJCNJCNJCNJCNJCNJCNJCNM:^Choic吕勺口ufnurnh吕丄一一£〉:V.>8)修改密码9
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 购销合同违约金纠纷的仲裁程序
- 购销合同终止协议注意事项
- 赠品选购协议范本
- 车用润滑油销售协议
- 软装项目服务协议
- 进口设备购买合同范本
- 退学意向声明
- 避免暴力的承诺
- 配电箱联营合作采购合同
- 酒类订购协议样本
- DB11-T1832.17-2021 建筑工程施工工艺规程第17部分:电气动力安装工程高清最新版
- 高考英语必备作文素材 人物传记 (写人)
- 音乐课件《欢乐颂》(公开课)
- DB37-T 4253-2020 地热资源勘查技术规程
- 水驱油藏调剖堵水与调驱培训课件
- 家庭医生签约服务团队绩效考核指标样版完整资料
- 2023年报考攻读博士学位研究生登记表
- 超星尔雅学习通【创业基础】章节测试附答案
- 消防中控室值班记录表(标准通用版)
- 二级减速器设计自动计算参数
- 五年级英语上册素材-Module 1课文翻译 外研版(一起点)
评论
0/150
提交评论