银行ATM机存取款系统程序设计Word格式文档下载.docx

上传人:b****6 文档编号:17378390 上传时间:2022-12-01 格式:DOCX 页数:31 大小:416.10KB
下载 相关 举报
银行ATM机存取款系统程序设计Word格式文档下载.docx_第1页
第1页 / 共31页
银行ATM机存取款系统程序设计Word格式文档下载.docx_第2页
第2页 / 共31页
银行ATM机存取款系统程序设计Word格式文档下载.docx_第3页
第3页 / 共31页
银行ATM机存取款系统程序设计Word格式文档下载.docx_第4页
第4页 / 共31页
银行ATM机存取款系统程序设计Word格式文档下载.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

银行ATM机存取款系统程序设计Word格式文档下载.docx

《银行ATM机存取款系统程序设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《银行ATM机存取款系统程序设计Word格式文档下载.docx(31页珍藏版)》请在冰豆网上搜索。

银行ATM机存取款系统程序设计Word格式文档下载.docx

4)caidan函数:

向客户展示银行业务菜单,办理存取款、查询等

5)qukuan函数:

客户取款

6)xgmm函数:

进行密码修改

7)cunkuan函数:

客户存款

8)zhuanzhang函数:

客户转账

9)tuichu函数:

退出系统

2.主函数调用各功能函数流程

四.数据结构描述

structper/*定义结构体*/

{

charname[20];

/*姓名*/

charID[20];

/*卡号*/

intmoney;

/*金额*/

charcode[6];

/*密码*/

structper*next;

/*定义指针*/

};

typedefstructperson

{

structperkehu;

structperson*next;

}L;

该数据结构为链表,是一种动态进行存储分配的结构。

链表的每一个一个节点中包含了一个指针变量,用它存放下一个结点的地址,环环相扣。

五算法设计

1、开户

2.登录

否是

3.取款

是否

4.存款

开始

结束

输入存款金额

链表中添加该记录

5.密码修改

6.转账

7.查询

六.程序运行结果

1.开户

3.选择业务

4.取款

5、查询

7、修改密码

8、存款

9、退出

退出系统。

七总结

1.分工情况

何慧冬:

程序框架的搭建和运行调试后的修改

贡怡敏:

界面处理和函数内容的补充

徐唯一:

算法设计和流程图的制作

2.心得体会

这次对银行ATM机的程序编写过程中,遇到了不少困难。

首先是经过一个暑假,小组成员对之前学的C程序设计内容掌握程度不像上学期那么高,加上短学期接触到了C++的相关内容,对新知识点的理解和运用也不是很熟练,所以一开始比较难上手。

其次是对结构体、指针等重点难点内容的运用不是很擅长。

在弄清楚各个函数的使用后,把各个函数的功能镶嵌起来比较花功夫。

在设计上面,我们觉得“密码最多允许输错三次”这个环节比较考验人。

尤其是不断地调试,要把组员们各自编译的函数搭建起来完美运行并不是件容易的事,需要三个人一起分析和探讨,在调试的过程中不断修改,直至完美运行。

过程是艰辛的,结果是可喜的。

程序的完美呈现,离不开三个人的共同努力。

自己需要做好自己的那一部分,而团队合作便是成功的核心。

通过这次小组合作程序设计,真是让我受益匪浅。

银行ATM机的程序编写,不仅很好地让我们运用起所学的C语言的相关知识,也与我们的经济学专业相衔接,这与平时的做题有很大的不同。

虽然对于界面的设计看似较容易上手,但我们的程序构思却是和这界面设计有着莫大的联系,丝毫不能马虎的。

在调试运行我们的程序时,每一个步骤都不能省略,才能保证我们的程序是否真的完美运行没有差错。

在操作过程中的轻松,背后是我们小组齐心协力的智慧的结晶。

当然我们的程序在细节和人性化角度还存在着一些问题,比如说想要转账的,但是如果不小心摁到了取款,没有直接退出的环节,只能先“将错就错”后再退出,然后转到原本想操作的“转账”上面。

这次银行ATM机程序编写对我来说真是一次巨大的考验。

整个程序的算法设计,逻辑思维能力是关键性因素。

为了能够使我们的程序精益求精,少不了反复构思,返工的情况也是很常见的。

好不容易把整个思路构想出来,却因为某些瑕疵而全部推翻,很是郁闷。

不过功夫不负有心人,三人的智慧加在一起,没有什么做不到的。

共同思考,达成共识,没有合理的设计,也就不能编写出合适的程序。

不过因为我们的能力有限,还是存在一些遗憾,就比如我最在意的点错不能及时退出这一细节。

当然我们相信,在今后的学习过程中,我们能更加掌握好C语言的相关知识,将我们的程序完善,使其更具人性化。

3.自评得分

97

96

98

附页(源代码附加注释)

#include<

stdio.h>

string.h>

stdlib.h>

voidchaxun(structper*head);

/*各个函数的声明*/

voidkaihu(structper*head);

voiddenglu(structper*head);

voidcaidan(structper*head);

voidqukuan(structper*head);

voidxgmm(structper*head);

voidcunkuan(structper*head);

voidzhuanzhang(structper*head);

voidtuichu();

/*主函数*/

voidmain()

charx;

charchoose;

/*choose为定义输入选择的变量*/

intflag=1;

structperson*Phead=NULL;

/*r为定义二层头指针*/

structper*head=NULL;

/*head为定义一层头指针*/

printf("

********************************\n"

);

**欢迎使用ATM自动取款机系统***\n"

********************************\n\n\n\n"

---------------------------\n"

printf("

|请选择您的需求|\n"

|1开户|\n"

|2登录|\n"

scanf("

%s"

&

x);

system("

cls"

switch(x)

{

case'

1'

:

system("

kaihu(head);

/*调用开户函数*/

break;

2'

denglu(head);

/*调用登陆函数*/

}

}

/*开户函数*/

voidkaihu(structper*head)

head=NULL;

FILE*fp;

/*定义文件指针*/

per*p1=NULL,*p2=NULL;

/*p1,p1为定义链表指针*/

p1=(per*)malloc(sizeof(per));

/*开辟内存单元*/

请输入您的姓名:

\n"

/*将数据输入链表中*/

p1->

name);

请设置您的卡号:

ID);

请设置您银行卡密码:

code);

p1->

money=0;

next=NULL;

您的个人信息为\n"

姓名:

%s\n卡号:

%s\n余额:

%4d\n"

name,p1->

ID,p1->

money);

if(NULL==head)/*为新增客户开辟内存单元*/

head=(per*)malloc(sizeof(per));

head->

next=p1;

else/*为新增客户开辟内存单元*/

for(p2=head;

p2->

next!

=NULL;

p2=p2->

next);

p2->

next=p1;

if((fp=fopen("

save.txt"

"

ab+"

))==NULL)/*打开文件*/

cannotopenfile\n"

return;

if(fwrite(p1,sizeof(per),1,fp)!

=1)/*将链表信息写入文件中*/

filewriteerror\n"

fclose(fp);

恭喜您开户成功,请登录\n"

pause"

/*登陆函数*/

voiddenglu(structper*head)

chard[20];

charcode[20];

inti,j;

per*p,*q=NULL;

rb+"

))==NULL)/*打开一个二进制文件,为读方式*/

{

不能打开文件\n"

/*如不能打开,则结束程序*/

p=(per*)malloc(sizeof(per));

/*申请空间*/

head=p;

while(!

feof(fp))/*循环读数据直到文件尾结束*/

{

if(1!

=fread(p,sizeof(per),1,fp))

/*如果没读到数据,跳出循环*/

p->

next=(per*)malloc(sizeof(per));

/*为下一个结点申请空间*/

q=p;

/*保存当前结点的指针,作为下一结点的前驱*/

p=p->

next;

/*指针后移,新读入数据链到当前表尾*/

}

q->

next=NULL;

/*最后一个结点的后继指针为空*/

***********************\n"

* 欢迎来到建设银行*\n"

for(j=1;

j<

4;

j++)/*限制卡号输入的次数的循环*/

请您输入卡号\n"

d);

for(q=head;

q!

q=q->

next)/*便利链表*/

if(strcmp(q->

ID,d)!

=0)/*核对账号*/

continue;

else

for(i=1;

i<

i++)/*限制密码输入的次数的循环*/

\n\n请输入您的密码\n"

code);

code,code)!

=0)/*核对密码*/

密码不正确,请重新输入密码\n"

/*若密码不对,跳出循环*/

caidan(head);

/*调用菜单函数*/

\n\n\n您输入密码三次错误,谢谢光临\n"

system("

exit(0);

\n\n\n您输入的卡号有误,请重试\n"

}

您的卡号三次输入错误,谢谢使用"

/*银行菜单函数*/

voidcaidan(structper*head)

inti;

/*i为客户选择输入的变量*/

while

(1)

请选择您需要的业务\n"

/*银行业务菜单*/

***********************************\n"

**1取款*****2查询**\n"

**3转账*****4修改密码**\n"

**5存款*****6退出**\n"

***********************************\n\n\n"

%d"

i);

if(i<

6||i>

0)

switch(i)

case1:

qukuan(head);

/*调用银行取款函数*/

case2:

chaxun(head);

/*调用银行查询函数*/

;

case3:

zhuanzhang(head);

/*调用银行转账函数*/

case4:

xgmm(head);

/*调用银行修改密码函数*/

case5:

cunkuan(head);

/*调用银行存款函数*/

case6:

tuichu();

/*调用银行退出函数*/

}}

您的输入有误\n"

/*银行取款函数函数*/

voidqukuan(structper*head)

head=NULL;

per*p;

/*链表头指针*/

inti;

FILE*fp;

/*文件头指针*/

fp=fopen("

/*开辟空间*/

p=(per*)malloc(sizeof(per));

fread(p,sizeof(per),1,fp);

fclose(fp);

请按要求选择您要取款的金额\n"

**************************************\n"

**1:

100元*****2:

200元**\n"

**3:

300元*****4:

400元**\n"

**5:

500元*****6:

600元**\n"

if(i>

6||i<

=0)

对不起,您的输入有误\n\n"

i=100*i;

p->

money)

对不起,您的余额不足\n"

money-=i;

wb+"

if(fwrite(p,sizeof(per),1,fp)!

=1)/*将修改的信息重新写入文件*/

您已成功走取%d元\n"

i);

/*关闭文件*/

/*银行转账函数*/

voidzhuanzhang(structper*head)

inti,j,k;

请输入转账号码\n"

请再次输入转账号码\n"

j);

if(i!

=j)

两次账号不相同,请重新输入\n"

else

请输入转账金额\n"

scanf("

k);

if(k>

6||k<

k=k*100;

您已成功转账%d元\n"

k);

money-=k;

))==NULL)

=1)

}

/*银行查询函数*/

voidchaxun(structper*head)

/*链表头指针*/

per*p;

fp=fopen("

/*打开文件*/

fread(p,sizeof(per),1,fp);

/*将信息从文件中读出来*/

您卡上原有余额为%d元\n\n"

p->

money);

/*银行修改密码函数*/

voidxgmm(structper*head)

/*文件

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 信息与通信

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1