c语言程序设计atm自动取款机实验报告

合集下载

《实验一 ATM自动柜员机业务系统数据流图与原型》实验报告

《实验一 ATM自动柜员机业务系统数据流图与原型》实验报告
3.1 顶层数据流图 .................................................. 3 3.2 一层数据流图 .................................................. 3 3.3 二层数据流图 .................................................. 4 3.4 三层数据流图 .................................................. 6 3.5 四层数据流图 .................................................. 8 3.6 五层数据流图 ................................................. 10 4 ATM 自动柜员机业务系统原型系统 .................................... 11 4.1 等待界面 ..................................................... 11 4.2 登录界面 ..................................................... 12 4.3 吞卡界面 ..................................................... 13 4.4 功能选择界面 ................................................. 14 4.5 操作等待界面 ................................................. 14 4.6 取款界面 ..................................................... 15 4.7 存款界面 ..................................................... 16 4.8 查询界面 ..................................................... 17 4.9 打印凭条界面 ................................................. 19 4.10 转账界面 .................................................... 19 4.11 改密界面 .................................................... 21 4.12 交易成功界面 ................................................ 23 4.13 取卡界面 .................................................... 23 5 实验体会 ......................................................... 23

C语言 ATM 程序设计

C语言 ATM 程序设计

C语言 ATM 程序设计概述:本文将详细介绍如何使用C语言设计一个简单的ATM(自动取款机)程序。

ATM程序的主要功能包括用户登录、查询余额、取款、存款和退出等。

1. 用户登录:用户需要输入正确的账户号码和密码才干成功登录。

账户号码和密码可以存储在一个预定义的用户数据库中。

用户输入账户号码和密码后,程序将验证其有效性并赋予相应的登录状态。

2. 查询余额:用户成功登录后,可以选择查询余额。

程序将从用户数据库中获取用户的余额信息并显示在屏幕上。

3. 取款:用户成功登录后,可以选择取款。

用户需要输入取款金额,程序将验证用户账户余额是否足够。

如果余额足够,则扣除相应金额并更新用户数据库中的余额信息;如果余额不足,则提示用户余额不足。

4. 存款:用户成功登录后,可以选择存款。

用户需要输入存款金额,程序将将其加到用户账户的余额中,并更新用户数据库中的余额信息。

5. 退出:用户可以选择退出程序。

退出前,程序将提示用户是否确认退出,并根据用户的选择执行相应的操作。

6. 错误处理:程序需要对用户的输入进行错误处理。

例如,当用户输入错误的账户号码或者密码时,程序应该赋予相应的错误提示;当用户输入非法金额时,程序应该赋予相应的错误提示。

7. 数据存储:程序需要使用文件或者数据库来存储用户的账户信息和余额信息。

可以使用文本文件、二进制文件或者关系型数据库等。

8. 用户界面:程序需要提供一个友好的用户界面,以便用户能够轻松地进行操作。

可以使用控制台界面或者图形界面,根据需要选择合适的界面设计。

9. 安全性:程序需要确保用户的账户信息和余额信息的安全性。

可以使用加密算法来加密用户的密码,在存储和传输过程中保护用户的隐私。

10. 测试和调试:在完成程序的编写后,需要进行充分的测试和调试,以确保程序的稳定性和正确性。

可以编写测试用例,并对程序进行单元测试和集成测试。

总结:本文详细介绍了使用C语言设计一个简单的ATM程序的要求和功能。

模拟自动取款机设计方案

模拟自动取款机设计方案

模拟自动取款机设计方案1. 设计目的《面向对象程序设计课程设计》是计算机科学与技术专业和软件工程专业集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。

其目的在于加深对面向对象程序设计中基础理论和基本知识的理解,培养学生的实践能力,促进理论与实践的结合。

通过课程设计,让学生能够熟练进行面向对象编程,建立对象模型,降低软件的复杂性,改善软件的重用性和维护性,提高软件的生产效率,全面掌握面向对象编程技术。

2. 设计要求1、掌握使用一种面向对象程序设计语言如Borland C++或Visual C++等。

2、培养调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。

3、通过课程设计,要求学生在指导教师的指导下,独立完成实习课题的全部内容,包括:⑴ 通过调查研究和上机实习,收集和调查有关技术资料。

⑵ 掌握设计课题的基本步骤和方法。

⑶ 根据课题的要求进行上机实验调试。

4、课程设计完成后,提交课程设计报告3. 设计方案3.1 .设计题目:模拟自动取款机(ATM)运用C++语言描述ATM机类和银行卡类,每个类均包含数据成员和成员函数,并运用对象的引用和友元类的知识。

注重面向对象程序设计理论知识的理解与实际的动手编程能力。

运用面向对象的理念实现模拟自动取款机使用过程中的界面和用户交互过程。

本课程设计要实现的主要功能如下:1. 查询银行卡余额;2. 取款;3. 修改银行卡密码;4. 退出系统。

3.2.系统特点321.系统实现:1. 核对密码:核对用户输入的密码是否正确;2. 修改密码:修改银行卡密码;3. 取款:取款;4. 查询信息:查询余额;5. 退出系统:操作完成退出;6. 锁机吞卡:操作不当如:密码输入错误超过3次,银行卡将被锁。

4.设计内容4.1.层次分析1.主程序流程图:2■类结构图:BankCardATM类为BankCard类的友元类ATM -times: int-totalmoney:float-leftmoney:float-oncemoney float-& BankCardAtATM : BankCard+ATM (& bc: BankCard)+ welcome()+ checkpasswd(char n[],char pwd[])+changepasswd()+ fetchmoney()+information()+exitATM()+functionshow()+lock()+Clear()42核心算法主要核心算法:取款,修改密码。

(经典版)C语言版ATM银行取款机系统完整源代码程序设计基础实训II文档.doc

(经典版)C语言版ATM银行取款机系统完整源代码程序设计基础实训II文档.doc

2012年6月项目实训任务书课程名称:程序设计基础实训II课程编码:JX课程类别:专业基础必修课学分数:2学时数:32开课学期:2实训题目:ATM存取款系统的改进与完善一、已知技术参数和设计要求:银行ATM存取款系统业务描述如下:银行ATM存取款系统能为用户提供存款、取款、查询、转账和修改密码的功能。

为了模拟真实的ATM业务环境,本系统必须实现存款、取款、查询、转账、修改密码以及开户的功能。

用户通过开户业务在本系统开立银行账户,之后可以通过该银行账户登陆ATM系统,在系统中实现存款、取款、查询账户信息、修改密码的操作。

本系统各个业务有如下注意点:(1)登陆系统用户登陆之前,必须在登陆界面输入其银行账户,通过其正确输入的银行账户登陆系统。

(2)开户业务要使用本系统必须首先执行开户业务开立新的银行账户,并且将此新开的银行存储于文件当中。

同时,系统以身份证号码作为开户的充分条件,即一个身份证号码只能开立一次银行账户。

(3)存款业务客户登陆系统后,选择存款业务,即可以将输入的存款金额存入相应的账户。

(4)取款业务客户登陆系统后,选择取款业务,即可以将输入的取款金额从相应的银行账户取出,但是取款金额必须大于目前的账户余额。

(5)查询业务客户登陆系统后,可以选择查询业务,查询账户余额。

(6)转账业务客户登陆系统后,可以选择转账业务,进行转账。

注意的是转账的目的账户必须是本系统已经存在的银行账户。

(7)修改密码客户登陆系统后,可以选择修改密码业务,进行密码修改。

二、各阶段具体要求:1、系统总体设计阶段(1)根据需求分析划分功能模块(2)分析并设计各个功能模块之间的关系(3)对于各个功能模块,设计相应的数据结构(必须使用链表完成全部功能)(4)设计相应的算法(必须包括排序和检索功能,且基于链表进行排序和检索)2、详细设计阶段(1)对于每个功能模块,应划分成操作层和数据层(2)对于每个操作层,应尽量考虑用户操作的简单,便捷(3)对于每个数据层,必须使用链表进行管理(4)在用链表进行管理时,必须用到链表检索和排序(5)对于数据层的操作完的数据必须保存到文件中(包括文件读、写操作)3、编码实现阶段(1)完成代码编写(2)要求代码编写规范(不得使用全局变量、所有功能模块必须使用函数封装主函数main()的行数不得超过代码总长度的25%)(3)代码必须有相应的注释(注释行数不得少于代码的10%,函数功能、变量名、算法、重要的循环、分支都必须用注释说明)4、系统测试阶段(1)完成功能调试(2)要求完成必要的测试工作5、交付实施阶段(1)提交可正常执行的系统,程序代码(2)撰写项目实训报告书(3)要求按照文档书写规范,严格地书写文档(4)注意:不允许使用代码、图片和表格填充报告空间。

ATM自动取款机

ATM自动取款机

Java课程设计报告项目:ATM自动取款机姓名:学号:10592235班级:10级网络二班分数:项目说明目录第一部分、项目整体概述………………………………………………页第二部分、数据库信息描述……………………………………………页第三部分、自己承担部分的实验报告………………………………页第四部分、心得体会……………………………………………………页一、项目整体概述我们的ATN机系统设计的实现根据结构程序设计原理,将每个模块的功能用相应的标准语句表示出来。

包括代码设计、数据库设计、用户界面设计、处理过程设计。

代码设计是指把系统管理对象数字化或字符化,便于计算机的处理。

遵照代码设计的原则:合理性、简明性、系统性、稳定性、可扩充性、标准化、便于识别和记忆。

数据库设计指对系统所采用的数据模式、子模式、应用程序、数据库等根据用户的具体要求进行分析和设计。

它也是管理信息系统设计的重要组成部分。

数据库设计的基本原则是尽可能提高数据组织的相对独立性,简化其结构,即用规范化方法设施数据存储的结构,提高数据的可维护性、完整性、一致性。

通过收集和分析用户需求,确定了数据库要保存的信息。

我们这次实训课设计的ATM机,主要应用java图形用户界面开发的知识,主要界面有欢迎界面,登陆界面,选择业务界面和退出,其中选择业务界面又包括修改密码,取款服务和查询余额。

能让人们通过我们的设计完成想要的操作。

为人们带来方面。

(1)模拟ATM柜员机程序;(2)欢迎界面点击Login(登录)跳到登陆界面,点击quit(退出)则退出。

(3)登陆界面包括输入卡号和密码,不正确时则不能进入提示没有该用户名称或密码错误,请核对后重新输入。

当密码和用户名都正确时则进入选择服务界面。

(4)选择页面可以选择修改密码,查询余额,和取款3个服务。

(2)修改密码。

当用户需要修改密码时,可以用这个功能,新密码不能为空,确定密码时不能为空,旧密码必须正确,且新密码和确定密码两次输入相同的情况下才可以成功修改密码。

银行ATM自动取款机模拟程序

银行ATM自动取款机模拟程序

四、系统设计
• 模拟ATM取款机的操作:
首先录入账户信息,格式如下
卡号 123456
姓名 wzy
密码
余额
123456 10000.00
四、系统设计
• 模拟ATM取款机的操作:
㈠、登录功能:输入帐号和密码进行登录, 如密码错误提示重新输入密码,如帐号错误 提示无此帐户。 ㈡、查询功能:查询账户余额。 ㈢、取款功能:取款,更新余额。 ㈣、修改密码:输入原密码和新设置密码。 ㈤、吃卡功能:密码输错3次,锁卡。 ㈥、转账功能:输入转账的转出账户以及转 账金额,进行转账。
二、课程设计任务与要求
要求: 1. 要求利用面向对象的方法以及C++的 编程思想来完成系统的设计; 2. 要求在设计的过程中,建立清晰的类 层次; 3. 在系统中至少要定义类,若有多个类, 每个类中要有各自的属性和方法; 4. 在系统的设计中,要求使用面向对象 的继承与多态等机制。
要求
三、需求分析
五、详细设计
4.3 类的设计
1)、定义了一个ATM取款机类,类中包括以下几部分: 公有段: 依次为登陆界面,核对密码,修改密码,取款,转账,查询信息,退 出系统,功能界面,锁机。 私有段: 记录密码输入次数。 友元函数: 取款,转账,查询信息,账号,密码。 2、)定义了一个consumer 类,类中包括以下几部分: 公有继承了consumer类 私有段: 卡号,用户姓名,用户密码,存款钱数 保护段: 取得姓名,取得卡号,取得密码,取得余额,设置密码,取钱
• 4)转账功能
开始
主界面
选择查询的操 作序号
图4-34
请输入所转账 号 请输入所转金 额 转账成功, 余额
余额不足
四、系统设计

用c语言编写的一个ATM取款机程序

用c语言编写的一个ATM取款机程序

⽤c语⾔编写的⼀个ATM取款机程序学了⼀个多星期的c语⾔了,⽼师布置来了作业,⽤C编写个ATM机的模拟程序,客户界⾯有,取款,2存款,3转账,4退出。

并且要求输⼊错误后,有三次机会重输,定义输⼊密码hellowold,⽤switch分⽀。

#include<stdio.h>#include<string.h>#define key "hellowold"//定义密码#define zhanghu "123456789"#define line "==================\n"int num;//选择类型char arr[20];//定义数组char password[20];//定义数组int money;//取款⾦额int i=0;int main(){printf(line);printf("\t1取款\n");printf("\t2存款\n");printf("\t3转账\n");printf("\t4退出\n");printf(line);printf("请选择操作类型: \n");scanf("%d",&num);switch(num){case1:{ do{printf("请输⼊密码:\n");scanf("%s",&password);if(strcmp(key,password)==0){printf("请输⼊取款⾦额:\n");scanf("%d",&money);printf("请取⾛你的%d⽑爷爷",money);break;}else{printf("密码输⼊错误");}i++;}while((strcmp(key,password)!=0)&&i<=2);}}第⼆步存款,定义账号#include<stdio.h>#include<string.h>#define key "hellowold"//定义密码#define zhanghu "#define other "ni de mao ye ye"#define line "==================\n"int num;//选择类型char arr[20];//定义数组char password[20];//定义数组char others[20];int money;//取款⾦额int num2;//存款⾦额int i=0;int main(){printf(line);printf("\t1取款\n");printf("\t2存款\n");printf("\t3转账\n");printf("\t4退出\n");printf(line);printf("请选择操作类型: \n");scanf("%d",&num);switch(num){case1:{ do{printf("请输⼊密码:\n");scanf("%s",&password);if(strcmp(key,password)==0){printf("请输⼊取款⾦额:\n");scanf("%d",&money);printf("请取⾛你的%d⽑爷爷",money);break;}else{printf("密码输⼊错误");}i++;}while((strcmp(key,password)!=0)&&i<=2);break;}今天先变到这⾥吧,作业还多着了,排版不是很好看,就将就这看吧。

ATM取款机模拟程序 课程任务书

ATM取款机模拟程序 课程任务书

课程设计任务书课程名称:C++程序设计课程设计设计题目:ATM取款机模拟程序已知技术参数和设计要求:1. 问题描述:课题的任务是设计一个ATM取款机的模拟程序。

日常生活中,我们常使用ATM取款机,对它的操作过程有所了解。

这里我们要模拟的是用户所见的A TM取款机的属性和行为,ATM机与网络连接的部分不包括在这个任务中。

设计中应尽可能把它模拟得与真实的ATM接近一些,我们抽象出下列问题:(1) 用户插卡,A TM验证用户帐号信息。

(2) 用户首次操作须验证密码。

(3) 用户查询余额,ATM显示余额。

(4) 用户取款,A TM操作交易过程。

(5) 用户转账,A TM请求插入转入卡,然后操作交易过程。

(6) 用户更改密码,A TM受理此业务。

(7) 用户退卡。

A TM清理现场。

(8) 所有用户信息保存在文件中。

(9) 对于一个在线用户,如果超过一定时间用户没有任何操作,ATM锁机,直到用户退卡为止。

(10) ATM向用户显示欢迎词及其他提示信息。

2. 功能要求:(1)插卡功能(用卡号模拟);(2)取款功能;(3)查询余额功能;(4)验证帐号功能;(5)更改密码功能;(6)退卡功能;(7)锁卡功能。

3. 界面要求:用户界面设计不做统一规定,但应做到界面友好,易于操作。

4. 技术要求:要求所有用户的信息以密文形式保存在数据文件中,加密算法为:字节各位取反,然后高半字节和低半字节交换位置。

用户输入密码时不能以明文形式显示在屏幕上,应以“*”号代替来显示用户密码的输入。

要求利用面向对象的方法以及C++的编程思想来完成系统的设计;在设计的过程中,建立清晰的类层次;在系统设计中要分析和定义各个类,每个类中要有各自的属性和方法;要求运用面向对象的机制来实现系统功能。

要求主函数(或图形界面下的主调函数)很“干净”,只有一些类对象的定义和某个类对象的一个成员函数的调用。

5. 课程设计时间:15周、16周6. 课程设计的考核方式及评分方法1)考核方式⏹课程设计结束时,在机房当场验收。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程设计报告课程类别:本科
课程名称:程序设计基础(C语言)
课程代号:指导教师:
银行
姓名:
学号:
姓名:
学号:
姓名:
学号:
学院:
班级:
1.课程设计内容
2.课程设计要求
3.可行性研究
4.需求分析
5.概要设计.
5.1功能模块图
5.2功能模块描述
5.3数据结构
6.详细设计.
6.1功能流程图
6.2重点设计
7.测试与调试
printf("|
欢迎进入管理员模式
|\n")
printf("|1:
查询用户帐户信息
|\n");
printf("|2:
返回欢迎界面
|\n");
printf("|
|\n");
printf(" scanf("%d",&n); fflush(stdin); switch(n)
请选择:");
{
case 1:system("cls");goto guanli;break;
printf("该帐号已被封存!\n");//如果被封,则返回开头.
printf("按任意键返回。\n");
while(getchar()!=EOF)
{
system("cls");
goto loop;}
}
else//如果没被封,则开始输入密码.
{
printf("
请输入密码:");
state:
scanf("%d",&code);
{
case 1:system("cls");goto qukuan;break;
case 2:system("cls");goto yuechaxun;break;
case 3:system("cls");goto mimaxiugai;break;
3.
系统是一个基于局域网、互联网和WINDOW操作的系统,现有技术已较为成熟,利用现有技 术完全可以实现系统开发目标。同时具有优秀的软件需求人员、软件设计人员、和具有丰富 经验的软件测试人员。
4.
在市场经济的蓬勃发展和人们日益繁忙的条件下,现有的银行系统往往需要客户在办理手续
时等待很长的时间,这不仅会浪费很多宝贵的时间,也会使得银行的业务人员十分的繁忙,
scanf("%d",&code);
fflush(stdin);
if(code!=num[0])
printf("密码不正确!\n");
printf("按任意键返回。\n"); while(getchar()!=EOF)
{
system("cls");
goto loop;
}
}
else
{
system("cls");
{
int Num,a,code,ll=0,l=0,p, n,r=0,x,m,Num1,Num2;
int num[10],fe ng[10],mo ney[10],s[6],t[6];
int i=0;
for(p=0;p<9;p++)
{
num[p]=000000;
mo ney[p]=5000;
fen g[p]=0;
case 2:system("cls");goto loop;break;
}
}
case2:{
system("cls");
goto loop;
break;
}
default:printf("输入错误!\n");break;
}
}
else
{
if(feng[Num]==1)//如果输入的不是管理员帐号,则判断该帐号是否被封{
fflush(stdin);
if(code!=num[Num])
{
printf("
密码不正确!请重新输入:");
i++;//
计算输入错误几次.
if(i<3)
goto state;
else
{
printf("
连续三次出错!\n");
++r;//
计算连续三次出错共有几次.
if(r<2)//
小于2则返回欢迎界面.
需要很大的人力和财力。
5.
5.1
此处除了系统的模块划分,还要重点描述三人分工情况,分工一定要明确
厂储户信息、

5.2
银行自动取款机 菜单界面
1
设 置 储 户 信 息
修 改 密 码
取 储 户 名
查 询 余 额




5.3
#i nclude<stdio.h>
#i nclude <stdlib.h>
void mai n()
{
i=0;
printf("
按任意键返回。\n");
while(getchar()!=EOF)
{
system("cls");
goto loop;
}
else//大于2则封存帐户,然后返回欢迎界面
{
printf("您的帐号已被封存.\n"); feng[Num]=1;
printf("按任意键返回。\n");
8.总结.
8.1心得体会
8.2不足与改进
9.参考文献.
1.课程设计内容
模拟银行的自动取款机ATM使用过程中的界面和用户交互过程
2.
(1)要求利用面向过程的方法以及C语言的编程思想来完成系统的设计;
(2)在系统的设计中,要求运用菜单和文件实现系统功能。
(3)在基本要求达到后,可进行创新设计,如存款、代缴电话费等,或设计友好的界面等。
while(getchar()!=EOF)
{
system("cls");
goto loop;
}
}
}
}
else//如果密码输入正确,则进入用户页面.
{
system("cls");
shuru:
printf("|---
欢迎使用ATM自动取款机---|\n");
printf("|1.
取款2.余额查询|\n");
请输入卡号:");
scanf("%d",&Num);
fflush(stdin);
if(Num==00)
{
printf("是否进入管理员模式?1/2:");//是否进入管理员模式scanf("%d",&a);
fflush(stdin);
switch(a)
{
case 1:
{
printf("请输入管理员密码(6位):");
printf("|3.
密码修改4.转帐|\n");
printf("|5.
历史交易纪录查询|\n");
printf("|6.
返回欢迎界面
|\n");
printf("||\n");
printf("请输入选项:\n"); scanf("%d",&x);
fflush(stdin);
switch (x)//进行选择.
} loop:
//首先… 请陈老师原谅我N多的goto...
printf(" __
\n");
printf("|
|\n");
printf("|
欢迎使用ATM自动取款机
|\n")
printf("|
|\n");
printf("|
~第一小组热情开发~
|\n");
printf("|__
|\n");
printf("
相关文档
最新文档