javaATM柜员机模拟程序.doc_第1页
javaATM柜员机模拟程序.doc_第2页
javaATM柜员机模拟程序.doc_第3页
javaATM柜员机模拟程序.doc_第4页
javaATM柜员机模拟程序.doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程论文 现代软件工程与实践现代软件工程与实践 题 目 ATM 柜员机模拟程序 学院 系 信息工程学院 专业班级 学生姓名 指导教师 2011 年 12 月 4 日 摘 要 通过设计 ATM 柜员模拟程序 加深自己对 Java 编程尤其是对 Java 图形用户界面 编程的了解 将自己的学到的编程知识融会贯通 同时培养自身面向对象软件开发的 思维 初步了解软件开发的一般流程 提高用 Java 实际动手能力并增强自己对面向对 象的了解 通过这次编程设计 加深了对 Java 图形界面编程中各个模块和组件的应用 了解 以及类和类之间的关系 界面排版的处理等 设计要求是 当输入给定的卡号和密码 初始卡号和密码为 123456 时 系统能 登录 ATM 柜员机系统 用户可以按照以下规则进行 规则可以按照实际系统做需求 1 查询余额 初始余额为 10000 元 2 ATM 取款 每次取款金额为 100 的倍数 总额不超过 5000 元 支取金额不允许透支 3 ATM 存款 不能出现负存款 4 修改密码 新密码长度不小于 6 位 不允许出现 6 位完全相同的情况 只有旧密码正 确 新密码符合要求 且两次输入相同的情况下才可以成功修改密码 该程序设置了 7 个类 1 个主类 6 个辅助类 6 个辅助类都是内部类的形式 辅助 类包括五个实现 ATM 的功能 一个存放客户资料 之所以用内部类来实现是为了在各 个界面转换时不至于要创建多个对象 每一个辅助类的对象只要在主类中创建一次就 可以在各个内部类中引用 该程序利用的功能是利用 Java 事件监听技术来实现的 各 种功能单独的创建一个类来实现 不会互相混淆 更加容易理清楚思路 设计的程序 完美的实现了设计要求 具有查询 取款 存款 修改密码等功能 目 录 摘 要 I 目 录 II 1 前言 1 1 1 设计任务 1 1 1 1 需求说明 1 1 2 设计内容 1 2 程序要求 1 3 算法分析 2 4 流程图 3 5 程序源代码及说明 4 5 1 程序源代码 4 5 2 源代码说明 21 5 2 1 源代码中自定义类的说明 21 5 2 2 源代码中的事件监听器 22 6 调试及运行结果 23 7 体会 29 8 参考文献 30 精选文档 供参考 1 前言 1 1 设计任务设计任务 1 1 1 需求说明需求说明 随着市场经济的繁荣发展 人们的物质生活得到极大的提高 手中的剩余资金也 日益增多 受传统观念影响 绝大多数人喜欢把资金投进银行 而在需要使用现金的 时候再到银行提取现金 这就导致银行业务的急剧增加 虽然银行网点越来越多 银 行的工作效率也随着信息化有较明显的增长 但是依旧不能满足广大用户的需要 而 一味的增加营业网点 从理论上虽然能稍微的缓解银行的压力 但是治标不治本 而 且每增加一个网点 不仅要付出昂贵的资金成本 还需要长期投入人力资本 成本非 常之昂贵 这时候就迫切的需要一种自动的 易于普及的 低成本的设备来解决这一 问题 于是 ATM 机系统应运而生了 本文正是通过设计一个 ATM 模拟模拟程序来实现 ATM 机系统的基本功能 充分 运用自己所学的 Java 知识进行设计编程 1 2 设计内容设计内容 1 程序要求 2 算法分析 3 流程图 4 源程序 5 调试及运行结果 6 体会 2 程序要求 本 ATM 柜员机的主要功能如下所述 要求使用图形用户界面 当输入给定的卡号和密码 初始卡号和密码为 123456 时 系统能登录 ATM 柜员机系统 用户可以按照以下规则进行 查询余额 初始余额为 10000 元 ATM 取款 每次取款金额为 100 的倍数 总额不超过 5000 元 支取金额不允 许透支 ATM 存款 不能出现负存款 精选文档 供参考 修改密码 新密码长度不小于 6 位 不允许出现 6 位完全相同的情况 只有旧 密码正确 新密码符合要求 且两次输入相同的情况下才可以成功修改密码 3 算法分析 通过程序要求 我们可以清楚的知道本次设计的 ATM 柜员模拟程序需要实现四大 功能 即查询余额 取款 存款 修改密码 初次之外 作为 ATM 系统 还需要最基 本的两大功能 即登陆和退出 根据上述的功能分析 我们可以吧整个 ATM 系统分为登陆模块 查询模块 取款 模块 存款模块 修改密码模块 除此之外 还有在登陆系统后的功能选择模块 退 出功能则镶嵌在各个需要的模块中 由于各个模块的功能实现是通过界面显示出来的 则程序设计又可以理解为几大界面的设计 登陆界面 主界面 查询余额界面 取款 界面 存款界面 修改密码界面 除了几大界面之外 还有系统的初始化 主要是初 始卡号 密码的设定等 在程序的大体框架确定之后 我们需要了解各个模块所要实现和需要具有的功能 根据现有的银行 ATM 系统 我们可以很快就可以了解本次设计的 ATM 系统应该具有 的操作 1 登陆界面 用户输入正确的账号和密码就可以登录到该系统的主界面中去 进行相应的操作 取款 存款 查询 修改密码 2 主界面 主界面包括查询 存款 取款 修改密码 退出的功能按钮 按下相应的按钮 可以进行相应的操作 3 查询界面 在主界面中按下查询按钮可以进行查询操作 通过查询功能我们可以查询账户的 余额 在查询过程中我们可以选择取款的业务 除此之外 查询界面之中还有返回和 退出的操作 返回的操作会使用户回到主界面 退出的操作会使用户直接回到登陆界 面 4 取款界面 取款界面既可以通过主界面进入 也可以通过查询 存款等操作过程中的界面进 入 取款功能在对话框中输入你想要取出的金额 但是次金额不可以比账户的余额大 且必须是 100 的整数倍 取款完毕 会弹出是否显示余额的提示 选 是 的话就会 进入查询界面 选 否 的话 则回到主界面 5 存款界面 精选文档 供参考 在主界面按下存款按钮可以进行存款操作 在对话中输入你需要存入的金额 所 输入的数字也要是 100 的整数倍 而且不可以是负数 存款完毕 会弹出是否显示余 额的提示 选 是 的话就会进入查询界面 选 否 的话 则回到主界面 6 修改密码 选择修改密码按钮可以进行修改密码房 但是要先输入就密码正确并且两次输入 新密码一致才可以修改密码 修改完成后 会返回主界面 精选文档 供参考 4 流程图 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业业 业业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 N N N N Y Y Y Y 图 1 程序流程图 精选文档 供参考 5 程序源代码及说明 5 1 程序源代码程序源代码 import javax swing import javax swing JOptionPane import java awt event public class ATMmodel Account myaccount new Account Load load new Load MainFrame Jmain new MainFrame Take take new Take Input input new Input Display dis new Display Setpw setpw new Setpw public ATMmodel JOptionPane showMessageDialog null 欢迎使用 ATM 柜员模拟系统 public static void main String args ATMmodel atm new ATMmodel 创建账户 class Account private int count 10000 初始账户余额 10000 private String account 123456 初始账号 private String password 123456 初始密码 public Account public void setpw String password this password password public void deccount int money count money public void reccount int money count money 精选文档 供参考 public int get return count public String getaccount 账号 return account public String getpw return password 主界面 class MainFrame extends JFrame public JButton checked public JButton cunkuan public JButton quit public JButton qukuan public JButton reset public MainFrame initComponents this setLocationRelativeTo null this setVisible false 控件初始化 private void initComponents cunkuan new JButton qukuan new JButton checked new JButton reset new JButton quit new JButton setDefaultCloseOperation WindowConstants EXIT ON CLOSE setTitle ATM 柜员模拟程序 setName mianframe setResizable false cunkuan setText 存款 cunkuan addActionListener new ActionListener public void actionPerformed ActionEvent evt cunkuanActionPerformed evt 精选文档 供参考 qukuan setText 取款 qukuan addActionListener new ActionListener public void actionPerformed ActionEvent evt qukuanActionPerformed evt checked setText 查询 checked addActionListener new ActionListener public void actionPerformed ActionEvent evt checkedActionPerformed evt reset setText 修改密码 reset addActionListener new ActionListener public void actionPerformed ActionEvent evt resetActionPerformed evt quit setText 退出 quit addActionListener new ActionListener public void actionPerformed ActionEvent evt quitActionPerformed evt GroupLayout layout new GroupLayout getContentPane GroupLayout 它将组件按层 次分组 以决定它们在 Container 中的位置 getContentPane setLayout layout layout setHorizontalGroup layout createParallelGroup GroupLayout Alignment LEADING addGroup layout createSequentialGroup addContainerGap addGroup layout createParallelGroup javax swing GroupLayout Alignment LEADING addGroup layout createSequentialGroup addComponent cunkuan addPreferredGap javax swing LayoutStyle ComponentPlacement RELATED 105 Short MAX VALUE addComponent reset addGroup javax swing GroupLayout Alignment TRAILING layout createSequentialGroup addComponent qukuan addPreferredGap javax swing LayoutStyle ComponentPlacement RELATED 143 Short MAX VALUE addComponent quit addComponent checked 精选文档 供参考 addContainerGap layout setVerticalGroup layout createParallelGroup javax swing GroupLayout Alignment LEADING addGroup layout createSequentialGroup addGap 46 46 46 addGroup layout createParallelGroup javax swing GroupLayout Alignment BASELINE addComponent cunkuan addComponent reset addGap 51 51 51 addGroup layout createParallelGroup javax swing GroupLayout Alignment BASELINE addComponent quit addComponent qukuan addGap 57 57 57 addComponent checked addGap 39 39 39 pack private void quitActionPerformed ActionEvent evt load setVisible true this setVisible false private void resetActionPerformed ActionEvent evt setpw setVisible true this setVisible false private void checkedActionPerformed ActionEvent evt dis setVisible true this setVisible false private void qukuanActionPerformed ActionEvent evt take setVisible true this setVisible false private void cunkuanActionPerformed ActionEvent evt input setVisible true this setVisible false 登录界面 精选文档 供参考 class Load extends JFrame public JPasswordField Jpassword public JTextField accountnum public JButton commit private JLabel jL1 private JLabel jL2 public Load initComponents this setLocationRelativeTo null this setVisible true private void initComponents jL1 new JLabel jL2 new JLabel accountnum new JTextField commit new JButton Jpassword new JPasswordField setDefaultCloseOperation WindowConstants EXIT ON CLOSE setTitle ATM 柜员模拟程序 setResizable false jL1 setText 账号 jL2 setText 密码 commit setText 确定 commit addActionListener new java awt event ActionListener public void actionPerformed java awt event ActionEvent evt commitActionPerformed evt javax swing GroupLayout layout new javax swing GroupLayout getContentPane getContentPane setLayout layout layout setHorizontalGroup layout createParallelGroup javax swing GroupLayout Alignment LEADING addGroup layout createSequentialGroup addGroup layout createParallelGroup javax swing GroupLayout Alignment LEADING addGroup layout createSequentialGroup addContainerGap 50 Short MAX VALUE addGroup layout createParallelGroup javax swing GroupLayout Alignment TRAILING addComponent jL1 addComponent jL2 addGap 31 31 31 addGroup layout createParallelGroup javax swing GroupLayout Alignment LEADING false 精选文档 供参考 addComponent Jpassword addComponent accountnum javax swing GroupLayout DEFAULT SIZE 143 Short MAX VALUE addGroup layout createSequentialGroup addGap 122 122 122 addComponent commit addContainerGap 72 Short MAX VALUE layout setVerticalGroup layout createParallelGroup javax swing GroupLayout Alignment LEADING addGroup layout createSequentialGroup addGap 85 85 85 addGroup layout createParallelGroup javax swing GroupLayout Alignment BASELINE addComponent accountnum javax swing GroupLayout PREFERRED SIZE javax swing GroupLayout DEFAULT SIZE javax swing GroupLayout PREFERRED SIZE addComponent jL1 addGap 41 41 41 addGroup layout createParallelGroup javax swing GroupLayout Alignment BASELINE addComponent jL2 addComponent Jpassword javax swing GroupLayout PREFERRED SIZE javax swing GroupLayout DEFAULT SIZE javax swing GroupLayout PREFERRED SIZE addPreferredGap javax swing LayoutStyle ComponentPlacement RELATED 72 Short MAX VALUE addComponent commit addGap 64 64 64 pack private void commitActionPerformed ActionEvent evt if accountnum getText equals myaccount getaccount this setVisible false accountnum setText Jpassword setText else JOptionPane showMessageDialog null 密码与账户不匹配 请重新输入 出错提示 1 accountnum setText Jpassword setText 精选文档 供参考 取款界面 class Take extends JFrame public JButton back public JButton clear public JButton commit private JLabel jL1 public JTextField jT1 public JButton quit String str public Take initComponents this setLocationRelativeTo null this setVisible false private void initComponents jL1 new JLabel jT1 new JTextField commit new JButton back new JButton quit new JButton clear new JButton setDefaultCloseOperation WindowConstants EXIT ON CLOSE jL1 setText 取款金额 commit setText 确定 commit addActionListener new ActionListener public void actionPerformed ActionEvent evt commitActionPerformed evt back setText 返回 back addActionListener new ActionListener public void actionPerformed ActionEvent evt backActionPerformed evt quit setText 退出 quit addActionListener new ActionListener public void actionPerformed java awt event ActionEvent evt quitActionPerformed evt clear setText 清除 精选文档 供参考 clear addActionListener new ActionListener public void actionPerformed ActionEvent evt clearActionPerformed evt javax swing GroupLayout layout new javax swing GroupLayout getContentPane getContentPane setLayout layout layout setHorizontalGroup layout createParallelGroup javax swing GroupLayout Alignment LEADING addGroup layout createSequentialGroup addGap 41 41 41 addGroup layout createParallelGroup javax swing GroupLayout Alignment LEADING addGroup layout createSequentialGroup addComponent jL1 addGap 33 33 33 addComponent jT1 javax swing GroupLayout PREFERRED SIZE 174 javax swing GroupLayout PREFERRED SIZE addGroup layout createSequentialGroup addComponent clear addPreferredGap javax swing LayoutStyle ComponentPlacement RELATED 147 Short MAX VALUE addComponent quit addGroup layout createSequentialGroup addComponent commit addPreferredGap javax swing LayoutStyle ComponentPlacement RELATED 147 Short MAX VALUE addComponent back addContainerGap 69 javax swing GroupLayout PREFERRED SIZE layout setVerticalGroup layout createParallelGroup javax swing GroupLayout Alignment LEADING addGroup layout createSequentialGroup addGap 103 103 103 addGroup layout createParallelGroup javax swing GroupLayout Alignment BASELINE addComponent jL1 addComponent jT1 javax swing GroupLayout PREFERRED SIZE javax swing GroupLayout DEFAULT SIZE javax swing GroupLayout PREFERRED SIZE addGap 61 61 61 addGroup layout createParallelGroup javax swing GroupLayout Alignment BASELINE addComponent commit addComponent back addGap 29 29 29 精选文档 供参考 addGroup layout createParallelGroup javax swing GroupLayout Alignment BASELINE addComponent clear addComponent quit addContainerGap 65 Short MAX VALUE pack private void clearActionPerformed ActionEvent evt str jT1 setText str private void quitActionPerformed ActionEvent evt load setVisible true this setVisible false private void backActionPerformed ActionEvent evt Jmain setVisible true this setVisible false private void commitActionPerformed ActionEvent evt if Integer parseInt jT1 getText 0 int result javax swing JOptionPane showConfirmDialog null 是否显示余额 javax swing JOptionPane YES NO OPTION javax swing JOptionPane QUESTION MESSAGE if result javax swing JOptionPane YES OPTION dis set String valueOf myaccount get str jT1 setText str dis setVisible true this setVisible false else Jmain setVisible true this setVisible false else 精选文档 供参考 JOptionPane showMessageDialog null 取款金额不能为负数 n 取款金额不能为 0 n 取 款金额必须是 100 的倍数 n 金额一次不能超过 5000 n 请重新输入你要取的金额数 出错提示 1 str jT1 setText str 存款界面 class Input extends JFrame private JButton clear private JButton commit private JLabel jL1 private JTextField jT1 String str public Input initComponents this setLocationRelativeTo null this setResizable false this setVisible false private void initComponents jL1 new JLabel jT1 new JTextField commit new JButton clear new JButton setDefaultCloseOperation WindowConstants EXIT ON CLOSE jL1 setText 存款金额 commit setText 确认 commit addActionListener new ActionListener public void actionPerformed ActionEvent evt commitActionPerformed evt clear setText 清除 clear addActionListener new java awt event ActionListener public void actionPerformed java awt event ActionEvent evt clearActionPerformed evt 精选文档 供参考 javax swing GroupLayout layout new javax swing GroupLayout getContentPane getContentPane setLayout layout layout setHorizontalGroup layout createParallelGroup javax swing GroupLayout Alignment LEADING addGroup layout createSequentialGroup addGap 47 47 47 addGroup layout createParallelGroup javax swing GroupLayout Alignment LEADING addGroup layout createSequentialGroup addGap 12 12 12 addComponent commit addGap 111 111 111 addComponent clear addGroup layout createSequentialGroup addComponent jL1 addGap 27 27 27 addComponent jT1 javax swing GroupLayout PREFERRED SIZE 151 javax swing GroupLayout PREFERRED SIZE addContainerGap 50 Short MAX VALUE layout setVerticalGroup layout createParallelGroup javax swing GroupLayout Alignment LEADING addGroup layout createSequentialGroup addGap 88 88 88 addGroup layout createParallelGroup javax swing GroupLayout Alignment BASELINE addComponent jL1 addComponent jT1 javax swing GroupLayout PREFERRED SIZE javax swing GroupLayout DEFAULT SIZE javax swing GroupLayout PREFERRED SIZE addGap 87 87 87 addGroup layout createParallelGroup javax swing GroupLayout Alignment BASELINE addComponent clear addComponent commit addContainerGap 88 Short MAX VALUE pack private void clearActionPerformed ActionEvent evt str jT1 setText str 精选文档 供参考 private void commitActionPerformed java awt event ActionEvent evt if Integer parseInt jT1 getText 100 0 int a Integer parseInt jT1 getText if a 0 JOptionPane showMessageDialog null 存款不能为负数 出错 1 else myaccount reccount a dis set String valueOf myaccount get int result javax swing JOptionPane showConfirmDialog null 是否显示余额 javax swing JOptionPane YES NO OPTION javax swing JOptionPane QUESTION MESSAGE if result javax swing JOptionPane YES OPTION str jT1 setText str dis setVisible true this setVisible false else Jmain setVisible true this setVisible false else JOptionPane showMessageDialog null 存款金额必须为 100 的整数倍 n 请确认你的 金额 出错提示 1 jT1 setText 显示余额界面 class Display extends JFrame public JButton back private JLabel jL1 public JTextField jT1 public JButton quit public JButton qukuan public Display 精选文档 供参考 initComponents jT1 setText String valueOf myaccount get this setLocationRelativeTo null this setVisible false public void set String str jT1 setText str private void initComponents jL1 new JLabel jT1 new JTextField quit new JButton back new JButton qukuan new JButton setDefaultCloseOperation WindowConstants EXIT ON CLOSE jL1 setText 您的余额为 jT1 setEditable false quit setText 退出 quit addActionListener new java awt event ActionListener public void actionPerformed java awt event ActionEvent evt quitActionPerformed evt back setText 返回 back addActionListener new java awt event ActionListener public void actionPerformed java awt event ActionEvent evt backActionPerformed evt qukuan setText 取款 qukuan addActionListener new java awt event ActionListener public void actionPerformed java awt event ActionEvent evt qukuanActionPerformed evt javax swing GroupLayout layout new javax swing GroupLayout getContentPane getContentPane setLayout layout layout setHorizontalGroup 精选文档 供参考 layout createParallelGroup javax swing GroupLayout Alignment LEADING addGroup layout createSequentialGroup addGap 27 27 27 addComponent jL1 addPreferredGap javax swing LayoutStyle ComponentPlacement RELATED javax swing GroupLayout DEFAULT SIZE Short MAX VALUE addComponent jT1 javax swing GroupLayout PREFERRED SIZE 143 javax swing GroupLayout PREFERRED SIZE addContainerGap 36 Short MAX VALUE addGroup javax swing GroupLayout Alignment TRAILING layout createSequentialGroup addContainerGap 215 Short MAX VALUE addGroup layout createParallelGroup javax swing GroupLayout Alignment TRAILING addComponent back addComponent qukuan addComponent quit addContainerGap layout setVerticalGroup layout createParallelGroup javax swing GroupLayout Alignment LEADING addGroup layout createSequentialGroup addGap 93 93 93 addGroup layout createParallelGroup javax swing GroupLayout Alignment BASELINE addComponent jL1 addComponent jT1 javax swing GroupLayout PREFERRED SIZE javax swing GroupLayout DEFAULT SIZE javax swing GroupLayout PREFERRED SIZE addGap 54 54 54 addComponent qukuan addPreferredGap javax swing LayoutStyle ComponentPlacement RELATED addComponent back addPreferredGap javax swing LayoutStyle ComponentPlacement RELATED addComponent quit addContainerGap pack private void qukuanActionPerformed ActionEvent evt take setVisible true this setVisible false 精选文档 供参考 private void quitActionPerformed ActionEvent evt load setVisible true this setVisible false private void backActionPerformed ActionEvent evt Jmain setVisible true this setVisible false 修改密码 class Setpw extends JFrame public JButton commit public JLabel commitpw public JPasswordField jPwcommit public JPasswordField jPwnew public JPasswordField jPwold public JLabel newpw public JLabel oldpw public JButton quit public Setpw initComponents this setResizable false this setLocationRelativeTo null this setVisible false private void ini

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论