本人java课设ATM柜员机模拟程序共参考.docx

上传人:b****6 文档编号:7103225 上传时间:2023-01-17 格式:DOCX 页数:28 大小:429.28KB
下载 相关 举报
本人java课设ATM柜员机模拟程序共参考.docx_第1页
第1页 / 共28页
本人java课设ATM柜员机模拟程序共参考.docx_第2页
第2页 / 共28页
本人java课设ATM柜员机模拟程序共参考.docx_第3页
第3页 / 共28页
本人java课设ATM柜员机模拟程序共参考.docx_第4页
第4页 / 共28页
本人java课设ATM柜员机模拟程序共参考.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

本人java课设ATM柜员机模拟程序共参考.docx

《本人java课设ATM柜员机模拟程序共参考.docx》由会员分享,可在线阅读,更多相关《本人java课设ATM柜员机模拟程序共参考.docx(28页珍藏版)》请在冰豆网上搜索。

本人java课设ATM柜员机模拟程序共参考.docx

本人本人java课设课设ATM柜员机模拟程序共参考柜员机模拟程序共参考ATM柜员机模拟程序一、实训设备与工具个人计算机(奔腾486档以上),windowsXP,JCreator或Editplus编译开发环境二、实验目的与要求目的:

掌握图形用户界面设计方法,掌握常用swing组件的使用和事件处理程序设计;掌握文件的I/O操作或程序对数据库的访问要求:

当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以进行:

1、查询余额:

初始余额为1000元2、ATM取款:

每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支3、ATM存款:

不能出现负存款4、修改密码:

新密码长度不小于6为,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。

三、实验实现的步骤1、分析题目2、根据自己的想法搭建程序主界面3、为各菜单项添加事件处理程序四、ATM柜员机界面设计图图1ATM功能结构示意图1、Guest类代码如下:

classGuest/定义客户类Stringzh;/定义账号Stringpswf;/定义密码doublejine;/定义金额publicGuest()/构造GuestpublicGuest(Stringzh,Stringpswf,doublejine)this.zh=zh;/带入顶层容器,账号,密码,金额this.pswf=pswf;this.jine=jine;Stringgetzh()/定义成员变量账号returnzh;/成员方法doublesetMima(doublepswf)/定义成员变量密码returnpswf;/成员方法doublegetJine()/定义成员变量金额returnjine;/定义成员方法voidcunkuan(doublemoney)/定义成员变量存款jine=jine+money;/定义成员方法voidquqian(doublemoney)/定义成员变量取款jine=jine-money;/定义成员方法Stringxiugaim(Stringmi)/定义成员变量密码pswf=mi;/定义成员方法returnpswf;2、ATM柜员机主界面模块设计主界面的设计,主要有按钮、文本框,组合框,标签,在组合中选择账号,在密码的文本框中输入各个账号所对应的密码,单击登录按钮可以进入选择界面,如果密码错误,就会弹出如图3的对话框,提示“密码错误,拒绝登录”importjavax.swing.*;importjavax.swing.event.*;importjava.awt.*;importjava.awt.event.*;/导入包classDENGRUextendsJFrameimplementsActionListener/导入接口类JPanelp1,p2,p3;/定义3个面板JLabell1,l2,l3,l4;/定义4个标签JPasswordFieldpswf;/定义一个密码文本JButtonjb1,jb2,jb3;/定义3个按钮JTextFieldjtf1;/定义一个文本框JComboBoxjc1;/定义一个组合框ImageIconmyimage;/定义导入图片Containercontent;/定义一个容器Guestg=newGuest4;/定义客户类数组publicDENGRU()/布局g0=newGuest(chengchao,888888,5000);/客户类数组里给的帐号,密码,钱数g1=newGuest(baijing,888888,5000);g2=newGuest(gaolingling,888888,5000);g3=newGuest(zhaofengying,888888,5000);p1=newJPanel();/定义第一个面板myimage=newImageIcon(yl1.jpg);/定义填入的图片l1=newJLabel(myimage);/定义把图片放在标签的上面p1.add(l1);p2=newJPanel();/定义第二个面板l2=newJLabel(卡号:

);/定义标签l2jc1=newJComboBox();/定义组合框jc1.addItem(chengchao);/组合框里赋值jc1.addItem(baijing);jc1.addItem(zhaofengying);jc1.addItem(gaolingling);jc1.setSelectedIndex(0);/组合框里的下标从0开始jc1.setEditable(true);/里面还可以输入l3=newJLabel(密码:

);/定义标签l3pswf=newJPasswordField(12);/定义密码文本l4=newJLabel(如果没有账号请注册);/定义标签l4jb3=newJButton(注册);/添加注册按钮p2.add(l2);/把它们分别镶在面板上p2.add(jc1);p2.add(l3);p2.add(pswf);p2.add(l4);p2.add(jb3);p3=newJPanel();/定义第三个面板jb1=newJButton(登录);/定义按钮登录jb1jb1.addActionListener(this);/jb1申请监听jb2=newJButton(注销);/定义按钮注销jb2jb2.addActionListener(this);/jb2申请监听p3.add(jb1);/把它们添加到p3面板里p3.add(jb2);content=this.getContentPane();/布局定义content.setLayout(newBorderLayout();content.add(p1,BorderLayout.NORTH);/定义顶部为面板p1content.add(p2,BorderLayout.CENTER);/定义中部为面板p2content.add(p3,BorderLayout.SOUTH);/定义底部为面板p3this.pack();this.setTitle(ATM柜员机);/定义为窗口名称this.setSize(600,300);/定义窗口的大小this.setResizable(false);this.show();/显示this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/关闭、退出publicvoidactionPerformed(ActionEvente)/监听类Stringx=jc1.getSelectedItem().toString();/把jc1的值强制转换成字符if(e.getSource()=jb1)/如果点击是jb1按钮就进入Forfor(inti=0;i4;i+)/判断名字在数组的位置if(x.equals(gi.zh)/检查到开始判断是否匹配if(pswf.getText().equals(gi.pswf)/名字匹配成功后判断密码是否成功newKQ(gi);/密码真确后进入KQ的界面setVisible(false);elseJOptionPane.showMessageDialog(this,密码错误,拒绝登陆);/密码错误弹出提示密码错误elseSystem.exit(0);/注销事件退出publicstaticvoidmain(Stringargs)/定义的MAIN,才能进入。

newDENGRU();图1主界面图2密码输出错误提示栏3、选择界面模块设计在选择模块服务中,有各种ATM的服务功能,只要在用户该界面中选择按钮,它会弹出各个相应的界面,其中的代码为:

importjavax.swing.*;importjavax.swing.event.*;importjava.awt.*;importjava.awt.event.*;publicclassKQextendsJFrameimplementsActionListener/导入接口类JPanelp1,p2,p3;/定义3个面板JLabell1;/定义1个标签JButtonjb1,jb2,jb3,jb4,jb5;/定义5个按钮ImageIconmyimage;/定义导入图片Containercontent;/定义一个容器Guestkey;/定义客户类传从参数keypublicKQ(Guestkey)this.key=key;/把key传到顶层容器p1=newJPanel();/定义第一个面板myimage=newImageIcon(yl1.jpg);/定义填入的图片l1=newJLabel(myimage);/定义把图片放在标签的上面p1.add(l1);p2=newJPanel();/定义第二个面板jb1=newJButton(ATM取款);/定义jb1按钮ATM取款jb1.addActionListener(this);/jb1申请监听jb2=newJButton(ATM存款);/定义jb2按钮ATM存款jb2.addActionListener(this);/jb2申请监听jb3=newJButton(查询余额);/定义jb3按钮查询余额jb3.addActionListener(this);/jb3申请监听jb4=newJButton(修改密码);/定义jb4按钮修改密码jb4.addActionListener(this);/jb4申请监听p2.add(jb1);p2.add(jb2);p2.add(jb3);p2.add(jb4);p3=newJPanel();/定义第三个面板jb5=newJButton(退出);/定义jb5按钮退出jb5.addActionListener(/定义一个匿名类newActionListener()publicvoidactionPerformed(ActionEventevent)System.exit(0);/退出登陆);p3.add(jb5);content=this.getContentPane();/布局定义content.setLayout(newBorderLayout();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();publicvoidactionPerformed(ActionEventevent)/接口监听if(event.getSource()=jb4)/判断是否是jb4newXgmm(key);/进入XgmmsetVisible(false);if(event.getSource()=jb1)/判断是否是jb1newZdqk(key);/进入ZdqksetVisible(false);if(event.getSource()=jb2)/判断是否是jb2newZdck(key);/进入ZdcksetVisible(false);if(event.getSource()=jb3)/判断是否是jb3newCxye(key);/进入CxyesetVisible(false);图3.进入选择KQ界面4、自动存款模块设计在取款模块中,和其它界面也是同样的结构,有文本框和按钮还有标签,用户在文本框中输入它想存入的数额,单击确定,就可以存入,如果输错了或者是不想存了,可以单击取消,退出的选择界面。

importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;classZdckextendsJFrameimplementsActionListener/导入接口类JPanelp1,p2,p3;/定义3个面板JLabell1;/定义1个标签JButtonjb1,jb2;/定义2个按钮JTextFieldjtf1;/定义一个文本框ImageIconmyimage;/定义导入图片Containercontent;/定义一个容器Guestkey;/定义客户类传从参数keypublicZdck(Guestkey)this.key=key;/把key传到顶层容器p1=newJPanel();/定义第一个面板myimage=newImageIcon(yl1.jpg);/定义填入的图片l1=newJLabel(myimage);/定义把图片放在标签的上面p1.add(l1);p2=newJPanel();/定义第二个面板l1=newJLabel(请输入您要存入的金额:

);/定义一个标签请输入您要存入的金额:

jtf1=newJTextField(10);/定义一个文本框p2.add(l1);p2.add(jtf1);p3=newJPanel();/定义第三个面板jb1=newJButton(确定);/定义一个按钮确定jb1.addActionListener(this);/jb1申请一个监听jb2=newJButton(返回);/定义一个按钮返回jb2.addActionListener(/定义一个匿名类监听newActionListener()publicvoidactionPerformed(ActionEventevent)KQActionPerformed(event););p3.add(jb1);p3.add(jb2);content=this.getContentPane();/布局定义content.setLayout(neBorderLayout();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();/显示publicvoidactionPerformed(ActionEvente)/接口监听类if(e.getSource()=jb1)/判断是是否是jb1doublemoney=Double.parseDouble(jtf1.getText();/把money转成DoubleJOptionPane.showMessageDialog(this,成功取款+jtf1.getText()+元!

);/一个提示框填出你成功存了多少key.cunkuan(money);/把存的钱传回客户类jtf1.setText(0);return;publicvoidKQActionPerformed(ActionEventevent)/匿名类监听过程if(event.getSource()=jb2)/判断要是jb2newKQ(key);/返回KQ界面setVisible(false);图4.自动存款存款成功看图5:

图5.存款成功5、自动取款模块设在取款模块中,和其它界面也是同样的结构,有文本框和按钮还有标签,用户在文本框中输入它想取的数额,但必须是100的倍数,而且每一次最多只能去5000快,当然取款时不能超过卡里的余额没卡里的余额不可以为负数,否则会弹出报错的窗口,其代码为:

importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;classZdqkextendsJFrameimplementsActionListener/导入接口类JPanelp1,p2,p3;/定义3个面板JLabell1;/定义1个标签JButtonjb1,jb2;/定义2个按钮JTextFieldjtf1;/定义一个文本框ImageIconmyimage;/定义导入图片Containercontent;/定义一个容器Guestkey;/定义客户类传从参数keypublicZdqk(Guestkey)this.key=key;/把key传到顶层容器p1=newJPanel();/定义第一个面板myimage=newImageIcon(yl1.jpg);/定义填入的图片l1=newJLabel(myimage);/定义把图片放在标签的上面p1.add(l1);p2=newJPanel();/定义第二个面板l1=newJLabel(请输入您要取的金额:

);/定义一个标签请输入您要取的金额:

jtf1=newJTextField(10);/定义一个文本框p2.add(l1);p2.add(jtf1);p3=newJPanel();/定义第三个面板jb1=newJButton(确定);/定义一个按钮确定jb1.addActionListener(this);/jb1申请一个监听jb2=newJButton(返回);/定义一个按钮返回jb2.addActionListener(this);/jb1申请一个监听p3.add(jb1);p3.add(jb2);content=this.getContentPane();/布局定义content.setLayout(newBorderLayout();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();publicvoidactionPerformed(ActionEvente)/接口监听类if(e.getSource()=jb1)/判断是是否是jb1doublemoney=Double.parseDouble(jtf1.getText();/把money转成Doubleif(moneykey.jine)JOptionPane.showMessageDialog(this,成功取款+jtf1.getText()+元!

);/一个提示框填出你成功取了多少key.quqian(money);/把存的钱传回客户类jtf1.setText(0);return;elseJOptionPane.showMessageDialog(this,你的卡即将要已透支);/一个提示框提示你你的卡即将要已透支if(e.getSource()=jb2)/判断是是否是jb2newKQ(key);/放回KQsetVisible(false);图6.自动取款当取款成功时就会提示如图7的消息。

图7.成功取款提示当取款时如果超过卡里的余额的话就会报图8和9的错误。

图8.自动取款图9.以超出你的剩余金额6、查询余额模块设计查询余额的界面主要有文本框,标签,按钮,主要功能是在上一级选择菜单中选择查询余额,就会弹出查询余额的这个对话框。

importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;classCxyeextendsJFrameimplementsActionListener/导入接口类JPanelp1,p2,p3;/定义3个面板JLabell1;/定义1个标签JButtonjb1;/定义3个按钮ImageIconmyimage;/定义导入图片Containercontent;/定义一个容器Guestkey;/定义客户类传从参数keypublicCxye(Guestkey)this.key=key;/把key传到顶层容器p1=newJPanel();/定义第一个面板myimage=newImageIcon(yl1.jpg);/定义填入的图片l1=newJLabel(myimage);/定义把图片放在标签的上面p1.add(l1);p2=newJPanel();/定义第二个面板l1=newJLabel(您的剩余金额为:

+key.getJine();?

p2.add(l1);p3=newJPanel();/定义第三个面板jb1=newJButton(返回);jb1.addActionListener(this);p3.add(jb1);content=this.getContentPane();/布局定义content.setLayout(newBorderLayout();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();publicvoidactionPerformed(ActionEvente)/接口监听类if(e.getSource()=jb1)/判断是否是jb1newKQ(key);/放回KQsetVisible(false);图10.查询余额取款500后看查询11图:

图11.存款600后看查询12图图12.7、修改密码模块设计修改密码的界面主要有文本框,标签,按钮,主要功能是先在输入原始密码的文本框中输入原来的密码,然后在输入要修改的密码的文本框中输入新密码,在确认新密码后,才能真正的将密码修改成功。

importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.util.*;classXgmmextendsJFr

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 社交礼仪

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1