版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录TOC\o"1-3"\u1课程设计题目描述和基本设计要求 2系统需求分析 2.1功能需求分析 2.2其他需求分析 3系统设计 3.1总体设计 3.2ATM柜员机界面设计 3.3各功能模块设计 3.3.1登陆页面模块设计 3.3.2选择服务模块设计 3.3.3取款模块设计 3.3.4退卡模块设计 3.4异常处理情况说明 4系统实现与测试 5总程序 6课程设计总结 6.1遇到的问题及解决办法 6.2心得体会 ATM柜员机1课程设计题目描述和基本设计要求ATM柜员机主要是由各个Windows窗口组成,它是由登录页面、选择服务、取款、查询余额、修改密码和退卡等功能。它的各种按钮的事件和功能可以简单的模拟ATM柜员机的要求。2系统需求分析2.1功能需求分析主要功能如下所述:要求使用图形用户界面。当输入给定的卡号和密码(初始卡号为000000和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:查询余额:初始余额为50000元ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。ATM存款:不能出现负存款。修改密码:只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。2.2其他需求分析(1)性能描述实时性好、灵活性强、易于不同年龄阶段的人操作。(2)设计约束开发工具:JCrator运行环境:Windows2000以上能实现用户所定义的各项需求。(3)界面要求以Windows窗口形式显示,标题栏为ATM柜员机名称,右上角有最小化按钮、最大化按钮、关闭按钮,不同的窗口中有不同的按钮和选择菜单。3系统设计3.1总体设计我所设计的ATM柜员机主要是由登录页面模块还由选择服务模块组成,其中选择服务模块又由取款模块、查询余额模块、修改密码模块、退卡模块组成。其功能结构图如下所示: 图1ATM功能结构示意图3.2ATM柜员机界面设计一个系统界面的好坏直接影响到用户的操作,界面设计要求样式美观、简单明了、方便易操作。界面主要分为窗体、菜单、按钮和文本输入框几个部分,分别执行相应的操作。(1)窗体的设计窗体整个框架使用Frame类构造,Frame有自己的外边框和自己的标题,创建Frame时可以指定其窗口标题,我创建的窗口标题是各个不同功能的模块的名字,比如说查询余额,还有取款等。相应源代码为:WindowBox(Strings,Accountact){super(“ATM柜员机”);}、Selection(Strings,Accountact){ super(s);}向Frame窗口中添加组件使用add()。例如:button1=newButton("存款"); p1.add(button1); this.add(p1);每个Frame在其右上角都有三个控制图标,分别代表将窗口最小化、窗口最大化和关闭的操作,其中最小化和最大化操作Frame可自动完成,而关闭窗口操作实现需要书写有关的代码,在我的程序中我采用的是对WINDOWS_CLOSING事件做出响应,调用dispose()方法关闭窗口。Frame也可以引发WindowsEvent类代表的窗口事件。相应源代码为:addWindowListener(newWindowAdapter()//窗口侦听器,以从此窗口接收窗口事件{publicvoidwindowClosing(WindowEvente)//处理窗口关闭事件{ System.exit(0); }});}(2)窗体的主要结构的设计我所设计的窗口的主要结构的特点就是每个窗口都对应着一个特定的功能。比如说报各种各样的错,还有各种查询余额、取款、选择服务等,所以它们都是由各种按钮和文本框,标签组成的,而联系各个窗体成为一个整体的就是各个按钮的监听事件。所以整个设计就趋向简单化了。为了定义各个按钮所对应的命令和操作,首先需要将各个按钮注册给实现了动作事件的监听接口ActionListener的监听者,然后为监听者定义actionPerformed(ActionEvente)方法,在这个方法中调用e.getSource()或e.getActionCommand()来判断用户点击的菜单子项,并完成这个菜单子项定义的操作。3.3各功能模块设计3.3.1登陆页面模块设计与ATM柜员机打交道比较多的,也是大家对安全比较关心的问题:密码。所以第一个界面就是要输入密码和卡号才能继续服务。我定义了文本框累的对象tf1,tf2。抓药是用于输入单行的文本;文本区调用publicStringgetText()方法,获取用户想要的字符串。用来判断输入的密码和卡号是否正确,如果不正确的话,则弹出密码或卡号错误的警告框,并用dispose()关掉窗口。3.3.2选择服务模块设计在选择服务模块中,有各种ATM的服务功能,只要用户在该界面中选择按钮,它就会弹出各个相应的界面。每一个按钮都有监听器,在选择了按钮后,java.awt.event中的ActionEvent类创建一个事件对象,并将它传递给方法publicvoidactionPerformed(ActionEvente)中的参数e,监视器就会知道所发生的事件,对此事件进行处理。3.3.3取款模块设计在取款模块中,和其他的界面也是同样的结构。也是有一个文本框和一个按钮还有标签组成的。用户在文本框中输入他想取的数额,但是必须是100的倍数,而且每一次最多只能取5000块。当然了取款的时候也不能超过卡里的余额,再就是卡里的余额不可以为负,否则就会弹出报错的窗口。3.3.4退卡模块设计在退卡模块设计中,这个方法就更加的简单了,它只是用了if(e.getSource()==button4){//退出 System.exit(0); dispose(); }这个方法就可以实现了,这里就不再多说了。3.4异常处理情况说明(1)打开、保存文件时的异常处理需要处理的异常:IOException(2)数据库访问时的异常处理需要处理的异常:SQLException(3)加载类时的异常处理需要处理的异常:ClassNotFindException,当应用程序试图使用Class类中的forName方法通过字符串名加载类时,但是没有找到具有指定名称的类的定义。(4)加载URL时的异常需要处理的异常:MalformedURLException,抛出这一异常指示出现了错误的URL。或者在规范字符串中找不到任何合法协议,或者无法分析字符串。4系统实现与测试编译运行程序后,将会看到如下的界面,如图2所示。如果输入的密码或卡号不正确的话就会报右下图的错误。图2主界面—登陆页面(2)选择服务界面效果当输入的密码和卡号正确,单击确定后就会进入到选择服务的界面,如图3所示。然后就可以选择所需要的服务了。图3选择服务界面(3)取款界面,如图4所示。 图4取款界面(4)查询余额界面,如图7所示。图7查询余额界面图8存款界面图9转账界面经过测试,所有的功能基本上都实现了,而且运行正常。5.总程序packageZDC;//主菜单importjava.awt.*;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjavax.swing.*;importjava.awt.event.*;classPanel1extendsJPanel{JLabellabel1,label2;Panel1(){setLayout(newGridLayout(4,1));label1=newJLabel(""+"银行存取款系统");label2=newJLabel(""+"欢迎你成为本行用户,你可以选择中文或英文方式");add(newJLabel());add(label1);add(label2);add(newJLabel());}}classPanel2extendsJPanel{JButtonbutton1,button2;Panel2(){setLayout(newGridLayout(3,6));button1=newJButton("中文");button2=newJButton("英文");add(newJLabel());add(newJLabel());add(newJLabel());add(newJLabel());add(newJLabel());add(newJLabel());add(newJLabel());add(button1);add(newJLabel());add(newJLabel());add(button2);add(newJLabel());add(newJLabel());add(newJLabel());add(newJLabel());add(newJLabel());add(newJLabel());add(newJLabel());}}classClientextendsJFrameimplementsActionListener{Panel1panel1;Panel2panel2;JFrameframe;Client(Strings){super(s);Containercon=this.getContentPane();con.setLayout(newGridLayout(2,1));panel1=newPanel1();panel2=newPanel2();con.add(panel1);con.add(panel2);panel2.button1.addActionListener(this);panel2.button2.addActionListener(this);this.setVisible(true);this.pack();}publicvoidactionPerformed(ActionEvente){if(e.getActionCommand()=="中文"){this.setVisible(false);newClient00("输入密码");}elseif(e.getActionCommand()=="英文"){StringinputValue=JOptionPane.showInputDialog("Pleaseinputavalue");}}}publicclassmenu{publicstaticvoidmain(String[]args){newClient("用户取款系统");}}packageZDC;//输入密码界面importjava.awt.*;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjavax.swing.*;importjava.awt.event.*;classPanel01extendsJPanel{ JLabellabel1,label2,label3,label4;JPasswordFieldtextA;JTextFieldtextC; staticJTextFieldtextB;chart[]=newchar[4]; Panel01(){ setLayout(newGridLayout(4,4)); for(inti=0;i<4;i++){t[i]=(char)(Math.random()*26+'a');} Stringmm=newString(t); label2=newJLabel("请输入卡号:");label1=newJLabel("请输入密码:"); label3=newJLabel();label4=newJLabel("请输入验证码:");label3.setBackground(Color.white); label3.setForeground(Color.red); textC=newJTextField(10);textC.setForeground(Color.blue); label3.setText(mm); textA=newJPasswordField(6);textA.setEchoChar('*');textB=newJTextField(""); for(inti=0;i<5;i++){add(newJLabel());} add(label2);add(textB);add(newJLabel());add(newJLabel()); add(label1);add(textA);add(newJLabel());add(newJLabel()); add(label4);add(textC);add(label3); } } classPanel02extendsJPanel{ JButtonbutton1,button2; Panel02(){ setLayout(newGridLayout(3,6)); button1=newJButton("确定");button2=newJButton("取消"); for(inti=0;i<7;i++){add(newJLabel());}add(button1);add(newJLabel());add(newJLabel()); add(button2);for(inti=0;i<6;i++){add(newJLabel());} } } classClient00extendsJFrameimplementsActionListener{ Panel01panel1;Panel02panel2;JFrameframe;inti=0,j=0; Client00(Strings){ super(s); Containercon=this.getContentPane(); con.setLayout(newGridLayout(2,1)); panel1=newPanel01();panel2=newPanel02(); con.add(panel1);con.add(panel2); panel2.button1.addActionListener(this); panel2.button2.addActionListener(this); this.setVisible(true);this.pack(); } publicvoidactionPerformed(ActionEvente){ char[]passwords=panel1.textA.getPassword();Stringpassword=newString("000000"); //设置账号123456789的初始密码为112626,每输入一次都有提示,在连续输入三次不正确后系统自动退出。 if(e.getActionCommand().equals("确定")) if(panel1.textC.getText().equals(panel1.label3.getText())){ heshi(); } else{JOptionPane.showMessageDialog(frame,"你输入的验证码有误,请重新输入。");} elseif(e.getActionCommand()=="取消"){this.setVisible(false);newClient08("");} } publicvoidheshi(){ if(panel1.textA.getText().equals("")||panel1.textB.getText().equals("")) {JOptionPane.showMessageDialog(frame,"请输入账号、密码!"); return;} try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connectioncon=DriverManager.getConnection("jdbc:odbc:hello","","");//连接数据库 Statementsql=con.createStatement(); Stringql=panel1.textB.getText(); ResultSetrs=sql.executeQuery("selectcnimafromcardwherecno="+ql+""); if(rs.next()){ Stringqerycmima=panel1.textA.getText(); Strings=rs.getString(1); if(qerycmima.equals(s)){ JOptionPane.showMessageDialog(frame,"连接成功!"); this.setVisible(false);newClient01("用户取款系统"); }else{if(i!=2){i++;j=3-i; JOptionPane.showMessageDialog(frame,"密码有误!你还有"+j+"次机会,请你再仔细想想."); panel1.textA.setText("");} else{JOptionPane.showMessageDialog(frame,"对不起,你输入的密码次数达三次,下次再见。");System.exit(0);} } con.close(); frame.repaint(); } else{JOptionPane.showMessageDialog(null,"该用户不存在,重新输入!","警告!",JOptionPane.YES_NO_OPTION); panel1.textA.setText("");panel1.textB.setText("");panel1.textC.setText("");return;} }catch(SQLExceptiong){ System.out.println("ECode"+g.getErrorCode()); System.out.println("EM"+g.getMessage()); }catch(Exceptione){ e.printStackTrace(); } } } classInputpassword{ publicstaticvoidmain(String[]args){ newClient00("用户取款系统"); }}packageZDC;//选择界面importjava.awt.*;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjavax.swing.*;importjava.awt.event.*;classPanel03extendsJPanel{ JButtonbutton1,button2,button3,button4,button5; Panel03(){ setLayout(newGridLayout(8,6)); button1=newJButton("查询");button2=newJButton("取款"); button3=newJButton("转账");button4=newJButton("退出");button5=newJButton("存款"); for(inti=0;i<7;i++){add(newJLabel());}add(button1);add(newJLabel());add(newJLabel()); add(button2);for(inti=0;i<8;i++){add(newJLabel());}add(button3);add(newJLabel());add(newJLabel());add(button5); for(inti=0;i<17;i++){add(newJLabel());}add(button4);for(inti=0;i<7;i++){add(newJLabel());} } } classClient01extendsJFrameimplementsActionListener{ Panel03panel1;JFrameframe; Client01(Strings){ super(s); Containercon=this.getContentPane(); panel1=newPanel03();con.add(panel1); panel1.button1.addActionListener(this);panel1.button2.addActionListener(this); panel1.button3.addActionListener(this);panel1.button4.addActionListener(this);panel1.button5.addActionListener(this); this.setVisible(true);this.pack(); } publicvoidactionPerformed(ActionEvente){ if(e.getActionCommand()=="取款"){ this.setVisible(false); newClient02("请选择取款金额"); } elseif(e.getActionCommand()=="查询"){ this.setVisible(false); newClient06("查询服务"); } elseif(e.getActionCommand()=="存款"){ this.setVisible(false); newClient05("请选择存款金额"); } elseif(e.getActionCommand()=="转账"){ this.setVisible(false); newClient04("用户转账服务"); } elseif(e.getActionCommand()=="退出"){this.setVisible(false);newClient08("");} } } classSelectfunction{ publicstaticvoidmain(String[]args){ newClient01("用户取款系统"); newClient01("用户存款系统"); } }packageZDC;//查询功能importjava.awt.*;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjavax.swing.*;importZDC.Panel01;importjava.awt.event.*;classPanel06extendsJPanel{ JLabellabel1,label2;JTextFieldtextA;JFrameframe; Panel06(){ setLayout(newGridLayout(4,4));label1=newJLabel("你的余额为:"); textA=newJTextField(6); for(inti=0;i<5;i++){add(newJLabel());} add(label1);add(textA);for(inti=0;i<9;i++){add(newJLabel());} } } classPanel07extendsJPanel{ JButtonbutton1,button2; Panel07(){ setLayout(newGridLayout(3,6)); button1=newJButton("继续");button2=newJButton("查询"); for(inti=0;i<7;i++){add(newJLabel());}add(button2);add(newJLabel());add(newJLabel()); add(button1);for(inti=0;i<7;i++){add(newJLabel());} } } classClient03extendsJFrameimplementsActionListener{ Panel06panel1;Panel07panel2; Client03(Strings){ super(s); Containercon=this.getContentPane(); con.setLayout(newGridLayout(2,1)); panel1=newPanel06();panel2=newPanel07(); con.add(panel1);con.add(panel2); panel2.button1.addActionListener(this); panel2.button2.addActionListener(this); this.setVisible(true);this.pack(); } publicvoidactionPerformed(ActionEvente){ if(e.getActionCommand().equals("继续")){ this.setVisible(false); newClient01("选择服务种类"); } elseif(e.getActionCommand()=="查询")showcjine(); } publicvoidshowcjine(){ //Stringurl="jdbc:odbc:driver={MicrosoftAccessDriver(*.mdb)};DBQ=bankSystem.mdb";//程序直接使用当前类目录下的数据库文件 try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connectioncon=DriverManager.getConnection("jdbc:odbc:hello","","");//连接数据库 Statementsql=con.createStatement();Stringql=Panel01.textB.getText(); Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); ResultSetrs=sql.executeQuery("selectcjinefromcardwherecno="+ql+""); if(rs.next()){ Stringucjine=rs.getString(1); panel1.textA.setText(ucjine); } else{JOptionPane.showMessageDialog(null,"该用户不存在","警告!",JOptionPane.YES_NO_OPTION);} con.close(); }catch(Exceptionex){ ex.printStackTrace(); } } } classSearchfunction{ publicstaticvoidmain(String[]args){ newClient03("用户查询服务"); }}packageZDC;//查询信息importjava.awt.*;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjavax.swing.*;importjava.awt.event.*;classPanel11extendsJPanel{ JButtonbutton1,button2; Panel11(){ setLayout(newGridLayout(10,5)); button1=newJButton("查询余额"); button2=newJButton("查本卡信息"); for(inti=0;i<=16;i++)add(newJLabel()); add(button1); for(inti=0;i<=13;i++)add(newJLabel()); add(button2); for(inti=0;i<=16;i++)add(newJLabel()); } } classClient06extendsJFrameimplementsActionListener{ Panel11panel11;JFrameframe; Client06(Strings){ super(s); Containercon=this.getContentPane(); panel11=newPanel11(); con.add(panel11); panel11.button1.addActionListener(this); panel11.button2.addActionListener(this); this.setVisible(true);this.pack(); } publicvoidactionPerformed(ActionEvente){ if(e.getActionCommand()=="查询余额"){ this.setVisible(false); newClient03("用户查询服务"); } elseif(e.getActionCommand()=="查本卡信息"){ this.setVisible(false); newClient07("本卡信息"); } } } classSearchinformation{ publicstaticvoidmain(String[]args){ newClient06("查询服务"); } }packageZDC;//转账功能importjava.awt.*;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjavax.swing.*;importZDC.Panel01;importjava.awt.event.*;classPanel08extendsJPanel{ JLabellabel1,label2;JTextFieldtextA,textB; Panel08(){ setLayout(newGridLayout(4,4)); label1=newJLabel("输入预转账号:");label2=newJLabel("输入预转金额:"); textA=newJTextField(6);textB=newJTextField(6); for(inti=0;i<5;i++){add(newJLabel());} add(label1);add(textA);for(inti=0;i<6;i++){add(newJLabel());} add(label2);add(textB);add(newJLabel()); } } classPanel09extendsJPanel{ JButtonbutton1,button2; Panel09(){ setLayout(newGridLayout(3,6)); button1=newJButton("确定");button2=newJButton("取消"); add(newJLabel());add(newJLabel());add(newJLabel());add(newJLabel());add(newJLabel()); add(newJLabel());add(newJLabel());add(button1);add(newJLabel());add(newJLabel()); add(button2);add(newJLabel());add(newJLabel());add(newJLabel());add(newJLabel()); add(newJLabel());add(newJLabel());add(newJLabel()); } } classClient04extendsJFrameimplementsActionListener{ Panel08panel1;Panel09panel2;JFrameframe; Client04(Strings){ super(s); Containercon=this.getContentPane(); con.setLayout(newGridLayout(2,1)); panel1=newPanel08();panel2=newPanel09(); con.add(panel1);con.add(panel2); panel2.button1.addActionListener(this); panel2.button2.addActionListener(this); this.setVisible(true);this.pack(); } publicvoidactionPerformed(ActionEvente){ if(e.getActionCommand().equals("确定")){ zhuanzhang();//程序根据输入账号调用数据库,修改对应金额数。 this.setVisible(false); newClient01("用户取款系统"); } elseif(e.getActionCommand()=="取消"){ this.setVisible(false); newClient01("用户取款系统");} } publicvoidzhuanzhang(){ if(panel1.textA.getText().equals("")||panel1.textB.getText().equals("")) {JOptionPane.showMessageDialog(frame,"请输入欲转账号、金额!"); return;} //Stringurl="jdbc:odbc:driver={MicrosoftAccessDriver(*.mdb)};DBQ=bankSystem.mdb";//程序直接使用当前类目录下的数据库文件 try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connectioncon=DriverManager.getConnection("jdbc:odbc:hello","","");//连接数据库 Statementsql=con.createStatement(); Stringcno=panel1.textA.getText();Stringql=Panel01.textB.getText(); Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); ResultSetss=sql.executeQuery("selectcnofromcardwherecno="+cno+""); Stringyjine=panel1.textB.getText(); intshjin=Integer.parseInt(yjine); if(ss.next()){ ResultSetrs=sql.executeQuery("selectcjinefromcardwherecno="+ql+""); if(rs.next()){ Stringqueryjine=rs.getString(1); intqyjine=Integer.parseInt(queryjine); if(shjin<qyjine){ intnewcjine=qyjine-shjin;intnewcjine2=qyjine+shjin; Stringnewjine=String.valueOf(newcjine);Stringnewjine2=String.valueOf(newcjine2); sql.executeUpdate("updatecardsetcjine='"+newjine+"'wherecno="+ql+""); sql.executeUpdate("updatecardsetcjine='"+newjine2+"'wherecno="+cno+""); JOptionPane.showMessageDialog(frame,"操作已成功,谢谢使用!"); this.setVisible(false);newClient01("用户取款系统"); } else{JOptionPane.showMessageDialog(null,"请重新输入金额!","警告!",JOptionPane.YES_NO_OPTION); panel1.textB.setText("");return; } con.close(); frame.repaint(); } con.close(); frame.repaint(); } else{JOptionPane.showMessageDialog(null,"该用户不存在,请重新输入。","警告!",JOptionPane.YES_NO_OPTION);panel1.textA.setText("");} }catch(Exceptionex){ ex.printStackTrace(); } } } classTransferfunction{ publicstaticvoidmain(String[]args){ newClient04("用户转账服务");}}packageZDC;//用户取款importjava.awt.*;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjavax.swing.*;importZDC.Panel01;importjava.awt.event.*;classPanel04extendsJPanel{ JButtonbutton1,button2,button3,button4; Panel04(){ setLayout(newGridLayout(4,6)); button1=newJButton("100");button2=newJButton("200"); button3=newJButton("300");button4=newJButton("500"); for(inti=0;i<7;i++){add(newJLabel());}add(button1);add(newJLabel());add(newJLabel()); add(button2);for(inti=0;i<8;i++){add(newJLabel());}add(button3);add(newJLabel()); add(newJLabel());add(button4);add(newJLabel()); } } classPanel05extendsJPanel{ JButtonbutton1,button2,button3,button4; Panel05(){ setLayout(newGridLayout(4,6)); button1=newJButton("800");button2=newJButton("1000"); for(inti=0;i<7;i++){add(newJLabel());}add(button1);add(newJLabel());add(newJLabel()); add(button2);for(inti=0;i<13;i++){add(newJLabel());} } } classClient02extendsJFrameimplementsActionListener{ Panel04panel1;Panel05panel2;JFrameframe; Client02(Strings){ super(s); Containercon=this.getContentPane(); con.setLayout(newGridLayout(2,1)); panel1=newPanel04();panel2=newPanel05(); con.add(panel1);con.add(panel2); panel1.button1.addActionListener(this);panel1.button2.addActionListener(this); panel1.button3.addActionListener(this);panel1.button4.addActionListener(this); panel2.button1.addActionListener(this);panel2.button2.addActionListener(this); this.setVisible(true);this.pack(); } publicvoidactionPerformed(ActionEvente){ if(e.getActionCommand()=="100"){ this.setVisible(false); qukuan();//程序根据输入金额和输入卡号,修改数据库。 newClient01("用户取款系统"); } elseif(e.getActionCommand()=="200"){ this.setVisible(false); qukuan(); newClient01("用户取款系统");} elseif(e.getActionCommand()=="300"){ this.setVisible(false); qukuan(); newClient01("用户取款系统");} elseif(e.getActionCommand()=="500"){ this.setVisible(false); qukuan(); newClient01("用户取款系统");} elseif(e.getActionCommand()=="800"){ this.setVisible(false); qukuan(); newClient01("用户取款系统");} elseif(e.getActionCommand()=="1000"){ this.setVisible(false); qukuan(); newClient01("用户取款系统");} } publicvoidqukuan(){ try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connectioncon=DriverManager.getConnection("jdbc:odbc:hello","","");//连接数据库 Statementsql=con.createStatement();Stringql=Panel01.textB.getText(); ResultSetrs=sql.executeQuery("selectcjinefromcardwherecno="+ql+""); if(rs.next()){ Stringmm=rs.getString(1); intnn=Integer.parseInt(mm); Stringqerycjine=panel1.button1.getActionCommand(); intqueryjine=Integer.parseInt(qerycjine); if(queryjine<nn){ intnewjine=nn-queryjine;Stringnewjin=String.valueOf(newjine); intupdateMima=sql.executeUpdate("updatecardsetcjine='"+newjin+"'wherecno="+ql+""); if(updateMima==1){ JOptionPane.showMessageDialog(frame,"操作已成功,谢谢使用!");} this.setVisible(false); newClient01("用户取款系统"); } else{JOptionPane.showMessageDialog(null,"你的卡余额已不足,请注意!","警告!",JOptionPane.YES_NO_OPTION); this.setVisible(false); newClient01("用户取款系统"); } con.close(); frame.repaint(); } }catch(SQLExceptiong){ System.out.println("ECode"+g.getErrorCode()); System.out.println("EM"+g.getMessage()); }catch(Exceptione){ e.printStackTrace(); } } } classWithdraw{ publicstaticvoidmain(String[]args){ newClient02("请选择取款金额"); } }packageZDC;//存款功能importjava.awt.*;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjavax.swing.*;importZDC.Panel01;importjava.awt.event.*;classPanel10extendsJPanel{ JButtonbutton1,button2,button3,button4; Panel10(){ setLayout(newGridLayout(4,6)); button1=newJButton("100");button2=newJButton("200"); button3=newJButton("300");button4=newJButton("500"); for(inti=0;i<7;i++){add(newJLabel());}add(button1);add(newJLabel());add(newJLabel()); add(button2);for(inti=0;i<8;i++){add(newJLabel());}add(button3);add(newJLabel()); add(newJLabel());add(button4);add(newJLabel()); } } classPanel14extendsJPanel{ JButtonbutton1,button2,button3,button4; Panel14(){ setLayout(newGridLayout(4,6)); button1=newJButton("800");button2=newJButton("1000"); for(inti=0;i<7;i++){add(newJLabel());}add(button1);add(newJLabel());add(newJLabel()); add(button2);for(inti=0;i<13;i++){add(newJLabel());} } } classClient05extendsJFrameimplementsActionListener{ Panel04panel1;Panel05panel2;JFrameframe; Client05(Strings){ super(s); Containercon=this.getContentPane(); con.setLayout(newGridLayout(2,1)); panel1=newPanel04();panel2=newPanel05(); con.add(panel1);con.add(panel2); panel1.button1.addActionListener(this);panel1.button2.addActionListener(this); panel1.button3.addActionListener(this);panel1.button4.addActionListener(this); panel2.button1.addActionListener(this);panel2.button2.addActionListener(this); this.setVisible(true);this.pack(); } publicvoidactionPerformed(ActionEvente){ if(e.getActionCommand()=="100"){ this.setVisible(false); cunkuan();//程序根据输入金额和输入卡号,修改数据库。 newClient01("用户存款系统"); } elseif(e.getActionCommand()=="200"){this.setVisible(false);newClient01("用户存款系统");} //这里当点击取款金额200时,程序返回上层操作界面。 } publicvoidcunkuan(){ try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connectioncon=DriverManager.getConnection("jdbc:odbc:hello","","");//连接数据库 Statementsql=con.createStatement();Stringql=Panel01.textB.getText(); ResultSetrs=sql.executeQuery("selectcjinefromcardwherecno="+ql+""); if(rs.next()){ Stringmm=rs.getString(1); intnn=Integer.parseInt(mm); Stringqerycjine=panel1.button1.getActionCommand(); intqueryjine=Integer.parseInt(qerycjine); intnewjine=nn+queryjine;Stringnewjin=String.valueOf(newjine); intupdateMima=sql.executeUpdate("updatecardsetcjine='"+newjin+"'wherecno="+ql+""); if(updateMima==1){ JOptionPane.showMessageDialog(frame,"操作已成功,谢谢使用!");} this.setVisible(false); newClient01("用户存款系统"); } else{JOptionPane.showMessageDialog(null,"请注意!","警告!",JOptionPane.YES_NO_OPTION); this.setVisible(false); newClient01("用户取款系统"); } con.close(); frame.repaint(); }catch(SQLExceptiong){ System.out.println("ECode"+g.getErrorCode()); System.out.println("EM"+g.getMessage()); }catch(Exceptione){ e.printStackTrace(); } } } classDepositfunction{ publicstaticvoidmain(String[]args){ newClient05("请选择存款金额"); } }packageZDC;//显示用户信息importjava.awt.*;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjavax.swing.*;importZDC.Panel01;importjava.awt.event.*;classPanel12extendsJPanel{ JLabellabel1,label2,label3,label4; JButtonbutton1,button2;JTextFieldtext1,text2,text3,text4; Panel12(){ setLayout(newGridLayout(9,6)); label1=newJLabel("显示用户名:");label2=newJLabel("显示性别:"); label3=newJLabel("显示身份证:");label4=newJLabel("显示卡号:"); button1=newJButton("查询");text1=newJTextField("");text2=newJTextField(""); button2=newJButton("取消");text3=newJTextField("");text4=newJTextField(""); for(inti=0;i<8;i++)add(newJLabel());add(label1);add(text1); for(inti=0;i<4;i++)add(newJLabel());add(label2);add(text2); for(inti=0;i<4;i++)add(newJLabel());add(label3);add(text3); for(inti=0;i<4;i++)add(newJLabel());add(label4);add(text4); for(inti=0;i<15;i++)add(newJLabel());add(button1); add(newJLabel());add(newJLabel());add(button2); for(inti=0;i<7;i++)add(newJLabel()); } } classClient07extendsJFrameimplementsActionListener{ Panel12panel12;JFrameframe; Client07(Strings){ super(s); Containercon=this.getContentPane(); panel12=newPanel12(); con.add(panel12); panel12.button1.addActionListener(this); panel12.button2.addActionListener(this); this.set
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《数列基础概念》课件
- 脂质代谢紊乱的临床护理
- 家族性良性天疱疮的临床护理
- IgA天疱疮的临床护理
- 鼻腔及鼻窦骨瘤的健康宣教
- 化学电源 课件zhp
- 孕妇小腿浮肿的健康宣教
- 稻农皮炎的临床护理
- 心源性休克的护理
- 《机械制造基础》课件-05篇 第四单元 电火花加工
- 《陕西省安全生产条例》培训试题
- Revision Being a good guest(教学设计)-2024-2025学年人教PEP版(2024)英语三年级上册
- 2024七年级历史上册知识点梳理
- 布置我们的家(课件)三年级下册综合实践活动沪科黔科版
- 《基础会计》教学课件-整套教程电子讲义
- 2022-2023学年广东省广州市越秀区六年级(上)期末数学试卷
- 2024年广东省广州市中考英语试卷附答案
- 企业财务报表分析-以顺丰控股股份有限公司为例
- 2024年高考英语新课标1卷读后续写课件高考英语一轮复习作文专项
- PANTONE国际色卡CMYK色值对照表3
- 精神康复中的心理危机干预策略考核试卷
评论
0/150
提交评论