ATM程序java实现(客户端+服务器)_第1页
ATM程序java实现(客户端+服务器)_第2页
ATM程序java实现(客户端+服务器)_第3页
ATM程序java实现(客户端+服务器)_第4页
ATM程序java实现(客户端+服务器)_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

格式dmjlsl 原创,仅供交流。程序实现其实并不是很难,主要是思路,对程序的各个功能的设计,各个按钮的处理事件及按钮按照逻辑显示出来和隐藏。服务器采用多线程并行机制,针对每个用户登录创建一个线程。程序代码客户端:classATMWindowsextendsJFrameimplementsActionListener{Fontf;Socketclint=null;DataOutputStreamout=null;DataInputStreamin=null;Connectioncon;Statementpre;ResultSetrs;inti,money;booleanb=true;//b的取值有0,1,共2个值分别告诉程序该吧数字键盘的输入复制给username,password,Stringsusername=null;Stringspassword=null;Boxbox1,box2,box3,box11,box12;JPanelpanel1,panel2;JLabeltishi;JTextFieldusername;JPasswordFieldpassword;JButtonn[],queding,chaxun,qukuan,tuichu;ATMWindows(Strings){GraphicsEnvironmentge=GraphicsEnvironment.getLocalGraphicsEnvironment();Stringt[]=ge.getAvailableFontFamilyNames();专业资料整理WORD格式如有疑问,或指点,请联系QQ:403310405专业资料整理格式dmjlsl 原创,仅供交流。f=newFont(t[67],Font.BOLD,16);n=newJButton[10];box1=Box.createVerticalBox();box2=Box.createHorizontalBox();box3=Box.createVerticalBox();panel1=newJPanel();panel2=newJPanel();tishi=newJLabel("欢迎使用XX银行!请输入卡号。");tishi.setFont(f);username=newJTextField(20);password=newJPasswordField(20);panel1.setLayout(newGridLayout(3,3));panel2.setLayout(newGridLayout(4,1));for(i=1;i<n.length;i++){n[i]=newJButton(""+i);panel1.add(n[i]);n[i].addActionListener(this);}n[0]=newJButton("0");panel1.add(n[0]);n[0].addActionListener(this);n[0].setPreferredSize(newDimension(20,20));queding=newJButton(" 确定");chaxun=newJButton(" 查询");// 用户输入账号和密码后,点击查询按钮登陆qukuan=newJButton(" 取款");tuichu=newJButton(" 退出");qukuan.show(false);chaxun.show(false);// 初始化窗口后,账号和密码还没输入,不能用查询按钮登陆box1.add(tishi);tishi.setBounds(50,10,290,60);box1.add(username);username.setBounds(50,60,300,20);password.setBounds(60,60,300,20);panel2.add(queding);panel2.add(chaxun);panel2.add(qukuan);panel2.add(tuichu);如有疑问,或指点,请联系QQ:403310405专业资料整理格式dmjlsl 原创,仅供交流。box1.setBounds(50,10,300,60);n[0].setBounds(50,290,200,70);panel1.setBounds(50,80,200,210);panel2.setBounds(250,80,100,280);add(box1);add(panel1);add(panel2);add(n[0]);tuichu.addActionListener(this);queding.addActionListener(this);chaxun.addActionListener(this);qukuan.addActionListener(this);setLayout(null);setTitle(s);setBounds(200,200,400,400);validate();setResizable(false);setVisible(true);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);}publicvoidactionPerformed(ActionEvente){if(e.getSource()==tuichu)// 用户退出,窗口不关闭,需要从新输入账号和密码{b=true;//用户推出之后,从数字键输入到usernamebox1.add(username);box1.remove(password);box1.validate();username.setText(null);money=0;susername=null;spassword=null;tishi.setText("欢迎使用XX银行!请输入卡号。");chaxun.show(false);queding.show(true);qukuan.show(false);// 用户退出,查询和取款按钮不可见if(clint!=null){如有疑问,或指点,请联系QQ:403310405专业资料整理格式dmjlsl 原创,仅供交流。try{out.writeInt(-1);// 服务器输入数字 -1 ,表示客户已经退出,服务器可以关闭该客户的进程}catch(IOExceptione1){}}}elseif(e.getSource()==queding){if(susername==null){susername=username.getText();username.setText(null);tishi.setText(" 请输入密码 ");b=false;// 从数字键输入到 passwordbox1.remove(username);box1.add(password);box1.validate();password.setText(null);}elseif(spassword==null){spassword=password.getText();chaxun.show(true);b=true;// 从数字键输入到 usernamequeding.show(false);tishi.setText(" 请点击查询按钮登陆! ");password.setText(null);}else{intyue;try{如有疑问,或指点,请联系QQ:403310405专业资料整理格式dmjlsl 原创,仅供交流。BigIntegern=newBigInteger(username.getText());yue=Value();if(yue>=0&&Value()>0)// 余额大于等于 0,表示用户可以取款{out.writeInt(Value());money=in.readInt();if(money<=yue){tishi.setText(" 取款成功,您的余额为: "+money);queding.show(false);username.setText(null);box1.validate();}elseif(money==-3)// 服务器连接数据库错误,取款失败{money=yue;tishi.setText("抱歉!服务器错误,取款失败。");username.setText(null);box1.validate();qukuan.show(false);queding.show(false);validate();}else{;queding.show(false);tishi.setText(" 操作失败,您的余额为: "+money);}username.setText(null);box1.remove(username);box1.validate();qukuan.show(true);validate();}else{tishi.setText(" 输入错误,不能大于您的余额 "+money);如有疑问,或指点,请联系QQ:403310405专业资料整理格式dmjlsl 原创,仅供交流。qukuan.show(true);queding.show(false);chaxun.show(false);username.setText(null);validate();}}catch(IOExceptione1){tishi.setText(" 输入错误,不能大于您的余额 "+money);qukuan.show(true);queding.show(false);chaxun.show(false);username.setText(null);validate();}}}elseif(e.getSource()==qukuan){tishi.setText("请输入取款金额然后点击确定。");box1.remove(password);box1.add(username);box1.validate();box1.remove(username);box1.add(username);box1.validate();username.setText(null);qukuan.show(false);queding.show(true);}elseif(e.getSource()==chaxun){try{clint=newSocket("localhost",4333);in=newDataInputStream(clint.getInputStream());如有疑问,或指点,请联系QQ:403310405专业资料整理格式dmjlsl 原创,仅供交流。out=newDataOutputStream(clint.getOutputStream());tishi.setText(" 连接到服务器 ");}catch(IOExceptione1){tishi.setText(" 无法连接到服务器! ");}try{out.writeUTF(susername);out.writeUTF(spassword);money=in.readInt();if(money>=0){tishi.setText("登陆成功,您当前余额为:"+money);chaxun.show(false);qukuan.show(true);box1.remove(password);box1.validate();return;}elseif(money==-1){tishi.setText("卡号错误请从新输入卡号和密码");susername=null;spassword=null;box1.remove(password);box1.add(username);box1.validate();password.setText(null);username.setText(null);queding.show(true);chaxun.show(false);validate();return;}elseif(money==-2){tishi.setText(" 密码错误请从新输入密码!!! ");如有疑问,或指点,请联系QQ:403310405专业资料整理格式dmjlsl 原创,仅供交流。spassword=null;password.setText(null);chaxun.show(false);queding.show(true);b=false;// 用户输入密码错误,数字键盘输入到 passwordreturn;}else{tishi.setText(" 抱歉!服务器错误,暂停服务。 ");queding.show(true);susername=null;spassword=null;box1.remove(password);box1.add(username);box1.validate();username.setText(null);chaxun.show(false);return;}}catch(IOExceptione1){}}else{for(i=0;i<n.length;i++){if(b){if(e.getSource()==n[i]){username.setText(username.getText()+i);return;}}如有疑问,或指点,请联系QQ:403310405专业资料整理格式dmjlsl 原创,仅供交流。else{if(e.getSource()==n[i]){password.setText(password.getText()+i);return;}}}}}}publicclassATM{publicstaticvoidmain(Stringargs[]){ATMWindowsatm=newATMWindows("ATM");}}服务器:publicclassATMServer{publicstaticvoidmain(Stringags[]){ServerSocketserver=null;Socketyou=null;while(true)如有疑问,或指点,请联系QQ:403310405专业资料整理格式dmjlsl 原创,仅供交流。{try{server=newServerSocket(4333);}catch(IOExceptione){ 正在监听");}try{you=server.accept();}catch(IOExceptione){ 正在等待客户 ");}if(you!=null){newServerThread(you).start();}}}}classServerThreadextendsThread{DBdb=newDB();intb,money;ResultSetrs;Socketsocket;DataOutputStreamout=null;DataInputStreamin=null;Stringsusername=null;Stringspassword=null;ServerThread(Socketyou){try{in=newDataInputStream(you.getInputStream());如有疑问,或指点,请联系QQ:403310405专业资料整理格式dmjlsl 原创,仅供交流。out=newDataOutputStream(you.getOutputStream());}catch(IOExceptione){}}publicvoidrun(){try{susername=in.readUTF();spassword=in.readUTF();if(db.connect()==1)// 数据库连接成功{b=db.select(susername,spassword);db.close();out.writeInt(b);if(b>=0)// 用户账号和密码正确,登陆成功,等待取款{while(true){money=in.readInt();if(money>=0)// 客户端输入大于等于 0时,准备取款, update数据库{db.connect();money=db.select(susername,spassword)-money;if(db.update(money,susername)>0)// 数据库 update 成功,返回操作后的余额给客户端{ 数据库update 成功,返回操作后的余额给客户端 ");out.writeInt(db.select(susername,spassword));}else// 数据库update 失败,返回当前余额给客户端{如有疑问,或指点,请联系QQ:403310405专业资料整理格式dmjlsl 原创,仅供交流。out.writeInt(db.select(susername,spassword));}db.close();}elseif(money==-1)// 用户已在客户端退出{db.close(); 此用户已经退出终端,线程自动结束。");break;}}}elseif(b==-3){db.close(); 数据库错误, 用户登陆失败, 自动关闭连接线程");}else// 用户验证失败{db.close(); 账号或者密码错误, 用户登陆失败, 自动关闭连接线程 ");}}else{out.writeInt(-3);// 用-3 表示数据库连接失败,通知客户端暂停使用}}catch(IOExceptione){}}}classDB如有疑问,或指点,请联系QQ:403310405专业资料整理格式dmjlsl 原创,仅供交流。{Connectioncon;PreparedStatementpre;ResultSetrs=null;Stringsql=null;DB(){}publicintconnect(){try{}catch(ClassNotFoundExceptione){return0;}try{con=DriverManager.getConnection("jdbc:odbc:user","",""); 数据库连接成功 ");return1;}catch(SQLExceptione){return0;}}publicintselect(Stringsusername,Stringspassword){try{pre=con.prepareStatement("SELECT*FROMuserWHEREusername=?");pre.setString(1,susername);rs=pre.executeQuery();如有疑问,或指点,请联系QQ:403310405专业资料整理格式dmjlsl 原创,仅供交流。while(rs.next()){if(spassword.eq

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论