版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件学院课程设计报告书课程名称面向对象程序设计设计题目ATM柜员机模拟程序专业班级软件工程学号姓名指导教师腊梅2015 年月目录1设计时间 . .12设计目的 . .13设计题目 . .14设计任务 . .15设计容 . .15.1kehu 类代码 .15.2ATM 主界面模块设计 .25.3选择页面模块设计 .55.4存款模块设计 .85.5取款模块设计 .115.6查询余额模块设计 .165.7修改密码模块设计 .186总结与展望 . .23参考文献 . .24成绩评定 . .241 设计时间2015 年月2 设计目的掌握图形用户界面设计方法,掌握常用swing 组件的使用和事件处理程序设
2、计.3 设计题目ATM柜员机模拟程序4 设计任务使用图形用户界面。当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录 ATM 柜员机系统,用户可以按照以下规则进行:(1) 查询余额功能:初始余额为 10000 元(2) ATM 取款功能:每次取款金额为 100 的倍数,总额不超过 5000 元,支取金额不允许透支。(3) ATM 存款功能:不能出现负存款。(4) 修改密码:新密码长度不小于 6 位,不允许出现 6 位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。5 设计容5.1 kehu 类代码import javax.swing.
3、*;import javax.swing.event.*;import java.awt.*;import java.awt.event.*;/ 导入包import java.util.*;class kehu/ 定义客户类String zh;/定义账号String pswf; /定义密码double jine; /定义金额public kehu() /构造 GUKEpublic kehu(String zh, String pswf, double jine)this.zh = zh;this.pswf = pswf;this.jine = jine;String getzh() /定义成员
4、变量账号return zh; /成员方法double setMima(double pswf)/定义成员变量密码return pswf;/成员方法double getJine()/定义成员变量金额return jine;/定义成员方法void cunkuan(double money)/定义成员变量存款jine = jine + money;/定义成员方法void quqian(double money)/定义成员变量取款jine = jine - money;/ 定义成员方法String xiugaim(String mi)/定义成员变量密码pswf = mi;return pswf;/定义
5、成员方法5.2 ATM主界面模块设计class ATM extends JFrameimplements ActionListener /导入接口类JPanel p1,p2, p3;/定义个面板JLabel l1, l2, l3,l4;/定义个标签JButton jb1, jb2;/ 定义个按钮JTextField jtf1,jc1;/定义个文本框Container content;/定义一个容器kehu g = new kehu4;/定义客户类数组public ATM()/布局g0 = new kehu(liuyiping , 123456, 10000);/客户类数组里给的,密码,钱数g1
6、 = new kehu(chengyang, 123456, 10000);g2 = new kehu(zhangzhicheng, 123456, 10000);g3 = new kehu(pengzhanyuan, 123456, 10000);p1 = new JPanel();p2 = new JPanel();/定义第二个面板l2 = new JLabel(卡号: );/定义标签 l2jc1 = new JTextField(10);/定义账号文本l3 = new JLabel(密 码: );/定义标签 l3pswf = new JPasswordField(12);/定义密码文本l
7、4 = new JLabel(欢迎使用自动取款机 );p1.add(l4);p2.add(l2);/把它们分别镶在面板上p2.add(jc1);p2.add(l3);p2.add(pswf);p3 = new JPanel();/定义第三个面板jb1 = new JButton(登录 );/定义按钮登录 jb1jb1.addActionListener(this);/jb1 申请监听jb2 = new JButton(注销 );/定义按钮注销 jb2jb2.addActionListener(this);/jb2 申请监听p3.add(jb1);/把它们添加到 p3面板里p3.add(jb2)
8、;content = this.getContentPane();/布局定义content.setLayout(new BorderLayout();content.add(p1, BorderLayout.NORTH);content.add(p2, BorderLayout.CENTER);/定义中部为面板 p2content.add(p3, BorderLayout.SOUTH);/定义底部为面板 p3this.pack();this.setTitle(ATM柜员机 );/定义为窗口名称this.setBounds(300, 300, 400, 300);/ 定义窗口的大小this.se
9、tResizable(false);this.show();/显示this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/ 关闭、退出public void actionPerformed(ActionEvent e)/监听类String x = jc1.getText();if (e.getSource() = jb1)/如果点击是 jb1按钮就进入 For for (int i = 0; i 4; i+)/判断名字在数组的位置if (x.equals(gi.zh)/检查到开始判断是否匹配 if (pswf.getText().equals(
10、gi.pswf) /名字匹配成功后判断密码是否成功new XUANZE(gi);/密码真确后进入 XUANZE 的界面elseJOptionPane.showMessageDialog(this, 密码错误! ); /密码错误弹出提示密码错误elseSystem.exit(0);/ 注销事件退出public static void main(String args)/定义的 MAIN ,才能进入。new ATM();主界面密码输入错误提示栏5.3 选择页面模块设计class XUANZE extends JFrameimplements ActionListener/导入接口类JPanelp2
11、, p3;/定义个面板JLabel l1;/定义个标签JButton jb1, jb2, jb3, jb4, jb5;/ 定义个按钮Container content;/定义一个容器kehu key;/定义客户类传从参数keypublic XUANZE(GUKE key)this.key = key;p2 = new JPanel();/定义面板jb1 = new JButton(ATM 取款 );/定义 jb1按钮 ATM 取款jb1.addActionListener(this);/jb1申请监听jb2 = new JButton(ATM 存款 );/定义 jb2按钮 ATM 存款jb2.
12、addActionListener(this);/jb2申请监听jb3 = new JButton(查询余额 );/定义 jb3按钮查询余额jb3.addActionListener(this);/jb3申请监听jb4 = new JButton(修改密码 );/定义 jb4按钮修改密码jb4.addActionListener(this);/jb4申请监听p2.add(jb1);p2.add(jb2);p2.add(jb3);p2.add(jb4);p3 = new JPanel();/定义面板jb5 = new JButton(退出 );/定义 jb5按钮退出jb5.addActionLi
13、stener(/定义一个匿名类new ActionListener()public void actionPerformed(ActionEvent event)System.exit(0);/退出登陆);p3.add(jb5);content = this.getContentPane();/布局定义content.setLayout(new BorderLayout();content.add(p2, BorderLayout.CENTER);/定义中部为面板p2content.add(p3, BorderLayout.SOUTH);/ 定义底部为面板p3this.pack();this.
14、setTitle(进入界面 );/定义为窗口名称this.setBounds(300, 300, 400, 300);/ 定义窗口的大小this.setResizable(false);this.show();public void actionPerformed(ActionEvent event) /接口监听if (event.getSource() = jb4)/判断是否是jb4new Xgmm(key);setVisible(false);/进入 Xgmmif (event.getSource() = jb1)/判断是否是jb1new QUKUAN(key);setVisible(fa
15、lse);/ 进入 QUKUANif (event.getSource() = jb2)/判断是否是jb2new CUNKUAN(key);setVisible(false);/进入 CUNKUANif (event.getSource() = jb3)/判断是否是jb3new CHAXUN(key);setVisible(false);/进入 CHAXUN进入选择界面5.4 存款模块设计class CUNKUAN extends JFrame implements ActionListener /导入接口类JPanel p2, p3;/ 定义个面板JLabel l1;/定义个标签JButto
16、n jb1, jb2;/定义个按钮JTextField jtf1;/定义一个文本框Container content;/定义一个容器kehu key;/定义客户类传从参数 keypublic CUNKUAN(kehu key)this.key = key;/把 key传到顶层容器p2 = new JPanel();/定义面板l1 = new JLabel(请输入您要存入的金额 : );/定义一个标签请输入您要存入的金额:jtf1 = new JTextField(10);/定义一个文本框p2.add(l1);p2.add(jtf1);p3 = new JPanel();/定义第三个面板jb1
17、= new JButton(确定 );/定义一个按钮确定jb1.addActionListener(this);/jb1申请一个监听jb2 = new JButton(返回 );/定义一个按钮返回jb2.addActionListener(/定义一个匿名类监听new ActionListener()public void actionPerformed(ActionEvent event)XUANZEActionPerformed(event););p3.add(jb1);p3.add(jb2);content = this.getContentPane();/布局定义content.setL
18、ayout(new BorderLayout();content.add(p2, BorderLayout.NORTH);/ 定义顶部为面板p1content.add(p2,BorderLayout.CENTER);/定义中部为面板p2content.add(p3, BorderLayout.SOUTH);this.pack();this.setTitle(自动存款 );this.setBounds(300, 300, 400, 300);this.setResizable(false);this.show();/定义底部为面板/定义为窗口名称/ 定义窗口的大小/显示p3public void
19、 actionPerformed(ActionEvent e)/接口监听类if (e.getSource() = jb1)/判断是是否是jb1double money = Double.parseDouble(jtf1.getText();/ 把money转成 Double JOptionPane.showMessageDialog(this, 成功存款 + jtf1.getText() + 元! );/一个提示框填出你成功存了多少key.cunkuan(money); / 把存的钱传回客户类 jtf1.setText(0 );public void XUANZEActionPerformed
20、( ActionEvent event) /匿名类监听过程if (event.getSource() = jb2)/判断要是 jb2new XUANZE(key);/返回 XUANZE界面setVisible(false);存款界面存款成功5.5 取款模块设计class QUKUAN extends JFrame implements ActionListener /导入接口类JPanelp2, p3;/定义个面板JLabel l1;/定义个标签JButton jb1, jb2;/定义个按钮JTextField jtf1;/定义一个文本框Container content;/定义一个容器GUK
21、E key;/ 定义客户类传从参数 keypublic QUKUAN(GUKE key)this.key = key;/把 key传到顶层容器p2 = new JPanel();/定义面板l1 = new JLabel(请输入您要取的金额 :);/定义一个标签请输入您要取的金额:jtf1 = new JTextField(10);/定义一个文本框p2.add(l1);p2.add(jtf1);p3 = new JPanel();/定义面板jb1 = new JButton(确定 );/定义一个按钮确定jb1.addActionListener(this);/jb1 申请一个监听jb2 = ne
22、w JButton(返回 );/定义一个按钮返回jb2.addActionListener(this);/jb1 申请一个监听p3.add(jb1);p3.add(jb2);content = this.getContentPane();/布局定义content.setLayout(new BorderLayout();content.add(p2, BorderLayout.CENTER);/定义中部为面板 p2content.add(p3, BorderLayout.SOUTH);/ 定义底部为面板 p3this.pack();this.setTitle(自 动 取 款 );/定义为窗口名
23、称this.setBounds(300, 300, 400, 300);/ 定义窗口的大小this.setResizable(false);this.show();public void actionPerformed(ActionEvent e)/接口监听类if (e.getSource() = jb1)/判断是是否是 jb1double money = Double.parseDouble(jtf1.getText();/ 把money转成 Doubleif (money key.jine)if (money % 100 = 0)if (money =5000)JOptionPane.sh
24、owMessageDialog(this, 成功取款 + jtf1.getText() + 元! );/一个提示框填出你成功取了多少key.quqian(money);/把存的钱传回客户类jtf1.setText(0 );elseJOptionPane.showMessageDialog(this, 提取金额不许超过五千);elseJOptionPane.showMessageDialog(this, 取款许为一百的整数 );elseJOptionPane.showMessageDialog(this, 金额不足不许透支 );/一个提示框提示你你的卡即将要已透支if (e.getSource(
25、) = jb2)/ 判断是是否是 jb2new XUANZE(key);/返回 XUANZEsetVisible(false);取款界面取款成功金额不足取款失败提示提取金额不许超过五千提取金额需为一百的整数5.6 查询余额模块设计class CHAXUNextends JFrame implements ActionListener/导入接口类JPanelp2, p3;/定义个面板JLabel l1;/定义个标签JButton jb1;/定义个按钮Container content;/定义一个容器kehu key;/定义客户类传从参数public CHAXUN(kehu key)this.ke
26、y=key;/把key传到顶层容器p2=new JPanel();/定义面板l1=new JLabel(您的剩余金额为: + key.getJine();p2.add(l1);p3=new JPanel();/定义面板jb1=new JButton(返回 );jb1.addActionListener(this);p3.add(jb1);content=this.getContentPane();/布局定义content.setLayout(new BorderLayout();content.add(p2,BorderLayout.CENTER);/定义中部为面板 p2content.add
27、(p3,BorderLayout.SOUTH);/定义底部为面板 p3this.pack();this.setTitle(查 询 余 额);/定义为窗口名称this.setBounds(300, 300, 400, 300);/ 定义窗口的大小this.setResizable(false);this.show();public void actionPerformed(ActionEvent e)/ 接口监听类if (e.getSource() = jb1)/判断是否是 jb1keynew XUANZE(key);/返回 XUANZEsetVisible(false);开户资金 10000
28、元存 700 后查询余额再取款 900 后查询余额5.7 修改密码模块设计class Xgmm extends JFrame implements ActionListener /导入接口类JPanel p2, p3;/ 定义个面板JLabel l1, l2, l3, l4;/定义个标签JPasswordField jtf1, jtf2, jtf3;/定义个文本框JButton jb1, jb2;/定义个按钮Container content;/定义一个容器kehu key;/定义客户类传从参数keypublic Xgmm(kehu key)this.key=key;p2=new JPanel
29、();l2=new JLabel(请输入原始密码: );l3=new JLabel(输入要修改的密码:l4=new JLabel(确认输入的新密码:jtf1 = new JPasswordField(15);););/把key传到顶层容器/定义第二个面板/定义标签请输入原始密码:/定义标签输入要修改的密码/定义标签确认输入的新密码:/定义文本框 jtf1jtf2 = new JPasswordField(15);/定义文本框jtf2jtf3= new JPasswordField(15);/定义文本框jtf3p2.add(l2);p2.add(jtf1);p2.add(l3);p2.add(j
30、tf2);p2.add(l4);p2.add(jtf3);p3=new JPanel();/定义面板jb1 = new JButton(确定 );/定义按钮 jb1确定jb1.addActionListener(this);/jb1 申请监听jb2 = new JButton(返回登录 );jb2.addActionListener(this);p3.add(jb1);p3.add(jb2);content = this.getContentPane();content.setLayout(new BorderLayout();content.add(p2,BorderLayout.CENTE
31、R);content.add(p3,BorderLayout.SOUTH);this.pack();this.setTitle(修 改 密 码 );this.setBounds(300, 300, 400, 300);this.setResizable(false);this.show();public void actionPerformed(ActionEvent e)/定义按钮 jb2 放回登录/jb2 申请监听/布局定义/定义中部为面板 p2/定义底部为面板 p3/定义为窗口名称/ 定义窗口的大小/ 显示/接口监听类if (e.getSource() = jb1)/判断是否是jb1if
32、 (jtf1.getText().equals(key.pswf)/判断是否是你输入的 pswf正确if (jtf2.getText().equals(jtf3.getText() /判断是否是 jtf2 和 jtf3 相等不if (jtf2.getText().length()=6)if (jtf2.getText().equals(000000) | jtf2.getText().equals(111111) | jtf2.getText().equals(222222) | jtf2.getText().equals(333333) | jtf2.getText().equals(444444) | jtf2.getText().equals(555555) | jtf2.getText().equals(666666) | jtf2.getText().equals(777777) | jtf2.getText().equals(888888) | jtf2.getText().equals(999999)jtf
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年河南工业和信息化职业学院单招综合素质考试备考试题带答案解析
- 2026年贵州轻工职业技术学院高职单招职业适应性考试备考题库有答案解析
- 土地合作开发协议2025年项目推广
- 2026年贵州工商职业学院高职单招职业适应性考试备考题库带答案解析
- 2026年湖北三峡职业技术学院高职单招职业适应性测试备考题库有答案解析
- 2026年广州番禺职业技术学院单招综合素质笔试备考题库带答案解析
- 2026年湖北生物科技职业学院单招综合素质考试参考题库带答案解析
- 2026年福建信息职业技术学院单招综合素质笔试模拟试题带答案解析
- 2026年朔州陶瓷职业技术学院单招职业技能考试备考试题附答案详解
- 2026年安徽林业职业技术学院单招综合素质考试备考试题带答案解析
- 《小学语文六年级上册第三单元复习》课件
- 杭州余杭水务有限公司2025年度公开招聘备考题库附答案详解
- 鹿邑县2025年事业单位引进高层次人才备考题库及答案详解(新)
- 2025云南昆明巫家坝城市发展建设有限公司社会招聘14人笔试历年难易错考点试卷带答案解析
- 2025年大学(直播电商实训)管理实操试题及答案
- 医院重症医学科主任谈重症医学治疗
- 广西南宁市2024-2025学年高二上学期期末教学调研数学试卷(含答案)
- DLT5196-2016 火力发电厂石灰石-石膏湿法烟气脱硫系统设计规程
- 电力系统分析习题集汇总及详解答案
- 桩基系梁专项施工技术方案
- 甬统表全套整理版
评论
0/150
提交评论