超市会员积分消费系统程序设计报告(DOC37页)_第1页
超市会员积分消费系统程序设计报告(DOC37页)_第2页
超市会员积分消费系统程序设计报告(DOC37页)_第3页
超市会员积分消费系统程序设计报告(DOC37页)_第4页
免费预览已结束,剩余34页可下载查看

下载本文档

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

文档简介

1、计算机科学与应用系程序类课程设计设计报告书题目:会员消费积分管理系统一、 需求分析首先该问题分为两个大块,一个是会员卡管理功能,另一个是会员积分管理功能。针对会员卡管理功能,首先应具备7 项功能,新会员的录入, 查询会员的信息, 会员的挂失操作,会员的冻结操作,修改密码的操作,注销会员的操作,以及返回上一层目录的操作。在没有一个会员的时候,如果用户进行了查询及注销等其他在有用户基础上才应该进行的操作,也应该给出相应的提示,来警示用户应该正确的操作。要实现新会员的增加,首先应设置一个会员的结构体数据结构来存储每个会员的信息, 以防会员之间的信息混淆,每个会员的信息包含身份证号码的存储数组,密码的

2、存储数组, 冻结的存储, 挂失的存储, 消费额的存储, 级别的存储,积分的存储这些内容,在增加时对于身份证号码的判定,输入错误时应该采取的措施,新会员增加时密码的设置,对于密码位数的要求以及出现不符合要求应该采取的相应措施,以及再次密码的确认。实现会员信息输出时要进行身份证号码的识别,密码的确认,然后按照一定的格式给出会员信息存储的内容。在进行冻结以及后面的相应操作时也都是首先进行身份的识别,密码的确认,通过后再进行相应的操作。进行密码修改的时候,首先要进行身份的识别,进行旧密码的确认,然后才提示输入新密码, 并再次进行新密码的确认。新密码要覆盖旧密码,下次进行其他操作时要实现新密码的置换。在

3、进行注销用户操作时,要删除该用户,在进行下一次操作时,要做出相应的提示该用户已删除。返回上一层菜单可以使用户返回到上一层的菜单,该功能较容易实现。在进行积分查询时首先要消费额的录入来验证该功能的实现。在进行折扣率查询时首先要级别的录入来验证该功能。二、 系统主要功能该系统的主要功能是:会员卡管理功能和会员卡储值积分管理。会员卡管理功能:( 1)根据身份证办理会员卡,一张身份证只能办理一张会员卡。( 2)根据需要可以注销、挂失、冻结会员卡或修改会员卡密码以及积分和消费金额查询。会员基本信息包括:会员身份证号、卡号、密码、积分、消费金额、级别。会员卡储值积分管理:( 1)根据会员卡级别设置折扣率,

4、根据折扣率自动打折计算消费金额。( 2)根据消费金额计算积分,积分累计达到一定标准后换购商品。三、功能模块描述及功能模块图本系统包含以下函数:. 系统主函数函数名 void main(). 主控模板 call 函数函数名 void call(). 系统退出函数函数名 int tuichu(). 会员管理总函数函数名 int guanli(). 会员积分总函数函数名 int jifen(). 会员信息查询函数函数名 int chaxun(). 信息输出函数函数名 int shuchu(int aa). 冻结函数函数名int dongjie(). 挂失函数函数名int guashi(). 注销函数

5、函数名int zhuxiao()? . 返回函数函数名 int fanhui()? . 密码设置函数函数名 int mimashezhi()? . 检查函数函数名 int jiancha(int aaa)? . 增加新会员函数函数名 int zengjia()? . 修改密码函数函数名int xiugaimima()? . 输入级别函数函数名int shurujibie()? . 输入消费额函数函数名 int shuruxiaofei()? . 查询积分函数函数名int chaxunjifen()? . 查询折扣率函数函数名int zhekoulv()各模板的 N-S 图如下:1 系统主函数输

6、出“会员卡存储值积分管理系统”调用 call()2 主控模板call函数清空缓冲区fflush(stdin)屏幕输出提示操作的内容读取键盘输入的数字i=1真否i=2调用guanli()真否调用jifen()调用tuichu()3. 系统退出函数调用 exit(0)返回 04会员管理函数清空缓冲区 fflush(stdin)屏幕输出提示操作的内容读取键盘输入的数字i=1是否i=2是否i=3是否调用i=4是否zengjia(调用i=5)chaxun()是否调用i=6guashi()调用 调用是否dongjxiugaimima调用调用ie()()zhuxiaofanhu()i()返回 05会员积分总

7、函数清空缓冲区fflush(stdin)屏幕输出提示操作的内容读取键盘输入的数字i=1是否i=2是否调用i=3shuruxiaofei是否()调用i=4shurujibie()调zhekoulv()用是调用调否用chaxunjifen()fanhui()返回06会员信息查询函数清空缓冲区 fflush(stdin)Zonglen=0是否输出提示信息读取输入的字符串a输出错误Shenlen=strlen(a)信息直到 shenlen = 18i=0,i+,直到 i=17并且 ai>=48 && ai<=57a18 = 0zongi.shenj=aj是否m=m+1无操作

8、j=0,j+,直到j=17i=0,i+,直到i=zonglen-1并且m = 18调用bc=iguanli()调用 jiancha(bc)调用 shuchu(bc)调用 guanli()7信息输出函数处理数据输出第一行内容输出信息zongaa.guashi=0是否输出“否”输出“是”zongaa.dongjie=0是否输出“否”输出“是”输出其他数据i=0,i+直到 i=17返回 08冻结函数清空缓冲区 fflush(stdin)Zonglen=0是否输出提示信息读取输入的字符串a输出错误Shenlen=strlen(a)信息直到 shenlen = 18i=0,i+,直到 i=17并且 ai

9、>=48 && ai<=57a18 =0zongi.shenj=aj是否m=m+1无操作j=0,j+,直到j=17i=0,i+,直到i=zonglen-1并且m = 18调用guanli()bc=i调用 jiancha(bc)zongbc.dongjie = 1输出冻结成功的消息调用 guanli()9挂失函数清空缓冲区 fflush(stdin)Zonglen=0是否输出提示信息读取输入的字符串a输出错误Shenlen=strlen(a)信息直到 shenlen = 18i=0,i+,直到 i=17并且 ai>=48 &&ai<=57a

10、18 = 0zongi.shenj=aj是否m=m+1无操作j=0,j+,直到 j=17i=0,i+,直到 i=zonglen-1并且 m = 18调用guanli()bc=i调用 jiancha(bc)zongbc.guashi = 1输出挂失成功的消息调用 guanli()10注销函数是输出错误信息清空缓冲区fflush(stdin)Zonglen=0否输出提示信息读取输入的字符串aShenlen=strlen(a)直到 shenlen = 18i=0,i+,直到 i=17并且 ai>=48 && ai<=57a18 =0zongi.shenj=aj是否m=m+

11、1无操作j=0,j+,直到 j=17i=0,i+,直到 i=zonglen-1并且 m = 18bc=i调用 jiancha(bc)zongx.sheny = zongx+1.sheny调y=0,y+直到 y=17用guanli()zongx.mimay =zongx+1.mimayy=0,y+直到 y=5处理数据x=bc,x+直到 x=zonglen-1输出注销成功调用 guanli()11返回函数调用 call()12密码设置函数输出提示操作读取键盘输入的数据i=0,i+直到 mimalen= 6读取键盘再次输入的内容直到i=5并且ci = bic6 = 0zongzonglen-1.mi

12、mai = cii=0,i+直到i=6返回 013检查函数清空缓冲区fflush(stdin)输出提示信息读取输入的字符串bmimalen=strlen(b)直到mimalen = 6zongaaa.mimaib6 =0n = 0=bi是否n=n+1无操作i=0,i+,直到i=5并且n = 6返回014增加新会员函数输出提示信息读取从键盘录入的字符串直到字符串的长度为18i=0,i+直到 i=17并且ai>= 48 && ai<=57Zonglen =zonglen +1zongzonglen-1.sheni = aii=0,i+直到 i=18处理数据调用 mima

13、shezhi()输出成功的消息调用 guanli()15修改密码函数清空缓冲区 fflush(stdin)Zonglen=0是否输出提示信息读取输入的字符串a输出错误Shenlen=strlen(a)信息直到 shenlen = 18i=0,i+,直到 i=17 并且 ai>=48 && ai<=57a18 =0=ajzongi.shenj否是m=m+1无操作j=0,j+,直到j=17i=0,i+,直到i=zonglen-1并且m = 18调用guanli()bc=i输出提示信息读取输入的字符串bmimalen=strlen(b)直到 mimalen = 6= bi

14、zongbc.mimai否是n = n+1无操作i=0,i+直到i=5并且n= 6输出提示操作读取键盘输入的数据直到 mimalen= 6读取键盘再次输入的内容i=0,i+直到i=5并且ci = bic6 =0zongbc.mimai = cii=0,i+直到i=6输出密码修改成功调用 guanli()16输入级别函数啊清空缓冲区 fflush(stdin)Zonglen=0是否输出提示信息读取输入的字符串a输出错误Shenlen=strlen(a)信息直到 shenlen = 18i=0,i+, 直到 i=17并且 ai>=48 &&ai<=57a18 = 0zo

15、ngi.shenj=aj是否m=m+1无操作j=0,j+,直到 j=17i=0,i+,直到 i=zonglen-1并且 m = 18调用guanli()bc=i调用 jiancha(bc)输出提示信息读取键盘输入的信息xzongbc.jibie = x输出设置成功调用 jifen()17输入消费函数清空缓冲区 fflush(stdin)Zonglen=0是否输出提示信息读取输入的字符串a输出错误Shenlen=strlen(a)信息直到 shenlen = 18i=0,i+,直到 i=17并且 ai>=48 && ai<=57a18 = 0zongi.shenj=a

16、j是否m=m+1无操作j=0,j+,直到 j=17i=0,i+,直到 i=zonglen-1并且 m = 18调用guanli()bc=i调用 jiancha(bc)输出提示信息读取键盘输入的信息xzongbc.xiaofei = xzongbc.jifen = zongbc.xiaofei/50输出设置成功调用 jifen()18查询积分清空缓冲区 fflush(stdin)Zonglen=0是否输出提示信息读取输入的字符串a输出错误Shenlen=strlen(a)信息直到 shenlen = 18i=0,i+, 直到 i=17并且 ai>=48 && ai<=

17、57a18 = 0zongi.shenj=aj是否m=m+1无操作j=0,j+,直到 j=17i=0,i+,直到 i=zonglen-1并且 m = 18调用guanli()bc=i调用 jiancha(bc)输出该用户有 zongbc.jifen个积分输出请进行其他操作调用 jifen ()19查询折扣率函数清空缓冲区 fflush(stdin)Zonglen=0是否输出提示信息读取输入的字符串 a输出错误Shenlen=strlen(a)信息直到 shenlen = 18调用guanli()i=0,i+,直到 i=17并且 ai>=48 && ai<=57a18

18、 =0zongi.shenj=aj是否m=m+1无操作j=0,j+,直到 j=17i=0,i+, 直到 i=zonglen-1并且 m = 18bc=i调用 jiancha(bc)zongbc.jibie =0是否zongbc.jibie= 1是否输出不能打折输出打 9折= 2zongbc.jibie否是输出打 8.5 折输出打 8折输出请进行其他操作调用 jifen()四、 主要代码#include<stdio.h>#include<string.h>#include <stdlib.h>char a25,b10,c6;int shenlen,i,zong

19、len,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()int call();printf(" 会员卡储值积分管理系统n");call();intcall()/ 主控程序模块call 函数fflush(stdin);int guanli();int jifen();int tuichu();p

20、rintf("n");printf(" 请按照提示进行操作n");printf("1. 会员卡管理 n");printf("2. 会员卡储值积分管理n");printf("3. 退出系统 n");printf(" 请输入编号:");scanf("%d",&ab);switch(ab)case 1: guanli(); break;case 2:jifen(); break;case 3: tuichu(); break;return 1;int t

21、uichu()/ 退出系统函数exit(0);return 0;int guanli()/ 会员信息管理函数int zengjia();int chaxun();int guashi();int dongjie();int xiugaimima();int zhuxiao();int fanhui();fflush(stdin);printf("n");printf(" 请按照提示进行操作n");printf("1. 申请会员卡 n");printf("2. 查询会员信息n");printf("3. 申请

22、挂失 n");printf("4. 申请冻结 n");printf("5. 重置密码 n");printf("6. 申请注销 n");printf("7. 返回上一级 n");printf(" 请输入编号:");scanf("%d",&ab);switch(ab)case 1:zengjia();case 2:chaxun();case 3:guashi();case 4:dongjie();case 5:xiugaimima();case 6:zhuxia

23、o();case 7:fanhui();return 0;int jifen()/ 会员积分函数int shuruxiaofei();int shurujibie();int zhekoulv();int chaxunjifen();int fanhui();fflush(stdin);printf("n");printf(" 请按照提示进行操作nn");printf(" 请先设置用户的消费额和级别进行测试,消费额为0 到 10000,级别为 0 到 3nn");printf("1. 根据用户输入消费额n");pr

24、intf("2. 根据用户输入级别.n");printf("3. 查询折扣率 n");printf("4. 查询积分 n");printf("5. 返回上一级 n");printf(" 请输入编号:");scanf("%d",&ab);switch(ab)case 1:shuruxiaofei();case 2:shurujibie();case 3:zhekoulv();case 4:chaxunjifen();case 5:fanhui();return 0;in

25、t chaxun()/ 查询信息函数/int z;int shuchu(int aa);int jiancha(int aaa);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

26、;i<18;i+)if(ai < 48) | (ai > 57)printf("n您输入的号码有误,");goto top;a18 = '0'for(i=0;i<zonglen;i+)m = 0;for(j=0;j<18;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 t

27、op;dom:printf("n");return (guanli();int shuchu(int aa)/ 信息输出函数int ef;ef = aa;printf("n");printf("身份证号挂失冻结积分消费额级别 n");for(i = 0;i<18;i+)printf("%c",zongaa.sheni);if(zongaa.guashi = 0) printf("否");else printf("是");if(zongaa.dongjie = 0) pr

28、intf("否");else printf("是");printf("%d",zongaa.jifen);printf("%d",zongaa.xiaofei);printf("%d",zongaa.jibie);return 0;int dongjie()/会员信息冻结函数int jiancha(int aaa);printf("n");fflush(stdin);if(zonglen = 0)printf("n还未有用户注册goto dom;n");t

29、op:printf(" 请输入要冻结的身份证号码:fflush(stdin);gets(a);shenlen = strlen(a);if(shenlen != 18)");printf("n您输入的号码有误,");goto top;for(i=0;i<18;i+)if(ai < 48) | (ai > 57)printf("n您输入的号码有误,goto top;");a18 = '0'for(i=0;i<zonglen;i+)m = 0;for(j=0;j<18;j+)if(zongi.

30、shenj = aj)m = m+1;if(m = 18)bc = i;jiancha(bc);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()/会员信息挂失函数int jiancha(int aa);printf("n"

31、;);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;i<18;i+)if(ai < 48) | (ai > 57)printf("n您输入的号码有误,goto top;");a18

32、 = '0'for(i=0;i<zonglen;i+)m = 0;for(j=0;j<18;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

33、 (guanli();int zhuxiao()/ 会员注销函数int jiancha(int aa);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;i<18;i+)i

34、f(ai < 48) | (ai > 57)printf("n您输入的号码有误,goto top;");a18 = '0'for(i=0;i<zonglen;i+)m = 0;for(j=0;j<18;j+)if(zongi.shenj = aj)m = m+1;if(m = 18)bc = i;jiancha(bc);for(x=bc;x<zonglen;x+)for(y=0;y<18;y+)zongx.sheny = zongx+1.sheny;for(y=0;y<6;y+)zongx.mimay = zongx

35、+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 注销成功,请进行其

36、他操作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;abcd:printf(&quo

37、t;n");printf(" 请再次输入密码:");gets(c);for (i=0;i<6;i+)if(ci != bi)printf(" 您再次输入的密码有误,");goto abcd;c6 = '0'for(i=0;i<7;i+)zongzonglen-1.mimai = ci;return 0;int jiancha(int aaa)/密码检查函数printf("n");top:fflush(stdin);printf(" 请输入密码 (6 位密码 ): ");gets

38、(b);mimalen = strlen(b);if(mimalen != 6)printf("n您输入的密码不符合要求,");goto top;b6 = '0'n = 0;for (i=0;i<6;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");t

39、op:fflush(stdin);printf(" 请输入要申请会员的身份证号码:gets(a);shenlen = strlen(a);if(shenlen != 18)");printf("n您输入的号码有误,");goto top;for(i=0;i<18;i+)if(ai < 48) | (ai > 57)printf("n您输入的号码有误,goto top;");a18 = '0'zonglen = zonglen + 1;for(i=0;i<19;i+)zongzonglen-1.s

40、heni = 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;f

温馨提示

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

评论

0/150

提交评论