C语言购物卡管理系统链表Word格式.docx
- 文档编号:19057662
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:19
- 大小:25.74KB
C语言购物卡管理系统链表Word格式.docx
《C语言购物卡管理系统链表Word格式.docx》由会员分享,可在线阅读,更多相关《C语言购物卡管理系统链表Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
(8)菜单:
提供良好的界面,方便用户的操作。
代码:
#include<
stdio.h>
#include<
ctype.h>
/*调用字符函数*/
stdlib.h>
conio.h>
/*通用输入输出库*/
string.h>
windows.h>
intflag=5;
structcard
{
charname[20];
charnumber[20];
floatmoney;
charkey[10];
exit(0);
}
while(q!
=NULL)
{
if(fwrite(q,sizeof(structcard),1,fp)!
=1)
{
printf("
文件写入错误!
"
);
fclose(fp);
return(head);
}
q=q->
next;
fclose(fp);
}
structcard*save1(structcard*head)
FILE*fp;
structcard*q;
q=head;
if((fp=fopen("
e:
\\123.txt"
"
wb"
))==NULL)
printf("
无法打开\n"
structcard*duqu()//读取数据
{
structcard*head=NULL;
structcard*p1,*p2;
rb+"
))==NULL)
{
printf("
打开文件出错\n"
exit(0);
}
while(!
feof(fp))
if((p1=(structcard*)malloc(sizeof(structcard)))==NULL)
{
somethingiswrong!
\n"
if(fread(p1,sizeof(structcard),1,fp)!
free(p1);
break;
if(head==NULL)
head=p2=p1;
else
p2->
next=p1;
p2=p1;
return(head);
structcard*createlist()
structcard*head,*p,*q;
inti;
charnum[20];
head=(structcard*)malloc(sizeof(structcard));
head->
next=NULL;
money=0;
jifen=0;
system("
cls"
\n\t\t********************注册购物卡*******************\n\n\n"
do
\n\n\t请输入要注册的卡号(六位数):
"
scanf("
%s"
head->
number);
if(strlen(head->
number)!
=6)
system("
\n\n\n\n\n\n\n\n\n\n\t\t\t对不起您的输入有误,请重新输入!
\n\n"
Sleep(1000);
continue;
\n\n\t请输入您的名字:
name);
\n\n\t请输入您的密码:
key);
head->
power=99;
while(strlen(head->
=6);
p=head;
您的购物卡为:
\n\t姓名卡号余额积分\n\n"
\t%2s%16s%13.2f%13.2f"
p->
name,p->
number,p->
money,p->
jifen);
getche();
p->
save(head);
\n\n\n\n\n\n\t\t\t"
购物卡注册成功!
\n\n\n\n\t\t\t\t按任意键返回....."
voidcost(structcard*q)
structcard*p,*a;
p=duqu();
a=p;
while(strcmp(q->
=0)
p=p->
\n\t\t********************账户消费*******************\n\n\n"
\n\n\n\n\n\n"
\t\t\t请输入您的消费金额:
scanf("
%f"
&
p->
mid);
(p->
money)=(p->
money)-(p->
jifen)=(p->
jifen)+(p->
\n\n\t\t\t您的余额为:
%.2f"
money);
\n\n\n\n\n\t\t\t显示完毕,按任意键返回子菜单....."
p=a;
save1(p);
voidcunkuan(structcard*q)
\n\t\t********************账户存款*******************\n\n\n"
\t\t\t请输入您的存款金额:
mid)+(p->
voidxiugai(structcard*q)
charkey[10],num[10];
\n\t\t********************修改账户密码*******************\n\n\n"
\n\n\n\n"
\t\t\t请输入您的新密码:
num);
\n\n\t\t\t请再次输入您的密码:
key);
if(strcmp(key,num)!
system("
\n\n\n\n\n\t\t对不起,两次输入的密码不一样,修改密码失败!
Sleep(1000);
if(strcmp(key,num)==0)
strcpy(p->
key,num);
\n\n\n\n\n\n\t\t\t修改密码成功!
p=a;
save1(p);
voidchaxun2(structcard*q)
system("
printf("
\n\t\t********************账户查询*******************\n\n\n"
\t您的账户信息为:
\n\n\n"
\n\t\t姓名卡号余额积分\n\n"
\t\t%2s%16s%13.2f%13.2f"
getch();
structcard*chaxun()
intb,i=0;
intflag=9;
structcard*head;
charnum[10],key[10];
structcard*p,*head1;
head1=duqu();
p=head1;
\n\t\t********************账户登陆*******************\n\n\n"
\n\n\t请输入您的卡号(六位数):
while(p!
if(strcmp(num,p->
p=p->
if(p==NULL)
{
\n\n\n\n\n\n\n\t\t\t没有该卡号信息,请重新输入!
Sleep(1000);
\n\n\t请重新输入卡号(六位数):
scanf("
p=head1;
}
if((p->
power)==99)
\n\n\n\n\n\n\n\t\t\t对不起,该卡未激活,请先激活!
getche();
main();
if(p->
power==100)
while(flag==9)
\n\n\t请输入密码(六位数):
if(strcmp(key,p->
key)==0)
{
flag=10;
}
key)!
system("
printf("
\n\n\n\n\n\n\n\t\t\t对不起,密码输入错误%d次!
i+1);
flag=9;
i++;
if(i==3)
{
\n\n\n\n\n\n\n\t\t\t密码输入错误三次,系统自动返回主菜单!
Sleep(2000);
return;
}
if(flag==10)
break;
while
(1)
*****************************************\n"
**\n"
*账户查询*\n"
*——————————————————*\n"
*1:
查询*\n"
*2:
存款*\n"
*3:
消费*\n"
*4:
修改密码*\n"
*5:
返回主菜单*\n"
\t\t请选择操作:
scanf("
%d"
b);
switch(b)
case1:
chaxun2(p);
case2:
cunkuan(p);
break;
case3:
cost(p);
case4:
xiugai(p);
case5:
main();
default:
printf("
对不起,您的输入有误,请重新输入!
voidjihuo()
charx;
charnum[10];
\n\t\t********************激活购物卡*******************\n\n\n"
\t请输入您要激活的卡号(六位数):
else
while(p==NULL)
\n\n\n\n\n\n\t\t\t没有该卡号信息,请重新输入卡号!
\t请重新输入您申请的卡号(六位数):
p=head1;
\n\n\n\n\n\t\t\t确认激活您的购物卡?
\n\n\t\t\t<
1>
是<
2>
否"
\n\n\t\t\t请选择:
%c"
x);
switch(x)
case'
1'
:
p->
power=100;
save1(head1);
\n\n\n\n\n\n\n\t\t\t"
激活成功,按任意键返回主菜单....."
getche();
break;
2'
您已放弃激活,按任意键返回主菜单....."
default:
Sleep(2000);
voidlist()
structcard*p1;
p1=duqu();
\n\t\t********************显示购物卡*******************\n\n\n"
所有购物卡信息为:
while(p1!
{
\t%2s%16s%14.2f%14.2f"
p1->
name,p1->
number,p1->
money,p1->
p1=p1->
main()
inta;
struct*head;
\n\n\n\n\n\n\n\n\t\t\t\t"
欢迎使用"
\t******************购物卡管理系统*******************\n"
Sleep(1000);
*购物卡管理系统*\n"
*菜单*\n"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 购物 管理 系统