java课程设计报告-自动取款机模拟程序(共54页).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《java课程设计报告-自动取款机模拟程序(共54页).doc》由会员分享,可在线阅读,更多相关《java课程设计报告-自动取款机模拟程序(共54页).doc(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上学院计算机科学与技术系课程设计报告20142015学年第一学期课程 JAVA课程设计课程设计名称自动取款机模拟程序学生姓名 学号专业班级指导教师2014年9月自动取款机模拟程序一、 课程设计过程概述这次课程设计的主要目的是结合面向对象程序设计课程,培养我们面向对象软件开发的思维,初步了解软件开发的一般流程,提高用JAVA编程的实际动手能力并增强大家对面向对象的了解。这次课程设计的主要内容是独立用JAVA语言开发一个小的应用程序名称:自动取款机模拟程序内容:在PC机上设计一个自动取款机的模拟程序,实现现实中取款机的大部分功能。二、任务和要求1 程序分为两部分:管理端和客
2、户端。2 管理端负责管理所有的银行卡,管理员可以增加和删除银行卡。(1) 每张银行卡由卡号唯一标识,卡号由9位阿拉伯数字组成;(2) 新增的银行卡密码均为“”,卡内金额均为0元;(3) 只有管理员增加的银行卡才能登陆客户端;(4) 删除后的银行卡将不能再登陆客户端。3 客户端负责常见的取款机操作。(1) 客户端需要登陆,用户输入正确的银行卡号和密码,系统核对无误后才能进行操作;(2) 登陆后,用户可以进行查询余额、取款、存款和修改密码的操作;(3) 修改密码时,用户需输入两次新密码,确定无误后方可更改;(4) 取款和存款操作,有操作结果提示,如“操作成功”或“余额不足,操作失败”等。三、数据库
3、设计 程序中包括用户客户端和管理客户端,所以在数据库中需要设计用户信息表和管理员信息表分别来保存用户信息和管理员信息(数据库采用MySQL)。表1用户信息表(user)列名数据类型及长度是否为空主键默认值说明cardNumVarchar(12)NO主键用户帐号passwordInt(6)NO用户密码balanceInt(10)NO0余额表2管理员信息表(admin)列名数据类型及长度是否为空主键默认值说明adminNameVarchar(10)NO主键管理员帐号 passwordVarchar(10)NOadmin管理员密码四、系统设计1、设计框架图一 总体设计框架2、总体设计我所设计的ATM
4、机主要是由登录页面模块还由选择服务模块组成,在登录时可选择用户登录或管理员登陆。其中用户的选择服务模块由取款模块、存款模块、查询余额模块、修改密码模块、退卡模块组成,管理员的选择服务模块由新建用户模块、删除用户模块、退出模块组成。其功能结构图如下所示:图二 用户模块设计框图图三 管理员模块设计框图3 、ATM取款机界面设计我觉得一个系统的界面应该要简单明了,当然样式美观就更好了。我设计的界面主要是由窗体组成,操作简单。而每一个窗口则执行相应的功能。一个系统界面的好坏直接影响到用户的操作,界面设计要求样式美观、简单明了、方便易操作。我设计的界面主要分为窗体、菜单、按钮和文本输入框几个部分,分别执
5、行相应的操作。(1)窗体的设计窗体整个框架使用JFrame类构造,JFrame有自己的外边框和自己的标题,创建JFrame时可以指定其窗口标题,我创建的窗口标题是各个不同功能的模块的名字,比如说查询余额窗口,取款窗口等。(2)窗体的主要结构的设计我所设计的窗口的主要结构的特点就是每个窗口都对应着一个特定的功能。比如说报各种各样的错,还有各种查询余额、取款、选择服务等,所以它们都是由各种按钮和文本框,标签组成的,而联系各个窗体成为一个整体的就是各个按钮的监听事件,另外所有窗口布局均为网格布局。为了定义各个按钮所对应的命令和操作,首先需要将各个按钮注册给实现了动作事件的监听接口ActionList
6、ener的监听者,然后为监听者定义actionPerformed(ActionEvent e)方法,在这个方法中调用e.getSource()或e.getActionCommand()来判断用户点击的菜单子项,并完成这个菜单子项定义的操作。4 、各功能模块设计4.1 登录页面模块设计用户进入登录页面后要输入账号和密码,并选择相应的用户,点击确定后系统会通过连接数据库验证密码是否正确,在密码正确的情况下界面跳转到功能选择界面,否则弹出警告账号或密码错误窗口。图四 登录窗口/*用户登录 */private void generalUserLogon()String cardNum = userNa
7、meTxt.getText();String password = new String(passwordTxt.getPassword();if (StrUtil.isEmpty(cardNum) JOptionPane.showMessageDialog(null, 账号不能为空!);return;if (StrUtil.isEmpty(password) JOptionPane.showMessageDialog(null, 密码不能为空!);return;List users = new ArrayList();users = UserDao.select(select cardNum
8、,password,balance from user where cardNum = ? and password = ? ;,cardNum, password);if (users.isEmpty() JOptionPane.showMessageDialog(null, 登录失败,账号或密码错误!);return; else this.dispose();SaveUserInfo.users = users;GeneralUserFrm generalUserFrm = new GeneralUserFrm();generalUserFrm.setVisible(true);界面我采用
9、的是MyEclipse中的Swing插件所做,简单、方便、实用。文本区调用getText()方法,获取用户想要的字符串。因为要区分登录者是用户还是管理员,所以设置了两个JRadioButton来确定登录者的身份。当登录者选择的身份为用户时通过UserDao类驱动加载数据库,从用户表中获取相关信息并与用户输入信息比较,信息相符时登录成功,否则弹出警告窗口。部分源码如下;/* *管理员登录 */private void adminLogon()String adminName = userNameTxt.getText();String password = new String(password
10、Txt.getPassword();if (StrUtil.isEmpty(adminName) JOptionPane.showMessageDialog(null, 账号不能为空!);return;if (StrUtil.isEmpty(password) JOptionPane.showMessageDialog(null, 密码不能为空!);return;List admins = new ArrayList();admins = UserDao.selectAdmin(select adminName,password from admin where adminName= ? an
11、d password = ? ;,adminName, password);if (admins.isEmpty() JOptionPane.showMessageDialog(null, 登录失败,账号或密码错误!);return; else this.dispose();SaveUserInfo.admins = admins;AdminFrm adminFrm = new AdminFrm();adminFrm.setVisible(true);4.2 选择服务模块设计在选择服务模块中,有各种ATM的服务功能,只要用户在该界面中选择按钮,它就会弹出各个相应的界面。每一个按钮都有监听器,在
12、选择了按钮后,java.awt.event中的ActionEvent类创建一个事件对象,并将它传递给方法public void actionPerformed(ActionEvent e)中的参数e,监视器就会知道所发生的事件,对此事件进行处理。其中的部分源代码为:图五 主操作窗口/* * 查询余额 */private void b_queryBalanceActionPerformed(java.awt.event.ActionEvent evt) this.dispose();QueryBalanceFrm balanceFrm= new QueryBalanceFrm();balance
13、Frm.setVisible(true);/* * 存款 */private void jb_depositMoneyActionPerformed(java.awt.event.ActionEvent evt) this.dispose();DisposeMoneyFrm disposeMoneyFrm = new DisposeMoneyFrm();disposeMoneyFrm.setVisible(true);/* * 修改密码 */private void modifyPasswordActionPerformed(java.awt.event.ActionEvent evt) th
14、is.dispose();ModifyPasswordFrm modifyPasswordFrm = new ModifyPasswordFrm();modifyPasswordFrm.setVisible(true);/* * 取款 */private void jb_withdrawalMoneyActionPerformed(java.awt.event.ActionEvent evt) this.dispose();WithdrawMoneyFrm withdrawMoney = new WithdrawMoneyFrm();withdrawMoney.setVisible(true)
15、;/* * 退出系统 */private void jb_exitActionPerformed(java.awt.event.ActionEvent evt) int result = JOptionPane.showConfirmDialog(null, 是否要退出系统!);if (result = 0) this.dispose();4.3 取款模块设计当用户点击取款按钮时,可以输入取款金额进行取款,当用户输入的不是整百或者不是数字时,会提示用户重新输入正确的金额;该ATM只允许用取3W下金额,否则会提示用户到柜台去取。部分界面和源代码如下:专心-专注-专业图六 取款窗口/* * 确认取
16、款事件 */private void jb_confirmActionPerformed(java.awt.event.ActionEvent evt) int balance = this.queryBalance();/调用取款方法,获得余额String cardNum = users.get(0).getCardNum();/获取用户卡号int withdrawMoney;if(StrUtil.isEmpty(jWithdrawMoneytxt.getText()/判断输入是否为空JOptionPane.showMessageDialog(null, 请输入金额!);return;els
17、e if(!InputJudge.isFigure(jWithdrawMoneytxt.getText()JOptionPane.showMessageDialog(null, 请输入金额!);setNull();/置空return;/ 获得取款金额withdrawMoney = Integer.parseInt(jWithdrawMoneytxt.getText()/将字符转换成数值/只能取面值100元int temp=withdrawMoney/100*100;if(tempbalance)JOptionPane.showMessageDialog(null, 余额不足!);this.se
18、tNull();elseif(temp=30000)JOptionPane.showMessageDialog(null, 请到柜台取款);setNull();else if(generalUser.withdrawingMoney(temp, balance, cardNum)/取款成功、更新数据库JOptionPane.showMessageDialog(null, 取款成功);this.setNull();elseJOptionPane.showMessageDialog(null, 取款失败!);this.setNull();/置空private void setNull() jWit
19、hdrawMoneytxt.setText();4.4 存款模块设计 当用户输入存款金额时,如果输入的不是正确的数字或者整百的金额,会提示用户重新输入;如果用户输入正确,则会提示用户存款成功。图七 存款窗口/* * 存款 * * param evt */private void jb_confirmActionPerformed(java.awt.event.ActionEvent evt) /存款金额int money;if (this.jDisposeMoneytxt.getText().isEmpty() money = 0;else if(!InputJudge.isFigure(jD
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 课程设计 报告 自动 取款 模拟 程序 54
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内