2023年面向对象程序设计实验指导书资料_第1页
2023年面向对象程序设计实验指导书资料_第2页
2023年面向对象程序设计实验指导书资料_第3页
2023年面向对象程序设计实验指导书资料_第4页
2023年面向对象程序设计实验指导书资料_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

面向对象程序设计实验指导书-2023级合用专业:计算机科学与技术、网络工程、

信息与计算科学苏波€实验一使用面向对象程序设计语言,编写

简朴的程序本实验4学时.实验目的熟悉编程环境,熟悉标准库,编制简朴程序.实验环境与条件JDK1.6,NetBeansSystem.out.printInf'Name:");Stringname=aScanner.nextO;returnname;)publicstaticStringinputUserPasswordO{SeanneraSeanner=newScanner(System.in);System.out.println("Password:");Stringpassword=aScanner.next();returnpassword;)publicstaticvoidmain(String[]args){Stringname=inputUserName();Stringpassword=inputUserPassword();if(check(name,password))System.out.printlnf'CheckOK");elseSystem.out.println("Wrongnameorpassword");实验三类与对象本实验4学时1、实验目的:类与对象、数据成员、成员函数、构造函数2、实验环境与条件:JDK1.6,Netbeans3、实验内容:编写程序:验证用户名字和口令.使用Java.具体内容:编写一个用户接口对象,提醒用户输入用户姓名和口令,并读入用户输入的姓名和口令.在main。由用户接口对象提醒用户输入用户姓名和口令,并读入用户输入的姓名和口令.然后,由身份验证对象验证用户姓名和口令是否与预先设定的用户姓名和口令一致,并告知用户验证结果.附录A:类与对象的基本使用示例publicclassLogin{privateStringname;privateSeanneraScanner;privateString_name;publicLogin(){name=newString();_name="SHE";aScanner=newSeanner(System.in);)publieLogin(StringaName){name=newString();_name=aName;aScanner=newSeanner(System,in);)publicvoidcheck(){if((_name.equals(name)))System.out.printIn("OK");elseSystem.out.println("Error");)pubIicstaticvoidmain(String[]args){LoginaLogin=newLogin();LoginanotherLogin=newLogin("AAA");aLogin.inputName();aLogin.check();anotherLogin.inputName();anotherLogin.check();)publicvoidinputName(){System.out.printIn("Name:");name=aScanner.nextO;)}实验四文献流本实验4学时1、实验目的:文献流的基本操作2、实验环境与条件:。JDK1.6,Netbeans3、实验内容:编写一个身份验证对象,验证用户名字和口令是否对的.规定用户的名字和口令来自于一个配置文献(纯文本文献格式).编写一个用户接口对象,提醒用户输入用户姓名和口令,并读入用户输入的姓名和口令.在main()由用户接口对象提醒用户输入用户姓名和口令,并读入用户输入的姓名和口令.然后,由身份验证对象验证用户姓名和口令是否与配置文献的用户姓名和口令一致,并告知用户验证结果.配置文献的具体格式示例如下:用户名1:口令1选做的实验内容:编写一个用户接口对象,提醒用户输入用户姓名和口令,并读入用户输入的姓名和口令.在main。由用户接口对象提醒用户输入用户姓名和口令,并读入用户输入的姓名和口令.然后,由身份验证对象验证用户姓名和口令是否与配置文献的用户姓名和口令一致,并告知用户验证结果.。在上述过程中,使用字符串流解决类java.io.Reader,java.io.Writer解决utf-8文献.规定配置文献中保存多个用户名和口令,可以使用任意一对(用户名,口令)都可以登录成功.提醒,使用字符串分割.配置文献的具体格式示例如下:用户名1:口令1用户名2:口令2用户名3:口令3用户名4:口令4用户名5:口令5用户名6:口令6附录:一个文献读写的示例publicclassFileDemo{*@paramargsthecommandIineargumentsVFiIeDemofileDemoReadWrite=newFileDemo();fiIeDemoReadWrite.fileCreate();fiIeDemoReadWrite.fileWrite();fileDemoReadWrite.fileRead();)StringfileName="demofiIe.txt";FilelnputStreamfileinput=null;privateFileOutputStreamfiIeOutput;publicvoidfileCreateO{FilefiIe=newFile(this.fileName);if(file.exists()!=true){try(file.createNewFile();System.out.println(this.fileName+"Created!");}catch(lOExceptionex){Logger.getLogger(FileDemo.class.getName()).1og(Level.SEVERE,nuII,ex);}else{fiIe.delete();publicvoidfileRead(){try(fileInput=newFilelnputStream(fileName);BufferedReaderfiIeReader=newBufferedReader(newInputStreamReader(fiIeInput,"utf8"));while(fileReader.readyO){Stringcontent=fileReader.readLine();System.out.println(content);)}catch(lOExceptionex){Logger.getLogger(FileDemo.class.getName()).log(Level.SEVERE,nuII,ex);}finalIy{try(filelnput.close();}catch(IOExceptionex){Logger.getLogger(FileDemo.class.getName()).Iog(LeveI.SEVERE,null,ex);)))pubIicvoidfiIeWrite(){try{fileOutput=newFiIeOutputStream(fiIeName);fileOutput.write("java:simpIecomplexlanguage\n".getBytes("utf8"));fileOutput.write("java:简朴复合语言\n".getBytes("utf8"));}catch(IOExceptionex){Logger.getLogger(FileDemo.cIass.getName()),Iog(Level.SEVERE,null,ex);}finally{try{fileOutput.close();}catch(lOExceptionex){Logger.getLogger(FileDemo.class.getName()),log(LeveI.SEVERE,null,ex);)}实验五。具体类与继承、访问控制本实验4学时1、实验目的:运用继承,实现程序功能的扩充,字符串和文献流的基本操作2、实验环境与条件:。JDK1.6,Netbeans3、实验内容:编写程序:在前一个实验的基础上完毕。增长:一个具有修改口令功能的身份验证对象。口令规定保存到文献中。验证用户名字和口令:编写一个身份验证对象,验证用户名字和口令是否对的.在此基础上,运用类继承,编写一个运用配置文献的身份验证对象,规定用户的名字和口令来自于一个配置文献(纯文本文献格式).编写一个用户接口对象,提醒用户输入用户姓名和口令,并读入用户输入的姓名和口在main()由用户接口对象提醒用户输入用户姓名和口令,并读入用户输入的姓名和口3.实验内容和环节编写一个输出heII。,Worid的Java程序,然后进行编译,运营。.2编写程序询问用户姓名,然后向用户问好.实验程序示例注意:实验程序不允许和实验示例完全一致。pubIicclasshello{pubIicstaticvoidmain(String[]args){java.util.ScanneraScanner=newjava.util.Scanner(System.in);System,out.print("Name:");Stringname=aScanner.next();System.out.println("Hello"+name+*'!PIeaseInputYourAge");System.out.print("Age:");intaNum=aScanner.nextint();if(aNum<l2)System.out.println("Hello,Kid");eIseif(aNum<18)System.out.printlnC'Hello,Howaboutyoustudy?n);elseif(aNum<60)System.out.println("Youhavetoworkhard."令.然后,由身份验证对象验证用户姓名和口令是否与配置文献的用户姓名和口令一致,并告知用户验证结果重新运营程序,可以使用用户ID和新的口令通过验证。一些也许有用的提醒:可以使用构造函数中从文献中读出口令。选做的内容:在此基础上,提供一个用“加密”的方式保存口令的身份验证类。最简朴的“加密”的方法可以使用按位异或实现。算法如下:假设口令为Passw。rd,x是一个密钥,使用按位异或方式进行加密和解密。在C++中用人表达按位异或操作。加密:PasswordAx=Passwordx解密:PasswordxAx=Password实验六多态性和异常解决本实验4学时1、实验目的:学习使用虚函数实现多态性。通过编写、调试程序理解异常的产生和解决。2、实验环境与条件:JDK1.6,Netbeans3、实验内容:。设计一个身份验证接口Auth,用于验证用户名字和口令是否对的.编写一个运用配置文献的身份验证类Authl,具有用户名和口令验证功能.规定用户的名字和口令来自于一个配置文献(纯文本文献格式).配置文献格式为:姓名1:密码】姓名2:密码2编写另一个运用配置文献的身份验证类Auth2,具有用户名和口令验证功能.规定用户的名字和口令来自于一个配置文献(纯文本文献格式).配置文献格式为:姓名1密码1姓名2密码2在main()中创建用户姓名和口令输入对象,提醒用户输入用户姓名和口令,并读入用户输入的姓名和口令.然后,分别创建两种类型的身份认证对象,以验证用户姓名和口令是否与配置文献的用户姓名和口令一致,运用一个专门的函数告知用户验证结果.voidechoResult(AuthaAuth,Stringname,Stringpassword){if(aAuth,check(name,password))System.out.printIn("OK");eIseSystem.out.printIn("Error");)异常解决在派生类的构造函数中增长异常解决。例如:当保存密码的文献不存在时,产生异常。eIseSystem.out.println("AreyoustiIIworking?");}}把上面的程序保存为heIIo.java使用命令javachello.java编译hello.java,得到java可执行程序hello,class使用命令javahello执行,得到数据显示结果如下:Name:Dan.HeIIoDan!PleaseInputYourAgeAge:25Youhavetoworkhard.程序说明:.在netbeans中直接执行上面的程序时会发现语句System.out.print("Name:");并不立即输出出来,而是在输入了名字如Dan后才一齐输出出来,这是集成开发环境的系统的标准输出缓存导致的..newjava.utiLScanner(System.in)产生了一个java.utiI.Scanner对象,由于产生这个对象时用System.in作为参数,这个Scanner对象会扫描系统的标准输入.java.util.ScanneraSeanner定义了一个java.util.Seanner•类型的名字叫做aScanner.这里的Scanner类型在java.util包里面.java.utiI.ScanneraSeanner=newjava.utiLScanner(System.in);中的=的作用是让为产生出来的这一个Scanner类型的对象,起一个名字叫做aSeanner.aScanner.next()会把用户输入的数据作为一个字符串读入.Stringname是定义一个String(字符串)类型的变量名字name语句Stringname=aSeanner.next();是把用户输入的字符串用变量name代表.aScanner.nextlnt()会把用户输入的数据作为一个整数(int类型)读入.intaNum是定义一个int(整数)类型的变量名字aNum语句intaNum=aScanner.nextInt();是把用户输入的整数赋值给变量aNum附录A:JDK的安装(在实验室的计算机里面,JDK和NetBeans已经安装好,但是没有为操作系统配置到JDK的途径,参考环节3)(-)安装JDK本节下面假设使用的是JDK是JavaSE6Update24版(JavaDevelopmentKitStandardEdition6Update24)。可以根据实际情况选择最新版本的JDK,并把本节下面示例中的24换成实际的数值,假如使用Java7,那么需要把本节下面示例中的6换成7。第一步,下载JDK访问JDK的下载页面。下载网址根据提醒选择运营平台(操作系统和CPU的类型,例如:windows操作系统,i586兼容类型的CPU)和语言(事实上只能选多国语言),并且必须批准JavaSEDevelopmentKit版权协议后,就开始下载JDK安装程序。第二步,运营JDK安装程序对于windows操作系统直接运营jdk—6u24-windows-i586-p.exe对于Linux操作系统打开Linux的终端(控制台),通常是选择:应用程序->附件一>终端。执行命令:chmod+xjdk-6u24-linux-i586.bin把jdk-6u24—linux-i586.bin的属性改为可执行。然后运营JDK安装程序s./jdk—6u24—1inux-i586.bin然后根据提醒进行安装即可。第三步,设立JAVA_HOME环境变量和PATH环境变量环境变量的作用是让操作系统知道一些软件设立信息.,例如软件的安装途径。环境变量PATH是操作系统寻找可执行程序的途径序列。操作系统根据环境变量PATH的值(用:或者;分隔的多个目录途径),查找要执行的命令(可执行文献)。对于windows操作系统环境变量位置windows7:选择开始->控制面板,系统和安全->系统->高级系统设立->环境变量windowsXP:选择开始一>控制面板->系统->高级。环境变量windows2023:选择开始,设立一>控制面板,系统一>高级・>环境变量设立JAVA_HOME环境变量增长一个新的环境变量,名称为JAVA_HOME,值为JDK安装到的目录途径。JDK安装到的目录途径的类似于C:\ProgramFiles\Java\jdk1.6.0_24。提醒:该途径中有bin和jre子目录。设立PATH环境变量把JDK安装到的目录途径中的bin目录的途径追加在PATH变量的后面。在PATH环境变量中,各个目录途径之间用英文的分号;进行分隔,向PATH环境变量追加的新的目录途径的方法为,在已有的PATH的位的后面,增长英文分号;和途径,例如:增长目录途径为3:C:\ProgramFilesUava\jdk1.6.0_24\bin提醒:这个目录途径中有名称为java和javac的程序。保存后,注销并重新登录Windows。对于Linux操作系统这里假设是使用bashshell的Linux,使用其它she11的Linux与此类似。在Linux的终端中执行命令cd到用户的主目录,使用nano,或者vi,或者gedit修改用户配置文献.bash_profiIe(假如姑ubuntuLinux是.profile)o在.ba$h_profile(或者.profi1c)文献末尾追加三行命令:4AVA_HOME=$HOME(jdk1.6.0_24ecxportJAVA_HOMEPATH=$JAVA_HOME/bin:"S{PATH}"保存后,注销并重新登录Linux。第四步,测试安装和配置JDK是否成功检查Java虚拟机的版本。执行java-version,应当看到Java虚拟机的信息。看到Java版本与安装的JDK的版本一致,表达安装配置.Java虚拟机/Java编译器成功,否则表达安装或者配置有问题,需要重新安装或者重新配置(通常是没有配置好PATH环境变量导致的错误)。检查Java编译器的版本。Java编译器的名称是javac。执行javac-version应当看到Java编译器的信息。看到显示的Java版本与安装的JDK的版本一致,表达安装配置Java虚拟机/Java编译器成功,否则表达安装或者配置有问题,需要重新安装或者重新配置(通常是没有配置好PATH环境变量导致的错误)。附录B:Java程序设计的基本环节示例编写并执行第一个java程序的具体过程(―)编写Java源程序.使用文本编辑器windows的记事本,Unix/Linux的gedit文本编辑器或者vi/emacs(假如你会用它们)(注意:word/Office等图文混排工具不可以).用文本编辑器编写源程序如下:publicclasshello{publicstaticvoidm

温馨提示

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

评论

0/150

提交评论