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

上传人:b****2 文档编号:2462915 上传时间:2023-05-03 格式:DOCX 页数:52 大小:266.25KB
下载 相关 举报
C语言综合性设计实验报告.docx_第1页
第1页 / 共52页
C语言综合性设计实验报告.docx_第2页
第2页 / 共52页
C语言综合性设计实验报告.docx_第3页
第3页 / 共52页
C语言综合性设计实验报告.docx_第4页
第4页 / 共52页
C语言综合性设计实验报告.docx_第5页
第5页 / 共52页
C语言综合性设计实验报告.docx_第6页
第6页 / 共52页
C语言综合性设计实验报告.docx_第7页
第7页 / 共52页
C语言综合性设计实验报告.docx_第8页
第8页 / 共52页
C语言综合性设计实验报告.docx_第9页
第9页 / 共52页
C语言综合性设计实验报告.docx_第10页
第10页 / 共52页
C语言综合性设计实验报告.docx_第11页
第11页 / 共52页
C语言综合性设计实验报告.docx_第12页
第12页 / 共52页
C语言综合性设计实验报告.docx_第13页
第13页 / 共52页
C语言综合性设计实验报告.docx_第14页
第14页 / 共52页
C语言综合性设计实验报告.docx_第15页
第15页 / 共52页
C语言综合性设计实验报告.docx_第16页
第16页 / 共52页
C语言综合性设计实验报告.docx_第17页
第17页 / 共52页
C语言综合性设计实验报告.docx_第18页
第18页 / 共52页
C语言综合性设计实验报告.docx_第19页
第19页 / 共52页
C语言综合性设计实验报告.docx_第20页
第20页 / 共52页
亲,该文档总共52页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

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

《C语言综合性设计实验报告.docx》由会员分享,可在线阅读,更多相关《C语言综合性设计实验报告.docx(52页珍藏版)》请在冰点文库上搜索。

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

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

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.问题概述

要实现这个会员积分管理系统,要遇到的问题如下:

1.首先要有一个主函数来负责对子函数的调用。

2.进行新增一个会员时的增加操作

3.对身份证号码的判定操作及密码的设置及判定操作

4.输出会员信息时对各部分的总体把握

5.修改密码时覆盖其原有的密码

6.会员级别及消费来查询折扣率和积分的操作

4.问题分析

首先该问题分为两个大块,一个是会员卡管理功能,另一个是会员积分管

理功能。

针对会员卡管理功能,首先应具备7项功能,新会员的录入,查询会员

的信息,会员的挂失操作,会员的冻结操作,修改密码的操作,注销会员的操作,

以及返回上一层目录的操作。

在没有一个会员的时候,如果用户进行了查询及注

销等其他在有用户基础上才应该进行的操作,也应该给出相应的提示,来警示用

户应该正确的操作。

要实现新会员的增加,首先应设置一个会员的结构体数据结构来存储每个

会员的信息,以防会员之间的信息混淆,每个会员的信息包含身份证号码的存储

数组,密码的存储数组,冻结的存储,挂失的存储,消费额的存储,级别的存储,

积分的存储这些内容,在增加时对于身份证号码的判定,输入错误时应该采取的

措施,新会员增加时密码的设置,对于密码位数的要求以及出现不符合要求应该

采取的相应措施,以及再次密码的确认。

实现会员信息输出时要进行身份证号码的识别,密码的确认,然后按照一

定的格式给出会员信息存储的内容。

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

认,通过后再进行相应的操作。

进行密码修改的时候,首先要进行身份的识别,进行旧密码的确认,然后

才提示输入新密码,并再次进行新密码的确认。

新密码要覆盖旧密码,下次进行

其他操作时要实现新密码的置换。

在进行注销用户操作时,要删除该用户,在进行下一次操作时,要做出相

应的提示该用户已删除。

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

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

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

5.功能模块描述及功能模块图

本系统包含以下函数:

1.系统主函数函数名voidmain()

2.主控模板call函数函数名voidcall()

3.系统退出函数函数名inttuichu()

4.会员管理总函数函数名intguanli()

5.会员积分总函数函数名intjifen()

6.会员信息查询函数函数名intchaxun()

7.……

各模板的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()

6.源程序清单

详细代码如下:

开发者:

杨政辉

#include

#include

chara[25],b[10],c[6];

intshenlen,i,zonglen,zl,mimalen,gua,ab,bc,j,m,n,x,y;//用到的变量名称

structabc//会员信息存储结构

{

charshen[18];

intguashi;

intdongjie;

charmima[6];

intjifen;

intxiaofei;

intjibie;

}zong[300];

Voidmain()//主函数main()

{

printf("**********会员卡储值积分管理系统*************\n");

printf("*****欢迎使用会员卡储值积分管理系统*****");

printf("制作者:

杨政辉、陈卫兵、杨明山、邹博文、赖榕");

printf("**********************************************");

voidcall();

}

voidcall()//主控程序模块call函数

{

fflush(stdin);

printf("\n");

printf("请按照提示进行操作\n");

printf("1.会员卡管理\n");

printf("2.会员卡储值积分管理\n");

printf("3.退出系统\n");

printf("请输入编号:

");

scanf("%d",&ab);

switch(ab)

{

case1:

intguanli();

case2:

intjifen();

case3:

inttuichu();

return0;}

}

inttuichu()//退出系统函数

{

intexit(0);

return0;

}

开发者:

陈卫兵

intguanli()//会员信息管理函数

{

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)

{

case1:

intzengjia();

case2:

intchaxun();

case3:

intguashi();

case4:

intdongjie();

case5:

intxiugaimima();

case6:

intzhuxiao();

case7:

intfanhui();

}

return0;

}

intjifen()//会员积分函数

{

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)

{

case1:

intshuruxiaofei();

case2:

intshurujibie();

case3:

intzhekoulv();

case4:

intchaxunjifen();

case5:

intfanhui();

}

return0;

}

intchaxun()//查询信息函数

{

printf("\n");

fflush(stdin);

if(zonglen==0)

{printf("\n还未有用户注册\n");

gotodom;}

top:

printf("请输入要查询的身份证号码:

");

fflush(stdin);

gets(a);

shenlen=strlen(a);

if(shenlen!

=18)

{

printf("\n您输入的号码有误,");

gototop;

}

for(i=0;i<18;i++)

{

if((a[i]<48)||(a[i]>57))

{printf("\n您输入的号码有误,");

gototop;}

}

a[18]='\0';

for(i=0;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);

gotodom;

}

if(i==(zonglen-1)&&(m!

=18))

{printf("\n您输入的用户不存在\n\n");

gototop;}

}

dom:

printf("\n");

return(guanli());

}

intshuchu(intaa)//信息输出函数

{

intef;

ef=aa;

printf("\n");

printf("身份证号挂失冻结积分消费额级别\n");

for(i=0;i<18;i++)

{printf("%c",zong[aa].shen[i]);}

if(zong[aa].guashi==0)printf("否");

elseprintf("是");

if(zong[aa].dongjie==0)printf("否");

elseprintf("是");

printf("%d",zong[aa].jifen);

printf("%d",zong[aa].xiaofei);

printf("%d",zong[aa]

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2