基于java-ATM机-银行存取款系统的设计与实现(含源文件)
- 格式:doc
- 大小:518.50 KB
- 文档页数:42
课程设计课程设计名称:java课程设计专业班级:计科13级03班****:***学号:****************:***课程设计时间:2015.6.22-2015.7.3计算机科学技术专业课程设计任务书银行帐户管理系统一、需求分析银行账户管理系统中,主要有以下功能:1.添加账户:主要增加账户的账号,姓名,类型以及所存的金额。
2.登陆账户:根据输入的账号以及密码,验证判断其账户的类型以进行操作。
3.存款:输入账号,并向该账号存钱。
4.取款:输入账号和密码,根据不同类型的账户进行取款或者透支取款。
5.转账:输入账号和密码,并向另外一个存在的账号转账。
6.查询账户余额:根据输入的账号和密码,查询并显示出该账户的剩余金额。
二、概要设计图1 系统模块流程图三、运行环境、开发语言运行环境:Windows 8.1,DOS,Eclipse开发语言:Java四、详细设计1程序清单表1 ATM类表2 Bank类表3 SavingAccount类表4 CresitAccount类表5 Account类方法功能void deposit()存款getxx()setxx()获取及操作2 主要代码2.1 ATM类进入银行账户管理系统,进行操作。
图2:银行账户管理系统主界面import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.util.Properties;import java.util.Scanner;public class ATM {//属性private Bank bank;//构造函数public ATM() {bank = new Bank();}//main方法public static void main(String[] args){ATM atm = new ATM();//实例化ATMBank bank = atm.bank;//标号,判断是否退出一级菜单boolean firstFlag = true;while(firstFlag){ //一级菜单System.out.println("******欢迎使用XXX银行模拟ATM系统,请按如下步骤操作******");System.out.println(" *1.用已有账户登录");System.out.println(" *2.没有账户,开户");System.out.println(" *3.退出");Scanner scanner = new Scanner(System.in);System.out.print("请选择:");try {int choice1 = scanner.nextInt();switch(choice1){case 1:scanner = new Scanner(System.in);System.out.print("请输入银行卡号:");long id = scanner.nextInt();scanner = new Scanner(System.in);System.out.print("请输入银行密码:");String password = scanner.next();Account account = bank.verifyAccount(id, password);if(account != null){ //标号,判断是否退出二级菜单boolean secondFlag = true;while(secondFlag){ //二级菜单System.out.println("******欢迎使用XXX银行模拟ATM系统,请按如下步骤操作******");System.out.println(" *1.查询账户余额");System.out.println(" *2.存款");System.out.println(" *3.取款");System.out.println(" *4.转账");System.out.println(" *5.退卡");scanner = new Scanner(System.in);System.out.print("请选择:");try {int choice2 = scanner.nextInt();switch(choice2){case 1:System.out.println("您账户的当前余额为:"+account.getBalance());break;case 2:scanner = new Scanner(System.in);System.out.print("请输入您的存款金额:");double money1 = scanner.nextDouble();bank.deposit(account, money1);break;case 3:scanner = new Scanner(System.in);System.out.print("请输入您的取款金额:");double money2 = scanner.nextDouble();bank.withdraw(account, money2);break;case 4:scanner = new Scanner(System.in);System.out.print("请输入您要转入账户的卡号:");long id2 = scanner.nextLong();Account account2 = bank.verifyAccount(id2);if(account2 != null){scanner = new Scanner(System.in);System.out.print("请输入您要转入账户的金额:");double money = scanner.nextLong();if(money <= account.balance){bank.transferAccount(account, account2, money);System.out.println("转账成功!!!");}else{System.out.println("抱歉,您账户没有足够的金额!请查看后重新选择输入!");}}else{System.out.println("抱歉,没有找到您要转入的账户信息!请核对后重新选择输入!");}break;case 5:secondFlag = false;break;default:System.out.println("没有该选项,请重新选择!");break;}} catch (Exception e) {System.out.println("选择输入不合法,请重新选择!");}}}else{System.out.println("没有此账户,请先开户!");}break;case 2://账号id由银行自动提供(从1001递增)scanner = new Scanner(System.in);System.out.print("请输入账户密码:");String passwd1 = scanner.next();scanner = new Scanner(System.in);System.out.print("请再输入账户密码:");String passwd2 = scanner.next();scanner = new Scanner(System.in);System.out.print("请输入户主姓名:");String name = scanner.next();scanner = new Scanner(System.in);System.out.print("请输入户主身份证号码:");String personId = scanner.next();scanner = new Scanner(System.in);System.out.print("请输入账户类型(0储蓄,1信用):");int type = scanner.nextInt();bank.openAccount(passwd1, passwd2, name, personId, type);break;case 3:bank.saveAccountDate();firstFlag = false;break;default :System.out.println("没有该选项,请重新选择!");break;}} catch (Exception e) {System.out.println("选择输入不合法,请重新选择!");}}System.out.println("谢谢使用!");}}2.2 Bank类对系统添加新账户,登陆已有账户,进行操作。
ATM机系统分析与设计班级:07软件工程学号:071164009姓名:闫亚培第一章系统需求ATM机系统的域描述如下:在ATM机系统中,要为每名用户建立一个帐户,并给他们发放银行卡(银行卡可以提供卡号,用户姓名),账户中存储用户的个人信息,存款信息,取款信息和余额信息,持有银行卡的用户可以通过ATM自动取款机系统进行存款,取款,查询余额的操作。
在使用自动取款机时,需要插入用户的银行卡,并根据系统界面显示输入密码,由系统判断该帐户是否有效(帐户密码是否正确),若密码输入不正确,则再次显示让用户输入密码,若3次输入的密码均不正确,系统自动退出服务,若密码输入正确,则系统进入选择服务类型界面:1.存款,2.取款,3.查询余额,然后系统根据服务类型进行相应操作,若选择取款操作,系统确认取款请求以后,会询问取款数额,系统界面显示输入数额请求,用户输入取款数额,系统接到信息后发出确认取款请求,用户选择确认,系统选择确认后会向点钞机发出钞请求,然后点钞机出钞,系统向用户发出去钞请求,用户取钞以后,系统记录此次取款并自动计算余额,更新帐户信息,然后系统界面进入是否选择继续服务界面,用户点击否,然后系统退出银行卡并提醒用户取卡,用户取走银行卡,至此,取款业务完成。
若选择存款业务,系统确认存款请求以后,系统界面进入请放入存款界面,然后用户将存款放入存款口,系统提示点钞机进行点钞,点钞完毕后,系统记录存款操作并更新余额,系统界面显示存款完毕,然后系统界面进入是否选择继续服务界面,用户点击否,则系统退出银行卡并提示用户取卡,用户取走卡后,存款业务完成。
若用户选择查询业务,若查询余额,系统确认请求以后根据其账号信息查取余额,并在界面显示余额为多少。
对上述ATM机系统的域描述进行分析,可以获得如下功能性需求:此软件的设计将实现银行ATM系统的基本功能。
ATM系统一次服务一名客户。
客户插入一张ATM卡并进入个人数字识别号码(PIN),系统进行验证,通过后客户才能执行一种或更多操作。
软件建模(UML)作业班级:计算机0806班学号:20083007姓名:姜俊方UML 个人作业一、ATM 机需求分析图二、用例图用于描述一组用例、参与者及它们之间的连接关系。
用例图仅仅从角色使用系统的角度描述系统中的信息,也是站在系统外部查看系统功能,而并不描述该功能在系统内部是如何实现的。
用例图是被称为参与者的外部用户所能观察到的系统功能的模型图。
用例可应用于整个系统,也可应用于系统的一部分,包括子系统、单个的类甚至接口。
通常,用例不仅代表这些元素所期望的行为,而且还可把这些元素用作开发过程中测试用例的基础。
椭圆:用例,是用户与计算机之间的一次典型交互作用。
人形:参与者(外部执行者)是指用户在系统中所扮演的角色。
ATM 系统的用例图读卡机模块键盘输入模块IC认证模块显示模块吐钱机模块打印报表报表监视器模块ATM 自动取款存钱取钱转账查询余额付款银行工作人员客户修改密码添加信息银行工作人员维护硬件设备ATM 提款系统用例图存款查余额用户更改密码取款验证用户付款信用三、类图用于描述一组类、接口、协作及它们间的静态关系。
在面向对象系统的建模中,类图最为常用,它用来阐明系统的静态结构。
类是对一组具有相同属性、操作、关系和语义的对象的描述,其中对类的属性和操作进行描述时的一个最重要的细节是它的可见性。
一个典型的系统模型中通常有若干个类图。
一个类图不一定要包含系统中所有的类,一个类可加到几个类图中。
在类图中类用矩形框来表示,它的属性和操作分别列在分格中。
类之间可以多种方式链接(如关联、泛化、依赖和实现等)。
关系用类框之间的连线来表示,不同的关系用连线上和连线端头处的修饰符来区别。
类图数据库ATM键盘ATM 屏幕吐钱机ATM 读卡器账户ATM 系统类图四、顺序图(序列图)顺序图表示对象之间传送消息的时间顺序。
顺序图用来描述对象之间消息发送的先后次序,阐明对象之间的交互过程以及在系统执行过程中的某一具体时刻将会发生什么事件。
pythonatm机程序代码Python ATM机程序代码随着科技的不断发展,ATM机已经成为了人们日常生活中不可或缺的一部分。
ATM机的出现,不仅方便了人们的生活,也提高了人们的生活质量。
而在ATM机的背后,是一系列复杂的程序代码在运行。
本文将介绍一种基于Python语言的ATM机程序代码。
一、ATM机的基本功能ATM机的基本功能包括:查询余额、取款、存款、转账、修改密码等。
在Python ATM机程序代码中,这些功能都被封装成了函数,方便调用。
1.查询余额查询余额是ATM机最基本的功能之一。
在Python ATM机程序代码中,查询余额的函数如下:```def query_balance():print("您的余额为:", balance)```其中,balance为全局变量,表示用户的余额。
2.取款取款是ATM机的另一个重要功能。
在Python ATM机程序代码中,取款的函数如下:```def withdraw():global balanceamount = int(input("请输入取款金额:"))if amount > balance:print("余额不足!")else:balance -= amountprint("取款成功!")print("您的余额为:", balance)```其中,amount为用户输入的取款金额,如果余额不足,则提示“余额不足!”;否则,从余额中扣除取款金额,并提示“取款成功!”。
3.存款存款是ATM机的另一个重要功能。
在Python ATM机程序代码中,存款的函数如下:```def deposit():global balanceamount = int(input("请输入存款金额:"))balance += amountprint("存款成功!")print("您的余额为:", balance)```其中,amount为用户输入的存款金额,将存款金额加入余额中,并提示“存款成功!”。
银行储蓄系统系统设计报告目录一、引言 (3)1.编写目的 (3)2.项目背景 (3)3.开发人员 (3)4.参考文献 (3)二、问题定义 (4)1.目标 (4)2.系统功能 (4)三、可行性研究分析 (4)四、需求分析 (5)1. 功能需求分析 (5)2. 建立功能模型和数据需求 (5)3. 建立逻辑模型 (13)4. 建立行为模型 (14)5. 性能需求分析 (14)6. 系统可用性和可靠性需求分析 (14)五、概要设计报告 (15)1 数据库概要设计 (15)2 系统总体设计 (16)3 测试计划 (17)4 接口设计 (17)5 运行设计 (18)6 出错处理设计 (18)7 安全保密设计 (18)8 维护设计 (18)六、详细设计报告 (19)1 用户界面设计 (19)2 测试用例及预测结果 (25)七、运行环境和编译环境说明书 (27)1 开发编译环境 (27)2 运行使用环境 (27)3 错误处理 (27)八、总结报告 (28)1一、引言1、编写目的为了规范化软件开发,提高开发过程的能见度,便于控制和管理软件开发过程,提高软件质量,降低开发风险,减少需求变更,便于日后的维护工作,文档定制了软件开发的细节问题,明确软件需求,便于与用户协调开发,确认需求。
对软件的开发相关文档及用户使用手册进行了整理。
2、项目背景非电子化的银行储蓄系统工作效率较低,且安全性,准确性得不到保证。
越来越满足不了用户的需求和银行自身发展的需要。
建立一个高效,准确,方便,安全的银行储蓄系统是用户需求和技术进步的共同推动。
3、开发人员组长:xxx组员:xx xxx xxx xxx xxxxx作为项目经理,在人员沟通,质量管理,进度管理,风险管理方面进行了着重管理,并对里程碑进行了评审,确认。
并对变更进行评审,控制,记录。
需求分析以及系统编码由xxx完成。
用户界面设计以及系统测试由xxx完成。
数据库设计工作由xx完成。
ATM自动取款机系统ATM自动取款机(automatic teller machine)是银行在银行营业大厅、超市、商业机构、机场、车站、码头和闹市区设置的一种小型机器,利用一张信用卡大小的胶卡上的磁带〔或芯片卡上的芯片〕记录客户的基本户口资料,让客户可以透过机器进行提款、存款、转帐等银行柜台服务。
这里介绍使用Rational Rose工具为ATM自动取款机系统进行建模。
5.1需求分析ATM自动取款机系统的需求分析简述如下:(1)客户将银行卡插入读卡器,读卡器识别卡的真伪,并在显示器上提示输入密码。
(2)客户通过键盘输入密码,取款机验证密码是否有效。
如果密码错误提示错误信息,如果正确,提示客户进行选择操作的业务。
(3)客户根据自己的需要可进行存款、取款、查询账户、转账、修改密码的操作。
(4)在客户选择后显示器进行交互提示和操作确认等信息。
(5)操作完毕后,客户可自由选择打印或不打印凭条。
(6)银行职员可进行对A TM自动取款机的硬件维护和添加现金的操作。
5.2系统建模在系统建模以前,我们首先需要在Rational Rose 2003中创建一个模型。
并命名为“ATM 自动取款机系统”,该名称将会在Rational Rose 2003的顶端出现,如下图5-1所示。
图5-1创建项目系统模型5.2.1创建系统用例模型创建系统用例的第一步是确定系统的参与者。
考试成绩管理系统的参与者包含以下三种:(1)客户(2)银行职员(3)信用系统三个参与者如图5-2所示。
图5-2 系统参与者然后,我们根据参与者的不同分别画出各个参与者的用例图。
1.客户用例图:客户在本系统中可以进行取款、存款、转账、查询余额、修改密码和还款的相关操作,通过这些活动创建的客户用例图如图5-3所示。
图5-3 客户用例图图5-4 银行职员用例图2.银行职员用例图:银行职员在本系统中能够进行硬件维护、修改密码和添加现金的相关操作,通过这些活动创建的银行职员用例图如图5-4所示。
实验一:测试用例设计一、实验目的通过实验,掌握常用黑盒测试用例设计方法,实现系统测试。
二、实验内容:1、针对被测试软件理解软件功能需求2、根据软件功能需求,进行等价类划分3、根据等价类,编写软件的测试用例。
4、执行测试用例,记录错误信息三、ATM机取款功能需求分析☐需要输入信息:账号、密码、取款金额、是否打印☐关于帐号:账号类型:本行银行卡、其他行银行卡☐关于密码:6为数字,必须正确密码能输入错误次数:3☐关于取款金额要求:50、100、及其组合单次金额上限:2500当日帐户上限:5000系统只能对加入银联的当前能正常工作的银行卡办理取款业务。
包括本行银行卡、非本行银行卡。
本地银行卡不扣除手续费,外地卡每比交易扣5元手续费,跨行取款扣2元手续费,外地且跨行扣10元手续费。
必须是活动的帐号才能取款,冻结的帐号不能取款。
成功办理取款业务必须输入6位数字的正确的银行卡密码。
密码连续输入三次不正确,ATM机器警告后吞卡。
取款金额必须为50元或100元为基本单位。
单笔取款业务最高限额为2500元。
每天一个银行卡帐户的取款金额上限为5000元。
ATM机中金额不足取款金额,系统给出提示,不能完成取款操作。
若银行卡帐内金额不足取款金额,系统给出提示,不能完成取款操作。
可以选择打印取款凭条,ATM机打印输出当次取款信息三、实验步骤:1、熟悉ATM机器取款业务流程,详细阅读系统需求说明和使用说明2、根据系统的需求说明和使用说明,分析输入数据的规则和要求。
3、考虑实际使用中不同的用户场景,进行等价类划分。
4、完成测试用例,主要考虑等价类覆盖和边界值。
5、执行测试四、测试用例设计步骤分析举例:一、软件功能的理解整理以及要求规则1)银行帐号--- 需要区分本地卡外地卡非银联卡和其它卡2)密码--- 6位数字有效错误次数在3次内提示重新输入第三次吃卡3)提款金额---单次<2500 当日<5000 面额是50或者1004) 机内金额---大于取款金额方能取款5)打印凭条打印或者否三、划分等价类有效等价类无效等价类账号类型本行银行卡账号(1);其他行银联卡(2) 非银联卡(3)账号有效是(4) 否(5)密码长度6位(6)不等于6(7)密码类型数字(8)非数字(9)密码正确是(10)否(11)密码连续错误次数<=3(12) >3(13)金额选择50(14);100(15);50和100的组合(16)除了50、100和其组合(17)一次取款金额>0,<=2500(18)>2500(19)当日取款金额0<,<=5000(20)>5000(21)机内金额>=取款金额(22)<取款金额(23)帐户金额>=取款金额(24)<取款金额(25)打印凭条是(26);否(27)四编写测试用例:五、思考与讨论1、如何外地跨行卡如何在设计用例中体现的2 当日金额小于5000如何设计用例3 密码正好错误3次的时候吃卡如何测试4 哪些测试用例体现了边界值法六、其它说明:1、实验结束上交:设计的测试用例(包括划分的等价类)、错误记录2、实验成绩评定包括:等价类划分合理性和完善性(50%)、测试用例覆盖度(40%)、实验报告(10%)。
本科毕业论文(设计) 银行存取款系统的设计与实现 姓 名:__ ________ 系 别: 计算机与信息技术学院_ 专 业:_ 计算机科学与技术_ 学 号:__ _____ 指导教师:__ _ _________ 年 月日 I
目 录 引论......................................................................... 1 1银行存取款系统概述 ......................................................... 1 1.1背景 ................................................................. 1 1.2意义 ................................................................. 1 2 银行存取款系统需求分析 ................................................... 1 2.1系统需求 ............................................................. 1 2.2功能需求 ............................................................. 1 2.2.1用户注册和登陆功能 ............................................. 1 2.2.2用户存取款转账和查询历史功能 ................................... 1 2.3软件属性需求 ......................................................... 2 2.4业务流程描述 ......................................................... 2 3.银行存取款系统总体设计 ..................................................... 2 3.1系统设计概述 ......................................................... 2 3.2注册帐户 ............................................................. 2 3.3登录 ................................................................. 2 3.4存款 ................................................................. 2 3.5取款 ................................................................. 2 3.6转账 ................................................................. 2 3.7查询历史 ............................................................. 2 3.8退出 ................................................................. 3 4 Oracle数据库的设计 ........................................................ 3 4.1 Oracle数据库设计概论 ................................................ 3 4.2 表的结构设计 ......................................................... 3 4.2.1用户表 ......................................................... 3 4.2.2历史表 ......................................................... 3 4.3 PL/SQL存储过程的设计 ................................................ 3 4.3.1用户表存储过程的设计 ........................................... 4 4.3.2历史表存储过程的设计 ........................................... 4 5 银行存取款系统的实现 ....................................................... 5 5.1用户登陆模块的实现 ................................................... 5 5.1.1界面样式 ....................................................... 5 5.1.2功能实现 ....................................................... 5 5.2新用户注册模块的实现 ................................................. 6 5.2.1界面样式 ....................................................... 6 5.2.2功能实现 ....................................................... 6 5.3用户操作模块的实现 ................................................... 7 5.3.1界面样式 ....................................................... 8 5.3.2功能实现 ....................................................... 8 5.4存款模块的实现 ....................................................... 9 5.4.1界面样式 ....................................................... 9 5.4.2功能实现 ....................................................... 9 5.5取款模块的实现 ...................................................... 10 II
5.5.1界面样式 ...................................................... 11 5.5.2功能实现 ...................................................... 11 5.6转账模块的实现 ...................................................... 12 5.6.1界面样式 ...................................................... 12 5.6.2功能实现 ...................................................... 12 5.7查询历史记录模块的实现 .............................................. 15 5.7.1界面样式 ...................................................... 15 5.7.2功能实现 ...................................................... 15 6发布程序及分包规范 ........................................................ 16 结 论....................................................................... 16 参考文献 .................................................................... 17 致 谢....................................................................... 17
III
银行存取款系统的设计与实现 摘 要 计算机科学技术的发展不仅极大地促进了整个科学的发展,而且明显加快了经济信息化和社会信息化的进程。绝大多数的公司的日常办公已经离不开计算机技术和软件技术。国内的银行大都大力发展银行自动取款机(ATM),以提高工作效率和降低成本。 本系统采用Eclipsc作为开发工具,使用Java语言编写,并连接Oracle数据库,搭建和模拟银行最常见存款取款转账操作。可实现用户注册、用户登录、用户存款、用户取款、用户转账、查询该用户所有的操作记录的功能。
关键词 注册;登陆;存取款;转账;历史记录 Design and implementation of bank deposit
and withdrawal system Abstract The development of computer science and technology not onlygreatly promoted the development of science as a whole, andsignificantly speed up the process of economicandsocialinformation. The vast majority of the company's day-to-day officecan not do without the computer technology and software technology. Domestic banksMost vigorously development Bankautomated teller machine (ATM), in order to enhance efficiency and reduce costs. Eclipsc The system uses as a development tool of to using the Java language, and connect to an Oracle database, set up the most common and analog bank deposit withdrawals transferoperation. User registration, user login, the user deposits the userwithdrawal, check all operating record of the user.