收藏 分销(赏)

超市会员积分消费系统程序设计报告.docx

上传人:xrp****65 文档编号:8948058 上传时间:2025-03-08 格式:DOCX 页数:38 大小:163.08KB
下载 相关 举报
超市会员积分消费系统程序设计报告.docx_第1页
第1页 / 共38页
超市会员积分消费系统程序设计报告.docx_第2页
第2页 / 共38页
点击查看更多>>
资源描述
《计算机科学与应用系程序类课程设计》 设计报告书 题 目:会员消费积分管理系统 一、 需求分析 首先该问题分为两个大块,一个是会员卡管理功能,另一个是会员积分管 理功能。针对会员卡管理功能,首先应具备7项功能,新会员的录入,查询会员 的信息,会员的挂失操作,会员的冻结操作,修改密码的操作,注销会员的操作, 以及返回上一层目录的操作。在没有一个会员的时候,如果用户进行了查询及注 销等其他在有用户基础上才应该进行的操作,也应该给出相应的提示,来警示用 户应该正确的操作。 要实现新会员的增加,首先应设置一个会员的结构体数据结构来存储每个 会员的信息,以防会员之间的信息混淆,每个会员的信息包含身份证号码的存储 数组,密码的存储数组,冻结的存储,挂失的存储,消费额的存储,级别的存储, 积分的存储这些内容,在增加时对于身份证号码的判定,输入错误时应该采取的 措施,新会员增加时密码的设置,对于密码位数的要求以及出现不符合要求应该 采取的相应措施,以及再次密码的确认。 实现会员信息输出时要进行身份证号码的识别,密码的确认,然后按照一 定的格式给出会员信息存储的内容。 在进行冻结以及后面的相应操作时也都是首先进行身份的识别,密码的确 认,通过后再进行相应的操作。 进行密码修改的时候,首先要进行身份的识别,进行旧密码的确认,然后 才提示输入新密码,并再次进行新密码的确认。新密码要覆盖旧密码,下次进行 其他操作时要实现新密码的置换。 在进行注销用户操作时,要删除该用户,在进行下一次操作时,要做出相 应的提示该用户已删除。 返回上一层菜单可以使用户返回到上一层的菜单,该功能较容易实现。 在进行积分查询时首先要消费额的录入来验证该功能的实现。 在进行折扣率查询时首先要级别的录入来验证该功能。 二、 系统主要功能 该系统的主要功能是:会员卡管理功能和会员卡储值积分管理。 会员卡管理功能: (1)根据身份证办理会员卡,一张身份证只能办理一张会员卡。 (2)根据需要可以注销、挂失、冻结会员卡或修改会员卡密码以及积分和消费金额查询。会员基本信息包括:会员身份证号、卡号、密码、积分、消费金额、级别。 会员卡储值积分管理: (1)根据会员卡级别设置折扣率,根据折扣率自动打折计算消费金额。 (2)根据消费金额计算积分,积分累计达到一定标准后换购商品。 三、功能模块描述及功能模块图 本系统包含以下函数: ①. 系统主函数 函数名 void main() ②. 主控模板call函数 函数名 void call() ③. 系统退出函数 函数名 int tuichu() ④. 会员管理总函数 函数名 int guanli() ⑤. 会员积分总函数 函数名 int jifen() ⑥. 会员信息查询函数 函数名 int chaxun() ⑦. 信息输出函数 函数名 int shuchu(int aa) ⑧. 冻结函数 函数名 int dongjie() ⑨. 挂失函数 函数名 int guashi() ⑩. 注销函数 函数名 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系统主函数 输出“会员卡存储值积分管理系统” 调用call() 2主控模板call函数 清空缓冲区fflush(stdin) 屏幕输出提示操作的内容 读取键盘输入的数字 i=1 真 否 调用guanli() i=2 真 否 调用jifen() 调用tuichu() 3. 系统退出函数 调用exit(0) 返回0 4.会员管理函数 清空缓冲区fflush(stdin) 屏幕输出提示操作的内容 读取键盘输入的数字 是 i=1 否 调用zengjia() 是 i=2 否 调用chaxun() 是 i=3 否 调用guashi() 是 i=4 否 调用dongjie() 是 i=5 否 调用xiugaimima() 是 i=6 否 调用zhuxiao() 调用fanhui() 返回0 5.会员积分总函数 清空缓冲区fflush(stdin) 屏幕输出提示操作的内容 读取键盘输入的数字 是 i=1 否 调用shuruxiaofei() 是 i=2 否 调用shurujibie() 是 i=3 否 调用zhekoulv() 是 i=4 否 调用chaxunjifen() 调用fanhui() 返回0 6.会员信息查询函数 清空缓冲区fflush(stdin) 是 Zonglen==0 否 输出错误信息 输出提示信息 读取输入的字符串a Shenlen=strlen(a) 直到shenlen == 18 i=0,i++,直到i=17 并且 a[i]>=48 && a[i]<=57 a[18] = ‘\0’ zong[i].shen[j] 是 == a[j] 否 调用guanli() m=m+1 无操作 j=0,j++,直到j=17 i=0,i++,直到i=zonglen-1 并且 m == 18 bc=i 调用jiancha(bc) 调用shuchu(bc) 调用guanli() 7.信息输出函数 处理数据 输出第一行内容 输出信息 zong[aa].guashi 是 == 0 否 输出“否” 输出“是” zong[aa].dongjie 是 == 0 否 输出“否” 输出“是” 输出其他数据 i=0,i++ 直到 i=17 返回0 8.冻结函数 清空缓冲区fflush(stdin) 是 Zonglen==0 否 输出错误信息 输出提示信息 读取输入的字符串a Shenlen=strlen(a) 直到shenlen == 18 i=0,i++,直到i=17 并且 a[i]>=48 && a[i]<=57 a[18] = ‘\0’ zong[i].shen[j] 是 == a[j] 否 调用guanli() m=m+1 无操作 j=0,j++,直到j=17 i=0,i++,直到i=zonglen-1 并且 m == 18 bc=i 调用jiancha(bc) zong[bc].dongjie = 1 输出冻结成功的消息 调用guanli() 9.挂失函数 清空缓冲区fflush(stdin) 是 Zonglen==0 否 输出错误信息 输出提示信息 读取输入的字符串a Shenlen=strlen(a) 直到shenlen == 18 i=0,i++,直到i=17 并且 a[i]>=48 && a[i]<=57 a[18] = ‘\0’ zong[i].shen[j] 是 == a[j] 否 调用guanli() m=m+1 无操作 j=0,j++,直到j=17 i=0,i++,直到i=zonglen-1 并且 m == 18 bc=i 调用jiancha(bc) zong[bc].guashi = 1 输出挂失成功的消息 调用guanli() 10.注销函数 清空缓冲区fflush(stdin) 是 Zonglen==0 否 输出错误信息 输出提示信息 读取输入的字符串a Shenlen=strlen(a) 直到shenlen == 18 i=0,i++,直到i=17 并且 a[i]>=48 && a[i]<=57 a[18] = ‘\0’ zong[i].shen[j] 是 == a[j] 否 调用guanli() m=m+1 无操作 j=0,j++,直到j=17 i=0,i++,直到i=zonglen-1 并且 m == 18 bc=i 调用jiancha(bc) zong[x].shen[y] = zong[x+1].shen[y] y=0,y++ 直到 y=17 zong[x].mima[y] =zong[x+1].mima[y] y=0,y++ 直到 y=5 处理数据 x=bc,x++ 直到 x=zonglen-1 输出注销成功 调用guanli() 11.返回函数 调用call() 12.密码设置函数 输出提示操作 读取键盘输入的数据 直到mimalen == 6 读取键盘再次输入的内容 i=0,i++ 直到 i=5 并且 c[i] == b[i] c[6] = ‘\0’ zong[zonglen-1].mima[i] = c[i] i=0,i++ 直到 i=6 返回0 13.检查函数 清空缓冲区fflush(stdin) 输出提示信息 读取输入的字符串b mimalen=strlen(b) 直到mimalen == 6 b[6] = ‘\0’ n = 0 zong[aaa].mima[i] 是 == b[i] 否 n=n+1 无操作 i=0,i++,直到i=5 并且 n == 6 返回0 14.增加新会员函数 输出提示信息 读取从键盘录入的字符串 直到字符串的长度为18 i=0,i++ 直到 i=17 并且 a[i]>= 48 && a[i]<=57 Zonglen =zonglen +1 zong[zonglen-1].shen[i] = a[i] i=0,i++ 直到 i=18 处理数据 调用mimashezhi() 输出成功的消息 调用guanli() 15.修改密码函数 清空缓冲区fflush(stdin) 是 Zonglen==0 否 输出错误信息 输出提示信息 读取输入的字符串a Shenlen=strlen(a) 直到shenlen == 18 i=0,i++,直到i=17 并且 a[i]>=48 && a[i]<=57 a[18] = ‘\0’ zong[i].shen[j] 是 == a[j] 否 调用guanli() m=m+1 无操作 j=0,j++,直到j=17 i=0,i++,直到i=zonglen-1 并且 m == 18 bc=i 输出提示信息 读取输入的字符串b mimalen=strlen(b) 直到mimalen == 6 zong[bc].mima[i] 是 == b[i] 否 n = n+1 无操作 i=0,i++ 直到 i=5 并且 n== 6 输出提示操作 读取键盘输入的数据 直到mimalen == 6 读取键盘再次输入的内容 i=0,i++ 直到 i=5 并且 c[i] == b[i] c[6] = ‘\0’ zong[bc].mima[i] = c[i] i=0,i++ 直到 i=6 输出密码修改成功 调用guanli() 16.输入级别函数啊 清空缓冲区fflush(stdin) 是 Zonglen==0 否 输出错误信息 输出提示信息 读取输入的字符串a Shenlen=strlen(a) 直到shenlen == 18 i=0,i++,直到i=17 并且 a[i]>=48 && a[i]<=57 a[18] = ‘\0’ zong[i].shen[j] 是 == a[j] 否 调用guanli() m=m+1 无操作 j=0,j++,直到j=17 i=0,i++,直到i=zonglen-1 并且 m == 18 bc=i 调用jiancha(bc) 输出提示信息 读取键盘输入的信息x zong[bc].jibie = x 输出设置成功 调用jifen() 17.输入消费函数 清空缓冲区fflush(stdin) 是 Zonglen==0 否 输出错误信息 输出提示信息 读取输入的字符串a Shenlen=strlen(a) 直到shenlen == 18 i=0,i++,直到i=17 并且 a[i]>=48 && a[i]<=57 a[18] = ‘\0’ zong[i].shen[j] 是 == a[j] 否 调用guanli() m=m+1 无操作 j=0,j++,直到j=17 i=0,i++,直到i=zonglen-1 并且 m == 18 bc=i 调用jiancha(bc) 输出提示信息 读取键盘输入的信息x zong[bc].xiaofei = x zong[bc].jifen = zong[bc].xiaofei/50 输出设置成功 调用jifen() 18.查询积分 清空缓冲区fflush(stdin) 是 Zonglen==0 否 输出错误信息 输出提示信息 读取输入的字符串a Shenlen=strlen(a) 直到shenlen == 18 i=0,i++,直到i=17 并且 a[i]>=48 && a[i]<=57 a[18] = ‘\0’ zong[i].shen[j] 是 == a[j] 否 调用guanli() m=m+1 无操作 j=0,j++,直到j=17 i=0,i++,直到i=zonglen-1 并且 m == 18 bc=i 调用jiancha(bc) 输出该用户有zong[bc].jifen个积分 输出请进行其他操作 调用jifen () 19.查询折扣率函数 清空缓冲区fflush(stdin) 是 Zonglen==0 否 输出错误信息 输出提示信息 读取输入的字符串a Shenlen=strlen(a) 直到shenlen == 18 i=0,i++,直到i=17 并且 a[i]>=48 && a[i]<=57 a[18] = ‘\0’ zong[i].shen[j] 是 == a[j] 否 调用guanli() m=m+1 无操作 j=0,j++,直到j=17 i=0,i++,直到i=zonglen-1 并且 m == 18 bc=i 调用jiancha(bc) 是 zong[bc].jibie == 0 否 输出不能打折 zong[bc].jibie 是 == 1 否 输出打9折 zong[bc].jibie 是 == 2 否 输出打8.5折 输出打8折 输出请进行其他操作 调用jifen() 四、 主要代码 #include<stdio.h> #include<string.h> #include <stdlib.h> char a[25],b[10],c[6]; int shenlen,i,zonglen,zl,mimalen,gua,ab,bc,j,m,n,x,y; //用到的变量名称 struct abc //会员信息存储结构 { char shen[18]; int guashi; int dongjie; char mima[6]; int jifen; int xiaofei; int jibie; }zong[300]; void main() //主函数main() { int call(); printf("会员卡储值积分管理系统\n"); call(); } int call() //主控程序模块call函数 { fflush(stdin); int guanli(); int jifen(); int tuichu(); printf("\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 tuichu() //退出系统函数 { 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.申请挂失\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:zhuxiao(); case 7:fanhui(); } return 0; } int jifen() //会员积分函数 { int shuruxiaofei(); int shurujibie(); int zhekoulv(); int chaxunjifen(); int fanhui(); fflush(stdin); printf("\n"); printf("请按照提示进行操作\n\n"); printf("请先设置用户的消费额和级别进行测试,消费额为0到10000,级别为0到3\n\n"); printf("1.根据用户输入消费额\n"); printf("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; } int 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;i<18;i++) { if((a[i] < 48) || (a[i] > 57)) {printf("\n您输入的号码有误,"); goto top;} } a[18] = '\0'; for(i=0;i<zonglen;i++) { m = 0; for(j=0;j<18;j++) { if(zong[i].shen[j] == a[j]) m = m+1; } if(m == 18) {bc = i; jiancha(bc); shuchu(bc); goto dom; } if(i == (zonglen-1) && (m!=18)) {printf("\n您输入的用户不存在\n\n"); goto top;} } 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",zong[aa].shen[i]);} if(zong[aa].guashi == 0) printf(" 否 "); else printf(" 是 "); if(zong[aa].dongjie == 0) printf(" 否 "); else printf(" 是 "); printf(" %d ",zong[aa].jifen); printf(" %d ",zong[aa].xiaofei); printf(" %d ",zong[aa].jibie); return 0; } int dongjie() //会员信息冻结函数 { 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;i<18;i++) { if((a[i] < 48) || (a[i] > 57)) {printf("\n您输入的号码有误,"); goto top;} } a[18] = '\0'; for(i=0;i<zonglen;i++) { m = 0; for(j=0;j<18;j++) { if(zong[i].shen[j] == a[j]) m = m+1; } if(m == 18) {bc = i; jiancha(bc); zong[bc].dongjie = 1; goto domaa; } if(i == (zonglen-1) && (m!=18)) {printf("\n您输入的用户不存在\n\n"); goto top;} } domaa: printf("冻结成功,请进行其他操作"); dom: printf("\n"); return (guanli()); } int guashi() //会员信息挂失函数 { 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++) { if((a[i] < 48) || (a[i] > 57)) {printf("\n您输入的号码有误,"); goto top;} } a[18] = '\0'; for(i=0;i<zonglen;i++) { m = 0; for(j=0;j<18;j++) { if(zong[i].shen[j] == a[j]) m = m+1; } if(m == 18) {bc = i; jiancha(bc); zong[bc].guashi = 1; goto domaa; } if(i == (zonglen-1) && (m!=18)) {printf("\n您输入的用户不存在\n\n"); goto top;} } domaa: printf("挂失成功,请进行其他操作"); dom: printf("\n"); return (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++) { if((a[i] < 48) || (a[i] > 57)) {printf("\n您输入的号码有误,"); goto top;} } a[18] = '\0'; for(i=0;i<zonglen;i++) { m = 0; for(j=0;j<18;j++) { if(zong[i].shen[j] == a[j]) m = m+1; } if(m == 18) {bc = i; jiancha(bc); for(x=bc;x<zonglen;x++) { for(y=0;y<18;y++) { zong[x].shen[y] = zong[x+1].shen[y]; } for(y=0;y<6;y++) { zong[x].mima[y] = zong[x+1].mima[y]; } zong[x].dongjie = zong[x+1].dongjie; zong[x].guashi = zong[x+1].guashi; zong[x].jibie = zong[x+1].jibie; zong[x].jifen = zong[x+1].jifen; zong[x].xiaofei = zong[x+1].xiaofei; } zonglen = zonglen -1; goto domaa; } if(i == (zonglen-1) && (m!=18)) {printf("\n您输入的用户不存在\n\n"); 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; } abcd: printf("\n"); printf("请再次输入密码:"); gets(c); for (i=0;i<6;i++) { if(c[i] != b[i]) {printf("您再次输入的密码有误,"); goto abcd;} } c[6] = '\0'; for(i=0;i<7;i++) { zong[z
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服