C语言综合性设计实验报告.doc_第1页
C语言综合性设计实验报告.doc_第2页
C语言综合性设计实验报告.doc_第3页
C语言综合性设计实验报告.doc_第4页
C语言综合性设计实验报告.doc_第5页
免费预览已结束,剩余28页可下载查看

下载本文档

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

文档简介

C语言综合性设计实验报告1实验题目建立一个简单的会员卡储值积分管理系统。该系统的主要功能是:会员卡管理功能和会员卡储值积分管理。会员卡管理功能:(1)根据身份证办理会员卡,一张身份证只能办理一张会员卡。(2)根据需要可以注销、挂失、冻结会员卡或修改会员卡密码以及积分和消费金额查询。会员基本信息包括:会员身份证号、卡号、密码、积分、消费金额、级别。会员卡储值积分管理:(1)根据会员卡级别设置折扣率,根据折扣率自动打折计算消费金额。(2)根据消费金额计算积分,积分累计达到一定标准后换购商品。2设计分工组员:2010级五班 xxxxx(组长)2010级五班xxxxxx 2010级五班 xxxxxx 2010级五班 xxxxxx 2010级六班 xxxxxx 在本系统开发中,小组各成员的分工如下: a会员的信息存储数据结构和各个子函数的名称及实验报告的书写由全体成员统一制定; b主函数main,主控程序模块call函数,系统退出函数,各函数名称及用到的变量名称的定由杨政辉统一负责。 c 会员管理总函数,会员积分总函数,会员信息查询函数及信息内容输出函数由陈卫兵负责。 d. 会员信息冻结函数,挂失函数,注销函数及内部返回到主菜单的返回函数由邹博文负责。 e. 密码设置函数,查询时检查函数,增加新会员函数,修改密码函数统一由杨明山负责。 f.输入级别函数,输入消费函数,查询积分函数,查询折扣率函数统一交由赖榕负责。3问题概述要实现这个会员积分管理系统,要遇到的问题如下:. 首先要有一个主函数来负责对子函数的调用。. 进行新增一个会员时的增加操作. 对身份证号码的判定操作及密码的设置及判定操作. 输出会员信息时对各部分的总体把握. 修改密码时覆盖其原有的密码. 会员级别及消费来查询折扣率和积分的操作4问题分析 首先该问题分为两个大块,一个是会员卡管理功能,另一个是会员积分管理功能。针对会员卡管理功能,首先应具备7项功能,新会员的录入,查询会员的信息,会员的挂失操作,会员的冻结操作,修改密码的操作,注销会员的操作,以及返回上一层目录的操作。在没有一个会员的时候,如果用户进行了查询及注销等其他在有用户基础上才应该进行的操作,也应该给出相应的提示,来警示用户应该正确的操作。要实现新会员的增加,首先应设置一个会员的结构体数据结构来存储每个会员的信息,以防会员之间的信息混淆,每个会员的信息包含身份证号码的存储数组,密码的存储数组,冻结的存储,挂失的存储,消费额的存储,级别的存储,积分的存储这些内容,在增加时对于身份证号码的判定,输入错误时应该采取的措施,新会员增加时密码的设置,对于密码位数的要求以及出现不符合要求应该采取的相应措施,以及再次密码的确认。 实现会员信息输出时要进行身份证号码的识别,密码的确认,然后按照一定的格式给出会员信息存储的内容。 在进行冻结以及后面的相应操作时也都是首先进行身份的识别,密码的确认,通过后再进行相应的操作。 进行密码修改的时候,首先要进行身份的识别,进行旧密码的确认,然后才提示输入新密码,并再次进行新密码的确认。新密码要覆盖旧密码,下次进行其他操作时要实现新密码的置换。 在进行注销用户操作时,要删除该用户,在进行下一次操作时,要做出相应的提示该用户已删除。 返回上一层菜单可以使用户返回到上一层的菜单,该功能较容易实现。 在进行积分查询时首先要消费额的录入来验证该功能的实现。 在进行折扣率查询时首先要级别的录入来验证该功能。5功能模块描述及功能模块图 本系统包含以下函数:. 系统主函数 函数名 void main(). 主控模板call函数 函数名 void call(). 系统退出函数 函数名 int tuichu(). 会员管理总函数 函数名 int guanli(). 会员积分总函数 函数名 int jifen(). 会员信息查询函数 函数名 int chaxun(). 各模板的N-S图如下:1系统主函数输出“会员卡存储值积分管理系统”调用call()2主控模板call函数清空缓冲区fflush(stdin)屏幕输出提示操作的内容读取键盘输入的数字 i=1真 否调用guanli() i=2真 否调用jifen()调用tuichu()3. 系统退出函数调用exit(0)返回04会员管理函数清空缓冲区fflush(stdin)屏幕输出提示操作的内容读取键盘输入的数字是 i=1 否调用zengjia()是i=2 否调用chaxun()是i=3 否调用guashi()是 i=4 否调用dongjie()是i=5 否调用xiugaimima()是i=6否调用zhuxiao()调用fanhui()返回05会员积分总函数清空缓冲区fflush(stdin)屏幕输出提示操作的内容读取键盘输入的数字是 i=1 否调用shuruxiaofei()是 i=2 否调用shurujibie()是i=3 否调用zhekoulv()是i=4 否调用chaxunjifen()调用fanhui()返回06会员信息查询函数清空缓冲区fflush(stdin)是 Zonglen=0 否输出错误信息输出提示信息读取输入的字符串aShenlen=strlen(a)直到shenlen = 18i=0,i+,直到i=17 并且 ai=48 & ai=48 & ai=48 & ai=48 & ai= 48 & ai=48 & ai=48 & ai=48 & ai=48 & ai=48 & ai=57a18 = 0 zongi.shenj是= aj 否调用guanli()m=m+1无操作j=0,j+,直到j=17 i=0,i+,直到i=zonglen-1 并且 m = 18bc=i调用jiancha(bc) 是zongbc.jibie = 0 否输出不能打折 zongbc.jibie是= 1 否输出打9折 zongbc.jibie是= 2 否输出打8.5折输出打8折输出请进行其他操作调用jifen() 6源程序清单详细代码如下:开发者:杨政辉#include#includechar a25,b10,c6;int shenlen,i,zonglen,zl,mimalen,gua,ab,bc,j,m,n,x,y; /用到的变量名称struct abc /会员信息存储结构char shen18;int guashi;int dongjie;char mima6;int jifen;int xiaofei;int jibie;zong300;Void main() /主函数main() printf(*会员卡储值积分管理系统*n);printf( *欢迎使用会员卡储值积分管理系统*);printf(制作者:杨政辉、陈卫兵、杨明山、邹博文、赖榕);printf(*); void call();void call() /主控程序模块call函数fflush(stdin);printf(n);printf(请按照提示进行操作n);printf(1.会员卡管理n);printf(2.会员卡储值积分管理n);printf(3.退出系统n);printf(请输入编号:); scanf(%d,&ab);switch(ab)case 1:int guanli(); case 2:int jifen(); case 3:int tuichu();return 0;int tuichu() /退出系统函数int exit(0);return 0;开发者:陈卫兵int guanli() /会员信息管理函数fflush(stdin);printf(n);printf(请按照提示进行操作n);printf(1.申请会员卡n);printf(2.查询会员信息n);printf(3.申请挂失n);printf(4.申请冻结n);printf(5.重置密码n);printf(6.申请注销n);printf(7.返回上一级n);printf(请输入编号:); scanf(%d,&ab);switch(ab)case 1:int zengjia(); case 2:int chaxun(); case 3:int guashi(); case 4:int dongjie();case 5:int xiugaimima();case 6:int zhuxiao();case 7:int fanhui();return 0;int jifen() /会员积分函数fflush(stdin);printf(n);printf(请按照提示进行操作nn);printf(请先设置用户的消费额和级别进行测试,消费额为0到10000,级别为0到3nn);printf(1.根据用户输入消费额n);printf(2.根据用户输入级别.n);printf(3.查询折扣率n);printf(4.查询积分n);printf(5.返回上一级n);printf(请输入编号:); scanf(%d,&ab);switch(ab)case 1:int shuruxiaofei(); case 2:int shurujibie(); case 3:int zhekoulv(); case 4:int chaxunjifen();case 5:int fanhui();return 0;int chaxun() /查询信息函数 printf(n);fflush(stdin);if(zonglen = 0) printf(n还未有用户注册n);goto dom;top:printf(请输入要查询的身份证号码:);fflush(stdin);gets(a);shenlen = strlen(a);if(shenlen != 18) printf(n您输入的号码有误,); goto top;for(i=0;i18;i+)if(ai 57)printf(n您输入的号码有误,);goto top;a18 = 0;for(i=0;izonglen;i+)m = 0;for(j=0;j18;j+)if(zongi.shenj = aj)m = m+1;if(m = 18) bc = i;jiancha(bc);shuchu(bc);goto dom;if(i = (zonglen-1) & (m!=18)printf(n您输入的用户不存在nn);goto top;dom:printf(n);return (guanli();int shuchu(int aa) /信息输出函数int ef;ef = aa;printf(n);printf( 身份证号 挂失 冻结 积分 消费额 级别n);for(i = 0;i18;i+)printf(%c,zongaa.sheni);if(zongaa.guashi = 0) printf( 否 );else printf( 是 );if(zongaa.dongjie = 0) printf( 否 );else printf( 是 );printf( %d ,zongaa.jifen);printf( %d ,zongaa.xiaofei);printf( %d ,zongaa.jibie);return 0;开发者:邹博文int dongjie() /会员信息冻结函数printf(n);fflush(stdin);if(zonglen = 0) printf(n还未有用户注册n);goto dom;top:printf(请输入要冻结的身份证号码:);fflush(stdin);gets(a);shenlen = strlen(a);if(shenlen != 18) printf(n您输入的号码有误,); goto top;for(i=0;i18;i+)if(ai 57)printf(n您输入的号码有误,);goto top;a18 = 0;for(i=0;izonglen;i+)m = 0;for(j=0;j18;j+)if(zongi.shenj = aj)m = m+1;if(m = 18) bc = i; zongbc.dongjie = 1;goto domaa;if(i = (zonglen-1) & (m!=18)printf(n您输入的用户不存在nn);goto top;domaa:printf(冻结成功,请进行其他操作);dom:printf(n);return (guanli();int guashi() /会员信息挂失函数printf(n);fflush(stdin);if(zonglen = 0) printf(n还未有用户注册n);goto dom;top:printf(请输入要挂失的身份证号码:);fflush(stdin);gets(a);shenlen = strlen(a);if(shenlen != 18) printf(n您输入的号码有误,); goto top;for(i=0;i18;i+)if(ai 57)printf(n您输入的号码有误,);goto top;a18 = 0;for(i=0;izonglen;i+)m = 0;for(j=0;j18;j+)if(zongi.shenj = aj)m = m+1;if(m = 18) bc = i;jiancha(bc); zongbc.guashi = 1;goto domaa;if(i = (zonglen-1) & (m!=18)printf(n您输入的用户不存在nn);goto top;domaa:printf(挂失成功,请进行其他操作);dom:printf(n);return (guanli();int zhuxiao() /会员注销函数printf(n);fflush(stdin);if(zonglen = 0) printf(n还未有用户注册n);goto dom;top:printf(请输入要查询的身份证号码:);fflush(stdin);gets(a);shenlen = strlen(a);if(shenlen != 18) printf(n您输入的号码有误,); goto top;for(i=0;i18;i+)if(ai 57)printf(n您输入的号码有误,);goto top;a18 = 0;for(i=0;izonglen;i+)m = 0;for(j=0;j18;j+)if(zongi.shenj = aj)m = m+1;if(m = 18) bc = i;jiancha(bc);for(x=bc;xzonglen;x+)for(y=0;y18;y+)zongx.sheny = zongx+1.sheny;for(y=0;y6;y+)zongx.mimay = zongx+1.mimay;zongx.dongjie = zongx+1.dongjie;zongx.guashi = zongx+1.guashi;zongx.jibie = zongx+1.jibie;zongx.jifen = zongx+1.jifen;zongx.xiaofei = zongx+1.xiaofei;zonglen = zonglen -1;goto domaa;if(i = (zonglen-1) & (m!=18)printf(n您输入的用户不存在nn);goto top;domaa:printf(n注销成功,请进行其他操作n);dom:printf(n); return (guanli();int fanhui() /系统内返回上一层菜单函数return (call();开发者:杨明山int mimashezhi() /密码设置函数 printf(n);top: fflush(stdin);printf(请设置密码(6位密码):);gets(b);mimalen = strlen(b);if(mimalen != 6)printf(n您输入的密码不符合要求,);goto top;abc:printf(n);printf(请再次输入密码:);gets(c);for (i=0;i6;i+)if(ci != bi)printf(您再次输入的密码有误,);goto abc;c6 = 0;for(i=0;i7;i+)zongzonglen-1.mimai = ci;return 0;int jiancha(int aaa) /密码检查函数 printf(n);top: fflush(stdin);printf(请输入密码(6位密码):);gets(b);mimalen = strlen(b);if(mimalen != 6)printf(n您输入的密码不符合要求,);goto top;b6 = 0; n = 0;for (i=0;i6;i+)if(zongaaa.mimai = bi) n=n+1; if(n = 6) printf(nn密码正确n);goto dom;elseprintf(n您输入的密码有误,);goto top;dom:return 0;int zengjia() /新增加会员函数printf(n);top:fflush(stdin); printf(请输入要申请会员的身份证号码:);gets(a);shenlen = strlen(a);if(shenlen != 18) printf(n您输入的号码有误,); goto top;for(i=0;i18;i+)if(ai 57)printf(n您输入的号码有误,);goto top;a18 = 0;zonglen = zonglen + 1;for(i=0;i19;i+)zongzonglen-1.sheni = ai;zongzonglen-1.dongjie = 0;zongzonglen-1.guashi = 0;zongzonglen-1.jifen = 0;zongzonglen-1.xiaofei=0;zongzonglen-1.jibie = 0; mimashezhi();printf(n);printf(申请成功n);return (guanli();int xiugaimima() /修改密码函数 printf(n);fflush(stdin);if(zonglen = 0) printf(n还未有用户注册n);goto dom;top:printf(请输入要修改密码的身份证号码:);fflush(stdin);gets(a);shenlen = strlen(a);if(shenlen != 18) printf(n您输入的号码有误,); goto top;for(i=0;i18;i+)if(ai 57)printf(n您输入的号码有误,);goto top;a18 = 0;for(i=0;izonglen;i+)m = 0;for(j=0;j18;j+)if(zongi.shenj = aj)m = m+1;if(m = 18) bc = i; printf(n); topab: fflush(stdin); printf(请输入旧密码(6位密码):); gets(b); mimalen = strlen(b); if(mimalen != 6) printf(n您输入的密码不符合要求,); goto topab; b6 = 0; n = 0; for (i=0;i6;i+) if(zongbc.mimai = bi) n=n+1; if(n = 6) printf(nn密码正确n); goto domab; else printf(n您输入的密码有误,); goto topab; domab: printf(n); topp: fflush(stdin); printf(请设置新密码(6位密码):); gets(b); mimalen = strlen(b); if(mimalen != 6) printf(n您输入的密码不符合要求,); goto topp; abc: printf(n); printf(请再次输入密码:); gets(c); for (i=0;i6;i+) if(ci != bi)printf(您再次输入的密码有误,); goto abc; c6 = 0; for(i=0;i7;i+) zongbc.mimai = ci;goto domaa;if(i = (zonglen-1) & (m!=18)printf(n您输入的用户不存在nn);goto top;domaa:printf(n重置密码成功,请进行其他操作);dom:printf(n);return (guanli();开发者:赖 榕int shurujibie() /输入级别函数 printf(n);fflush(stdin);if(zonglen = 0) printf(n还未有用户注册n);goto dom;top:printf(请输入要填写级别的身份证号码:);fflush(stdin);gets(a);shenlen = strlen(a);if(shenlen != 18) printf(n您输入的号码有误,); goto top;for(i=0;i18;i+)if(ai 57)printf(n您输入的号码有误,);goto top;a18 = 0;for(i=0;izonglen;i+)m = 0;for(j=0;j18;j+)if(zongi.shenj = aj)m = m+1;if(m = 18) bc = i;jiancha(bc);printf(n请输入级别(0到3):);scanf(%d,&x);zongbc.jibie = x;goto domaa;if(i = (zonglen-1) & (m!=18)printf(n您输入的用户不存在nn);goto top;domaa:printf(设置成功);dom:printf(n);return (jifen();int shuruxiaofei() /输入消费值函数 printf(n);fflush(stdin);if(zonglen = 0) printf(n还未有用户注册n);goto dom;top:printf(请输入要填写消费额的身份证号码:);fflush(stdin);gets(a);shenlen = strlen(a);if(shenlen != 18) printf(n您输入的号码有误,); goto top;for(i=0;i18;i+)if(ai 57)printf(n您输入的号码有误,

温馨提示

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

评论

0/150

提交评论