版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软 件 学 院课程设计报告书课程名称 面向对象程序设计 设计题目 ATM柜员机模拟程序 专业班级 软件工程 学 号 姓 名 指导教师 刘腊梅 2015年 月目录1 设计时间12 设计目的13 设计题目14 设计任务15 设计内容15.1 kehu类代码15.2 ATM主界面模块设计25.3 选择页面模块设计55.4 存款模块设计85.5 取款模块设计115.6 查询余额模块设计165.7 修改密码模块设计186 总结与展望23参考文献24成绩评定24 1 设计时间2015 年 月2 设计目的掌握图形用户界面设计方法,掌握常用swing组件的使用和事件处理程序设计.3 设计题目ATM柜员机模拟程
2、序4 设计任务使用图形用户界面。当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:(1)查询余额功能:初始余额为10000元(2)ATM取款功能:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。(3)ATM存款功能:不能出现负存款。(4)修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。5 设计内容 5.1 kehu类代码import javax.swing.*;import javax.swing.event.*;impor
3、t 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() /定义成员变量账号return zh; /成员方法double setM
4、ima(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.2 ATM主界面模块设计 class ATM
5、 extends JFrame implements ActionListener /导入接口类JPanel p1,p2, p3; /定义个面板JLabel l1, l2, l3,l4; /定义个标签JPasswordField pswf; /定义一个密码文本JButton jb1, jb2; /定义个按钮JTextField jtf1,jc1; /定义个文本框Container content; /定义一个容器kehu g = new kehu4; /定义客户类数组public ATM() /布局g0 = new kehu("liuyiping", "12345
6、6", 10000);/客户类数组里给的帐号,密码,钱数g1 = 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("
7、卡号:"); /定义标签l2 jc1 = new JTextField(10); /定义账号文本 l3 = new JLabel("密 码:"); /定义标签l3pswf = new JPasswordField(12); /定义密码文本l4 = new JLabel("欢迎使用自动取款机");p1.add(l4);p2.add(l2); /把它们分别镶在面板上p2.add(jc1);p2.add(l3);p2.add(pswf);p3 = new JPanel(); /定义第三个面板 jb1 = new JButton("登录&qu
8、ot;); /定义按钮登录jb1jb1.addActionListener(this); /jb1申请监听jb2 = new JButton("注销"); /定义按钮注销jb2jb2.addActionListener(this); /jb2申请监听p3.add(jb1); /把它们添加到p3面板里p3.add(jb2);content = this.getContentPane(); /布局定义content.setLayout(new BorderLayout();content.add(p1, BorderLayout.NORTH);content.add(p2, B
9、orderLayout.CENTER); /定义中部为面板p2content.add(p3, BorderLayout.SOUTH); /定义底部为面板p3this.pack();this.setTitle("ATM 柜员机"); /定义为窗口名称this.setBounds(300, 300, 400, 300); / 定义窗口的大小this.setResizable(false);this.show(); /显示this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/ 关闭、退出public void actionPer
10、formed(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(gi.pswf) /名字匹配成功后判断密码是否成功 new XUANZE(gi); /密码真确后进入XUANZE的界面elseJOptionPane.showMessageDialog(this, "
11、密码错误!"); /密码错误弹出提示密码错误elseSystem.exit(0); /注销事件退出public static void main(String args) /定义的MAIN,才能进入。new ATM(); 主界面 密码输入错误提示栏5.3 选择页面模块设计 class XUANZE extends JFrame implements ActionListener /导入接口类JPanel p2, p3; /定义个面板JLabel l1; /定义个标签JButton jb1, jb2, jb3, jb4, jb5; /定义个按钮Container content; /定
12、义一个容器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.addActionListener(this); /jb2申请监听jb3 = new JButton("查询余额&quo
13、t;); /定义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.addActionListener( /定义一个匿名类 new Action
14、Listener()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.setTitle("进入界面&q
15、uot;); /定义为窗口名称this.setBounds(300, 300, 400, 300); / 定义窗口的大小this.setResizable(false);this.show();public void actionPerformed(ActionEvent event) /接口监听if (event.getSource() = jb4) /判断是否是jb4new Xgmm(key); /进入XgmmsetVisible(false);if (event.getSource() = jb1) /判断是否是jb1new QUKUAN(key); /进入QUKUANsetVisibl
16、e(false);if (event.getSource() = jb2) /判断是否是jb2new CUNKUAN(key); /进入CUNKUANsetVisible(false);if (event.getSource() = jb3) /判断是否是jb3new CHAXUN(key); /进入CHAXUNsetVisible(false); 进入选择界面5.4 存款模块设计class CUNKUAN extends JFrame implements ActionListener /导入接口类JPanel p2, p3; /定义个面板JLabel l1; /定义个标签JButton j
17、b1, 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(
18、); /定义第三个面板jb1 = 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);conten
19、t = this.getContentPane(); /布局定义content.setLayout(new BorderLayout();content.add(p2, BorderLayout.NORTH); /定义顶部为面板p1 content.add(p2,BorderLayout.CENTER); /定义中部为面板p2content.add(p3, BorderLayout.SOUTH); /定义底部为面板p3this.pack();this.setTitle("自 动 存 款"); /定义为窗口名称this.setBounds(300, 300, 400, 300
20、); / 定义窗口的大小this.setResizable(false);this.show(); /显示public void actionPerformed(ActionEvent e) /接口监听类if (e.getSource() = jb1) /判断是是否是jb1double money = Double.parseDouble(jtf1.getText();/ 把money转成DoubleJOptionPane.showMessageDialog(this, "成功存款" + jtf1.getText() + "元!");/一个提示框填出你成
21、功存了多少key.cunkuan(money); /把存的钱传回客户类jtf1.setText("0");public void XUANZEActionPerformed(ActionEvent event) /匿名类监听过程if (event.getSource() = jb2) /判断要是jb2new XUANZE(key); /返回XUANZE界面setVisible(false);存款界面存款成功5.5 取款模块设计class QUKUAN extends JFrame implements ActionListener /导入接口类JPanel p2, p3;
22、/定义个面板JLabel l1; /定义个标签JButton jb1, jb2; /定义个按钮JTextField jtf1; /定义一个文本框Container content; /定义一个容器GUKE key; /定义客户类传从参数keypublic QUKUAN(GUKE key)this.key = key; /把key传到顶层容器p2 = new JPanel(); /定义面板l1 = new JLabel("请输入您要取的金额:"); /定义一个标签请输入您要取的金额:jtf1 = new JTextField(10); /定义一个文本框p2.add(l1);p
23、2.add(jtf1);p3 = new JPanel(); /定义面板jb1 = new JButton("确定"); /定义一个按钮确定jb1.addActionListener(this); /jb1申请一个监听jb2 = new JButton("返回"); /定义一个按钮返回jb2.addActionListener(this); /jb1申请一个监听p3.add(jb1);p3.add(jb2);content = this.getContentPane(); /布局定义content.setLayout(new BorderLayout()
24、;content.add(p2, BorderLayout.CENTER); /定义中部为面板p2content.add(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(
25、) = jb1) /判断是是否是jb1double money = Double.parseDouble(jtf1.getText();/ 把money转成Doubleif (money < key.jine)if (money % 100 = 0)if (money <=5000) JOptionPane.showMessageDialog(this, "成功取款" + jtf1.getText() + "元!");/一个提示框填出你成功取了多少key.quqian(money); /把存的钱传回客户类jtf1.setText("
26、0");elseJOptionPane.showMessageDialog(this, "提取金额不许超过五千");elseJOptionPane.showMessageDialog(this, "取款许为一百的整数");elseJOptionPane.showMessageDialog(this, "金额不足不许透支");/一个提示框提示你你的卡即将要已透支if (e.getSource() = jb2)/判断是是否是jb2new XUANZE(key); /返回XUANZEsetVisible(false);取款界面取款
27、成功金额不足取款失败提示提取金额不许超过五千提取金额需为一百的整数 5.6 查询余额模块设计class CHAXUN extends JFrame implements ActionListener /导入接口类JPanel p2, p3; /定义个面板JLabel l1; /定义个标签JButton jb1; /定义个按钮 Container content; /定义一个容器kehu key; /定义客户类传从参数keypublic CHAXUN(kehu key) this.key=key; /把key传到顶层容器 p2=new JPanel(); /定义面板 l1=new JLabel(
28、"您的剩余金额为:"+ 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); /定义中部为面板p2 content.add(p3,BorderLayout.SO
29、UTH); /定义底部为面板p3 this.pack(); this.setTitle("查 询 余 额"); /定义为窗口名称 this.setBounds(300, 300, 400, 300); / 定义窗口的大小 this.setResizable(false); this.show(); public void actionPerformed(ActionEvent e) /接口监听类if (e.getSource() = jb1) /判断是否是jb1 new XUANZE(key); /返回XUANZEsetVisible(false);开户资金10000元存7
30、00后查询余额再取款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; /把key传到顶层容器p2=
31、new JPanel(); /定义第二个面板l2=new JLabel("请输入原始密码:"); /定义标签请输入原始密码:l3=new JLabel("输入要修改的密码:"); /定义标签输入要修改的密码l4=new JLabel("确认输入的新密码:"); /定义标签确认输入的新密码:jtf1 = new JPasswordField(15); /定义文本框jtf1jtf2 = new JPasswordField(15); /定义文本框jtf2 jtf3=new JPasswordField(15); /定义文本框jtf3 p2
32、.add(l2); p2.add(jtf1); p2.add(l3); p2.add(jtf2);p2.add(l4);p2.add(jtf3);p3=new JPanel(); /定义面板 jb1 = new JButton("确定"); /定义按钮jb1 确定 jb1.addActionListener(this); /jb1申请监听 jb2 = new JButton("返回登录"); /定义按钮jb2 放回登录 jb2.addActionListener(this); /jb2申请监听 p3.add(jb1); p3.add(jb2); cont
33、ent = this.getContentPane(); /布局定义 content.setLayout(new BorderLayout(); content.add(p2,BorderLayout.CENTER); /定义中部为面板p2 content.add(p3,BorderLayout.SOUTH); /定义底部为面板p3 this.pack(); this.setTitle("修 改 密 码"); /定义为窗口名称 this.setBounds(300, 300, 400, 300); / 定义窗口的大小 this.setResizable(false); th
34、is.show(); /显示 public void actionPerformed(ActionEvent e) /接口监听类if (e.getSource() = jb1) /判断是否是jb1if (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(
35、).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") jtf2.setText("");jtf3.setText("");JOptionPane.showMessageDialog(this
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024版苹果交易合同样本3篇
- 高一开学典礼演讲稿5篇
- 教学常规工作个人总结8篇
- 高二第二学期班级工作计划
- 销售员工年度工作总结(33篇)
- 语文大专考试策略卷
- 语文课件婴宁之美
- 负债偿还合同样本
- 货物储存安全承诺书
- 购销合同模板在线
- 浙江省温州市2024-2025学年高三上学期一模英语试题 含解析
- 中国航空学会-2024低空经济场景白皮书
- JT∕T 795-2023 事故汽车修复技术规范
- 新概念英语第2册课文(完整版)
- 食品科技2024年食品行业的科技突破
- 学校(幼儿园)每周食品安全排查治理报告(整学期16篇)
- 贵州省2023年12月普通高中学业水平考试数学试卷
- 信访三联单 受理告知书+处理意见书+送达回证
- 杭州漫客文化创意有限公司《外贸业务员周报表》模板
- 造影剂(对比剂)外渗预防与处理PPT课件
- 最新淮安市外国语学校小升初数学试卷资料.doc
评论
0/150
提交评论