银行ATM机存取款系统程序设计
更新时间:2023-06-05 02:47:01 阅读量: 实用文档 文档下载
银行ATM机存取款系统程序设计
任课教师: 蒋 安 珩
小组成员:何慧冬 14212114 国际经济与贸易
贡怡敏 14Y12114 国际经济与贸易(全英) 徐唯一 14512125 金融学
2013-09-08
银行ATM机存取款系统程序设计
一 案例描述
1. 总体描述
银行ATM机存取款系统业务描述如下:
银行ATM存取款系统能为用户提供存款、取款、查询、转账和修改密码的功能。用户通过开户业务在本系统开立银行账户,之后可以通过该银行账户登录ATM系统,在系统中实现存款、取款、查询账户信息、修改密码的操作。本系统各个业务有如下注意点: (1) 登录系统
用户登录之前,必须在登录界面输入其银行账户,通过其正确输入的银行账户登录系统。 (2) 开户业务
要使用本系统必须首先执行开户业务开立新的银行账户,并且将此新开的银行存储于文件当中。同时,系统以身份证号码作为开户的充分条件,即一个身份证号码只能开立一次银行账户。
(3) 存款业务
客户登陆系统后,选择存款业务,即可以将输入的存款金额存入相应的账户。 (4) 取款业务
客户登陆系统后,选择取款业务,即可以将输入的取款金额从相应的银行账户取出,但其取款金额必须大于目前的账户余额。 (5) 查询业务
客户登陆系统后,可以选择查询业务,查询账户余额。 (6) 转账业务
客户登陆系统后,可以选择转账业务进行转账。注意的是转账的目的账户必须是本系统已经存在的银行账户。 (7) 修改密码
客户登陆系统后,可以选择修改密码,进行密码修改。
二 界面设计
用户根据需要进行登录和开户的选择。
三 模块化设计方案
1.系统主要函数及功能
1)chaxun函数:用以查询客户个人余额 2)kaihu函数:用以开户 3)denglu函数:客户登录
4)caidan函数:向客户展示银行业务菜单,办理存取款、查询等 5)qukuan函数:客户取款 6)xgmm函数:进行密码修改 7)cunkuan函数:客户存款 8)zhuanzhang函数:客户转账 9)tuichu函数:退出系统
2.主函数调用各功能函数流程
四. 数据结构描述
struct per /*定义结构体*/ {
char name[20]; /*姓名*/ char ID[20]; /*卡号*/ int money; /*金额*/ char code[6]; /*密码*/ struct per *next; /*定义指针*/ };
typedef struct person {
struct per kehu ;
struct person *next; }L;
该数据结构为链表,是一种动态进行存储分配的结构。链表的每一个一个节点中包含了一个指针变量,用它存放下一个结点的地址,环环相扣。
五 算法设计 1、开户
2.登录
3.取款
4.存款
5.密码修改
6.转账
7.查询
六. 程序运行结果
1.开户
3.选择业务
5、查询
7、修改密码
8、存款
9、退出
退出系统。
七 总结
1. 分工情况
何慧冬:程序框架的搭建和运行调试后的修改 贡怡敏:界面处理和函数内容的补充 徐唯一:算法设计和流程图的制作
2. 心得体会
何慧冬:这次对银行ATM机的程序编写过程中,遇到了不少困难。首先是经过一个暑假,
小组成员对之前学的C程序设计内容掌握程度不像上学期那么高,加上短学期接触到了C++的相关内容,对新知识点的理解和运用也不是很熟练,所以一开始比较难上手。其次是对结构体、指针等重点难点内容的运用不是很擅长。在弄清楚各个函数的使用后,把各个函数的功能镶嵌起来比较花功夫。在设计上面,我们觉得“密码最多允许输错三次”这个环节比较考验人。尤其是不断地调试,要把组员们各自编译的函数搭建起来完美运行并不是件容易的事,需要三个人一起分析和探讨,在调试的过程中不断修改,直至完美运行。过程是艰辛的,结果是可喜的。程序的完美呈现,离不开三个人的共同努力。自己需要做好自己的那一部分,而团队合作便是成功的核心。
贡怡敏:通过这次小组合作程序设计,真是让我受益匪浅。银行ATM机的程序编写,不仅
很好地让我们运用起所学的C语言的相关知识,也与我们的经济学专业相衔接,这与平时的做题有很大的不同。虽然对于界面的设计看似较容易上手,但我们的程序构思却是和这界面设计有着莫大的联系,丝毫不能马虎的。在调试运行我们的程序时,每一个步骤都不能省略,才能保证我们的程序是否真的完美运行没有差错。在操作过程中的轻松,背后是我们小组齐心协力的智慧的结晶。当然我们的程序在细节和人性化角度还存在着一些问题,比如说想要转账的,但是如果不小心摁到了取款,没有直接退出的环节,只能先“将错就错”后再退出,然后转到原本想操作的“转账”上面。
徐唯一:这次银行ATM机程序编写对我来说真是一次巨大的考验。整个程序的算法设计,
逻辑思维能力是关键性因素。为了能够使我们的程序精益求精,少不了反复构思,返工的情况也是很常见的。好不容易把整个思路构想出来,却因为某些瑕疵而全部推翻,很是郁闷。不过功夫不负有心人,三人的智慧加在一起,没有什么做不到的。共同思考,达成共识,没有合理的设计,也就不能编写出合适的程序。不过因为我们的能力有限,还是存在一些遗憾,就比如我最在意的点错不能及时退出这一细节。当然我们相信,在今后的学习过程中,我们能更加掌握好C语言的相关知识,将我们的程序完善,使其更具人性化。
3. 自评得分 何慧冬:97 贡怡敏:96 徐唯一:98
附页(源代码附加注释)
#include<stdio.h> #include<string.h> #include<stdlib.h>
struct per {
char name[20]; char ID[20]; int money; char code[6]; struct per *next; };
typedef struct person {
struct per kehu ; struct person *next; }L;
void chaxun(struct per *head); void kaihu(struct per *head); void denglu(struct per *head); void caidan(struct per *head); void qukuan(struct per *head); void xgmm(struct per *head); void cunkuan(struct per *head); void zhuanzhang(struct per *head); void tuichu();
/*主函数*/
void main() {
char x;
char choose; /*定义结构体*/ /*各个函数的声明*/ /*choose为定义输入选择的变量*/
int flag=1;
struct person *Phead=NULL; /*r为定义二层头指针*/ struct per *head=NULL; /*head为定义一层头指针*/
printf(" ********************************\n"); printf(" ** 欢迎使用ATM自动取款机系统 ***\n"); printf(" ********************************\n\n\n\n"); printf("---------------------------\n");
printf("| 请选择您的需求 |\n"); printf("---------------------------\n");
printf("| 1 开户 printf("---------------------------\n");
printf("| 2 登录 printf("---------------------------\n"); scanf("%s",&x); system("cls"); switch(x) {
case '1':system("cls");
kaihu(head); break;
case '2':system("cls");
denglu(head); break; } }
/*开户函数*/
void kaihu(struct per *head) {
head=NULL;
FILE *fp; /*定义文件指针*/
per *p1=NULL,*p2=NULL; p1=(per*)malloc(sizeof(per)); printf("请输入您的姓名:\n"); scanf("%s",p1->name );
printf("请设置您的卡号:\n"); scanf("%s",p1->ID);
printf("请设置您银行卡密码:\n");
|\n"); |\n"); /*调用开户函数*/ /*调用登陆函数*/ /*p1,p1为定义链表指针*/ /*开辟内存单元*/ /*将数据输入链表中*/
scanf("%s",p1->code); p1->money=0;
p1->next =NULL;
printf("您的个人信息为\n"); printf("姓名:%s \n卡号:%s \n余额:%4d\n",p1->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) /*打开文件*/ {
printf("cannot open file\n"); return; }
if(fwrite(p1,sizeof(per),1,fp)!=1) /*将链表信息写入文件中*/ printf("file write error\n"); fclose(fp); printf("\n");
printf("恭喜您开户成功,请登录\n"); system("pause"); system("cls"); denglu(head); }
/*登陆函数*/
void denglu(struct per *head) {
char d[20]; char code[20]; int i,j;
FILE *fp; /*定义文件指针*/ per *p,*q=NULL;
if((fp=fopen("save.txt","rb+"))==NULL) /*打开一个二进制文件,为读方式*/ {
printf("不能打开文件\n"); /*如不能打开,则结束程序*/ }
p=(per*)malloc(sizeof(per)); /*申请空间*/ head=p;
while(!feof(fp)) /*循环读数据直到文件尾结束*/ {
if(1!=fread(p,sizeof(per),1,fp))
break; /*如果没读到数据,跳出循环*/ p->next=(per *)malloc(sizeof(per));/*为下一个结点申请空间*/
q=p; /*保存当前结点的指针,作为下一结点的前驱*/ p=p->next; /*指针后移,新读入数据链到当前表尾*/ }
q->next=NULL; /*最后一个结点的后继指针为空*/ fclose(fp);
printf(" ***********************\n"); printf(" * 欢迎来到建设银行 *\n"); printf(" ***********************\n");
for(j=1;j<4;j++) /*限制卡号输入的次数的循环*/ {
printf("请您输入卡号\n"); scanf("%s",d); for(q=head;q!=NULL;q=q->next) /*便利链表*/ {
if(strcmp(q->ID,d)!=0) /*核对账号*/ {
continue; }
else {
for(i=1;i<4;i++) /*限制密码输入的次数的循环*/ {
printf("\n\n请输入您的密码\n"); scanf("%s",code);
if(strcmp(q->code,code)!=0) /*核对密码*/ { printf("密码不正确,请重新输入密码\n"); system("pause"); system("cls"); continue; /*若密码不对,跳出循环*/ } else {
system("cls");
正在阅读:
银行ATM机存取款系统程序设计06-05
多媒体技术在生物教学中的优势及其正确应用03-11
陈书记在秸秆综合利用现场会上的讲话10-19
商品分类的认识09-01
2011年全国大学生英语竞赛B类初赛赛卷及听力材料与答案03-08
教师暑假政治学习心得体会03-13
我为妈妈洗手作文350字07-11
AT89S51单片机的教室灯光智能控制系统设计898153605-08
我思念的朋友作文500字02-04
敬老院义工心得05-08
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 存取款
- 程序设计
- 银行
- 系统
- ATM
- 《茅屋为秋风所破歌》教学设计
- 导数及其应用知识点A4
- 2.4投影计算举例1
- 某现代楼宇智能自动化控制设计毕业论文
- 丰姿制衣厂生产车间管理制度
- 《设计概论》教案2016
- 094448_小学硬笔书法教案
- 春秋旅行社和万豪酒店网站对比分析及评估
- 人参、西洋参制品糖含量特性研究
- BIM技术的应用与探索
- 那个穿帕洛帝尔的男孩
- 2005年上海高考地理卷参考答案与试题分析
- 建筑物照明通电试运行
- “一评三管好”国旗下讲话稿
- 春季健脾是关键5款养生粥补足脾气
- 2015年山东滨州中考物理试卷及答案
- 第二讲 类和对象(2)
- 电大本科小学教育《人类与社会》试题及答案3
- 成都市2010年中考化学试题答案(横向双栏编辑+答案)
- WEB网页设计-东北大学2-第二章 网站内容设计与创意设计