版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言课程设计报告班学号:193092姓名:马幸佳指引教师:张冬梅日期:6月中华人民共和国地质大学(武汉)计算机学院一、题目规定系统重要功能模块:1,实现系统内制卡,发卡功能。2,实现系统内购物卡帐户及有关帐户管理。3,实现购物卡交易和合法性检查。4,实现购物卡交易积分功能。5,实现购物卡报表功能。6,数据以文献形式存储。提示:制卡:指申请一种购物卡,但还没有使用。发卡:指该卡已经起用。实现卡交易:指从卡中消费掉一定金额。二、需求分析依照题目规定,由于购物卡信息是存储在文献中,因此应提供文献输入、输出等操作;在程序中需浏览购物卡信息,应提供报表、查询等操作;此外还应提供键盘式选取菜单实现功能选取。三、总体设计依照需求分析,可以将系统分为五大模块:制卡、发卡、登陆、报表、积分。购物卡管理系统购物卡管理系统制卡模块制卡模块发卡模块登录模块积分模块报表模块查询储蓄修改密码消费四、详细设计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、各功能模块设计(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|----|--------------------|--------------------|----|----------|----------|");}(2)发卡模块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(); }}(3)登陆模块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"); else hedui(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*********************MENU********************\n\n"); 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(); } else printf("\n\n\t\tDifferentcodes,codechangefailed!"); menu1(k);}(4)报表模块:voidbrowse(){inti;if(n==0) printf("\n\n\t\t**********Makecardfirst!***********");else{printf("\n\n\t\t*************Operatesuccessfully!**************\n");printf("\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;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公寓租赁办公合同模板
- 制作娃娃协议合同范例
- 影视合作合同范例
- 新质生产力支持智慧养老
- 工地工人雇佣合同模板
- IT行业新潮:突围之道
- 开荒保洁施工合同模板
- 在新一批援疆教师欢送会上的演讲稿
- 出租转让铲车合同范例
- 企业对外投资合同范例
- 中华民族共同体概论课件专家版6第六讲 五胡入华与中华民族大交融(魏晋南北朝)
- 《欧洲民间故事》测试题
- 储能电站安全教育培训
- 课程教学与课程思政内容融合
- 2024中小企业ESG信息披露指南
- 电工电子技术 课件 第7章 交流放大电路
- 2024年食品安全考试题库及答案
- 巨量直播电商运营认证考试64题
- 易制爆化学品(剧毒品)防盗抢、防破坏应急预案
- 高职专业人才培养方案-护理专业人才培养方案
- 医学微生物学课件:支原体与衣原体
评论
0/150
提交评论