用Java模拟ATM系统
- 格式:doc
- 大小:501.50 KB
- 文档页数:37
一、介绍1.1 Java银行存取款程序设计的背景1.2 实验目的二、实验步骤2.1 设计思路在设计Java银行存取款程序之前,需要先明确程序的功能和流程。
程序的功能主要包括用户登入、存款、取款、查询余额等。
程序的流程主要包括用户输入账号和密码登入、选择存款或取款操作、输入操作金额、更新账户余额等。
2.2 环境准备在进行Java程序设计之前,需要安装好Java开发环境,比如Eclipse、IntelliJ IDEA等集成开发环境,以及Java开发工具包(JDK)。
2.3 创建Java工程在集成开发环境中创建一个新的Java工程,为该工程命名,并创建一个新的Java类作为程序的入口。
2.4 编写用户登入功能创建一个User类,包括用户账号和密码等属性,设计一个登入方法用于验证用户输入的账号和密码是否正确。
2.5 编写存款和取款功能创建一个BankAccount类,包括账户余额等属性,设计存款和取款方法,用于更新账户余额。
2.6 编写查询余额功能在BankAccount类中设计查询余额方法,用于展示账户当前余额。
2.7 编写主程序在主程序中实例化User类和BankAccount类,实现用户登入后的存取款操作。
三、实验总结3.1 实验结果分析经过以上步骤的设计和实现,得到了一个简单的Java银行存取款程序,可以实现用户登入、存款、取款、查询余额等功能。
3.2 实验收获通过本次实验,加深了对Java面向对象编程的理解,掌握了如何设计和实现一个简单的银行存取款程序。
3.3 实验不足与改进在程序设计和实现过程中,可能存在一些不足之处,比如对异常情况的处理不够完善,可以进一步完善程序的健壮性和稳定性。
四、参考文献4.1 Java编程思想4.2 Java核心技术以上就是Java银行存取款程序设计的实验步骤,通过本次实验,可以更好地掌握Java面向对象编程的知识,并且对程序设计和实现有了更深入的理解。
希望本文对您有所帮助。
ATM柜员机模拟程序摘要使用图形用户界面。
当输入给定的卡号和密码(初始卡号为123456和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:查询余额:初始余额为50000元ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。
ATM存款:不能出现负存款。
修改密码:只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。
我所设计的ATM柜员机主要是由登录页面模块还由选择服务模块组成,其中选择服务模块又由取款模块、查询余额模块、修改密码模块、退卡模块组成。
一个系统界面的好坏直接影响到用户的操作,界面设计要求样式美观、简单明了、方便易操作。
我设计的界面主要分为窗体、菜单、按钮和文本输入框几个部分,分别执行相应的操作。
关键字:图形用户界面;ATM;柜员机;模拟程序;模块;ATM machines simulation programAbstractUse the graphical user interface. When the input given card number and password (initial card number for 123456 and password for 123456), the system can login ATM machines system, users can according to the following rules:Inquires the balance: initial balance is 50000 yuan ATM withdrawals: every time a multiple of the amount of, the total will not more than 5000 yuan, the amount of withdrawals allows no overdraft.ATM deposits: can't negative deposits.Change the password: only the correct password is old, the new password accords with a requirement, and two enter the same case can be modified successfully password.I designed by ATM machines is mainly composed of the login page module by choice service module is, selecting the service module by withdrawals and module, inquires module, modify the password balance module, return card modules. A system interface has a direct influence on the user's operation, interface design requirements style beauty, simple and clear, make the operation easy. I design interface are divided into form, menu, button and text input box sectionsKeywords:graphical user interface; ATM; Automated Teller Machine; simulation program; module;1 系统需求分析1.1 功能需求分析本ATM柜员机的主要功能如下所述:要求使用图形用户界面。
原创Java银行管理系统取款简介银行管理系统是一种提供银行服务的软件系统,其中之一的功能是允许用户进行取款操作。
本文将介绍一个基于Java编写的银行管理系统,并详细讲解如何实现取款功能。
系统概述银行管理系统是一个面向客户的软件系统,其主要功能包括账户管理、存款、取款、转账、查询等。
本系统使用Java语言进行开发,采用面向对象的编程思想,使用MVC(模型-视图-控制器)架构设计实现。
取款功能设计1. 页面设计取款功能将在用户的个人账户页面中展示。
用户可以输入取款金额,点击取款按钮进行操作。
在金额输入框中,将进行必要的格式验证,确保用户输入的金额合法。
系统将在用户点击取款按钮后,根据用户输入的金额进行取款操作,并给出相应的提示。
2. 后端处理2.1 验证金额合法性在后端处理取款操作之前,应该对用户输入的金额进行合法性验证。
首先检查金额是否大于0,然后检查账户余额是否足够进行取款。
如果金额合法,可以继续后续的取款操作。
2.2 更新账户余额在进行取款操作之后,需要更新用户的账户余额。
这可以通过减去取款金额来实现。
确保在更新账户余额之前,再次验证账户余额是否足够支付取款金额。
如果余额不足,应给出相应的提示并终止取款流程。
2.3 记录取款信息为了记录用户取款操作,可以在数据库中创建一个取款记录表。
每次用户进行取款操作时,将取款金额、取款时间以及用户账户信息存入该记录表中。
这可以用于后续的查询和统计。
3. 数据库设计银行管理系统是一个涉及到数据存储的系统,因此需要一个数据库来存储用户的账户信息、取款记录等。
在本文中,我们使用MySQL作为数据库。
3.1 账户表账户表用于存储用户的账户信息,包括账户ID、账户余额等字段。
账户表的结构如下:CREATE TABLE account (id INT PRIMARY KEY AUTO_INCREMENT,balance DECIMAL(10, 2));3.2 取款记录表取款记录表用于存储用户的取款记录信息,包括取款ID、取款金额、取款时间、账户ID等字段。
吉林工程技术师范学院信息工程学院《 Java项目实训》课程设计报告题目: ATM取款机JAVA实训课程设计专业:计算机科学与技术班级: C1341姓名:姜秋红学号: 25摘要我选择的是“ATM取款机”,其目的主要是现在市面上的取款机功能不完善还有许多功能没有实现,用户对界面很熟悉,做起来更得心应手,所以的采用的界面和现在用户所用的界面基本相同,可以实现后台与前台的交互以及数据库之间的连接,使得我设计的ATM取款机更加完善。
利用jps网页设计一个总页面设计选择使用的用户是用户页面还是管理员页面,让使用的人根据权限去使用不同的功能。
在我的ATM取款机上实现了ATM机的基本功能,其界面参照了和原系统基本相同的界面。
增加了一些管理员的功能。
首先选择是用户登入还是管理员登入。
选择用户登入,有查看,存款,取款,转账和修改密码等功能。
选择管理员登入,有开户,销户,查询等功能;利用这些更能,使得ATM更加完善。
关键字:ATM,查询,取款,转账,修改,界目录程序设计概念4程序设计的目的4课程设计的内容4设计方案的论证5概要设计5需求分析5技术可行性 5经济可行性 5设计实现内容6数据字典6成员变量6方法设计6页面如下7数据流程图 7测试运行及结果分析10测试及问题探讨11课设总结与体会12致谢13参考文献14附录115一、课程设计的概念课程设计的目的现代社会,ATM可以说是一种使用非常广泛的机器, ATM使用是非常频繁的,然而由于程序及其机器本人的一些漏洞,导致ATM机的犯罪现象屡有发生。
该项目的开发有利于进一步提高ATM机的性能及安全性,模拟开发ATM系统软件,掌握系统开基本流程,在开发系统中可以巩固所学的有关软件开发的知识,有利于提出优化改进现代ATM系统的建议。
课程设计的内容银行ATM机的使用已经普及,人们都已习惯利用自动柜员机来提取现金,查询存款,转账,修改密码等等,我设计的ATM取款机添加了新的功能,具体功能如下:管理员状态登入:无用用户二、设计方案的论证概要设计《JAVA程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。
ATM机的代码(作业)import java.util.Scanner;public class ATMDemo {/*** 简单ATM机取款过程模拟*/public static void main(String[] args) {String pass = ""; // 保存⽤户输⼊密码int amount = 0; // 取款⾦额String password = "111111"; // ⽤户密码int count = 0; // 记录密码输⼊次数boolean isPass = false; // 密码是否通过验证Scanner input = new Scanner(System.in);while (count < 3 && !isPass) {System.out.print("请输⼊密码:");pass = input.next();if (!password.equals(pass)) {count++;continue;}isPass = true; // 密码通过验证System.out.print("请输⼊⾦额:");amount = input.nextInt();while (amount > 0) {if (amount <= 1000 && amount % 100 == 0) {System.out.println("您取了" + amount + "元");System.out.println("交易完成,请取卡!");break; // 完成交易,退出} else {System.out.print("您输⼊⾦额的⾦额不合法,请重新输⼊:");amount = input.nextInt();continue; // 继续让⽤户输⼊⾦额}}}if (!isPass) { // ⽤户输⼊了3次错误密码System.out.print("密码错误,请取卡!");}}}。
本科毕业论文(设计)银行存取款系统的设计与实现姓名:__ ________ 系别: 计算机与信息技术学院_专业:_ 计算机科学与技术_ 学号:__ _____指导教师:__ _ _________年月日目录引论 (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)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)银行存取款系统的设计与实现摘要计算机科学技术的发展不仅极大地促进了整个科学的发展,而且明显加快了经济信息化和社会信息化的进程。
public void actionPerformed(ActionEvent e) //界面显示控制{ String IC_Number="";String password="";String IC_No="";z30.setVisible(false);float leftmoney=0;float moneys=0;float mon=0;float money1=0;float money2=0;if(true){int No_50=0,No_100=0;String strin="select NO_50,NO_100 from ATM where ATM_ID='123456789'";ResultSet rsSQLSelect=executeQuery(strin);try{if(rsSQLSelect.next()){No_50=Integer.parseInt(rsSQLSelect.getString("NO_50"));No_100=Integer.parseInt(rsSQLSelect.getString("NO_100"));}}catch(Exception er){System.out.println("查询ATM机信息出错!");}if(No_50==0&&No_100==0){z1.setVisible(false);t1.setText("对不起,本ATM自动取款机暂停服务!");cl.show(c,"1");}}cl.show(c,"1");if(e.getSource()==z1){t3.setText("");text1.setText("");cl.show(c,"2");}if(e.getSource()==z4||e.getSource()==z6||e.getSource()==z11||e.getSou rce()==z16||e.getSource()==z18||e.getSource()==z22){closeDBConnection();cl.show(c,"1");}if(e.getSource()==z2){closeDBConnection();System.exit(0);}if(e.getSource()==z3){ IC_Number=text1.getText().trim();if(getname(IC_Number)){z5.setVisible(true);pw1.setVisible(true);t4.setVisible(true);pw1.setText("");t5.setText("");cl.show(c,"3");}else{t3.setText("您输入的卡号不存在,请重新输入!");cl.show(c,"2");}}if(e.getSource()==z5){ password=pw1.getText().trim();IC_Number=text1.getText().trim();if(!login(IC_Number,password)){t5.setText("您输入的密码错误,请重新输入!");pw1.setText("");n--;cl.show(c,"3");}else{t5.setText("");cl.show(c,"4");}if(n<0){n=2;t5.setText("您已经三次输入错误密码,谢谢您的使用,欢迎下次光临!");z5.setVisible(false);pw1.setVisible(false);t4.setVisible(false);cl.show(c,"3");}}if(e.getSource()==z7){t33.setText("");cl.show(c,"5");}if(e.getSource()==z8) //余额查询{ DBAccess d=new DBAccess();String str3="";String stri="";IC_Number=text1.getText().trim();t29.setText(IC_Number);leftmoney=getmoney(IC_Number);t30.setText(Float.toString(leftmoney));stri="select bank_name from IC,bank where IC.bank_NO=bank.bank_NO and IC_ID='"+IC_Number+"'";ResultSet rsSQLSelect=d.executeQuery(stri);try{if(rsSQLSelect.next()){str3=rsSQLSelect.getString("bank_name");//mit();}}catch(Exception er){}t32.setText(str3);cl.show(c,"10");}if(e.getSource()==z9){t23.setText("");cl.show(c,"9");}if(e.getSource()==z10){t28.setText("");cl.show(c,"11");}if(e.getSource()==z12){ DBAccess d=new DBAccess();IC_Number=text1.getText().trim();fetchmoney=Integer.parseInt(text2.getText());if(fetchmoney<=0){t9.setText("取款金额非法!请重新输入!");text2.setText("");cl.show(c,"6");return;}if(fetchmoney>1000){t9.setText("每次交易金额最大为1000元!");text2.setText("");cl.show(c,"6");return ;}if(fetchmoney%50!=0){t9.setText("取款金额只能为50的倍数!");text2.setText("");cl.show(c,"6");return ;}leftmoney=getmoney(IC_Number);if(fetchmoney>leftmoney){t9.setText("您的余额不足,请重新输入取款金额!"); text2.setText("");cl.show(c,"6");return ;}int No_50=0,No_100=0,x_50=0,x_100=0,mo=0;String str1="select NO_50,NO_100 from ATM where ATM_ID='123456789'";ResultSet rsSQLSelect=d.executeQuery(str1);try{if(rsSQLSelect.next()){No_50=Integer.parseInt(rsSQLSelect.getString("NO_50"));No_100=Integer.parseInt(rsSQLSelect.getString("NO_100"));}}catch(Exception er){System.out.println("查询ATM机信息出错!");}x_100=fetchmoney/100;if(No_100<x_100){mo=fetchmoney-No_100*100;x_50=mo/50;if(x_50>No_50){t9.setText("取款机现钞不足!");text2.setText("");cl.show(c,"6");return;}else{No_50=No_50-x_50;No_100=0;}}else{No_100=No_100-x_100;x_50=(fetchmoney-x_100*100)/50;if(x_50>No_50){t9.setText("取款机50面值现钞不足!"); text2.setText("");cl.show(c,"6");return;}else{No_50=No_50-x_50;}}String str2="update ATM set NO_50="+No_50+" where ATM_ID='"+ATM_id+"'";String str3="update ATM set NO_100="+No_100+" where ATM_ID='"+ATM_id+"'";d.executeUpdate(str2);d.executeUpdate(str3);setmoney(fetchmoney,IC_Number);t12.setText(Float.toString(fetchmoney));cl.show(c,"7");text2.setText("");。
Java程序设计综合实验练习——ATM一、实验目的:通过综合实验ATM机的模拟练习,使学生掌握面向对象程序开发的思想。
能够综合运用所学的知识解决实际问题。
二、实验内容:ATM Case1. The screen displays Welcome! and prompts the user to enter an account number.屏幕显示内容2. The user enters a five-digit account number using the keypad.输入账号3. The screen prompts the user to enter the PIN (personal identification number) associated with the specified account number.4. The user enters a five-digit PIN using the keypad.输入PIN5. If the user enters a valid account number and the correct PIN for that account , the screen displays the main menu (Fig.12.2). If the user enters an invalid account number or an incorrect PIN, the screen displays an appropriate message, then the A TM returns to Step 1 to restart the authentication process.如果用户输入的账号和PIN相符合,则进入屏幕主界面。
如果不相匹配,则显示相关信息,返回第一步。
If the user enters 1 to make a balance inquiry(用户选择菜单项1,是查询账号余额), the screen displays the user’s account balance. To do so, the ATM must retrieve(检索)the balance from the bank’s database. The following steps describe what occurs when the user enters 2 to make a withdrawal(用户选择菜单项2,是取钱):1. The screen displays a menu (Fig. 12.3) containing standard withdrawal amounts:$20 (option 1), $40 (option 2), $60 (option 3), $100 (option 4) and $200 (option 5). The menu also contains an option to allow the user to cancel the transaction (option 6). 屏幕显示的菜单选项2. The user enters a menu selection using the keypad.用户从键盘输入菜单选项3. If the withdrawal amount chosen is greater than the user’s account balance, the screen displays a message stating this and telling the user to choose a smaller amount. The ATM then returns to Step 1. If the withdrawal amount chosen is less than or equal to the user’s account balance (i.e., an acceptable amount), the A TM proceeds to Step4. If the user chooses to cancel the transaction (option 6), the ATM displays the main menu and waits for user input.如果提取金额大于用户可用金额,屏幕显示用户输入现在提款金额。
论文题目:用Java语言模拟ATM系统姓名:***准考证号:019508300指导老师:***用Java语言模拟ATM系统摘要21世纪是催人奋进的时代,科学技术飞速发展,金融业ATM取款机的诞生可以说是世界金融行业中的一大进步,更是其发展历史性的转折点。
本文以实际提款机应用为背景,阐述了系统开发过程的开发方法、系统分析和一般步骤。
全文共分为ATM系统综述、ATM系统的开发方法、系统分析、系统设计、系统实现和系统维护与评价七个部分,利用JAVA语言强大功能,并具有面向对象开发等的特点,联系实际ATM应用界面,采用Eclipse开发工具,以winXP操作系统、Access为后台开发出了一套自动取款机系统,基本上实现了账户查询、修改密码、转账和取款等业务。
针对这一系列问题,我们利用JAVA语言在Eclipse下设计了这么一个系统,使得用户可以安全的进行操作,便捷,快速的进行取款以及完成一些商业上的交易,大大提高办公效率,能够及时、准确、有效的帮用户办理各种繁琐的手续,也减缓了银行工作人员的压力。
关键字:ATM Java Eclipse 计算机科学目录第一章 ATM系统综述 (3)1.1 概述 (3)1.2 ATM发展 (3)1.3 ATM取款机系统的影响 (3)第二章 ATM系统开发方法 (4)2.1 方法概述 (4)2.2 系统使用方法描述 (5)第三章 ATM系统分析 (5)3.1系统初步调查 (5)3.2 系统可行性研究 (5)3.3系统详细调查及提出 (6)第四章系统设计 (8)4.1系统总体结构设计 (8)4.2系统详细设计 (10)第五章系统实现 (15)5.1软件开发环境 (15)5.2 程序设计与调试 (15)5.3试运行 (16)第六章系统维护 (16)第七章系统评价 (16)第八章结束总结 (17)附:参考资料和源代码部分第一章ATM系统综述1.1 概述ATM自动取款机是由计算机控制的持卡人自我服务型的金融专用设备。
ATM是英文Automatic Teller Machine的缩写。
ATM是最普遍的自助银行设备,可以提供最基本的银行服务之一,即出钞交易,有些全功能的产品还可以提供信封存款业务。
在ATM自动取款机上也可以进行账户查询、修改密码和转账的业务。
同时在制作这个系统的过程中也应用了数据库的知识,这个相对于我们专业来说是比较重要的内容,这个也是这个学期学习的重点知识,同时数据库链接是必须要学会的,因为这个是最核心的内容,培养自己坚实的逻辑表达能力和沟通能力,和培养自己良好的文案能力。
掌握ATM取款机的具体工作原理以及java简单系统的设计方法。
1.2 ATM的发展众所周知随着信息时代科技的飞速发展和随着全球金融行业的兴起,使用ATM取款机、计算机信息技术以及计算机科学技术的发展,给人们的生活带来了天翻地覆的变化,同时这些技术在人们生活中的运用,随着科学技术的进步,经营方式的转变,处理信息系统的内容和形式也在发生变化。
当前,以计算机和通信技术为基础的信息系统正处在蓬勃发展的时期,ATM取款系统可充分利用网络技术和数据库技术的发展,形成一种全新的运作方式。
随着因特网的形成和发展,基于网络技术的信息系统除了它传统的功能外,实现了特定地方刷卡消费等。
不仅提高了银行的业务处理能力,而且大大的节省了人们取钱所花费的时间和价值;并且在有效防止了一些非法的业务操作,对于一些复杂的信息,就能够充分的发挥它们的优越性。
虽然起步较晚,近几年发展却较快,优其是随着微型计算机的出现和普及,为信息处理提供了物美价廉的手段,对于推动我国信息处理的现代化起了重要的作用。
ATM取款系统正在朝着自适应、自学习的方向发展,也就是更好的实现模拟人性化过程。
1.3 ATM取款机系统的影响ATM取款机诞生可以说是世界金融行业的一大进步,也是历史性的转折点。
ATM自动取款机不仅能提高了银行的业务处理能力,还能大大的节省人们取钱所花费的时间和价值;并且在有效防止了一些非法的业务操作,对于一些复杂的信息,就能够充分的发挥它们的优越性。
ATM系统对金融业的变革产生了和正在产生着深远的影响。
从现代金融业新概念来看,ATM系统就是电子信息技术在金融业金融管理的一种应用。
它避免了对于用户的信息资料、以及资金统计等用人工办理。
数据信息处理工作量大,繁琐,数据处理手工操作,工作量大,工作时需实时认真办理,一但出现错误将带来很大的损失。
从而解决了用户信息和资金信息的繁杂问题,对于ATM取款系统数据的统计和核实等都是采用卡号进行核对的,进而实现了数据的准确性、完整性、及时性,避免了工作人员和管理员工作时间一长,再进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。
同时也得用户可以安全的进行操作,便捷,快速的进行取款以及完成一些商业上的交易,大大提高办公效率,能够及时、准确、有效的帮用户办理各种繁琐的手续,也减缓了银行工作人员的压力。
第二章 ATM系统开发方法2.1 系统开发方法概述软件开发方法是一种使用早已定义好的技术集及符号表示习惯来组织软件生产的过程。
开发目标是在规定的投资和时间内,开发出符合用户需求的高质量的软件。
任何系统均有其产生、发展、成熟、消亡或更新换代的过程。
这个过程称为系统的生命周期。
系统生命周期法提供的思路、逻辑、技能、工具与工作规范,是系统开发、处理管理信息系统建设中各类实际问题的重要基础,对复杂系统的建设具有重要的指导意义。
系统开发是管理信息系统建设中工作任务最为繁重,也是最重要的一个阶段。
从项目开发到结束的整个过程,称为系统开发的生命周期。
系统开发的生命周期一般分为系统分析、系统设计和系统实施。
结构化生命周期法是一种面向数据流的开发方法。
该方法简单实用、应用较广、技术成熟,方法的指导思想是自顶向下、逐步求精,基本原则是动能的分解与抽象,特别适合于数据处理领域的问题,随着开发项目规模的变化,该方法也就暴漏出了它的缺点:(1)对于规模大、特别复杂的项目不太适应(2)难于解决软件重用问题(3)难于适应需求变化问题,难于彻底解决维护问题。
到了90年代,主流的开发方法是面向对象的开发方法,它的基本出发点是尽可能的按照人类认识世界的方法和思维方式来分析和解决问题。
面向对象方法支持软件重用和原型概念,提高了系统开发的效率,因而得到了ATM系统各计算机界的极大关注。
该方法包括面向对象分析、面向对象设计、面向对象实现。
系统开发工作的自动化、计算机化是提高系统开发效率与质量的重要途径。
计算机辅助软件工程(简记为CASE)也是当前信息系统领域和计算机应用领域的热门话题。
CASE技术的目标是实现系统开发生命周期内各阶段工作基于计算机的自动化。
这将导致系统开发工作的根本变化。
2.2 该系统开发方法比较各种开发方法的特点,结合银行取款系统的实际情况,整个系统采用结构化生命周期法,以原型法和面向对象的开发方法作为辅助,即系统总体上采用结构化生命周期法进行系统分析和系统设计,系统实施等步骤采用面向对象方法。
本系统开发工具使用的是基于Java 的可扩展开发平台的Eclipse。
第三章系统分析系统分析是管理系统开发的起始阶段,也是MIS开发工作中最重要的一环。
系统分析阶段的主要活动有:系统初步调查、可行性研究、系统详细调查、新系统逻辑方案的提出。
系统分析的目标是明确系统开发的目标和用户信息需求,提出系统的逻辑方案。
为系统设计做好准备。
3.1 系统初步调查系统的初步调查是系统分析阶段的第一项活动,也是系统开发的第一项活动,初步调查的主要目标是从系统分析人中和管理人员的角度看新系统开发有无必要和可能。
通过亲身体验总结各银行ATM提款机界面流程,得到本系统开发的主要流程界面(主要功能取款、转账、查询、修改密码等)。
并决定亲自开发取款机系统,测试自己水平。
3.2 可行性研究可行性研究的目的就是用最小的代价在最短的时间内确定该软件项目是否能够开发,是否值得去开发。
实质上就是进行一次简化、压缩了的需求分析、设计过程。
可从以下三个方面分析研究每种解决问题的可行性:a.技术可行性:对项目的功能、性能、限制条件进行分析,确定在现有的资源条件下项目是否能实现。
(开发的风险、资源的有效性、技术)b.社会可行性:要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。
c.经济可行性:进行开发成本的估算以及了解得到效益的评估,确定要开发项目是否值得投资开发。
对银行业来说,是靠存款贷款之间的差额来生存的,所以要尽可能的拉拢更多的客户使用本行,ATM取款机是为了能让为客户更便捷的服务,从而更具有吸引力。
银行角度出发还是非常还是愿意把一部分资金投入到这方面的。
3.3系统详细调查及提出系统详细调查是在可行性研究的基础上进一步对现行系统进行全面、深入的调查和分析,弄清现行系统运行状况,发现其薄弱环节,确保新系统比原系统更有效。
详细调查的重点在于对系统的内部情况更详细和具体的了解,从而可以提供在新系统建设时改进或更换的内容。
明确用户的信息需求,明确新系统的逻辑功能。
主要工作是对用户需求进行进一步调查分析,创建新系统的逻辑模型。
逻辑模型主要以数据流程图和数据典为主要描述工具。
通过仔细调查得以下功能图和业务流程图:一般登陆模块只输入账号、密码,当然在实际应用中没有要求用户输入账号,这是因为在磁卡上有个感应区,编此模块时加上了验证码。
图3-1 功能图该系统主要实现银行卡用户的存取款,以及进行一些简单的查询和转账业务,同时能够在系统里面进行客户密码的修改,实现简单的机器与客户交互。
图3-2 业务流程图:第四章系统设计系统设计阶段的主要目的是将系统分析所提出的反映用户信息需求的系统逻辑方案转换成可以实施的基本计算机(ATM取款机)与通信系统的物理(技术)方案。
系统设计主要包括系统总体结构设计和详细设计。
系统设计的依据主要有系统分析的成果、现行技术、用户需求、系统运行环境。
4.1 系统总体结构设计系统总体结构是指整个系统由哪些部分组成,以及各部分在物理上、逻辑上的相互关系,包括硬件部分和软件部分,该设计包括:系统总体布局方案的确定、软件系统总体结构的设计、计算机硬件方案的选择和设计、数据存储的总体设计。
根据业务流程图转化为软件的体系结构,进而用软件结构图建立物理模型,得系统活动图,如下:图4-1系统结构图:图4-2系统活动图:4.2 系统详细设计详细设计的实现根据结构程序设计原理,将每个模块的功能用相应的标准语句表示出来。
包括代码设计、数据库设计、用户界面设计、处理过程设计。
代码设计是指把系统管理对象数字化或字符化,便于计算机的处理。
遵照代码设计的原则:合理性、简明性、系统性、稳定性、可扩充性、标准化、便于识别和记忆。