一 设计思想
首先,用函数实现会员系统所能执行的的各项操作的入口;其次,给定函数设定对
应的操作步骤的选择及其对应各项操作,制定相应的函数,其中要明确 “会员所对应的
各种数据的存放”用的是 “某种结构体统一存放”,则修改中某个会员的一项或多项数据
的方法的基本思想是:逐步找到该结构体所对应的那一项,在不同的操作中修改例如“会
员续费”,并回到系统主页,继续执行下一项操作,即切换下一项操,作为另一个函数,
如此重复;结构体的引用和调用,指的是在函数中用地址引用该结构体的内容,即要求
将会员的各项信息存入该结构体中,而且执行格对应数据字符的输入、更改、储存。对
会员的统计功能,则应顺着按照每个会员的信息用起泡法排序,然后最后一行统计各项
总额;最后,利用函数,把总的信息储存在电脑的某个位置,以便以后进行修改和调用
二 系统完成功能及框图
系统完成功能:用户按题目要求输入一个距阵表示该会员计费系统,通过该系统进
行各项操作。
开 始
输入对应操作代号
设定函数的入口
调用对应函数执行
储存最后的数
据到电脑
结束
图1 系统功能框图
三 核心算法及说明
2.会员信息的录入
void add_data()
{
struct member mem;
int b,year,tel,cost,left;
char name;
static int i 1;
while(1)
{
srand((int)time(0)); /*系统时间为种子*/
mem[i].No rand()%100; /*随机数*/
printf("新注册会员卡号为%d",mem[i].No);
printf("\t\t\t请输入新会员个人信息\n");
printf("\t姓名\t生日\t 电话\n");
scanf("%s%d%d",dd.mem[i].name,&year,&tel);
dd.mem[i].tel tel;
dd.mem[i].year year;
dd.mem[i].cost 0;
dd.mem[i].left 0;
dd.count++;
printf("\t\t\t此次录入已完成。");
printf("\t\t\t继续添加会员信息[1-yes 0-no]:");
scanf("%d",&b);
if(b 0) break;
else i++;
}
save_data();
}
3. 会员资料的修改
void edit_data()
{
struct member mem;
int i,No,year;
long int tel;
char name[50];
printf("\t\t\t请输入要编辑会员的卡号:");
scanf("%d",&No);
for(i 0;i< dd.count;i++)
{
if(strcmp(dd.mem[i].No,No) 0)
{
printf("已找到此人,原始记录为:");
printf("\t\t\t该会员卡号,姓名,电话,生日,消费金额,剩余金额");
printf("%d\t%s\t%d\t%d\t%d\t%d\n",dd.mem[i].No,dd.mem[i].name,dd.mem[i].tel,
dd.mem[i].cost,dd.mem[i].left);