ATM取款机程序课程设计报告

合集下载

java atm课程设计报告

java atm课程设计报告

Java ATM 课程设计报告1. 引言本报告旨在介绍一个基于 Java 编程语言的 ATM 课程设计项目。

该项目旨在设计一个简单的自动柜员机(ATM)系统,以实现基本的银行业务操作。

2. 需求分析在开始编写代码之前,我们首先需要对该系统的需求进行分析。

ATM 系统应具备以下功能: - 用户输入银行卡和密码进行身份验证。

- 用户能够查询账户余额和交易记录。

- 用户能够存款和取款。

- 用户能够转账给其他账户。

- 用户能够修改密码。

3. 设计思路基于以上需求,我们可以采用以下设计思路来实现该系统: 1. 设计一个ATM类,该类将作为系统的入口点。

2. 设计一个User类,用于表示 ATM 的用户。

该类应包含用户的银行卡号、密码、账户余额和交易记录等属性。

3. 设计一个Bank类,用于处理用户的交易请求。

该类应包含用户的账户信息,并提供存款、取款、转账和修改密码等方法。

4. 设计一个Main类,用于模拟用户与ATM 系统的交互过程。

4. 系统实现4.1 ATM类public class ATM {public static void main(String[] args) {// 创建用户对象User user = new User("1234567890", "123456", 1000);// 创建银行对象Bank bank = new Bank();// 用户输入银行卡和密码进行身份验证if (bank.authenticate(user.getCardNumber(), user.getPassword())) {// 用户通过身份验证,显示欢迎信息System.out.println("欢迎使用本 ATM 机!");// 进行后续操作,如查询余额、存款、取款、转账和修改密码等} else {// 身份验证失败,显示错误信息System.out.println("银行卡号或密码错误!");}}}4.2 User类public class User {private String cardNumber;private String password;private double balance;private List<String> transactionHistory;public User(String cardNumber, String password, double balance) { this.cardNumber = cardNumber;this.password = password;this.balance = balance;this.transactionHistory = new ArrayList<>();}// getter 和 setter 方法}4.3 Bank类public class Bank {private Map<String, User> users;public Bank() {ers = new HashMap<>();// 添加用户信息users.put("1234567890", new User("1234567890", "123456", 1000)); }public boolean authenticate(String cardNumber, String password) { // 验证用户身份User user = users.get(cardNumber);if (user != null && user.getPassword().equals(password)) {return true;}return false;}// 其他方法:存款、取款、转账和修改密码等}4.4 Main类public class Main {public static void main(String[] args) {ATM atm = new ATM();}}5. 测试与调试在完成代码的编写后,我们应进行测试和调试以确保系统的正常运行。

银行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
请输入所转账 号 请输入所转金 额 转账成功, 余额
余额不足
四、系统设计

ATM实验报告范文

ATM实验报告范文

ATM实验报告范文实验报告:ATM系统设计与实现一、实验目的本实验旨在通过设计和实现一个简单的ATM系统,来锻炼并巩固学生对面向对象的设计和编程能力,以及数据库的操作和管理能力。

二、实验原理ATM系统是一个自动取款机系统,它主要包含四个模块:用户模块、账户模块、交易记录模块和管理员模块。

1.用户模块:处理用户的注册、登录、取款、查询余额、修改密码等功能。

2.账户模块:提供用户账户的信息管理,包括账户的开户、销户、存款、取款、转账等操作。

3.交易记录模块:记录用户的交易记录,包括交易类型、交易时间、交易金额等。

4.管理员模块:提供管理员对用户账户信息、交易记录进行管理的功能,包括查询所有用户账户、查询所有交易记录等。

三、实验设计1.数据库设计:设计一个包含两个表的关系型数据库,一个是用户账户表,包含账户号、密码、账户余额等字段;另一个是交易记录表,包括交易记录号、交易类型、交易金额等字段。

2.系统设计:根据需求分析,设计出ATM系统的类结构,将系统划分为用户类、账户类、交易记录类和管理员类,每个类包含对应的属性和方法。

3. 系统实现:根据设计结果,采用面向对象的编程语言(如Java)进行系统实现。

首先实现数据库的连接和初始化,然后分别实现用户模块、账户模块、交易记录模块和管理员模块的功能。

四、实验步骤1.数据库设计和创建:根据实验设计要求,设计并创建一个包含用户账户表和交易记录表的关系型数据库。

2.系统搭建和环境配置:安装数据库相关软件和编程环境,配置相关环境变量。

3.数据库连接和初始化:编写数据库连接代码,确保系统能够成功连接到数据库并初始化。

4.用户模块:根据设计要求,编写用户模块的代码,实现用户的注册、登录、取款、查询余额、修改密码等功能。

5.账户模块:根据设计要求,编写账户模块的代码,实现账户的开户、销户、存款、取款、转账等操作。

6.交易记录模块:根据设计要求,编写交易记录模块的代码,实现交易记录的记录和查询功能。

C 自动取款机ATM课程设计报告解读

C  自动取款机ATM课程设计报告解读

洛阳师范学院2013-2014学期《c++语言程序设计》课程设计报告设计名称:模拟自动取款机ATM姓名:黄双双学号:131124001专业班级:网络工程学院:信息技术学院设计时间:2014年6月设计地点:宿舍目录1.课程设计目的 (3)2.课程设计任务与要求 (3)3.课程设计说明书 (4)4.课程设计成果 (6)5.程序调试过程 (18)6.设计问题的不足和改进方案 (18)7.课程设计心得 (19)8.参考文献 (20)3.课程设计说明书⑴概要设计本案例涉及一个银行卡和ATM机之间的“对话”。

需要处理两个对象,即:ATM和银行卡,因此可以考虑定义两个类来解决这个问题。

(1)ATM机类:有“单笔取款最高限制”、“每日取款总金额限制”、“金额”等基本属性。

需要实现:“核对密码”、“修改密码”、“取款”、“查询信息”、“退出系统”、“锁机吞卡”等功能。

可以将这些操作定义为ATM 机类的成员函数。

(2)银行卡类:具有“用户姓名”、“用户密码”、“存款额”等特征。

需要实现“身份验证”、“查询余额”、“修改密码”、“交易成功更改余额”等操作。

将这些操作定义为银行卡类的成员函数。

模块说明:在我设计的程序中一共包括了五个模块,分别是:核对密码、修改密码、取款、查询信息、退出系统模块。

这六个模块中新增、查找和修改都是独立分开作为子函数的,另外三个则是作为switch语句中的一部分,通过switch语句,把五个大模块联系了起来,同时,为了实现多次使用这五大模块,就在switch语句外加了while 循环。

模块结构图:⑵详细设计总体流程图:各功能模块流程图:运行结果1.输入密码2.修改密码3.取款4.查询余额5退出系统6.用户名密码输入错误三次,自动退出,锁机吞卡。

java实训ATM取款机设计方案

java实训ATM取款机设计方案

java实训ATM取款机设计报告1.1课程设计的目的现代社会,ATM可以说是一种使用非常广泛的机器, ATM使用是非常频繁的,然而由于程序及其机器本人的一些漏洞,导致ATM 机的犯罪现象屡有发生。

该项目的开发有利于进一步提高ATM机的性能及安全性,模拟开发ATM系统软件,掌握系统开基本流程,在开发系统中可以巩固所学的有关软件开发的知识,有利于提出优化改进现代ATM系统的建议。

1.2课程设计的内容银行ATM机的使用已经普及,人们都已习惯利用自动柜员机来提取现金,查询存款,转账,修改密码等等,我设计的ATM取款机添加了新的功能,具体功能如下:1.2.1管理员状态登入:1.2.1.1开户:添加一个新的用户1.2.1.2销户:删除一个无用用户1.2.1.3查询:管理员可以查询用户的相关信息1.2.2普通用户状态登入:1.2.2.1查询:用户可以查询自己的银行卡信息1.2.2.2存款:提供用户提取现金的功能1.2.2.3转账:提供用户在统一银行内的转账功能1.2.2.4查询交易情况:查询交易文件中的交易记录1.2.2.5修改密码:能够修改用户的银行卡密码二、设计方案的论证2.1概要设计《JAVA程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。

实践教学环节是必不可少的一个重要环节。

本课程的程序设计专题实际是计算机相关专业学生学习完《JAVA程序设计》课程后,进行的一次全面的综合训练,JAVA程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。

2.2需求分析2.2.1技术可行性ATM设计的主要目标为:管理员登陆时要写入账户的名和身份证号在数据库里进行匹配,匹配成功则登入否则在前台显示账号或密码错误;普通用户登入时要写入银行卡号和所属银行卡号的密码,在数据库中进行匹配,匹配成功即登入否则在前台显示账号或密码错误2.2.2经济可行性可行性分析法是对工程项目技术经济论证技术经济论证经济合理性综合分析的方法。

C++自动取款机课程设计报告书

C++自动取款机课程设计报告书

课程设计报告书课程名称:C++高级语言程序设计设计题目:ATM机模拟程序学院名称:基础与信息工程学院所属专业:计算机科学与技术专业班级:13级计科组长:王大国2013312053同组人员:杨钊2013312067邹学才2013312076指导教师:鲁绍坤2014年6月1日摘要本课程设计报告书编写的是一个ATM取款机模拟程序。

日常生活中,我们常使用ATM取款机,对它的操作和功能有一定的了解。

因此在设计书中我们模拟的就是ATM取款机的属性和行为,主要包括账户登陆(吞卡),查询余额,取款,存款,转账,修改密码,查询近期交易记录,退出功能。

本书主要内容分为三个部分,第一部分主要是阐述该程序设计的题目以及小组分工情况。

第二部分是对该问题的整体描述,对问题进行深入的分析设计,到最后编写出程序进行测试。

第三部分为该书的总结,主要是在编写程序的时候所遇到的问题,解决方法以及心得和源代码。

目录一.题目要求及小组分工情况 (1)1. 题目要求 (1)2. 小组分工 (1)二.系统分析及相关测试 (1)1. 系统流程图 (1)2. 进入系统测试主界面 (2)3. 进入登录界面(插卡) (2)4. 登录界面相关操作 (3)2.查询余额函数实现及测试结果 (6)3.取款函数实现及测试结果 (7)4.存款函数实现及测试结果 (9)5.转账函数实现及测试结果 (12)6.查询记录函数实现及测试结果 (16)7.密码修改函数实现及测试结果 (17)8. 退出操作 (20)三.结束语 (21)附件:源程序代码 (23)一.题目要求及小组分工情况1.题目要求编写一个ATM机的模拟程序,完成用户存款、取款、转账、查询余额与查询近期账户交易查询功能。

2.小组分工王大国主要程序构思,综合处理及答辩杨钊查询余额,取款,存款函数实现邹学才转账,查询记录,修改密码函数实现二.系统分析及相关测试1.系统流程图2.进入系统测试主界面为了便于测试,执行测试后跳出主界面,提供测试者相关注册账户信息(实际运用没有):3.进入登录界面(插卡)主界面后任意键继续,进入登录界面:4.登录界面相关操作a.账户错误(模拟银行卡无效):b.账户有效,密码错误:第一次输入密码错误:第二次密码错误:第三次密码错误吞卡:输入密码发现密码错误防止吞卡实现退卡:C.登录成功:2.查询余额函数实现及测试结果//查询余额void Account::showbalance(){system("cls");/*清屏*/cout << "\n\t\t\t您的当前余额是:"<< balance[accountIndex] << "元" << endl;}登陆后在主菜单栏选择1执行查询余额后回车,运行结果:3.取款函数实现及测试结果//取款void Account::drawmoney(){system("cls");/*清屏*/double money;cout << "\n\t\t请输入取款金额(在100,200,500,1000,2000选择):";cin >> money;//下面不计利息了,从现在起,我们的银行只提供银行卡业务,是定期统一计息的if(money == 100 && money <= balance[accountIndex] || money== 200 && money <= balance[accountIndex] || money == 500 && money <= balance[accountIndex] || money == 1000 && money <= balance[accountIndex] || money == 2000 && money <= balance[accountIndex]){balance[accountIndex] -= money; //取款成功tra[Index].tradeType = "取款";tra[Index].tradeMoney = money;tra[Index].tradeBalance = balance[accountIndex];//tra[count].tradeTime = t;Index++;cout << "\n\t\t取款后,您的余额是:"<< balance[accountIndex] << "元。

ATM取款机系统——java课程设计

软件开发课程设计报告设计题目:ATM取款机系统专业双学位姓名学号指导教师时间:目录一、概述 (2)二、设计目的 (2)三、系统总体设计 (2)3.1系统功能模块划分 (2)3.2 ATM取款机系统功能结构图 (3)3.3各模块详细设计及用户使用说明 (4)3.3.1 登陆模块 (4)3.3.2 选择服务模块 (4)3.3.3 取款服务模块 (5)3.3.4 修改密码模块 (6)3.3.5 存款服务模块 (6)3.3.6 查询余额模块 (6)3.3.7 转账服务模块 (7)3.3.8 通信缴费模块 (7)3.3.9 咨询服务模块 (8)3.3.10 退出操作模块 (8)四、系统运行结果及存在问题 (8)4.1运行结果 (8)4.2存在问题 (14)五、设计体会 (14)六、源程序 (14)ATM取款机系统一、概述自动柜员机(ATM)自发明以来,以其高效和低成本一直受到银行业的青睐,从我国引进第一台柜员机至今已经拥有6万台左右的规模,但与世界平均水平相比,我国的人均拥有量还有差距,与先进国家相比人均拥有数量甚至不到四分之一。

为了增强我国银行的竞争力,国家相继出台了很多相关措施,比如《关于促进银行卡产业发展的若干意见》等,各商业银行也对柜员机的发展制定了详细的规划,甚至出现了由银行单独购买模式发展为银行租赁商业公司ATM的模式。

可以说,随着我国经济的屈起,我国的柜员机也正面临着一个快速发展的春天。

二、设计目的(1)复习、巩固软件开发的基础知识,进一步加深对软件开发的理解和掌握;(2)课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。

提高学生适应实际,实践编程的能力;(3)培养学生在项目开发中团队合作精神、创新意识及能力。

三、系统总体设计3.1系统功能模块划分本系统主要包括登陆模块设计,选择服务模块设计,取款服务模块设计,修改密码模块设计,存款服务模块设计,查询余额模块设计,转账服务模块设计,通信缴费模块设计,咨询服务模块设计,退出操作模块设计等几个功能模块。

ATM java课程设计

JAVA 期中课程设计报告报告题目:ATM模拟程序姓名:学号:专业:计算机科学与技术班级:2班一、课程设计目的和内容:目的:结合面向对象程序设计课程,培养面向对象软件开发思维,初步了解软件开发的一般流程,提高用JAVA编程的实际动手能力并增强对面向对象编程的兴趣。

内容:设计ATM取款机主要包括登陆页面,选择服务,存款,取款,查询余额,修改密码和退出等功能。

二.系统需求分析:1、模拟ATM柜员机程序;2、修改密码。

当用户需要修改密码时,可以用这个功能,新密码的长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。

3、取款。

用户根据自己的需要取多少钱,输入要取的钱,每次输入的取款金额为100的倍数,总额不超过5000,支取金额不允许透支。

4、查询余额。

用户需要知道自己的账户还剩多少钱时,可以查询余额,初始余额为50000元。

5、存款。

用户可以存款,金额为100的倍数,不能出现负数存款。

6、锁机。

用户3次输入密码错误时,停止操作。

三、系统设计:1. 我所设计的ATM柜员机主要是由登录页面模块还由选择服务模块组成,其中选择服务模块又由取款模块、存款模块、查询余额模块、修改密码模块、退卡模块组成。

2. ATM柜员机界面设计一个系统界面的好坏直接影响到用户的操作,界面设计要求样式美观、简单明了、方便易操作。

我设计的界面主要分为窗体、菜单、按钮和文本输入框几个部分,分别执行相应的操作。

(1)窗体的设计窗体整个框架使用Frame类构造,Frame有自己的外边框和自己的标题,创建Frame时可以指定其窗口标题,我创建的窗口标题是各个不同功能的模块的名字,比如说查询余额,还有取款等。

相应源代码为:WindowBox(String s,Account act){super(“ATM柜员机”);} 、Selection(String s,Account act){ super(s);}向Frame窗口中添加组件使用add()。

ATM自动取款机程序设计

大连科技学院面向对象程序设计(A)课程设计题目 ATM自动取款机程序设计学生姓名x'x'x专业班级软件工程12-1 指导教师李孝贵职称讲师所在单位信息科学系软件工程教研室教学部主任王立娟完成日期 2014年7月6日课程设计报告单综合评定:(优、良、中、及格、不及格)指导教师签字:年月日《面向对象程序设计(A)课程设计》任务书一、课程设计任务及要求:任务:针对小型信息管理系统或若干综合性设计题目,选择一种软件开发模型,完成从需求分析、系统设计、系统实现,软件测试的全过程。

要求:(1) 根据软件系统开发的一般原则,完成相应系统的功能设计,完成主要功能模块的程序实现并进行测试训练,给出代码运行结果和相应的设计文档。

可以分组进行,但所有学生必须经历整个系统的开发全过程,以便加深对系统开发全过程的认识。

(2)提交课程设计报告。

(3)指标: 要求完成课程设计报告3000字以上(约二十页);完成所设计的题目,设计题目的语句行数的和在200行语句以上。

二、工作量2周(10个工作日)时间三、计划安排第1个工作日:查找相关资料、书籍,阅读示例文档,选择题目。

第2个工作日-第4个工作日:设计程序结构、模块图。

第5个工作日-第9个工作日:完成程序的编码,并且自己调试、测试。

穿插进行课程设计报告的撰写。

第10个工作日:上交课程设计报告,由教师检查软件测试效果、检查课程设计报告,给出学生成绩。

指导教师签字:年月日目录题目: (1)1.需求分析 (1)2.概要设计 (1)3.详细设计.......................................................................................... 错误!未定义书签。

4.编码 (4)5.调试分析 (5)6.测试结果及运行效果 (5)7.系统开发所用到的技术 (8)参考文献 (9)附录全部代码 (10)题目:ATM自动取款机程序设计分析与设计1.需求分析为了方面用户的及时取款,查询,及时修改密码的方便,本课题设计并模拟银行的自动取款机使用过程中的界面和用户交互过程。

JavaATM课程设计报告书

呼和浩特民族学院课程设计报告设计名称:《面向对象程序设计》课程设计选题名称: ATM自动取款机模拟系统姓名:萌学号:专业班级:计算机科学与技术专业系(院):计算机系设计时间:2013.11.19~2013.11.28设计地点: 5、6机房4.课程设计成果调试程序,进入主界面:选择查询选择查询后,进入如下界面,可以先输入密码,检测密码输入是否正确。

取款查看余额更改密码:存款转账:继续操作检验和退出程序:5.课程设计心得在本次的课程设计中,ATM自动取款机模拟系统在初选时觉得很难,因为在我觉得这个程序太大了,而且有好的方法我不是很熟练,我也在网上查阅的很多资料,最后定下这个程序。

根据课程设计的要求,在ATM自动取款机模拟系统要实现查询,存款,取款,转账,密码修改等功能,还有程序选择功能,错误提示,退出系统等功能。

在调试过程中,出现了很多问题,对于我来说,方法的调用时最难的了,经过网上查询,老师帮助,同学商议,最后解决了我的难题,但是我写的还是很慢的了,经过斟酌才写下这篇程序报告。

不过通过解决这些问题,我也对java中许多不理解的地方也有了不同的看法,知道了很多的知识,我觉得这些辛苦没有白费。

最后,能让读者或者使用的人更清楚明白的直观的认识这个程序我加了很多,汉语的注释和操作中的提示,通过这次程序设计报告的完成我希望以后我的程序越来越好,我知道的知识越来越多。

参考文献:《Java语言与面向对象程序设计》-----------王行言编著《Java2实用教程》------------------------耿祥义,跃平编著《Java实用程序设计100例》---------------袁海燕,王文涛编著。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计报告 题 目: ATM取款机程序 课程名称: 面向对象程序设计 学 院: 信息工程学院 专 业: 软 件 工 程 班 级: 18软嵌3班 学生姓名: 马 红 丽 学 号: 20180312339 指导教师: 张瑜慧 丁 浩 成 绩: 开课时间: 2018-2019 学年 2 学期 1

目录 1、功能介绍 ...................................................... 1 1.1系统设计 ............................................................. 1 1.2功能概述 ............................................................. 1

2、概要设计 ...................................................... 2 2.1程序主要功能 ......................................................... 2 2.2程序流程图 ........................................................... 2

3、详细设计 ...................................................... 4 3.1类的声明 ............................................................. 4 3.2登录界面 ............................................................. 6 3.3功能界面 ............................................................. 8 3.4取款功能 ............................................................ 10 3.5存款功能 ............................................................ 12 3.6转账功能 ............................................................ 14 3.7查询信息功能 ........................................................ 15 3.8更改密码功能 ........................................................ 16

4、测试结果 ..................................................... 18 4.1登录界面 ............................................................ 18 4.2功能界面 ............................................................ 19 4.3取款功能 ............................................................ 19 4.4存款功能 ............................................................ 21 4.5转账功能 ............................................................ 22 4.6查询信息功能 ........................................................ 23 4.7修改密码功能 ........................................................ 23

5、课程设计总结 ................................................. 25 5.1遇到问题 ............................................................ 25 5.2设计问题的不足 ...................................................... 25 5.3课程设计心得 ........................................................ 25

6、附录代码 ..................................................... 26 1

1、功能介绍 1.1系统设计

本系统属于中小型的银行取款机,可以为银行用户提供各项基本服务,通过系统可以达到以下目标: 功能方面:取款、查询余额、转账、修改密码、存款等 性能:可使用户在无任何经验的情况下进行操作ATM自助式服务 输入:用户通过键盘进行输入 1.2功能概述 运行程序,当输入给定的卡号和密码(初始卡号:809000和初始密码:000908)时,系统登录ATM取款机,用户可以进入功能界面实现所需要的功能,有如下功能: (1)取款:每次取款的金额为100的倍数,并且单次取款不得超过5000元。一旦超过5000元,系统会返回功能界面,让用户再次选择。 (2)转账:转账时需要目标用户,如果目标用户的卡号出错则不能完成转账功能。转账金额不得超过转账用户的账户余额且必须为100的整数倍否则系统会跳回功能界面,让客户再次进行功能选择。 (3)存款:存款金额必须是100的整数倍,否则操作失败!存款成功以后,更新用户的账户余额。 (4)查询信息:包括用户的姓名,卡号,密码,余额。 (6)更改密码:更改密码时需要输入原始密码,原始密码输入成功才能进行修改密码的功能。修改密码,需要进行二次确认新密码并且输入的新密码不能都是同一个字符。 (7)退出系统:退出系统,进入到登录界面,如果用户需要。可以选择重新登录。 2

2、概要设计 2.1程序主要功能 实现ATM取款机的基本操作,其主要功能分为:利用卡号,密码,登录界面,进入能实现基本操作的功能界面。功能界面有取款、存款、转账、查询信息、修改密码以及退出系统等功能。 2.2程序流程图 (1) ATM取款机的主要实现的功能有取款、存款、转账、查询信息、修改密码等功能。ATM取款机的主要功能图,如图1所示。

图1 ATM取款机主要功能图 (2) 要实现ATM取款机修改密码的功能首先要输入原始密码确认原始密码正确才可以输入新的密码。新密码要符合系统的要求,才可以再次确定新密码,两次密码输入相同且和符合要求才能完成密码修改。 ATM取款机修改密码流程图,如图2所示。 3

图2 ATM修改密码流程图 (3) ATM的总体流程:首先要输入正确的卡号和密码进入功能界面,如果输入不正确就进入不了功能界面,密码输入超过3次卡将会被没收。ATM总体流程图,如图3所示。 4 图3 ATM总体流程图

3、详细设计 3.1类的声明 (1)ATM类主要包括:用户利用卡号和密码登录界面,进入功能界面以后进行取款、转账、存款、查询信息等功能。 class ATM //定义ATM类 { public: ATM(YongHu& y):yh(y){ 5

} void Welcome(); //登陆界面 bool Checkpwd(char ID[],char mima[]) ; //核对密码 void QuKuan(); //取款 void ChaXun() ; //查询 void XiuGai(); //修改密码 void MoveMoney(); //转账 void SaveMoney(); //存款 void Functionshow(); //功能界面 void LK(); //锁卡 void TuiChu(); //退出 private: int times; //记录输入密码的次数 YongHu& yh; };

(2)YongHu类主要用来设置用户名、卡号、密码、余额等。 class YongHu //用户类 { private: char ID[20]; //卡号 char mima[10]; //密码 float money; //卡上余额 char name[20] //用户名 public: friend class ATM; //友元类:和友元函数类似。将类A声明为类B的友元类,那么类A中的所有成员函数都是类B的友元函数。单向的 YongHu( char Name[],char id[],float Money,char Mima[]); protected: 6

char* get_name(); //获取用户名 char* get_ID(); //获取卡号 char* get_mima(); //获取密码 float get_money(); //获取余额 void set_mima(char Mima[]); //设置密码 函数声明 void set_money(float m); //取款 void save_money(float m); //存款 void Move_money(); //转账 }; 3.2登录界面 实例化一个YongHu类的对象,构造用户zoe。初始化卡号为:809000,初始化密码为:000908、初始化余额为10000元。系统会自动核对卡号和密码,卡号与对应的密码一致则登录成功,进入功能界面。如果卡号或密码输入有错误,系统会提示用户卡号或密码输入错误,给用户3次输入机会,超过三次用户的卡会被吞并。 void ATM::Welcome() //登陆界面 { times=0; char ID[20],mima[10],ch; int i=0; do { i=0; cout<<" ◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆"

相关文档
最新文档