




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
河南机电高等专科学校学生课程设计报告实验课程名称 Java程序设计 开课实验室 实验楼308机房 系、部 计科系 年级 11 专业班 软件技术 学 生 姓 名 宋亚澎 学 号 111012228 开 课 时 间 2012 至 2013 学 年 第 一 学期总 成 绩教师签名Java程序设计课程设计报告2012年12月24日系部计科系年级、专业、班软件112(对口)姓名宋亚澎课程名称Java程序设计项目名称ATM柜员机模拟程序指导教师戴冬教师评语教师签名:戴冬年 月 日一、课程设计目的及要求目的:1.熟练掌握Java面向对象程序设计的基础知识2.熟练掌握Java中常用的Swing组件的使用方法3.熟练掌握使用JDBC操作数据库的方法4.通过实训,培养学生分析和解决实际问题的能力,提高调试和分析应用程序的能力,并为后续的Java高级编程等专业课程的学习奠定良好的基础。要求:当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以进行:1.查询余额:初始余额为1000元2 .ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支3 .ATM存款:不能出现负存款4 .修改密码:新密码长度不小于6为,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。二、使用仪器、材料1.开发工具:MyEclipse 8.5三、课程设计步骤1、 分析题目2、 根据自己的想法搭建程序主界面3、 为各菜单项添加事件处理程序四、课程设计原始记录(数据、图表、计算等)1、Guest 类代码如下:public class Guest String zh; /定义账号String pswf; /定义密码double jine; /定义金额public Guest() /构造GuestGuest(String zh,String pswf,double jine)this.zh=zh; /带入顶层容器,账号,密码,金额this.pswf=pswf;this.jine=jine;String getzh() /定义成员变量账号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 xiugai(String mi) /定义成员变量密码pswf = mi; /定义成员方法return pswf;2、ATM柜员机主界面模块设计主界面的设计,主要有按钮、文本框,组合框,标签,在组合中选择账号,在密码的文本框中输入各个账号所对应的密码,单击登录按钮可以进入选择界面,如果密码错误,就会弹出如图3的对话框,提示“密码错误 ,拒绝登录”import javax.swing.*;import javax.swing.event.*; import java.awt.*;import java.awt.event.*; / 导入包public class DENGRU extends JFrame implements ActionListenerJPanel p1,p2,p3; /定义3个面板JLabel l1,l2,l3,l4; /定义4个标签JPasswordField pswf; /定义一个密码文本JButton jb1,jb2,jb3; /定义3个按钮JTextField jtf1; /定义一个文本框JComboBox jc1; /定义一个组合框ImageIcon myimage; /定义导入图片Container content; /定义一个容器Guest g=new Guest4; /定义客户类数组public DENGRU() /布局 g0=new Guest(1001,123456,10000);g1=new Guest(1002,123456,10000);g2=new Guest(1003,123456,10000);g3=new Guest(1004,123456,10000);p1 = new JPanel(); /定义第一个面板myimage = new ImageIcon(yl1.jpg); /定义填入的图片l1 = new JLabel(myimage); /定义把图片放在标签的上面p1.add(l1); p2 = new JPanel(); /定义第二个面板l2 = new JLabel(卡号:); /定义标签l2 jc1 = new JComboBox(); /定义组合框jc1.addItem( 1001 ); /组合框里赋值jc1.addItem(1002);jc1.addItem(1003);jc1.addItem(1004);jc1.setSelectedIndex( 0 ); /组合框里的下标从0开始jc1.setEditable(true); /里面还可以输入l3=new JLabel(密 码:); /定义标签l3pswf=new JPasswordField(12); /定义密码文本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);content = this.getContentPane(); /布局定义content.setLayout(new BorderLayout(); content.add(p1,BorderLayout.NORTH); /定义顶部为面板p1content.add(p2,BorderLayout.CENTER); /定义中部为面板p2content.add(p3,BorderLayout.SOUTH); /定义底部为面板p3this.pack();this.setTitle(ATM CRS柜员机); /定义为窗口名称this.setSize(600,300); / 定义窗口的大小this.setResizable(false);this.show(); /显示this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );/ 关闭、退出public void actionPerformed(ActionEvent e ) /监听类String x= jc1.getSelectedItem().toString(); if(e.getSource()=jb1) /如果点击是jb1按钮就进入Forfor(int i=0;i4;i+) /判断名字在数组的位置if(x.equals(gi.zh) /检查到开始判断是否匹配 if(pswf.getText().equals(gi.pswf) /名字匹配成功后判断密码是否成功new KQ(gi); /密码真确后进入KQ的界面setVisible( false);elseJOptionPane.showMessageDialog( this,密码错误,拒绝登陆);pswf.setText();elseSystem.exit(0); /注销事件退出public static void main(String args) /定义的MAIN,才能进入。 new DENGRU(); 图2主界面图2-1密码错误提示栏3、选择界面模块设计在选择模块服务中,有各种ATM的服务功能,只要在用户该界面中选择按钮,它会弹出各个相应的界面,其中的代码如下:import javax.swing.*;import javax.swing.event.*;import java.awt.*;import java.awt.event.*;public class KQ extends JFrame implements ActionListenerJPanel p1,p2,p3; /定义3个面板JLabel l1; /定义1个标签JButton jb1,jb2,jb3,jb4,jb5; /定义5个按钮ImageIcon myimage; /定义导入图片Container content; /定义一个容器Guest key; /定义客户类传从参数keypublic KQ(Guest key) this.key =key; /把key传到顶层容器p1 = new JPanel(); /定义第一个面板myimage = new ImageIcon(yl1.jpg); /定义填入的图片l1 = new JLabel(myimage); /定义把图片放在标签的上面p1.add(l1);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(查询余额 ); /定义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 ActionListener()public void actionPerformed( ActionEvent event )System.exit(0); /退出登陆);p3.add(jb5);content = this.getContentPane(); /布局定义content.setLayout(new BorderLayout();content.add(p1,BorderLayout.NORTH); /定义顶部为面板p1content.add(p2,BorderLayout.CENTER); /定义中部为面板p2content.add(p3,BorderLayout.SOUTH); /定义底部为面板p3this.pack();this.setTitle(进入界面); /定义为窗口名称this.setSize(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 ) /判断是否是jb1 new Zdqk(key); /进入ZdqksetVisible( false); if (event.getSource()=jb2 ) /判断是否是jb2 new Zdck(key); /进入ZdcksetVisible( false); if (event.getSource()=jb3 ) /判断是否是jb3 new Cxye(key); /进入CxyesetVisible( false); 图3进入KQ界面4、自动存款模块设计在取款模块中,和其它界面也是同样的结构,有文本框和按钮还有标签,用户在文本框中输入它想存入的数额,单击确定,就可以存入,如果输错了或者是不想存了,可以单击取消,退出的选择界面。代码如下所示:import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Zdck extends JFrame implements ActionListener JPanel p1,p2,p3; /定义3个面板JLabel l1; /定义1个标签JButton jb1,jb2; /定义2个按钮JTextField jtf1; /定义一个文本框ImageIcon myimage; /定义导入图片Container content; /定义一个容器Guest key; /定义客户类传从参数keypublic Zdck(Guest key)this.key=key; /把key传到顶层容器p1=new JPanel(); /定义第一个面板myimage = new ImageIcon(yl1.jpg); /定义填入的图片l1 = new JLabel(myimage); p1.add(l1);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=new JButton(返回); /定义一个按钮返回jb2.addActionListener( /定义一个匿名类监听new ActionListener()public void actionPerformed(ActionEvent event)KQActionPerformed(event););p3.add(jb1);p3.add(jb2);content=this.getContentPane(); /布局定义content.setLayout(new BorderLayout();content.add(p1,BorderLayout.NORTH); /定义顶部为面板p1 content.add(p2,BorderLayout.CENTER); /定义中部为面板p2content.add(p3,BorderLayout.SOUTH); /定义底部为面板p3this.pack();this.setTitle(自 动 存 款); /定义为窗口名称this.setSize(320,300); / 定义窗口的大小this.setResizable(false);this.show(); /显示public void actionPerformed (ActionEvent e) /接口监听类 if(e.getSource()=jb1) /判断是是否是jb1double money = Double.parseDouble(jtf1.getText(); if(money0)JOptionPane.showMessageDialog(this,对不起,你所存的钱不是整百的!);jtf1.setText();return; JOptionPane.showMessageDialog(this,成功取款+jtf1.getText()+元!);/一个提示框填出你成功存了多少key.cunkuan(money); /把存的钱传回客户类jtf1.setText(0); return; public void KQActionPerformed ( ActionEvent event ) /匿名类监听过程 if (event.getSource()=jb2 ) /判断要是jb2 new KQ(key); /返回KQ界面setVisible( false); 图4自动存款 图4-1存款成功5、自动取款模块设计在取款模块中,和其它界面也是同样的结构,有文本框和按钮还有标签,用户在文本框中输入它想取的数额,但必须是100的倍数,当然取款时不能超过卡里的余额没卡里的余额不可以为负数,否则会弹出报错的窗口,其代码为:import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Zdqk extends JFrame implements ActionListener JPanel p1,p2,p3; /定义3个面板JLabel l1; /定义1个标签JButton jb1,jb2; /定义2个按钮JTextField jtf1; /定义一个文本框ImageIcon myimage; /定义导入图片Container content; /定义一个容器 Guest key; /定义客户类传从参数keypublic Zdqk(Guest key)this.key=key; /把key传到顶层容器p1=new JPanel(); /定义第一个面板myimage = new ImageIcon(yl1.jpg); /定义填入的图片 l1 = new JLabel(myimage); /定义把图片放在标签的上面p1.add(l1);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=new JButton(返回); /定义一个按钮返回jb2.addActionListener(this); /jb1申请一个监听p3.add(jb1);p3.add(jb2);content=this.getContentPane(); /布局定义content.setLayout(new BorderLayout();content.add(p1,BorderLayout.NORTH); /定义顶部为面板p1content.add(p2,BorderLayout.CENTER); /定义中部为面板p2content.add(p3,BorderLayout.SOUTH); /定义底部为面板p3this.pack(); this.setTitle(自 动 取 款); /定义为窗口名称 this.setSize(320,300); / 定义窗口的大小this.setResizable(false);this.show();public void actionPerformed (ActionEvent e) /接口监听类 if(e.getSource()=jb1) /判断是是否是jb1Double money = Double.parseDouble(jtf1.getText(); if(money%100!=0)JOptionPane.showMessageDialog(this,对不起,你所取的钱不是整百的!);jtf1.setText();return; if(moneykey.jine )if(money5000)JOptionPane.showMessageDialog(this,取款+jtf1.getText()+元!失败,已经超过了5000元!);jtf1.setText();return;JOptionPane.showMessageDialog(this,成功取款+jtf1.getText()+元!);/一个提示框填出你成功取了多少key.quqian(money); /把存的钱传回客户类jtf1.setText();return;elseJOptionPane.showMessageDialog(this,你的卡即将要已透支); jtf1.setText();if (e.getSource()=jb2 )/判断是是否是jb2 new KQ(key); /放回KQsetVisible( false); 当取款时如果超过卡里的余额的话就会报图5的错误。图5已超出你的你的剩余金额6、查询余额模块设计查询余额的界面主要有文本框,标签,按钮,主要功能是在上一级选择菜单中选择查询余额,就会弹出查询余额的这个对话框。其代码如下:import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Cxye extends JFrame implements ActionListenerJPanel p1,p2,p3; /定义3个面板JLabel l1; /定义1个标签JButton jb1; /定义3个按钮 ImageIcon myimage; /定义导入图片Container content; /定义一个容器Guest key; /定义客户类传从参数keypublic Cxye(Guest key) this.key=key; /把key传到顶层容器p1=new JPanel(); /定义第一个面板myimage = new ImageIcon(yl1.jpg); /定义填入的图片l1 = new JLabel(myimage); /定义把图片放在标签的上面p1.add(l1);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(p1,BorderLayout.NORTH); /定义顶部为面板p1content.add(p2,BorderLayout.CENTER); /定义中部为面板p2 content.add(p3,BorderLayout.SOUTH); /定义底部为面板p3 this.pack();this.setTitle(查 询 余 额); /定义为窗口名称this.setSize(320,300); / 定义窗口的大小this.setResizable(false);this.show();public void actionPerformed ( ActionEvent e ) /接口监听类if (e.getSource()=jb1 ) /判断是否是jb1 new KQ(key); /放回KQsetVisible( false); 7、修改密码模块设计修改密码的界面主要有文本框,标签,按钮,主要功能是先在输入原始密码 的文本框中输入原来的密码,然后在输入要修改的密码的文本框中输入新密码,在确认新密码后,才能真正的将密码修改成功。代码如下所示:import java.awt.BorderLayout;import java.awt.Container;import java.awt.event.*;import javax.swing.*;import java.util.*;class Xgmm extends JFrame implements ActionListenerJPanel p1,p2,p3; /定义3个面板JLabel l1, l2, l3, l4; /定义4个标签JTextField jtf1,jtf2,jtf3; /定义3个文本框JButton jb1,jb2; /定义2个按钮JPasswordField mima1; JPasswordField mima2; JPasswordField mima3; ImageIcon myimage; /定义导入图片Container content; /定义一个容器Guest key; /定义客户类传从参数keypublic Xgmm(Guest key)this.key=key; /把key传到顶层容器p1 = new JPanel(); /定义第一个面板myimage = new ImageIcon(yl1.jpg); /定义填入的图片l1 = new JLabel(myimage); /定义把图片放在标签的上面 p1.add(l1);p2=new JPanel(); /定义第二个面板l2=new JLabel(请输入原来的密码:); /定义标签请输入原始密码:l3=new JLabel(输入要修改的密码:); /定义标签输入要修改的密码l4=new JLabel(确认输入的新密码:); /定义标签确认输入的新密码:/jtf1=new JTextField(15); /定义文本框jtf1/jtf2=new JTextField(15); /定义文本框jtf2/jtf3=new JTextField(15); /定义文本框jtf3mima1=new JPasswordField(15);mima2=new JPasswordField(15);mima3=new JPasswordField(15);p2.add(l2);p2.add(mima1);p2.add(l3);p2.add(mima2);p2.add(l4);p2.add(mima3);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);content = this.getContentPane(); /布局定义content.setLayout(new BorderLayout();content.add(p1,BorderLayout.NORTH); /定义顶部为面板p1content.add(p2,BorderLayout.CENTER); /定义中部为面板p2 content.add(p3,BorderLayout.SOUTH); /定义底部为面板p3 this.pack();this.setTitle(修 改 密 码); /定义为窗口名称this.setSize(400,350); / 定义窗口的大小this.setResizable(false);this.show(); /显示public void actionPerformed(ActionEvent e) /接口监听类 if(mima2.getText().length()6|mima3.getText().length()6)JOptionPane.showMessageDialog( this,密码小于6位,请重新输入!); mima2.setText();mima3.setText();return;if(e.getSource()=jb1) /判断是否是jb1if(mima1.getText().equals(key.pswf) if(mima1.getText().length()6)JOptionPane.showMessageDialog( this,密码小于6位,请重新输入!);return ;if (mima2.getText().equals(mima3.getText() if (mima2.getText().equals(mima1.getText()JOptionPane.showMessageDialog( this,修改失败,新密码与原始密码一致,请重新输入!);mima1.setText();mima2.setText();mima3.setText();return;key.xiugai(mima2.getText(); /把改的密码
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机电设备安装无线控制系统方案
- 混凝土浇筑前预处理与清理方案
- 标准厂房信息化管理系统建设方案
- 水稻有机肥课件
- 水电站发电系统优化方案
- 水电站新员工培训课件
- 知识点1.2构成的分类特点和要素设计构成设计造型83课件
- 二零二五年度文化产业共享用工合作协议范本
- 二零二五年度新型建筑材料砌砖工程个人承包合同范本
- 2025版殡葬用品售后服务合同规范文本
- 广东省东莞市2024-2025学年七年级下学期期末语文试题(含答案)
- 项目成本预算管理制度
- 2025年成都教师招聘考试教育公共基础知识真题及答案
- 中学语文教学资源开发与利用指南
- 2025年材料管理岗位考试题库
- 年级主任职责详解及管理要点
- 储能项目投资测算方案
- 【25秋】统编版小学语文二年级上册-《第八单元大单元设计》课件
- 2025年长沙中考化学试卷真题解读及复习备考指导
- 舆情安全管理办法
- 替换车管理办法规定
评论
0/150
提交评论