1目录1·设计目的.......................................................................................................................................22·功能介绍.......................................................................................................................................23·概要设计.......................................................................................................................................23.1需求分析............................................................................................................................23.2自定义类说明....................................................................................................................33.3界面设计思想....................................................................................................................33.4方法定义说明....................................................................................................................34·详细设计.......................................................................................................................................44.1程序流程图.........................................................................................................................44.2登陆界面设计.....................................................................................................................5具体实现过程...........................................................................................................................5关键代码设计...........................................................................................................................55·设计心得与体会.......................................................................................................................2521·设计目的使用图形用户界面。当输入给定的卡号和密码(初始卡号和初始密码)时,系统能登录ATM柜员机系统2·功能介绍(1)查询余额:初始余额为10000元(2)ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。(3)ATM存款:不能出现负存款。(4)修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。3·概要设计3.1需求分析使用ATM机可以节约人力资源,方便用户进行简单常用操作,并且可以为用户提供全天候的服务,提高银行效率。33.2自定义类说明a:Guest类定义客户类,该类主要提供用户的各种操作提供定义变量b:DENGRU类为主类,主要有按钮、文本框,组合框,标签,在组合中选择账号,在密码的文本框中输入各个账号所对应的密码,单击登录按钮可以进入选择界面,如果密码错误,就会弹出对话框,提示“密码错误,拒绝登录”。c:KQ类为选择界面模块,在选择模块服务中,有各种ATM的服务功能,只要在用户该界面中选择按钮,它会弹出各个相应的界面。d:Zdqk类为取款类,在取款模块中,用户在文本框中输入它想取的数额,但必须是100的倍数,否则会弹出报错窗口,而且每一次最多只能去5000快,否则会弹出报错窗口,当然取款时不能超过卡里的余额没卡里的余额不可以为负数,否则会弹出报错的窗口。e:Zdck类为自动存款类,用户在文本框中输入它想存入的数额,单击确定,就可以存入,如果输错了或者是不想存了,可以单击取消,退出的选择界面。f:Cxye类为查询余额类,查询余额的界面主要有文本框,标签,按钮,主要功能是在上一级选择菜单中选择查询余额,就会弹出查询余额的这个对话框。g:Xgmm类为修改密码类,主要功能是先在输入原始密码的文本框中输入原来的密码,然后在输入要修改的密码的文本框中输入新密码,新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。3.3界面设计思想图形化界面设计3.4方法定义说明通过DENGRU这个类登入KQ类的界面选择各种操作。44·详细设计4.1程序流程图否是否否ATM柜员机界面登入账户密码码进入界面ATM取款ATM存款查询余额修改密码文本框输入取款数额文本区输入取款数额显示余额输入新旧密码弹出确认数额是否符合要求提示并确认错误提示取款成功是否继续是返回进入界面是否继续否返回进入界面旧密码是否正确根据提示操作重新输入密码54.2登陆界面设计具体实现过程DENGRU类继承JFrame类,有账号选项和输入密码的文本框,在输入密码后登入按钮登入,如果密码错误弹出提示,按要求修改后可重新登入。之后进入KQ类定义的ATM机界面,选择不同的选项进入不同操作,在进行各种操作是有错误时可根据弹出的对话框进行修改。关键代码设计importjavax.swing.*;importjavax.swing.event.*;importjava.awt.*;importjava.awt.event.*;importjava.util.*;classGuest//定义客户类{Stringzh;//定义账号Stringpswf;//定义密码doublejine;//定义金额publicGuest(){}//构造GuestpublicGuest(Stringzh,Stringpswf,doublejine){this.zh=zh;//带入顶层容器,账号,密码,金额this.pswf=pswf;this.jine=jine;}Stringgetzh()//定义成员变量账号{returnzh;//成员方法}doublesetMima(doublepswf)//定义成员变量密码是6{returnpswf;//成员方法}doublegetJine()//定义成员变量金额{returnjine;//定义成员方法}voidcunkuan(doublemoney)//定义成员变量存款{jine=jine+money;//定义成员方法}voidquqian(doublemoney)//定义成员变量取款{jine=jine-money;//定义成员方法}Stringxiugaim(Stringmi)//定义成员变量密码{pswf=mi;//定义成员方法returnpswf;}}publicclassDENGRUextendsJFrameimplementsActionListener//导入接口类{JPanelp1,p2,p3;JLabell1,l2,l3,l4;JPasswordFieldpswf;JButtonjb1,jb2,jb3;JTextFieldjtf1;JComboBoxjc1;ImageIconmyimage;Containercontent;Guest[]g=newGuest[4];publicDENGRU(){g[0]=newGuest(chengchao,199101,10000);帐号,密码,钱数g[1]=newGuest(baijing,199102,10000);g[2]=newGuest(gaolingling,199103,10000);g[3]=newGuest(zhaofengying,199104,10000);p1=newJPanel();myimage=new7ImageIcon(yl1.jpg);l1=newJLabel(myimage);的上面p1.add(l1);p2=newJPanel();l2=newJLabel(卡号:);jc1=newJComboBox();jc1.addItem(chengchao);jc1.addItem(baijing);jc1.addItem(zhaofengying);jc1.addItem(gaolingling);jc1.setSelectedIndex(0);jc1.setEditable(true);l3=newJLabel(密码:);pswf=newJPasswordField(12);l4=newJLabel(如果没有账号请注册不能登录);/*jb3=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);//关闭、退出this.validate();8}pu