getchar(); }
void load(mem *p)
{ //从文件加载信息 FILE *fp; mem *pLast = NULL; head=NULL; if((fp=fopen(\ { //检查打开文件的操作是否有错 printf(\没有会员信息,请录入!\ getch(); menu(); //调用菜单函数 } while(!feof(fp)) { //文件指针是否到达末尾 mem *pNew = (mem *)malloc(sizeof(mem)); //按 mem 动态分配内存 pNew->next = NULL; fscanf(fp, \ pNew->id, pNew->name, pNew->sex, &(pNew->age), &(pNew->money), pNew->tel,&(pNew->cost)); if(head == NULL) { head = pNew; } else { pLast = get_last(head); pLast->next = pNew; } } p = head; fclose(fp); }
//通过卡号搜索信息函数
mem* search_id(mem *p)
{ }
//通过卡号搜索信息 char id[MAX]; int i=0; p = head;
scanf(\
while(p&&(strcmp(id,\
{ //判断id是否不为n if(strcmp(p->id,id)==0) { //找到 i=1; break; } else p=p->next; }
if(strcmp(id,\ //输入n时返回菜单 menu(); if(p==NULL) { //重新搜索卡号 printf(\您查找的卡号不存在,请重新输入:\\n\ p=search_id(p); //调用寻找函数 } else return p; //返回p
/*修改会员信息操作*/
void modify_m() {
//修改会员的信息 char s,fun='y';
char pro[] = \
\姓名\\n\\性别\\n\\年龄\\n\\电话\\n\\返回\\n\\mem *p; load(p);
display(p); //调用显示函数
printf(\请输入需要修改信息的会员卡号(n返回菜单):\
p=search_id(p); //调用按号寻找函数 while(fun=='y'||fun=='Y')
{ //当继续寻找时 system(\ //清屏 display_one(p); //调用显示一条函数 printf(\请选择修改的项目:\\n\ printf(pro); //输出pro getchar(); scanf(\ switch(fun) { //用switch语句选择修改内容 case '1': printf(\请输入姓名: \ scanf(\ case '2': a:
printf(\请输入性别(f--女m--男): \getchar(); s = getchar(); if(s=='f'||s=='m') { if (s == 'f' || s == 'F') strcpy(p->sex,\女\ if (s == 'M' || s == 'm') strcpy(p->sex,\男\ } else { printf(\输入错误,请重新输入...\\n\ goto a; } break;
scanf(\break;
case '3': printf(\请输入年龄: \
scanf(\ case '4': printf(\请输入电话: \ default : break; }
printf(\是否继续修改Y/N?\ //判断是否继续寻找 getchar(); fun=getchar(); } modify_file(p); //调用保存修改会员信息函数 system(\ //清屏 display_one(p); //调用显示一条函数 printf(\修改成功,按任意键继续!\ getchar(); menu(); //调用菜单函数 }
//会员续费函数
void add() { //会员续费 float money; mem *p; load(p); display(p); //调用浏览函数 printf(\
printf(\请输入需要续费的会员卡号(n返回菜单):\ p=search_id(p); system(\ display_one(p); printf(\请输入续费金额:\ scanf(\ p->money+=money; modify_file(p); 函数 system(\ display_one(p); printf(\续费成功,任意键继续!\ getchar(); menu(); }
void consume() { //会员结算 mem *p; float cost; load(p); display(p); printf(\ printf(\请输入需要结算的会员卡号(n返回菜单):\
p=search_id(p); system(\ display_one(p); printf(\请输入花费金额:\ scanf(\ if(p->cost>=1000)
{ vip
//调用按号寻找函数 //清屏 //调用显示一条函数 //续费 //调用保存修改会员信息 //清屏 //调用显示一条函数 //调用菜单函数
//会员结算函数 /* 调用浏览函数*/ //调用按号寻找函数 //清屏
//调用显示一条函数 //判断是否升级为
printf(\恭喜您已经升级为VIP,本次消费9折优惠。\\n\
printf(\本次实际消费%.2f元!\ //升级为vip,消费打9折 cost*=0.9;
if((p->money-cost)<0)
{ //判断余额是否充
足 printf(\对不起,余额不足,请及时充值!\ getchar(); menu(); } p->cost+=cost; p->money-=cost; getchar(); } else { if((p->money-cost)<0) { //同上 printf(\对不起,余额不足,请及时充值!\ getchar(); menu(); }
p->cost+=cost; p->money-=cost;
}
modify_file(p); 数 system(\ display_one(p); printf(\结算成功,任意键继续!\ getch(); menu(); }
void delete_m()
{ mem *p,*q=head,*thelast; float money; load(p); display(p); printf(\
//消费 //调用保存修改会员信息函//清屏 //调用显示一条函数 //调用菜单函数 /*会员退出函数*/ //删除会员信息 /* 调用浏览函数*/