您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 《面向对象程序设计》课程综合性实验报告-邹家运
中南林业科技大学涉外学院理工系综合性实验实验报告课程名称面向对象程序设计实验学期2010至2011学年第1学期学生所在系部理工系年级10专业班级计算机1班学生姓名邹家运学号20107994任课教师李津实验成绩理工系制华北科技学院计算机系综合性实验报告第1页《面向对象程序设计》课程综合性实验报告开课实验室:软件实验室2011年12月16日实验题目ATM模拟程序一、实验目的通过编写Java的应用系统综合实例—ATM取款机的模拟程序,总结、回顾和实践面向对象的编程思想以及编程方法,并通过编写程序来掌握Java语言编程技巧,将学习到的知识融会贯通,同时提高调试程序的能力,养成良好的编程习惯,并增强对程序设计整体思路的把握,更好的开发程序,程序使用eclipse集成开发环境完成,熟悉并掌握在eclipse开发环境下编写Java程序。二、设备与环境硬件:自己的笔记本电脑软件:widows7操作系统,JDK1.6开发包,eclipse3.7三、实验内容总体要求:程序界面友好,代码的可维护性好,包括必要的注释和相应的文档。具体要求:使用图形用户界面。当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:1、查询余额:初始余额为10000元2、ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。3、ATM存款:不能出现负存款。4、修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。四、实验结果及分析通过此次Java综合性实验,我对Java有了系统的了解。(一)实验分析在这个实验中我设计了三个类,DengLuJieMian;类(用来验证用户名和密码)Information类(展示一些服务功能)PassWord类(用来处理用户修改密码)我用了输入输出流来保存密码,和金额(密码和初始的金额分别存放在d:\pass.txt和d:\yue.txt中)在执行此程序中首先必须手动的去在d:\pass.txt和d:\yue.txt中写入123456和10000.1DengLuJieMian;类通过继承JFrame,加入标签(JLabel)和按钮组件(JBtutton,),文本输入框(JTextField),密码框(JPassWordField)并且用当前窗体对按钮进行监听华北科技学院计算机系综合性实验报告第2页登录界面:代码:importjava.io.*;importjavax.swing.*;importjava.awt.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.io.FileInputStream;publicclassDengLuJieMianextendsJFrameimplementsActionListener{//定义所需要的组件JPaneljp1,jp2,jp3;JButtonjb1,jb2;JLabeljl1,jl2;JTextFieldjt;JPasswordFieldjpass;staticStringusername=zoujiayun,password;publicstaticvoidmain(String[]args){newDengLuJieMian();}publicDengLuJieMian(){//构建构造函数//创建组件jp1=newJPanel();jp2=newJPanel();jp3=newJPanel();jl1=newJLabel(用户名);jl2=newJLabel(密码);jb1=newJButton(登陆);jb2=newJButton(取消);jt=newJTextField(10);jpass=newJPasswordField(10);jp1.add(jl1);jp1.add(jt);jp2.add(jl2);jp2.add(jpass);jp3.add(jb1);jp3.add(jb2);//设置布局华北科技学院计算机系综合性实验报告第3页this.setLayout(newGridLayout(3,0));//添加组件this.add(jp1);this.add(jp2);this.add(jp3);//设置窗体属性this.setSize(298,159);this.setLocation(450,200);this.setTitle(ATM取款机);this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jb1.addActionListener(this);jb1.setActionCommand(1);jb2.addActionListener(this);jb2.setActionCommand(2);}@OverridepublicvoidactionPerformed(ActionEvente){//TODOAuto-generatedmethodstubif(e.getActionCommand().equals(1)){//判断点击了哪个按钮try{FileInputStreamin=newFileInputStream(d:/pass.txt);//从d盘pass.txt取得密码bytebt[]=newbyte[in.available()];in.read(bt);//读入到一个byte数组里面去password=newString(bt);//转换成string}catch(Exceptione2){//TODO:handleexceptione2.printStackTrace();}//如果用户名和密码正确则弹出服务界面if(jt.getText().equals(username)&&(String.valueOf(jpass.getPassword()).equals(password))){newInformation();//产生新的窗体即服务窗体Information}else{JOptionPane.showMessageDialog(this,登陆失败,请重新输入!);}}if(e.getActionCommand().equals(2)){System.exit(1);}}}2Information类当输入的用户名:zoujiayun密码:123456点击登录,进入了服务项:华北科技学院计算机系综合性实验报告第4页这个是一个新的窗体,分别加入五个按钮,用这个窗体对事件监听,并处理了事件2.1,查询余额if(arg0.getSource()==jb1){try{FileInputStreamin=newFileInputStream(d:/yue.txt);bytebt[]=newbyte[in.available()];in.read(bt);yue=Integer.parseInt(newString(bt));}catch(Exceptione){//TODO:handleexceptione.printStackTrace();}JOptionPane.showMessageDialog(this,尊敬的用户你当前的账户余额为:+yue+¥);}2.2,取款if(arg0.getSource()==jb2){华北科技学院计算机系综合性实验报告第5页Stringqukuan=JOptionPane.showInputDialog(this,请输入取款金额(100的倍数且小于5000));if(Integer.parseInt(qukuan)%100==0&&Integer.parseInt(qukuan)5000&&qukuan!=null){JOptionPane.showMessageDialog(this,取款成功!);yue=yue-Integer.parseInt(qukuan);try{FileOutputStreamfs=newFileOutputStream(d:/yue.txt);fs.write(String.valueOf(yue).getBytes());}catch(Exceptione2){//TODO:handleexceptione2.printStackTrace();}}else{JOptionPane.showMessageDialog(this,请您输入的金额有误!!请重新输入!);}}2.3,存款华北科技学院计算机系综合性实验报告第6页if(arg0.getSource()==jb3){Stringcukuan=JOptionPane.showInputDialog(this,请输入存款金额);if(cukuan!=null){yue=yue+Integer.parseInt(cukuan);try{FileOutputStreamfs=newFileOutputStream(d:/yue.txt);fs.write(String.valueOf(yue).getBytes());}catch(Exceptione2){//TODO:handleexceptione2.printStackTrace();}}}完整代码如下:importjava.io.*;importjava.awt.*;importjavax.swing.*;importjava.awt.Event.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;publicclassInformationextendsJFrameimplementsActionListener{JButtonjb1,jb2,jb3,jb4,jb5;intyue;publicInformation(){jb1=newJButton(查询余额);jb1.addActionListener(this);jb2=newJButton(取款);jb2.addActionListener(this);jb3=newJButton(存款);jb3.addActionListener(this);jb4=newJButton(修改密码);jb4.addActionListener(this);jb5=newJButton(退出);jb5.addActionListener(this);华北科技学院计算机系综合性实验报告第7页this.setLayout(null);jb1.setBounds(120,30,90,30);jb2.setBounds(120,70,90,30);jb3.setBounds(120,110,90,30);jb4.setBounds(120,150,90,30);jb5.setBounds(120,190,90,30);this.add(jb1);this.add(jb2);this.add(jb3);this.add(jb4);this.add(jb5);this.setSize(337,322);this.setResizable(false);this.setLocation(450,200);this.setVisible(true);}@OverridepublicvoidactionPerformed(ActionEventarg0){//TODOAuto-generatedmethodstubif(arg0.getSource()==jb1){try{FileInputStreamin=newFileInputStream(d:/yue.txt);//从磁盘中取得余额bytebt[]=newbyte[in.available()];in.read
本文标题:《面向对象程序设计》课程综合性实验报告-邹家运
链接地址:https://www.777doc.com/doc-2819635 .html