版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、河南机电高等专科学校学生课程设计报告实验课程名称 Java程序设计 开课实验室 实验楼308机房 系、部 计科系 年级 11 专业班 软件技术 学 生 姓 名 宋亚澎 学 号 111012228 开 课 时 间 2012 至 2013 学 年 第 一 学期总 成 绩教师签名Java程序设计课程设计报告 2012年12月24日系部计科系年级、专业、班软件112(对口)姓名 宋亚澎课程名称Java程序设计项目名称ATM柜员机模拟程序指导教师戴冬教师评语教师签名:戴冬年 月 日一、课程设计目的及要求目的:1.熟练掌握Java面向对象程序设计的基础知识2.熟练掌握Java中常用的Swing组件的使用方
2、法3.熟练掌握使用JDBC操作数据库的方法4.通过实训,培养学生分析和解决实际问题的能力,提高调试和分析应用程序的能力,并为后续的Java高级编程等专业课程的学习奠定良好的基础。要求:当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以进行:1.查询余额:初始余额为1000元2 .ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支3 .ATM存款:不能出现负存款4 .修改密码:新密码长度不小于6为,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。二、使用仪器、材料1.
3、开发工具: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
4、 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 =
5、 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 ActionListener
6、JPanel 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&
7、quot;,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); /定义把图片放在标签的上
8、面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
9、); /里面还可以输入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("注销"); /定义按钮注销jb
10、2jb2.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(
11、);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) /如果
12、点击是jb1按钮就进入For for(int i=0;i<4;i+) /判断名字在数组的位置if(x.equals(gi.zh) /检查到开始判断是否匹配 if(pswf.getText().equals(gi.pswf) /名字匹配成功后判断密码是否成功 new KQ(gi); /密码真确后进入KQ的界面 setVisible( false); else JOptionPane.showMessageDialog( this,"密码错误,拒绝登陆"); pswf.setText(""); elseSystem.exit(0); /注销事件退出 p
13、ublic 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 p
14、1,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
15、); /定义把图片放在标签的上面 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.addActio
16、nListener(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
17、 actionPerformed( ActionEvent event ) System.exit(0); /退出登陆 );p3.add(jb5); content = this.getContentPane(); /布局定义 content.setLayout(new BorderLayout(); content.add(p1,BorderLayout.NORTH); /定义顶部为面板p1 content.add(p2,BorderLayout.CENTER); /定义中部为面板p2 content.add(p3,BorderLayout.SOUTH); /定义底部为面板p3 this.p
18、ack(); this.setTitle("进入界面"); /定义为窗口名称 this.setSize(400,300); / 定义窗口的大小 this.setResizable(false); this.show(); public void actionPerformed ( ActionEvent event ) /接口监听 if (event.getSource()=jb4 ) /判断是否是jb4 new Xgmm(key); /进入Xgmm setVisible( false); if (event.getSource()=jb1 ) /判断是否是jb1 new
19、Zdqk(key); /进入Zdqk setVisible( false); if (event.getSource()=jb2 ) /判断是否是jb2 new Zdck(key); /进入Zdck setVisible( false); if (event.getSource()=jb3 ) /判断是否是jb3 new Cxye(key); /进入Cxye setVisible( false); 图3进入KQ界面4、自动存款模块设计在取款模块中,和其它界面也是同样的结构,有文本框和按钮还有标签,用户在文本框中输入它想存入的数额,单击确定,就可以存入,如果输错了或者是不想存了,可以单击取消,退
20、出的选择界面。代码如下所示: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; /定义客户类传从参数
21、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); p
22、3=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.ad
23、d(jb2);content=this.getContentPane(); /布局定义content.setLayout(new BorderLayout();content.add(p1,BorderLayout.NORTH); /定义顶部为面板p1 content.add(p2,BorderLayout.CENTER); /定义中部为面板p2content.add(p3,BorderLayout.SOUTH); /定义底部为面板p3 this.pack(); this.setTitle("自 动 存 款"); /定义为窗口名称 this.setSize(320,300)
24、; / 定义窗口的大小 this.setResizable(false); this.show(); /显示 public void actionPerformed (ActionEvent e) /接口监听类 if(e.getSource()=jb1) /判断是是否是jb1 double money = Double.parseDouble(jtf1.getText(); if(money<0) JOptionPane.showMessageDialog(this,"对不起,存的金额不能为负数!"); jtf1.setText(""); retu
25、rn; if(money%100!=0&&money>0) JOptionPane.showMessageDialog(this,"对不起,你所存的钱不是整百的!"); jtf1.setText(""); return; JOptionPane.showMessageDialog(this,"成功取款"+jtf1.getText()+"元!");/一个提示框填出你成功存了多少 key.cunkuan(money); /把存的钱传回客户类 jtf1.setText("0");
26、 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
27、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; /定义客户类传从参数key public Zdqk(Guest key) this.key=ke
28、y; /把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 J
29、Panel(); /定义第三个面板 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,
30、BorderLayout.NORTH); /定义顶部为面板p1 content.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)
31、 /接口监听类 if(e.getSource()=jb1) /判断是是否是jb1 Double money = Double.parseDouble(jtf1.getText(); if(money%100!=0) JOptionPane.showMessageDialog(this,"对不起,你所取的钱不是整百的!"); jtf1.setText(""); return; if(money<key.jine ) if(money<0) JOptionPane.showMessageDialog(this,"取款失败,取款不能为负数
32、!"); jtf1.setText(""); return; if(money>5000) JOptionPane.showMessageDialog(this,"取款"+jtf1.getText()+"元!失败,已经超过了5000元!"); jtf1.setText(""); return; JOptionPane.showMessageDialog(this,"成功取款"+jtf1.getText()+"元!");/一个提示框填出你成功取了多少 key.q
33、uqian(money); /把存的钱传回客户类 jtf1.setText(""); return; else JOptionPane.showMessageDialog(this,"你的卡即将要已透支"); jtf1.setText(""); if (e.getSource()=jb2 )/判断是是否是jb2 new KQ(key); /放回KQ setVisible( false); 当取款时如果超过卡里的余额的话就会报图5的错误。图5已超出你的你的剩余金额6、查询余额模块设计查询余额的界面主要有文本框,标签,按钮,主要功能是在上
34、一级选择菜单中选择查询余额,就会弹出查询余额的这个对话框。其代码如下: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; /定义客户类传从参数key publ
35、ic 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
36、 JButton("返回"); jb1.addActionListener(this); p3.add(jb1); content=this.getContentPane(); /布局定义 content.setLayout(new BorderLayout(); content.add(p1,BorderLayout.NORTH); /定义顶部为面板p1 content.add(p2,BorderLayout.CENTER); /定义中部为面板p2 content.add(p3,BorderLayout.SOUTH); /定义底部为面板p3 this.pack(); th
37、is.setTitle("查 询 余 额"); /定义为窗口名称 this.setSize(320,300); / 定义窗口的大小 this.setResizable(false); this.show(); public void actionPerformed ( ActionEvent e ) /接口监听类 if (e.getSource()=jb1 ) /判断是否是jb1 new KQ(key); /放回KQ setVisible( false); 7、修改密码模块设计修改密码的界面主要有文本框,标签,按钮,主要功能是先在输入原始密码 的文本框中输入原来的密码,然后
38、在输入要修改的密码的文本框中输入新密码,在确认新密码后,才能真正的将密码修改成功。代码如下所示: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; /
39、定义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"); /定义填入的图
40、片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(); /定义第三个面板
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024土地估价师协会土地评估标准制定与实施合同3篇
- 2024年度智能穿戴设备生产与销售合同3篇
- 2025关于正规工业品买卖合同范本
- 2024年夹板买卖合同范本:涉及夹板产品生命周期管理与服务保障3篇
- 零售店铺设计师招聘协议模板
- 企业饮酒文化指南
- 煤质与经济效益
- 厂房消防改造工程协议
- 超市购物顾客证件管理办法
- 安徽省阜阳市颍上县2024-2025学年高一上学期期中考试历史试题(解析版)
- 张成福《公共管理学》(修订版)课后习题详解
- 托育、早教中心岗位绩效考核标准
- 小罐茶行业分析报告
- 福建省国土空间规划(2021-2035年)公众版
- 西方社会思想两千年智慧树知到期末考试答案章节答案2024年复旦大学
- 新时代大学生劳动教育智慧树知到期末考试答案章节答案2024年黑龙江农业经济职业学院
- 新生儿静脉留置针穿刺
- 外贸公司介绍
- 2024年度-银行不良清收技巧培训课件(学员版)
- 2024年贵州职业技术学院单招职业技能测试题库及答案解析
- 利那洛肽治疗便秘病例
评论
0/150
提交评论