本人java课设ATM柜员机模拟程序共参考Word下载.docx
《本人java课设ATM柜员机模拟程序共参考Word下载.docx》由会员分享,可在线阅读,更多相关《本人java课设ATM柜员机模拟程序共参考Word下载.docx(28页珍藏版)》请在冰豆网上搜索。
/成员方法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.*;
publicclassKQextendsJFrameimplementsActionListener/导入接口类JPanelp1,p2,p3;
/定义3个面板JLabell1;
/定义1个标签JButtonjb1,jb2,jb3,jb4,jb5;
/定义5个按钮ImageIconmyimage;
/定义一个容器Guestkey;
/定义客户类传从参数keypublicKQ(Guestkey)this.key=key;
/把key传到顶层容器p1=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(jb4);
/定义第三个面板jb5=newJButton(退出);
/定义jb5按钮退出jb5.addActionListener(/定义一个匿名类newActionListener()publicvoidactionPerformed(ActionEventevent)System.exit(0);
/退出登陆);
p3.add(jb5);
this.setTitle(进入界面);
/定义为窗口名称this.setSize(400,300);
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、自动存款模块设计在取款模块中,和其它界面也是同样的结构,有文本框和按钮还有标签,用户在文本框中输入它想存入的数额,单击确定,就可以存入,如果输错了或者是不想存了,可以单击取消,退出的选择界面。
classZdckextendsJFrameimplementsActionListener/导入接口类JPanelp1,p2,p3;
/定义1个标签JButtonjb1,jb2;
/定义2个按钮JTextFieldjtf1;
/定义一个文本框ImageIconmyimage;
/定义客户类传从参数keypublicZdck(Guestkey)this.key=key;
/把key传到顶层容器p1=newJPanel();
/定义第二个面板l1=newJLabel(请输入您要存入的金额:
/定义一个标签请输入您要存入的金额:
jtf1=newJTextField(10);
/定义一个文本框p2.add(l1);
p2.add(jtf1);
/定义第三个面板jb1=newJButton(确定);
/定义一个按钮确定jb1.addActionListener(this);
/jb1申请一个监听jb2=newJButton(返回);
/定义一个按钮返回jb2.addActionListener(/定义一个匿名类监听newActionListener()publicvoidactionPerformed(ActionEventevent)KQActionPerformed(event);
p3.add(jb1);
p3.add(jb2);
/布局定义content.setLayout(neBorderLayout();
this.setTitle(自动存款);
/定义为窗口名称this.setSize(320,300);
/显示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快,当然取款时不能超过卡里的余额没卡里的余额不可以为负数,否则会弹出报错的窗口,其代码为:
classZdqkextendsJFrameimplementsActionListener/导入接口类JPanelp1,p2,p3;
/定义客户类传从参数keypublicZdqk(Guestkey)this.key=key;
/定义第二个面板l1=newJLabel(请输入您要取的金额:
/定义一个标签请输入您要取的金额:
/定义一个按钮返回jb2.addActionListener(this);
/jb1申请一个监听p3.add(jb1);
this.setTitle(自动取款);
publicvoidactionPerformed(ActionEvente)/接口监听类if(e.getSource()=jb1)/判断是是否是jb1doublemoney=Double.parseDouble(jtf1.getText();
/把money转成Doubleif(moneykey.jine)JOptionPane.showMessageDialog(this,成功取款+jtf1.getText()+元!
/一个提示框填出你成功取了多少key.quqian(money);
elseJOptionPane.showMessageDialog(this,你的卡即将要已透支);
/一个提示框提示你你的卡即将要已透支if(e.getSource()=jb2)/判断是是否是jb2newKQ(key);
/放回KQsetVisible(false);
图6.自动取款当取款成功时就会提示如图7的消息。
图7.成功取款提示当取款时如果超过卡里的余额的话就会报图8和9的错误。
图8.自动取款图9.以超出你的剩余金额6、查询余额模块设计查询余额的界面主要有文本框,标签,按钮,主要功能是在上一级选择菜单中选择查询余额,就会弹出查询余额的这个对话框。
classCxyeextendsJFrameimplementsActionListener/导入接口类JPanelp1,p2,p3;
/定义1个标签JButtonjb1;
/定义3个按钮ImageIconmyimage;
/定义客户类传从参数keypublicCxye(Guestkey)this.key=key;
/定义第二个面板l1=newJLabel(您的剩余金额为:
+key.getJine();
?
p2.add(l1);
/定义第三个面板jb1=newJButton(返回);
jb1.addActionListener(this);
this.setTitle(查询余额);
publicvoidactionPerformed(ActionEvente)/接口监听类if(e.getSource()=jb1)/判断是否是jb1newKQ(key);
图10.查询余额取款500后看查询11图:
图11.存款600后看查询12图图12.7、修改密码模块设计修改密码的界面主要有文本框,标签,按钮,主要功能是先在输入原始密码的文本框中输入原来的密码,然后在输入要修改的密码的文本框中输入新密码,在确认新密码后,才能真正的将密码修改成功。
importjava.util.*;
classXgmmextendsJFr