1、用户可以根据需求,选定相应的操作项目。进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。1.6输出要求:(1) 应用程序运行后,要在屏幕上显示一个菜单;(2) 要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。1.7提示:使用结构类型和一维数组类型,用来保存会员卡的内容。2.1应用程序功能的详细说明:本程序为图书大厦会员卡管理程序,主菜单分为五个选项(如图一所示)分别为:录入新会员、进入老会员资料、统计所用会员中积分最高者、统计会员总数以及离开。图一进入old选项后出现一子菜单,可进行一系列对老会员管理的操作(如图二所示)。其操作包括基本信息的输
2、出、积分统计、本次买书折后价格、会员卡丢失、删除此会员、离开子菜单。图二2.2应用程序运行环境的要求:此程序在windows操作系统环境中即可运行。2.3应用程序的安装与启动方法:打开win-TC,打开命名为07010120.c的文件,在菜单中点击编译链接并运行,将会出现对话框“恭喜,编译成功”,单击确定,便会出现如图一的主菜单。2.4程序的界面、交互方式和操作方法:在出现如图一的主菜单后,输入用户想进行的操作的号码(15中任意一个号码),如输入错误将提示Error,重新出现主菜单,要求用户重新输入一个正确号码。(如图三所示)图三如果输入正确,根据相对应的号码,用户能进行以下操作:输入1:表明
3、此用户是新会员,用户将看到如图四的界面,用户需要按顺序录入姓名、身份证号及电话号码,每一项录入后请打回车键。录完这些信息后,首先会出现用户的号码,请用户务必记清楚自己的号码,之后的一系列操作都需要用此号码完成。然后会出现提示问是否要再输入一个新用户(如图五),如果是请输入1回车,程序要求您再次输入,不是请输入0回车,界面将跳回主菜单。输入错误将提示error,然后跳出,出现主菜单。图四图五输入2:将出现如图二的界面,用户可根据需要进行操作。在如图二界面出现的子菜单下:输出用户的基本信息。这需要用户通过之前所给出的号码来完成操作。输入号码后按回车进行操作。(如图六)图六输出此用户所累积的积分。(
4、用户需要执行过买书的操作后方有积分)(如图七)图七输入3:用户买书,算出此次买书所需要花费的钱数。提示输入此次消费所花的钱数,根据积分算出应付钱数(累积购书满1000分享受95折、满2000分享受9折、满5000分享受8折 ,每次积分的分数为折前应付的钱数)。(如图八)图八输入4:表示此用户会员卡丢失,对此用户进行标记,在基本信息输出时会显示卡已丢失。(如图九、图十) 图九 图十输入5:表示删除此用户。输入6:返回主菜单。主菜单下:自动排序,得到积分最高的人的姓名及相应积分。如果最高积分为0将不输出。(如图十一)图十一统计一共有多少位会员。(如图十二)图十二退出程序。2.5输入数据类型、格式和
5、内容限制:输入姓名、身份证号、电话号码以字符串形式输入,钱数为双精度实型,其他的均为整型。每次打出数据后按回车键输入。在要求输数字时,请输数字,不要输其他字母。程序整体结构及各模块功能描述:input():输入用户信息searchoutput():输出用户信息score():统计用户积分情况deal():算出用户此次折后花费是多少,并累计积分lost():用户会员卡丢失delet():删除此用户sort():统计积分最高的用户howmany():统计一共有多少名会员3.2主要模块算法和数据结构解释:上述九个模块,用九个函数表示,除main()函数外,其余函数原型设计如下:void input(
6、STUDENT s);此函数完成会员信息的输入,输入的会员信息保存在形式参数指定的结构数组中。void searchoutput(STUDENT s);void score(STUDENT s);float deal(STUDENT s);int lost(STUDENT s);void delet(STUDENT s);void sort(STUDENT s);void howmany(STUDENT s);上述几个函数形式参数相同,s存放着所有会员的信息。主程序为所有会员信息的保存提供了结构数组,各个模块通过函数参数使用该数组。main()函数算法流程图:searchoutput()函数算
7、法流程图:其它函数流程图与searchoutput()函数流程图大体相似,故不一一画出。#includestring.htypedef struct /*会员信息的结构类型*/ long num; /*号码*/ char name80; /*姓名*/ char ID80; /*身份证号*/ char phone80; /*电话号码*/ float score; /*积分*/ int lost; /*判断丢失*/ STUDENT; main()STUDENT s100; /*存放会员信息*/ int choice1,choice2; int i,j,b=0; float money; long
8、n,num; for(i=0;i=1000&si.score2000) money=money*0.95;=2000&5000) money=money*0.9;=5000) money=money*0.8;price:%fn,money); return si.score;void score(STUDENT s) /*输出该用户积分*/the score is %fn,si.score); int lost(STUDENT s) /*标记丢失*/ int i; si.lost=1;NO.%ld lost! return si.lost;void delet(STUDENT s) /*删除该
9、会员*/ int i,a=0; if(si.num=n) strcpy(si.ID,NO.%ld has been delete!,n); a=1;void sort(STUDENT s) /*选出积分最高的会员*/ float high; high=s0.score; for(i=1; if(highsi.score) high=si.score; if(high=si.score&si.score!=0)name:%s score:,si.name,si.score);void howmany(STUDENT s) /*统计有多少名会员*/ int i,count=0;=100; if(si.num! count+;there are %d customersn,count-1);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1