当前位置:文档之家› C语言综合性设计实验报告

C语言综合性设计实验报告

C语言综合性设计实验报告1.实验题目建立一个简单的会员卡储值积分管理系统。

该系统的主要功能是:会员卡管理功能和会员卡储值积分管理。

会员卡管理功能:(1)根据身份证办理会员卡,一张身份证只能办理一张会员卡。

(2)根据需要可以注销、挂失、冻结会员卡或修改会员卡密码以及积分和消费金额查询。

会员基本信息包括:会员身份证号、卡号、密码、积分、消费金额、级别。

会员卡储值积分管理:(1)根据会员卡级别设置折扣率,根据折扣率自动打折计算消费金额。

(2)根据消费金额计算积分,积分累计达到一定标准后换购商品。

2.设计分工组员组员组员:组员在本系统开发中,小组各成员的分工如下:会员的信息存储数据结构和各个子函数的名称及实验报告的书写由全体成员统一制定;主函数main,主控程序模块call函数,系统退出函数,各函数名称及用到的变量名称的规定由胡丽萍统一负责。

会员管理总函数,会员积分总函数,会员信息查询函数及信息内容输出函数由陈建飞负责。

会员信息冻结函数,挂失函数,注销函数及内部返回到主菜单的返回函数由郭娟如负责。

密码设置函数,查询时检查函数,增加新会员函数,修改密码函数统一由郭霞负责。

输入级别函数,输入消费函数,查询积分函数,查询折扣率函数统一交由胡桂芳负责。

3.问题概述要实现这个会员积分管理系统,要遇到的问题如下:①. 首先要有一个主函数来负责对子函数的调用。

②. 进行新增一个会员时的增加操作③. 对身份证号码的判定操作及密码的设置及判定操作④. 输出会员信息时对各部分的总体把握⑤. 修改密码时覆盖其原有的密码⑥. 会员级别及消费来查询折扣率和积分的操作4.问题分析首先该问题分为两个大块,一个是会员卡管理功能,另一个是会员积分管理功能。

针对会员卡管理功能,首先应具备7项功能,新会员的录入,查询会员的信息,会员的挂失操作,会员的冻结操作,修改密码的操作,注销会员的操作,以及返回上一层目录的操作。

在没有一个会员的时候,如果用户进行了查询及注销等其他在有用户基础上才应该进行的操作,也应该给出相应的提示,来警示用户应该正确的操作。

要实现新会员的增加,首先应设置一个会员的结构体数据结构来存储每个会员的信息,以防会员之间的信息混淆,每个会员的信息包含身份证号码的存储数组,密码的存储数组,冻结的存储,挂失的存储,消费额的存储,级别的存储,积分的存储这些内容,在增加时对于身份证号码的判定,输入错误时应该采取的措施,新会员增加时密码的设置,对于密码位数的要求以及出现不符合要求应该采取的相应措施,以及再次密码的确认。

实现会员信息输出时要进行身份证号码的识别,密码的确认,然后按照一定的格式给出会员信息存储的内容。

在进行冻结以及后面的相应操作时也都是首先进行身份的识别,密码的确认,通过后再进行相应的操作。

进行密码修改的时候,首先要进行身份的识别,进行旧密码的确认,然后才提示输入新密码,并再次进行新密码的确认。

新密码要覆盖旧密码,下次进行其他操作时要实现新密码的置换。

在进行注销用户操作时,要删除该用户,在进行下一次操作时,要做出相应的提示该用户已删除。

返回上一层菜单可以使用户返回到上一层的菜单,该功能较容易实现。

在进行积分查询时首先要消费额的录入来验证该功能的实现。

在进行折扣率查询时首先要级别的录入来验证该功能。

5.功能模块描述及功能模块图本系统包含以下函数:①. 系统主函数函数名 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系统主函数2主控模板call函数3. 系统退出函数4.会员管理函数5.会员积分总函数6.会员信息查询函数7.信息输出函数8.冻结函数9.挂失函数10.注销函数11.返回函数12.密码设置函数13.检查函数14.增加新会员函数15.修改密码函数16.输入级别函数啊17.输入消费函数18.查询积分19.查询折扣率函数6.源程序清单详细代码如下:开发者:胡丽萍#include<stdio.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];main() //主函数main(){printf("会员卡储值积分管理系统\n");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:guanli();case 2:jifen();case 3:tuichu();}}int tuichu() //退出系统函数{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:zengjia();case 2:chaxun();case 3:guashi();case 4:dongjie();case 5:xiugaimima();case 6:zhuxiao();case 7:fanhui();}return 0;}int jifen() //会员积分函数{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() //查询信息函数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() //会员信息冻结函数{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() //会员信息挂失函数{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() //会员注销函数{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;}abc:printf("\n");printf("请再次输入密码:");gets(c);for (i=0;i<6;i++){if(c[i] != b[i]){printf("您再次输入的密码有误,");goto abc;}}c[6] = '\0';for(i=0;i<7;i++){zong[zonglen-1].mima[i] = c[i];}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;}b[6] = '\0';n = 0;for (i=0;i<6;i++){if(zong[aaa].mima[i] == b[i])n=n+1;}if(n == 6){printf("\n\n密码正确\n");goto dom;}else{printf("\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;i<18;i++){if((a[i] < 48) || (a[i] > 57)){printf("\n您输入的号码有误,");goto top;}}a[18] = '\0';zonglen = zonglen + 1;for(i=0;i<19;i++){zong[zonglen-1].shen[i] = a[i];}zong[zonglen-1].dongjie = 0;zong[zonglen-1].guashi = 0;zong[zonglen-1].jifen = 0;zong[zonglen-1].xiaofei=0;zong[zonglen-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;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;printf("\n");topab:fflush(stdin);printf("请输入旧密码(6位密码):");gets(b);mimalen = strlen(b);if(mimalen != 6){printf("\n您输入的密码不符合要求,");goto topab;}b[6] = '\0';n = 0;for (i=0;i<6;i++){if(zong[bc].mima[i] == b[i])n=n+1;}if(n == 6){printf("\n\n密码正确\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;i<6;i++){if(c[i] != b[i]){printf("您再次输入的密码有误,");goto abc;}}c[6] = '\0';for(i=0;i<7;i++){zong[bc].mima[i] = c[i];}goto domaa;}if(i == (zonglen-1) && (m!=18)){printf("\n您输入的用户不存在\n\n");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;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);printf("\n请输入级别(0到3):");scanf("%d",&x);zong[bc].jibie = x;goto domaa;}if(i == (zonglen-1) && (m!=18)){printf("\n您输入的用户不存在\n\n");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;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);printf("\n请输入消费额(0到10000):");scanf("%d",&x);zong[bc].xiaofei = x;zong[bc].jifen = zong[bc].xiaofei / 50;goto domaa;}if(i == (zonglen-1) && (m!=18)){printf("\n您输入的用户不存在\n\n");goto top;}}domaa:printf("设置成功");dom:printf("\n");return (jifen());}int chaxunjifen() //查询积分函数{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);x = zong[bc].xiaofei / 50;printf("\n该用户的积分有%d。

相关主题