1、C语言购物卡管理系统链表购物卡管理系统(一)系统主要功能模块:( 1)实现系统内制卡、发卡功能。(2)实现系统内购物卡帐户及相关帐户管理。(3)实现购物卡交易和合法性检查。(4)实现购物卡交易积分功能。(5)实现购物卡报表功能。( 6)数据以文件形式存储。提示: 制卡:指申请一个购物卡,但还没有使用。 发卡:指该卡已经起用。实现卡交易:指从卡中消费掉一定金额。(二)题目及要求的分析: 根据题目要求,系统应该实现以下功能:(1)制卡:主要是新建出一张购物卡,并输入了顾客部分信息,如姓名、密码等,但卡没 有激活,依然不可使用。(2)发卡:激活新建的购物卡,用户能够使用卡进行各项活动。(3)消费:进
2、入帐户后,取走少于帐户金额的钱款进行消费,并在帐户少减 少相应的金额,增加相应的积分。( 4)存款:进入帐户后,在金额项加上用户要存入的钱款。(5)报表:显示顾客购物卡上记录的所有信息,除密码外。( 6)存储:购物卡内的信息以文件形式存储。(7)退出:从系统中退出。(8)菜单:提供良好的界面,方便用户的操作。代码:调用字符函数 */通用输入输出库 */#include #include /* #include #include /* #include #include int flag=5;char name20; char number20; float money;char key10;
3、float jifen;float mid;int power; struct card *next;save(struct card *head); void list();void jihuo();struct card *chaxun();save(struct card *head) FILE *fp;struct card *q;q=head;if(fp=fopen(e:123.txt,ab+)=NULL)printf( 无法打开 n);exit(0);while(q!=NULL)if(fwrite(q,sizeof(struct card),1,fp)!=1) printf( 文件
4、写入错误 !);fclose(fp);return (head);q=q-next;fclose(fp);FILE *fp;struct card *q;q=head;if(fp=fopen(e:123.txt,wb)=NULL)printf( 无法打开 n);exit(0);while(q!=NULL)if(fwrite(q,sizeof(struct card),1,fp)!=1) printf( 文件写入错误 !);fclose(fp);return (head);q=q-next;fclose(fp);struct card *duqu()/ 读取数据struct card *head
5、 = NULL;struct card *p1, *p2;FILE *fp;if(fp=fopen(e:123.txt,rb+)=NULL)printf( 打开文件出错 n);exit(0);while(!feof(fp)if(p1=(struct card*)malloc(sizeof(struct card)=NULL)printf(something is wrong!n);fclose(fp);exit(0);free(p1);break;if(head=NULL)head=p2=p1;elsep2-next=p1;p2=p1;fclose(fp);return (head);stru
6、ct card *createlist()struct card *head,*p,*q;int i;char num20;head=(struct card*)malloc(sizeof(struct card);head-next=NULL;head-money=0;head-jifen=0;system(cls);doprintf(nnt 请输入要注册的卡号(六位数) : ); scanf(%s,head-number);if(strlen(head-number)!=6)system(cls);printf(nnnnnnnnnnttt 对不起您的输入 有误,请重新输入 !nn);*nn
7、n);Sleep(1000); system(cls);continue;printf(nnt 请输入您的名字 : );scanf(%s,head-name);printf(nnt 请输入您的密码 : );scanf(%s,head-key);head-power=99;while(strlen(head-number)!=6);p=head;system(cls);printf( 您的购物卡为: nn);积分 nn);printf(t%2s %16s %13.2f %13.2f,p-name,p-number,p-money,p-jifen); getche();p-next=NULL;sa
8、ve(head);printf(nnnnnnttt);printf( 购 物 卡 注 册 成 功 !nnnntttt 按 任 意 键 返回 );getche();void cost(struct card *q) struct card *p,*a;p=duqu();a=p;while(strcmp(q-number,p-number)!=0) p=p-next;system(cls);printf(nnnnnn);printf(ttt 请输入您的消费金额: );scanf(%f,&p-mid);(p-money)=(p-money)-(p-mid);(p-jifen)=(p-jifen)+(
9、p-mid);printf(nnnnnttt 显 示 完 毕 , 按 任 意 键 返 回 子 菜单 );getche();p=a;save1(p);void cunkuan(struct card *q)struct card *p,*a;p=duqu();a=p;while(strcmp(q-number,p-number)!=0)p=p-next;system(cls);printf(nnnnnn);printf(ttt 请输入您的存款金额: );scanf(%f,&p-mid);(p-money)=(p-mid)+(p-money);printf(nnttt您的余额为: %.2f,p-m
10、oney);printf(nnnnnttt显示完毕,按任意键返回子菜单 );getche();p=a;save1(p);void xiugai(struct card *q)char key10,num10;struct card *p,*a;p=duqu();a=p;while(strcmp(q-number,p-number)!=0) p=p-next;system(cls);printf(ntt*修改账户密码修改账户密码*nnn);printf(nnnn);printf(ttt 请输入您的新密码: );scanf(%s,num);printf(nnttt 请再次输入您的密码: );sca
11、nf(%s,key);if(strcmp(key,num)!=0)system(cls);*nnn);if(strcmp(key,num)=0)system(cls);r4F/vv *strcpy(p-key,num);printf(nnnnnnttt 修改密码成功 !);Sleep(1000);p=a;save1(p);void chaxun2(struct card *q)struct card *p,*a;p=duqu();a=p;while(strcmp(q-number,p-number)!=0)p=p-next;system(cls);printf(ntt*账户查询*nnn);pr
12、intf(t 您的账户信息为: nnn);printf(ntt 姓 名 卡 号 余 额 积分 nn);printf(tt%2s %16s %13.2f %13.2f,p-name,p-number,p-m oney,p-jifen);printf(n);getch();struct card *chaxun()int b,i=0;int flag=9;struct card *head; char num10,key10;struct card *p,*head1;head1=duqu();p=head1;system(cls);printf(ntt*账户登陆*nnn);printf(nnt
13、请输入您的卡号(六位数) : );scanf(%s,num); while(p!=NULL)if(strcmp(num,p-number)!=0)p=p-next; if(p=NULL)printf(nnt请重新输入卡号 (六位数 ): );system(cls);scanf(%s,num);p=head1;continue;if(p-power)=99)system(cls);printf(ntt*nnn);printf(nnnnnnnttt先激活 !);账户登陆对不起,该卡未激活,请getche();system(cls);main();if(p-power=100)while(flag=
14、9)printf(nnt 请输入密码(六位数) : ); scanf(%s,key);if(strcmp(key,p-key)=0)flag=10;if(strcmp(key,p-key)!=0)system(cls);r4F/vv *nnn);printf(nnnnnnnttt错误%次!,i+1);flag=9;i+;if(i=3)system(cls);printf(nnnnnnnttt次,系统自动返回主菜单! );Sleep(2000); system(cls);return;账户登陆对不起 ,密码输入密码输入错误三账户查询查询if(flag=10)break;while(1)syste
15、m(cls);printf(*n);printf(*n);printf( *n);printf(*n);printf( *n);printf(*n);printf( * 1*n);printf( * *n);printf( * 2 : 存 款 *n);printf( * *n);printf( * 3 : 消 费 *n);printf( * *n);printf( * 4 : 修 改 密 码 *n);printf( * *n);printf( * 5:返回主菜单*n);printf( * *n);printf(*n);printf(n);printf(tt 请选择操作 : );scanf(%d
16、,&b);switch(b)case 1:chaxun2(p); break;case 2:cunkuan(p);break;case 3:cost(p);break;case 4:xiugai(p);break;case 5:main();default:printf( 对不起,您的输入有误,请重新输入! );void jihuo()char x;char num10;struct card *p,*head1;head1=duqu();p=head1;system(cls);printf(ntt*激活购物卡*nnn);printf(t 请输入您要激活的卡号(六位数) : );scanf(%
17、s,num); while(p!=NULL) if(strcmp(num,p-number)!=0)p=p-next;elsewhile(p=NULL)system(cls);r4F/vv *nnn);printf(nnnnnnttt入卡号 !nn);激活购物卡没有该卡号信息 , 请重新输break;Sleep(1000);system(cls);printf(ntt*激活购物卡*nnn);printf(t 请重新输入您申请的卡号 (六位数 ): );scanf(%s,num);p=head1;system(cls);积分 nn);printf(t%2s %16s %13.2f %13.2f,
18、p-name,p-number,p-scanf( %c,&x);switch(x)case 1:system(cls);*nnn);p-power=100;save1(head1);printf(nnnnnnnttt);printf( 激活成功 , 按任意键返回主菜单 );getche();break;case 2:system(cls);getche();break;default:system(cls);printf(nnnnnnnttt););printf( 对不起,您的输入有误,请重新输入!Sleep(2000);void list()struct card *p1;p1=duqu()
19、;*nnn);system(cls);printf( 所有购物卡信息为: nnn);printf(nt 姓 名 卡 号 余 额 积分 nn);while(p1!=NULL)printf(t %2s %16s %14.2f %14.2f,p1-name,p1-number ,p1-money,p1-jifen);printf(n);p1=p1-next; main()int a;struct *head; printf(nnnnnnnntttt); printf( 欢迎使用 );购物卡管理系统printf(nn);printf(t *n);Sleep(1000);system(cls);whil
20、e(1)printf(n);printf(*n);printf( * 购 物 卡 管 理 系 统 *n);printf(*n);printf( * 菜 *n);printf(*n);printf( * 1 : 注 *n);printf(*n);printf( * 2 : 激 *n);printf(*n);printf( * 3 :帐户登录*n);printf(*n);名单printf( * 4*n);printf(*n);printf( * 0 :退出系统*n);printf(*n);printf(*n);printf(n);printf(tt 请选择操作 : );scanf(%d,&a);s
21、witch(a)case 1:createlist(head);system(cls);break;case 2:jihuo();system(cls);break;case 3:chaxun();break;case 4:list();printf(nnnnttt 显示完毕,按任意键返回主菜 单 );getche();system(cls);break;case 0:system(cls);printf(nnnnnnnnnnnttt);printf( 感谢您的使用,再见 !);printf(nnnnnttttt);Sleep(1000);exit(0);default:system(cls);printf(nnnttt 对不起 ! 您的输入有误 ! 请重新输入。);printf(n);欢迎您的下载,资料仅供参考!致力为企业和个人提供合同协议, 策划案计划书,学习资料等等打造全网一站式需求
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2