C语言会员卡管理程序Word下载.docx

上传人:b****6 文档编号:16226944 上传时间:2022-11-21 格式:DOCX 页数:17 大小:150.56KB
下载 相关 举报
C语言会员卡管理程序Word下载.docx_第1页
第1页 / 共17页
C语言会员卡管理程序Word下载.docx_第2页
第2页 / 共17页
C语言会员卡管理程序Word下载.docx_第3页
第3页 / 共17页
C语言会员卡管理程序Word下载.docx_第4页
第4页 / 共17页
C语言会员卡管理程序Word下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

C语言会员卡管理程序Word下载.docx

《C语言会员卡管理程序Word下载.docx》由会员分享,可在线阅读,更多相关《C语言会员卡管理程序Word下载.docx(17页珍藏版)》请在冰豆网上搜索。

C语言会员卡管理程序Word下载.docx

用户可以根据需求,选定相应的操作项目。

进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。

1.6输出要求:

(1)应用程序运行后,要在屏幕上显示一个菜单;

(2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。

1.7提示:

使用结构类型和一维数组类型,用来保存会员卡的内容。

 

2.1应用程序功能的详细说明:

本程序为图书大厦会员卡管理程序,主菜单分为五个选项(如图一所示)分别为:

录入新会员、进入老会员资料、统计所用会员中积分最高者、统计会员总数以及离开。

图一

进入old选项后出现一子菜单,可进行一系列对老会员管理的操作(如图二所示)。

其操作包括基本信息的输出、积分统计、本次买书折后价格、会员卡丢失、删除此会员、离开子菜单。

图二

2.2应用程序运行环境的要求:

此程序在windows操作系统环境中即可运行。

2.3应用程序的安装与启动方法:

打开win-TC,打开命名为07010120.c的文件,在菜单中点击编译链接并运行,将会出现对话框“恭喜,编译成功”,单击确定,便会出现如图一的主菜单。

2.4程序的界面、交互方式和操作方法:

在出现如图一的主菜单后,输入用户想进行的操作的号码(1—5中任意一个号码),如输入错误将提示Error,重新出现主菜单,要求用户重新输入一个正确号码。

(如图三所示)

图三

如果输入正确,根据相对应的号码,用户能进行以下操作:

输入1:

表明此用户是新会员,用户将看到如图四的界面,用户需要按顺序录入姓名、身份证号及电话号码,每一项录入后请打回车键。

录完这些信息后,首先会出现用户的号码,请用户务必记清楚自己的号码,之后的一系列操作都需要用此号码完成。

然后会出现提示问是否要再输入一个新用户(如图五),如果是请输入1回车,程序要求您再次输入,不是请输入0回车,界面将跳回主菜单。

输入错误将提示error,然后跳出,出现主菜单。

图四

图五

输入2:

将出现如图二的界面,用户可根据需要进行操作。

在如图二界面出现的子菜单下:

输出用户的基本信息。

这需要用户通过之前所给出的号码来完成操作。

输入号码后按回车进行操作。

(如图六)

图六

输出此用户所累积的积分。

(用户需要执行过买书的操作后方有积分)(如图七)

图七

输入3:

用户买书,算出此次买书所需要花费的钱数。

提示输入此次消费所花的钱数,根据积分算出应付钱数(累积购书满1000分享受95折、满2000分享受9折、满5000分享受8折,每次积分的分数为折前应付的钱数)。

(如图八)

图八

输入4:

表示此用户会员卡丢失,对此用户进行标记,在基本信息输出时会显示卡已丢失。

(如图九、图十)

图九图十

输入5:

表示删除此用户。

输入6:

返回主菜单。

主菜单下:

自动排序,得到积分最高的人的姓名及相应积分。

如果最高积分为0将不输出。

(如图十一)

图十一

统计一共有多少位会员。

(如图十二)

图十二

退出程序。

2.5输入数据类型、格式和内容限制:

输入姓名、身份证号、电话号码以字符串形式输入,钱数为双精度实型,其他的均为整型。

每次打出数据后按回车键输入。

在要求输数字时,请输数字,不要输其他字母。

程序整体结构及各模块功能描述:

input():

输入用户信息

searchoutput():

输出用户信息

score():

统计用户积分情况

deal():

算出用户此次折后花费是多少,并累计积分

lost():

用户会员卡丢失

delet():

删除此用户

sort():

统计积分最高的用户

howmany():

统计一共有多少名会员

3.2主要模块算法和数据结构解释:

上述九个模块,用九个函数表示,除main()函数外,其余函数原型设计如下:

voidinput(STUDENTs[]);

此函数完成会员信息的输入,输入的会员信息保存在形式参数指定的结构数组中。

voidsearchoutput(STUDENTs[]);

voidscore(STUDENTs[]);

floatdeal(STUDENTs[]);

intlost(STUDENTs[]);

voiddelet(STUDENTs[]);

voidsort(STUDENTs[]);

voidhowmany(STUDENTs[]);

上述几个函数形式参数相同,s存放着所有会员的信息。

主程序为所有会员信息的保存提供了结构数组,各个模块通过函数参数使用该数组。

main()函数算法流程图:

searchoutput()函数算法流程图:

其它函数流程图与searchoutput()函数流程图大体相似,故不一一画出。

#include<

stdio.h>

string.h>

typedefstruct{/*会员信息的结构类型*/

longnum;

/*号码*/

charname[80];

/*姓名*/

charID[80];

/*身份证号*/

charphone[80];

/*电话号码*/

floatscore;

/*积分*/

intlost;

/*判断丢失*/

}STUDENT;

main()

{STUDENTs[100];

/*存放会员信息*/

intchoice1,choice2;

inti,j,b=0;

floatmoney;

longn,num;

for(i=0;

i<

100;

i++)/*初始化姓名、积分、号码*/

{strcpy(s[i].name,"

"

);

s[i].score=0;

s[i].num=0;

}

for(j=0;

;

j++)

{printf("

============MENU=========\n"

printf("

new...................................................1\n"

old....................................................2\n"

thehighestscore..............................3\n"

howmanycustomers.......................4\n"

exit..................................................5\n"

scanf("

%d"

&

choice1);

switch(choice1)

{case1:

input(s);

break;

case2:

for(i=0;

i++){

===========MENU=========\n"

basicinformation............................1\n"

score...............................................2\n"

price................................................3\n"

lost..................................................4\n"

delete..............................................5\n"

exitthismenu.................................6\n"

choice2);

switch(choice2)

searchoutput(s);

score(s);

break;

case3:

deal(s);

case4:

lost(s);

case5:

delet(s);

case6:

b=1;

default:

printf("

Error\n"

}if(b==1)/*跳出子菜单循环*/

}break;

sort(s);

howmany(s);

exit(0);

}

voidinput(STUDENTs[])/*输入会员信息*/

{inti,a=2;

i++)

{if(s[i].num==0)

{s[i].num=i+1;

\nEnteryourinformation(name,IDnumber,telephonenumber)\n"

scanf("

%s"

s[i].name);

s[i].ID);

s[i].phone);

Yournumberis%d\n"

s[i].num);

s[i].lost=0;

anoterone?

(yes=1,no=0)\n"

a);

if(a==1)

continue;

else

if(a==0)

voidsearchoutput(STUDENTs[])/*查找会员并输出*/

{inti;

longn;

enteryournumber:

\n"

%ld"

n);

{/*根据是否标记丢失,有两种不同的输出方式*/

if(s[i].num==n&

&

s[i].lost==1)/*标记丢失*/

{printf("

number:

%ld\nname:

%s\nIDnumber:

%s\ntelephonenumber:

%s\n"

s[i].num,s[i].name,s[i].ID,s[i].phone);

Ithasbeenlost!

s[i].lost==0)/*未标记丢失*/

if(strcmp(s[i].name,"

)==0)

Cannotfind!

floatdeal(STUDENTs[])/*计算该会员此次消费价钱*/

floatscore,money;

{if(strcmp(s[i].name,"

if(s[i].num==n)

howmuchitcoststhistime:

%f"

money);

s[i].score=s[i].score+money;

if(s[i].score>

=1000&

s[i].score<

2000)

money=money*0.95;

=2000&

5000)

money=money*0.9;

=5000)

money=money*0.8;

price:

%f\n"

money);

returns[i].score;

voidscore(STUDENTs[])/*输出该用户积分*/

thescoreis%f\n"

s[i].score);

intlost(STUDENTs[])/*标记丢失*/

{

inti;

{s[i].lost=1;

NO.%ldlost!

returns[i].lost;

voiddelet(STUDENTs[])/*删除该会员*/

{inti,a=0;

{if(s[i].num==n)

{strcpy(s[i].ID,"

NO.%ldhasbeendelete!

n);

a=1;

voidsort(STUDENTs[])/*选出积分最高的会员*/

floathigh;

high=s[0].score;

for(i=1;

if(high<

s[i].score)

high=s[i].score;

{if(high==s[i].score&

s[i].score!

=0)

name:

%sscore:

s[i].name,s[i].score);

voidhowmany(STUDENTs[])/*统计有多少名会员*/

{inti,count=0;

=100;

{if(s[i].num!

count++;

thereare%dcustomers\n"

count-1);

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

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1