java课设atm机PDF.pdf
《java课设atm机PDF.pdf》由会员分享,可在线阅读,更多相关《java课设atm机PDF.pdf(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、_x0001_页脚内容 1软 件 学 院课程设计报告书课程名称面向对象程序课程设计设计题目A T M 柜员机模拟程序专业班级学号姓名指导教师_x0001_页脚内容 22013 年 6 月目 录1 设计时间 . 62 设计目的 . 63 设计任务 . 64 设计内容 . 74.1 概要设计 . 74.1.1 设计思想 . 7ATM 机主要包括登陆模块,注册设计模块,选择服务模块,取款模块,存款模块,查询模块,修改密码模块等几个功能模块。其中: . 7(1) 登陆模块设计:提示用户输入卡号和密码的信息,要是用户输入的密码有错误,ATM 将会提醒您的密码输入错误,请重新输入,ATM 允许用户输入三次
2、密码,若第三次输入也错误,机器将会吞卡。如果用户密码输入正确,点击确认将会进入选择服务的界面。. 7(2)选择服务模块设计:该界面显示ATM 柜员机的基本功能,如:取款,存款,查询余额,修改密码,退出。当用户选择其中任何一个功能时会进入对应界面,若选择退出功则将会退出登录界面。 . 7(3)取款模块设计:限制取款金额,即每次取款金额为100的倍数,不为负数,总额不超过5000_x0001_页脚内容 3元,支取金额不允许透支。 . 7(4)修改密码模块设计:修改密码界面要求新密码长度不小于6位,不允许出现 6 位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改
3、密码。 8(5)注册界面设计:当新用户使用ATM 机时,注册用户。用户名不得与已存在用户同名,且密码长度不小于 6位,不允许出现6位完全相同。 . 84.1.2 实现方法 . 84.1.3程序所能达到的功能 . 84.2 总体设计 . 84.2.1 Java 类和自定义类的层次关系. 84.2.1 自定义类的说明 . 94.3 详细设计 . 104.3.1 程序代码: . 10图 48 . 50_x0001_页脚内容 4 . 53 . 54_x0001_页脚内容 5. 54 . 555 总结与展望 . 55参考文献 . 56成绩评定 . 57_x0001_页脚内容 61 设计时间2013年 0
4、6月 8 日至 2013年 06月 14日2 设计目的面向对象程序设计是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。JAVA 程序设计的设计加深了学生对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用。本次面向对象程序课程设计目标为:通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。通过此次课程设计巩固所学Java语言基本知识增进Java语言编辑基本功掌握JDK 等开发工具的运用拓宽常用
5、类库的应用。通过该环节与课程及相关知识加以融会贯通全面掌握Java语言的编程思想及面向对象程序设计的方法为今后从事实际工作打下坚实的基础。通过实践加深学生对面向对象程序设计的类、对象、方法和基础知识的理解, 掌握使用 Java语言进行面向对象设计的基本方法,帮助学生建立面向对象的思维模式。在实践中,通过对Java程序的调试,提高学生分析程序中出现的错误和解决这些错误的能力。3设计任务题目: ATM 柜员机模拟程序_x0001_页脚内容 7要求:使用图形用户界面。当输入给定的卡号和密码(初始卡号和密码为123456 )时,系统能登录 ATM 柜员机系统,用户可以按照以下规则进行:(1)查询余额功
6、能:初始余额为10000元。(2)ATM 取款功能:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。(3)ATM 存款功能:不能出现负存款。(4)修改密码:新密码长度不小于6位,不允许出现 6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。4 设计内容4.1 概要设计4.1.1 设计思想ATM 机主要包括登陆模块, 注册设计模块, 选择服务模块, 取款模块, 存款模块,查询模块,修改密码模块等几个功能模块。其中:(1)登陆模块设计:提示用户输入卡号和密码的信息,要是用户输入的密码有错误,ATM 将会提醒您的密码输入错误,请重新输
7、入,ATM 允许用户输入三次密码,若第三次输入也错误,机器将会吞卡。如果用户密码输入正确,点击确认将会进入选择服务的界面。(2)选择服务模块设计:该界面显示ATM 柜员机的基本功能,如:取款,存款,查询余额,修改密码,退出。当用户选择其中任何一个功能时会进入对应界面,若选择退出功则将会退出登录界面。(3)取款模块设计:限制取款金额,即每次取款金额为100 的倍数,不为负数,总额不超过5000元,支取金额不允许透支。_x0001_页脚内容 8(4)修改密码模块设计:修改密码界面要求新密码长度不小于6 位,不允许出现6 位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以
8、成功修改密码。(5)注册界面设计:当新用户使用ATM机时,注册用户。用户名不得与已存在用户同名,且密码长度不小于 6位,不允许出现 6位完全相同。4.1.2 实现方法ATM 柜员机主要是由各个Windows 窗口组成,它是由登录页面、 选择服务、取款、查询余额、修改密码和退卡等功能。它的各种按钮的事件和功能可以简单的模拟ATM 柜员机的要求。4.1.3程序所能达到的功能运用了事件监听技术来实现ATM 的各种功能例如:存款、取款、修改密码、查询。通过使用图形用户界面的设计思路,以方便用户操作,同时也使的程序更加简单。4.2 总体设计4.2.1 Java 类和自定义类的层次关系如图_x0001_页
9、脚内容 9图MF类、denlu类、qukuan类、cunkuan类、chaxun类和 gaimi 类都继承了 Java类的 JFrame 类。4.2.1 自定义类的说明(1) Class Account创建客户,初始化客户信息功能以及保存客户信息,例如:卡号、密码、原有余额、取款后卡里的余额以及存款后卡里的余额。此类中包含的成员有:成员变量code ,mima,money和构造方法Account() ,获得用户卡号方法get_Code() ,获得用户密码方法get_Mima() , 获 得 用 户 信 用 卡 的 金 额 方 法 get_Money(), 设 置 取 款 后 的 账 户 余 额
10、 方 法set_Balance(), 设置存款后的账户余额方法reccount(), 设置修改密码的方法gaimi()。(2) Class MF实现登录的界面,如果卡号和密码匹配就可以登录到主界面否则报错。它的成员有:P1 ,P2,L1 ,L2,L3,password ,B1 ,B2,TF1 ,content ,a和构造方法 MF和事件监听方法 actionPerformed() 。(3) Class ZC实现新用户注册界面,如果注册用户名出现重复进行提示。注册成功后进入服务界面。它的成员有 :p1,p2,p3,p4,b1,l1,l2,l3, t1, password,content,v和构造
11、方法 ZC 和事件监听方法actionPerformed() 。(4)Class denlu 实现功能的主界面,它的成员有:P3,P4,B1 ,B2,B3,B4,B5,content ,key和构造方法 denlu和事件监听方法 actionPerformed() 。(5)Class qukuan实现取款的界面,如果每次取款金额不为100的倍数,总额超过500元,支取金额透支则报错。 它的成员有: P1 ,P2,L1 ,B1,B2,TF1 ,content ,key和构造方法 qukuan和事件监听方法 actionPerformed() 。(6)Class cunkuan 实现存款的界面,如
12、果输入存款数为负款则报错。它的成员有:P1 ,P2,L1 ,_x0001_页脚内容 10B1 ,B2,TF1 ,content ,key和构造方法 cunkuan和事件监听方法 actionPerformed() 。(7)Class chaxun实现查询余额的界面,它的成员有:P1 ,P2,L1 ,B1 ,content ,key和构造方法 cunkuan和事件监听方法actionPerformed() 。(8)Class gaimi 实现查询余额的界面,如果新密码长度不小于6位,没出现 6位同的情况,旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码否则报错。它的成员有:
13、P1 ,P2,L1 ,L2,L3,TF1 ,TF2 ,TF3 ,B1 ,B2,content ,key和构造方法 cunkuan和事件监听方法 actionPerformed() 。除 Account 类之外,其他的类均实现ActionListener 接口。4.3 详细设计4.3.1 程序代码:import javax.swing.*;import javax.swing.event.*;import java.awt.*;import java.awt.event.*;import java.util.*;class Account static String code = null; /
14、 信用卡号static String mima = null; / 用户密码_x0001_页脚内容 11static int money = 0; / 信用卡里金额public Account(String code,String mima,int money )/构造函数this.code = code;this.mima= mima;this.money = money;protected String get_Code() / 获取用户信用卡号return code;protected String get_mima() / 获得用户密码return mima;_x0001_页脚内容 1
15、2public int get_Money() / 获得用户信用卡里金额return money;protected void set_Balance(double mon) / 设置取款后的账户余额money -= mon;public void reccount(double mon) / 设置存款后的账户余额 money += mon;String gaimima(String mi) / 修改密码方法mima = mi; return mima;_x0001_页脚内容 13class MF extends JFrame implements ActionListener / 导入接口类
16、JTextField t1;JLabel l1, l2, l3, l4;JButton b1, b2, b3;JPasswordField password;JPanel p1,p2,p3,p31,p32,p33,p321,p322;Account a=new Account100; int v;public static void main(String args)new MF();public MF()_x0001_页脚内容 14a0 = new Account(shishi, 123456, 10000);int v=1;this.setSize(500,300); password =
17、 new JPasswordField(12);t1 = new JTextField(10);l1 = new JLabel( 用户);l2 = new JLabel( 密码); l3 = new JLabel( 未注册用户请注册 );l4 = new JLabel( 欢迎使用 ATM);b1 = new JButton( 注册);b2 = new JButton( 确定);b3 = new JButton( 取消);b1.addActionListener(this); /B1 申请监听b2.addActionListener(this); /B2 申请监听QX qx = new QX(t
18、1,password);_x0001_页脚内容 15b3.addActionListener(qx); /B3 申请监听setLayout(new GridLayout(3, 1); / 布局管理p1 = new JPanel();p2 = new JPanel();p3 = new JPanel();this.add(p1);this.add(p2);this.add(p3);p3.setLayout(new GridLayout(1, 3);p31 = new JPanel();p32 = new JPanel();p33 = new JPanel();p3.add(p31);p3.add
19、(p32);p3.add(p33);p32.setLayout(new GridLayout(1, 2);p321 = new JPanel();_x0001_页脚内容 16p322 = new JPanel();p32.add(p321);p32.add(p322);p1.add(l4);p2.add(l1);p2.add(t1);p2.add(l2);p2.add(password);p2.add(l3);p2.add(b1);p321.add(b2);p322.add(b3);p1.setBackground(Color.pink);p2.setBackground(Color.pink
20、);p31.setBackground(Color.pink);p321.setBackground(Color.pink);p322.setBackground(Color.pink);_x0001_页脚内容 17p33.setBackground(Color.pink);this.addWindowListener(new MyWindowMonitor();this.setVisible(true);public void actionPerformed(ActionEvent e) / 监听类if (e.getSource() = b1) / 判断是否是 b1new ZC(v,a);
21、/ 进入 qukuansetVisible(false);if (e.getSource() = b2) / 判断是否是 b1String x = t1.getText(); / 把 TF1 的值强制转换成字符if (x.equals(a0.code) / 检查到开始判断是否匹配_x0001_页脚内容 18for (int i = 1; i = 3; i+) / 利用 for 循环来判断错误密码输入次数if (password.getText().equals(a0.mima) / 名字匹配成功后判断密码是否成功new denlu(a0); / 密码输入正确后进入denlu的界面setVisi
22、ble(false); elseJOptionPane.showMessageDialog(null, 对不起密码错误+n您还有 + (3 - i) + 次机会 ,否则将会吞卡! );/ 密码错误弹出提示密码错误框break;_x0001_页脚内容 19class MyWindowMonitor implements WindowListener / 窗口监听public void windowActivated(WindowEvent e) public void windowClosed(WindowEvent e) public void windowClosing(WindowEven
23、t e) System.exit(-1); public void windowDeactivated(WindowEvent e) public void windowDeiconified(WindowEvent e) public void windowIconified(WindowEvent e) _x0001_页脚内容 20 public void windowOpened(WindowEvent e) class ZC extends JFrame implements ActionListener JPanel p1,p2,p3,p4; JButton b1;JLabel l1
24、,l2,l3;JTextField t1;JPasswordField password; Container content; int v,j; Account a;public ZC(int v,Account a) _x0001_页脚内容 21this.v=v;this.a=a;p1 = new JPanel();l1 = new JLabel( 用户注册 );p1.add(l1);p2 = new JPanel(); l2 = new JLabel( 姓名);t1 = new JTextField(10);p2.add(l2);p2.add(t1);p3 = new JPanel();
25、l3 = new JLabel( 密码);password = new JPasswordField(12);p3.add(l3);p3.add(password);p4 = new JPanel();b1 = new JButton( 确定);_x0001_页脚内容 22b1.addActionListener(this);p4.add(b1);p1.setBackground(Color.pink);p2.setBackground(Color.pink);p3.setBackground(Color.pink);p4.setBackground(Color.pink);content =
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java atm PDF
限制150内