版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
购物卡管理系统
(-)系统主要功能模块:
(1)实现系统内制卡、发卡功能。
(2)实现系统内购物R帐户及相关帐户管理。
(3)实现购物卡交易和合法性检查。
(4)实现购物卡交易积分功能。
(5)实现购物卡报表功能。
(6)数据以文件形式存储。
提示:
制卡:指申请一个购物卡,但还没有运用。
发卡:指该卡已经起用。
实现卡交易:指从卡中消费掉肯定金额。
(二)题目及要求的分析:
依据题目要求,系统应当实现以下功能:
(1)制卡:主要是新建出一张购物卡,并输入了顾客部分信息,如姓名、密码等,但卡没
有激活,依旧不行运用。
(2)发卡:激活新建的购物卡,用户能够运用卡进行各项活动。
(3)消费:进入帐户后,取走少于帐户金额的钱款进行消费,并在帐户少减
少相应的金额,增加相应的积分。
(4)存款:进入帐户后,在金额项加上用户要存入的钱款.
(5)报表:显示顾客购物卡上记录的全部信息,除密码外。
(6)存储:购物卡内的信息以文件形式存储。
(7)退出:从系统中退出。
(8)菜单:供应良好的界面,便利用户的操作。
代码:
#include<stdio.h>
#include<ctype.h>/*调用字符函数
#include<stdlib.h>
#include<conio.h>/*通用输入输出库*/
#include<string.h>
#include<windows.h>
intflag=5;
structcard
charname[20];
charnumber[20];
floatmoney;
charkey[10];
floatjifen;
floatmid;
intpower;
structcard*next;
);
save(structcard*head);
voidlist();
voidjihuo();
structcard*chaxun();
save(structcard*head)
(
FILE*fp;
structcard*q;
q=head;
if((fp=fopen(ne:\\123.txtn,Hab+n))==NULL)
printfC'无法打开\n);
exit(O);
while(q!=NULL)
if(fwrite(q,sizeof(structcard),l,fp)!=l)
printfC文件写入错误产);
fclose(fp);
return(head);
q=q->next;
fclose(fp);
}
structcard*savel(structcard*head)
FILE*fp;
structcard*q;
q=head;
if((fp=fopen(ne:\\123.txtn,Hwbu))==NULL)
(
printf("无法打开\n");
exit(O);
)
while(q!=NULL)
(
if(fwrite(q,sizeof(structcard),l,fp)!=l)
{
printf("文件写入错误!”);
fclose(fp);
return(head);
q=q->next;
fclose(fp);
structcard*duqu()〃读取数据
structcard*head=NULL;
structcard*pl,*p2;
FILE*fp;
if((fp=fopen(Me:\\123.txtM,nrb+H))==NULL)
{
printfC打开文件出错\n”);
exit(O);
)
while(!feof(fp))
if((pl=(structcard*)malloc(sizeof(structcard)))==NULL)
{
printf(Msomethingiswrong!\nu);
fclose(fp);
exit(O);
)
if(fread(pl,sizeof(structcard),l,fp)!=l)
free(pl);
break;
if(head==NULL)
head=p2=pl;
else
p2->next=pl;
p2=pl;
fclose(fp);
return(head);
)
structcard*createlist()
(
structcard*head,*p,*q;
inti;
charnum[20];
head=(structcard*)malloc(sizeof(structcard));
head->next=NULL;
head->money=0;
head->jifen=O;
system(nclsn);
prii)tf("\n\t\t********************注册购物卡
*******************\n\n\n'');
printf(”\n\n\t请输入要注册的卡号(六位数):n);
scanf(n%sn,head->number);
if(strlen(head->number)!=6)
system(nclsn);
printf(**\n\ii\ii\n\ii\n\n\ii\ii\ii\t\t\t对不起您的输入有误,请
重新输入!\n\n");
Sleep(lOOO);
system(,,clsn);
printf("\n\t\t********************注册购物卡
*******************\n\n\n'');
continue:
printf(”\n\n\t请输入您的名字:n);
scanf(H%sn,head->name);
printf「\n\n\t请输入您的密码:");
scanf(H%sn,head->key);
head->power=99;
)
while(strlen(head->number)!=6);
p=head;
system(nclsn);
printf("\n\t\t********************注册购物卡
*******************\n\n\n'')•
printf("您的购物卡为:\n\n”);
printf(n\n\t姓名卡号余额
积分\n\nu);
printf(M\t%2s%16s%13.2f%13.2fM,p->name,p->number,p->mo
ney,p->jifen);
getche();
p->next=NULL;
save(head);
printf(11\n\n\n\n\n\n\t\t\tM);
printf("购物卡注册胜利!\n\n\n\n\t\t\t\t按随意键返回••…”);
getcheQ;
voidcost(structcard*q)
structcard*p,*a;
p=duqu();
a=P;
while(strcmp(q->number,p->number)!=O)
(
p=p->next;
system(Hclsn);
■1*•I<5*<5**1•
*4*账户消费
');
printf(,,\n\n\n\n\n\nn);
printf(”\t\t\t请输入您的消费金额:”);
scanf(n%fn,&p->mid);
(p->money)=(p->money)-(p->mid);
(p->jifen)=(p->jifen)+(p->mid);
printf("\n\n\t\t\t您的余额为:%.2fn,p->money);
printf(11\n\n\n\n\n\t\t\t显示完毕,按随意键返回子菜单.・・・.");
getcheQ;
P=a;
savel(p);
)
voidcunkuan(structcard*q)
(
structcard
p=duqu();
a=p;
while(strcmp(q->number,p->number)!=O)
(
p=p->next;
system(nclsn);
printf(''\n\t\t********************账户存款
);
printf(,,\n\n\n\n\n\nH);
printf(n\t\t\t请输入您的存款金额:”);
scanf(n%fn,&p->mid);
(p->money)=(p->mid)+(p>>inoney);
printf(H\n\n\t\t\t您的余额为:%.2fH,p->money);
printf(1AnXnXnXnynXtXtU显示完毕,按随意键返回子菜单••…”);
getche();
P=a;
savel(p);
)
voidxiugai(structcard*q)
charkey[10],num[10];
structcard
p=duqu();
a=p;
while(strcmp(q->number,p->nuinber)!=O)
{
p=p->next;
system(nclsn);
printf("\n\t\t********************修改账户密码
*******************\n\n\n'');
printf(,,\n\n\n\nM);
printf("\t\t\t请输入您的新密码:”);
scanf(n%sn,num);
printf(H\n\n\t\t\t请再次输入您的密码:”);
scanf(n%su,key);
if(strcmp(key,num)!=O)
system(,,clsH);
printfC1'\n\t\t********************修改账户密码
*******************\n\n\n'‘);
printf("\n\n\n\n\n\t\t对不起,两次输入的密码不一样,修改密
码失败!'');
Sleep(lOOO);
system(nclsn);
)
if(strcmp(key,num)==O)
(
system(,,clsM);
printf("\n\t\t********************彳64
*******************\n\n\n'')・
strcpy(p->key,num);
printf(M\n\n\n\n\n\n\t\t\t修改密码胜利!”);
Sleep(lOOO);
P=a;
savel(p);
voidchaxun2(structcard*q)
structcard
p=duqu();
a=P;
while(strcmp(q->number,p->number)!=O)
p=p->next;
system(MclsM);
pr*****************账户查询
*******************\n\nW
printf(”\t您的账户信息为:\n\n\iT);
printf(M\n\t\t姓名卡号余
额积分\n\nM);
printf(n\t\t%2s%16s%13.2f%13.2fn,p->name,p->number,p->mone
y,p->jifen);
printf(H\nn);
getch();
structcard*chaxun()
intb,i=0;
intflag=9;
structcard*head;
charnum[10],key[l()];
structcard*p,*headl;
headl=duqu();
p=headl;
system(Mclsn);
printf("\n\t\t********************
*******************\n\nW
printf("\n\ii\t请输入您的卡号(六位数):n);
scanf(n%s,,,num);
while(p!=NULL)
if(strcmp(num,p->number)!=O)
p=p->next;
if(p==NULL)
system(nclsM);
*******************\n\n\n'‘);
printf("\n\n\n\n\n\n\n\t\t\t没有该卡号信息,请重新输
入!\n\iT);
Sleep(lOOO);
system(nclsH);
printf("\n\t\t********************账户登陆
*******************\n\n\n'');
printf(n\n\n\t请重新输入卡号(六位数):”);
scanf(M%sM,num);
p=headl;
continue:
if((p->power)==99)
system(Mclsft);
printfn\t\t********************
*******************\n\n\n'')•
printf(,^nXnXnXnXnXnXnXtXtXt对不起,该卡未激活,请先激
活!'');
getche();
system('ds");
main();
}
if(p->power==100)
(
while(flag==9)
printf("\n\n\t请输入密码(六位数):n);
scanf(M%sM,key);
if(strcmp(key,p->key)==O)
flag=10;
}
if(strcmp(key,p->key)!=O)
system(nclsH);
printf("\n\t\t********************账户登陆
*******************\n\n\n'')•
printf(H\n\n\n\n\n\n\n\t\t\t对不起,密码输入错误%(1
次!”,i+l);
flag=9;
i++;
if(i==3)
(
system(nclsn);
printf(H\n\n\n\n\n\n\n\t\t\t密码输入错误三次,系统
自动返回主菜单!”);
Sleep(2000);
system(nclsM);
return;
}
)
if(flag==10)
break;
}
while(l)
system(nclsn);
printf(n
*2*.,**.,*1"***.,**.1*.***.2*,**2*...**2**不**2*.,**1***2.*,*...**丫**2.**.S^.*1***2*.,*«t.«,.*.,.*2,*,*5tf)\;
printf(H*
*\nH);
printf(H*账户查询
*\nn);
printf(H*
*\n‘‘);
printf(H*
——*\n’');
printf(M*
*\nM);
printfC,*1:查询
*5”);
printf(M*
*\n‘‘);
printf(M2存款
*\nn);
printf(M*
*\nM);
printf(M*3:消费
*\n”);
printf(M*
*\n”);
printf(M*4:修改密码
printf(M*
*\nM);
printf(M*5:返回主菜单
*\nM);
printf(H*
*\nM);
printf(M
printf(H\nn);
printf(H\t\t请选择操作:”);
scanf(n%dM,&b);
switch(b)
casel:chaxun2(p);break;
case2:cunkuan(p);break;
case3:cost(p);break;
case4:xiugai(p);break;
case5:main();
default:printf("对不起,您的输入有误,请重新输入!”);
voidjihuo()
charnum[10];
structcard*p,*headl;
headl=duqu();
p=headl;
system(nclsn);
printf("\n\t\t********************激活购物卡
*******************\n\n\n'‘);
printf(”\t请输入您要激活的卡号(六位数):”);
scanf(n%sH,num);
while(p!=NULL)
if(strcmp(num,p->number)!=O)
p=p->next;
else
break;
while(p==NULL)
system(Hclsn);
printf("\n\t\t********************~
*******************\n\n\n'')•
printf(,^nXnXnXnXnXnXtXtXt没有该卡号信息,请重新输入卡
号!\n\n'');
Sleep(lOOO);
system(MclsM);
printf("\n\t\t********************,■长
*******************\n\n\n'');
printf「\t请重新输入您申请的卡号(六位数):”);
scanf(H%sn,num);
p=headl;
}
system(Hclsn);
printf(',\n\t\t********************激活购物卡
*******************\n\n\n'')•
printf("您的购物卡为:\n\iT);
printf(n\n\t姓名卡号余额
积分\n\nM);
printf(n\t%2s%16s%13.2f%13.2fn,p->name,p->number,p->mo
ney,p->jifen);
printf(H\n\n\n\n\n\t\t\t确认激活您的购物卡?\n\n\t\t\t<1>是
<2>否");
printf(M\n\n\t\t\t请选择:H);
scanf(n%cH,&x);
switch(x)
caseT:
system(nclsn);
printf(''\n\t\t********************激活购物卡
);
p->power=100;
savel(headl);
printf(''\n\n\n\n\n\n\n\t\t\t'');
printfC激活胜利,按随意键返回主菜单.•…”);
getche();
break;
case*2*:
system(nclsn);
<5*•,*af*■£,■,・
printf(H\n\t\t****4**4*激活购物卡
);
printf(,,\n\n\n\n\n\n\n\t\t\tM);
printf「您已放弃激活,按随意键返回主菜单••…”);
getche();
break;
default:
system(nclsn);
printf("\n\t\t********************激活购物卡
*******************\n\n\n”);
printf(M\n\n\n\n\n\n\n\t\t\tM);
printfC对不起,您的输入有误,请重新输入!”);
SIeep(2000);
voidlist()
structcard*pl;
pl=duqu();
system(Hclsn);
•?・••••?・•••1I
个个G个个个个个个个个个个个个个个
printf("全部购物卡信息为:\n\n\nM);
printf(M\n\t姓名卡号余额
积分\n\nu);
while(pl!=NULL)
(
printf(n\t%2s%16s%14.2f%14.2fH,pl->name,pl->number,pl
->money,pl->jifen);
printf(M\nM);
pl=pl->next;
main()
inta;
struct*head;
printf("\n\n\n\n\n\ii\n\n\t\t\t\t'');
printf(n欢迎运用”);
printf(H\n\nH);
n
printf(\t*5*5^jJj5^Cj}csjj5^sjc5{C5jC5}C5^*}*5^?*}*购物卡管理系统
*(•tf\
不不****4*不*1*平不不不***不*J*•**不***不不不\IX■■)
Sleep(lOOO);
system(HclsM);
while⑴
prmtf(n\nn);
printf(M
•£,*?*<2>7••?**f*■力7••?,*1**?*7,*?*“•”••1>■触*f*•么」•a£a7>11X
小个小小不小不小W小小不小不小小不小不小小"不小小不小M小不小不小”八n);
printfr1购物卡管理
系统*\n'');
printf(u
**>**><*>\>*2><r>K2**f><*/■>**#<*>K*>K?><2>«T><£><2>*J>KJ**I>«*>*Y>>SIX
.「.「.「»|»»!•.「..•.「q...•*1•»Jw.「»Jw■.•rj».「»!w,.•.「..•»(•.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年大学机电一体化工程(系统设计)试题及答案
- 制药厂工作安全培训内容课件
- 工程技术教学课件
- 制图投影基本知识课件
- 工程勘测安全培训课件
- 手术室患者隐私保护的心理干预策略
- 成本控制中的瓶颈突破策略
- 幼儿园师德师风应急处置预案
- 电子发票代开服务合同协议
- 设备巡检数据采集协议
- 医疗人员职业素养提升策略分享
- 生物安全培训班课件
- 浙江省温州市瑞安市2024-2025学年四年级上册期末考试数学试卷(解析版)
- 洗衣液宣传课件
- 儿童急性呼吸道感染病原学诊断与临床管理专家共识2026
- 缺铁性贫血并发症的预防与护理
- 在线网课学习课堂《人工智能(北理 )》单元测试考核答案
- 南昌工程学院施工组织设计
- GA 1808-2022军工单位反恐怖防范要求
- GB/T 14689-2008技术制图图纸幅面和格式
- 企业职工基本商务礼仪培训
评论
0/150
提交评论