C语言如何实现ATM机存取款系统文档格式.docx
《C语言如何实现ATM机存取款系统文档格式.docx》由会员分享,可在线阅读,更多相关《C语言如何实现ATM机存取款系统文档格式.docx(26页珍藏版)》请在冰豆网上搜索。
voidkaihu(structper*head);
voiddenglu(structper*head);
voidcaidan(structper*head);
voidqukuan(structper*head);
voidxgmm(structper*head);
voidcunkuan(structper*head);
voidzhuanzhang(structper*head);
voidchuangjian(structperson**Phead);
voidshuchu(structperson*Phead);
voidshanchu(structperson**Phead);
voidzengjia(structperson**Phead);
voidchaxun1(structperson*Phead);
voidchaxun2(structperson*Phead);
voidchaxun3(structperson*Phead);
voidtuichu();
voidmenu();
/*主函数*/
//////////////////////////////////////////////////
voidmain()
charx;
charchoose;
//choose为定义输入选择的变量
intflag=1;
structperson*Phead=NULL;
//Phead为定义二层头指针
structper*head=NULL;
//head为定义一层头指针
printf("
*****************************"
);
**欢迎使用ATM自动取款机系统**"
――――――――――――――"
|1开户|"
|2登陆|"
|3前台客户信息查询中心|"
|4请选择您的需求|"
scanf("
%s"
&
x);
system("
cls"
switch(x)
case'
1'
:
system("
kaihu(head);
//调用开户函数
break;
2'
denglu(head);
//调用登陆函数
3'
menu();
//调用后台菜单函数
}
while(flag)
choose=get);
switch(choose)
chuangjian(&
Phead);
shuchu(Phead);
//调用后台输出函数
pause"
chaxun1(Phead);
//调用后台卡号查询函数
chaxun2(Phead);
//调用后台姓名查询函数
4'
chaxun3(Phead);
//调用后台余额查询函数
5'
shanchu(&
//调用后台删除用户函数
6'
zengjia(&
//调用后台增加用户函数
7'
shuchu(Phead);
//调用后台输出函数函数
8'
0'
flag=0;
Theend."
/*开户函数*/
////////////////////////////////////////////////////////
voidkaihu(structper*head)
head=NULL;
FILE*fp;
//定义文件指针
structper*p1=NULL,*p2=NULL;
//p1,p2为定义链表指针
p1=(structper*)malloc(sizeof(structper));
//开辟内存单元
请输入您的姓名:
"
//请数据输入链表中
p1->
name);
请设置您的卡号:
ID);
请设置您银行卡密码:
mima);
p1->
money=0;
next=NULL;
您的个人信息为"
姓名:
%s卡号:
%s余额:
%4d"
name,p1->
ID,p1->
money);
if(NULL==head)//为新用户开辟内存单元
head=(structper*)malloc(sizeof(structper));
head->
next=p1;
//进行头插法,将其作为第一个节点
else//为新增客户开辟内存单元
for(p2=head;
p2->
next!
=NULL;
p2=p2->
next);
//进行尾插
p2->
if((fp=fopen("
save.txt"
"
ab+"
))==NULL)//打开文件
cannotpoenfile"
return;
if(fwrite(p1,sizeof(structper),1,fp)!
=1)//将链表信息写入文件中
filewriteerror"
fclose(fp);
恭喜您开户成功,请登录"
//登陆函数
/////////////////////////////////////////////////////
voiddenglu(structper*head)
chard[20];
charmima[20];
inti,j;
structper*p,*q=NULL;
rb+"
))==NULL)//打开一个二进制文件,为读方式
不能打开文件"
//如不能打开,则结束程序
p=(structper*)malloc(sizeof(structper));
//申请空间
head=p;
while(!
feof(fp))//循环读数据直到文件尾结束
if(1!
=fread(p,sizeof(structper),1,fp))
//如果没读到数据,跳出循环
p->
next=(structper*)malloc(sizeof(structper));
//为下一个结点申请空间
q=p;
//保存当前节点的指针,作为下一结点的前驱
p=p->
next;
//指针后移,新读入数据链到当前表尾
q->
//最后一个结点的后继指针为空
**********************"
***欢迎来都建设银行***"
for(j=1;
j<
4;
j++)//限制卡号输入的次数的循环
请输入您的卡号"
d);
for(q=head;
q!
q=q->
next)//遍历链表
if(strcmp(q->
ID,d)!
=0)//核对账号
continue;
//跳出循环
else
for(i=1;
i<
i++)//限制密码输入的次数的循环
请输入您的密码"
mima);
mima,mima)!
=0)//核对密码
密码不正确。
请重新输入密码"
continu