C语言购物卡管理系统(链表)_第1页
C语言购物卡管理系统(链表)_第2页
C语言购物卡管理系统(链表)_第3页
C语言购物卡管理系统(链表)_第4页
C语言购物卡管理系统(链表)_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

购物卡管理系统

(-)系统主要功能模块:

(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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论