面向对象程序设计实验指导书资料.doc
《面向对象程序设计实验指导书资料.doc》由会员分享,可在线阅读,更多相关《面向对象程序设计实验指导书资料.doc(27页珍藏版)》请在咨信网上搜索。
面向对象程序设计实验指导书 -- 级 适用专业: 计算机科学与技术、 网络工程、 信息与计算科学 苏波 实验一 使用面向对象程序设计语言, 编写简单的程序 本实验4学时 1. 实验目的 熟悉编程环境, 熟悉标准库, 编制简单程序 2. 实验环境与条件 JDK1.6, Net Beans 3. 实验内容和步骤 3.1 编写一个输出hello,World的Java程序, 然后进行编译, 运行。 3.2 编写程序询问用户姓名, 然后向用户问好 4. 实验程序示例 注意: 实验程序不允许和实验示例完全一致。 public class hello { public static void main(String[] args) { java.util.Scanner aScanner = new java.util.Scanner(System.in); System.out.print("Name: "); String name = aScanner.next(); System.out.println("Hello " + name + "! Please Input Your Age"); System.out.print("Age:"); int aNum = aScanner.nextInt(); if(aNum<12) System.out.println("Hello, Kid"); else if(aNum<18) System.out.println("Hello, How about you study?"); else if(aNum<60) System.out.println("You have to work hard."); else System.out.println("Are you still working?"); } } 把上面的程序保存为hello.java 使用命令javac hello.java编译hello.java,得到java可执行程序hello.class 使用命令java hello执行,得到数据显示结果如下: Name: Dan. Hello Dan! Please Input Your Age Age:25 You have to work hard. 程序说明: 1. 在netbeans中直接执行上面的程序时会发现语句System.out.print("Name: ");并不立即输出出来,而是在输入了名字如Dan后才一齐输出出来,这是集成开发环境的系统的标准输出缓存造成的. 2.new java.util.Scanner(System.in)产生了一个java.util.Scanner对象, 由于产生这个对象时用System.in作为参数, 这个Scanner对象会扫描系统的标准输入. java.util.Scanner aScanner定义了一个java.util.Scanner类型的名字叫做aScanner. 这里的Scanner类型在java.util包里面. 语句java.util.Scanner aScanner = new java.util.Scanner(System.in);中的=的作用是让为产生出来的这一个Scanner类型的对象,起一个名字叫做aScanner 3.aScanner.next()会把用户输入的数据作为一个字符串读入. String name是定义一个String(字符串)类型的变量名字name 语句String name = aScanner.next();是把用户输入的字符串用变量name代表 4. aScanner.nextInt()会把用户输入的数据作为一个整数(int类型)读入. int aNum是定义一个int(整数)类型的变量名字aNum 语句 int aNum = aScanner.nextInt();是把用户输入的整数赋值给变量aNum 附录A: JDK的安装 ( 在实验室的计算机里面, JDK和Net Beans已经安装好, 可是没有为操作系统配置到JDK的路径, 参考步骤3) (一) 安装JDK 本节下面假设使用的是JDK是Java SE 6 Update 24版( Java Development Kit Standard Edition 6 Update 24) 。能够根据实际情况选择最新版本的JDK, 并把本节下面示例中的24换成实际的数值, 如果使用 Java 7, 那么需要把本节下面示例中的6换成7。 第一步, 下载JDK 访问JDK的下载页面。 下载网址 根据提示选择运行平台( 操作系统和CPU的类型, 例如: windows操作系统, i586兼容类型的CPU) 和语言( 实际上只能选多国语言) , 而且必须同意 Java SE Development Kit 版权协议后, 就开始下载 JDK安装程序。 第二步, 运行JDK安装程序 ● 对于windows操作系统 直接运行jdk-6u24-windows-i586-p.exe ● 对于Linux操作系统 打开Linux的终端( 控制台) , 一般是选择: 应用程序->附件->终端。执行命令: chmod +x jdk-6u24-linux-i586.bin 把jdk-6u24-linux-i586.bin的属性改为可执行。然后运行 JDK安装程序 ./jdk-6u24-linux-i586.bin 然后根据提示进行安装即可。 第三步, 设置JAVA_HOME环境变量和PATH环境变量 环境变量的作用是让操作系统知道一些软件设置信息, 例如软件的安装路径。环境变量PATH是操作系统寻找可执行程序的路径序列。操作系统根据环境变量PATH的值( 用:或者;分隔的多个目录路径) , 查找要执行的命令( 可执行文件) 。 ● 对于windows操作系统 环境变量位置 windows 7: 选择 开始->控制面板->系统和安全->系统->高级系统设置->环境变量 windows XP: 选择 开始->控制面板->系统->高级->环境变量 windows : 选择 开始->设置->控制面板->系统->高级->环境变量 设置JAVA_HOME环境变量 增加一个新的环境变量, 名称为JAVA_HOME, 值为JDK安装到的目录路径。JDK安装到的目录路径的类似于C:\Program Files\Java\jdk1.6.0_24。提示: 该路径中有bin和jre子目录。 设置PATH环境变量 把JDK安装到的目录路径中的bin目录的路径追加在PATH变量的后面。在PATH环境变量中, 各个目录路径之间用英文的分号;进行分隔, 向PATH环境变量追加的新的目录路径的方法为, 在已有的PATH的值的后面, 增加英文分号;和路径, 例如: 增加目录路径为 ;C:\Program Files\Java\jdk1.6.0_24\bin 提示: 这个目录路径中有名称为java和javac的程序。 保存后, 注销并重新登录Windows。 ● 对于Linux操作系统 这里假设是使用bash shell的Linux, 使用其它shell的Linux与此类似。 在Linux的终端中执行命令 cd 到用户的主目录, 使用nano,或者vi,或者gedit修改用户配置文件.bash_profile( 如果是ubuntu Linux是.profile) 。在.bash_profile( 或者.profile) 文件末尾追加三行命令: JAVA_HOME=$HOME/jdk1.6.0_24 export JAVA_HOME PATH=$JAVA_HOME/bin:"${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等图文混排工具不能够). 用文本编辑器编写源程序如下: public class hello { public static void main(String[] args) { System.out.println("世界,你好!"); } } 把上面的源程序存为文件 hello.java 注意: 必须使用这个文件名.因为文件的名称必须和文件内的类(class)的名称保持一致,而且增加.java为文件名的后缀. (二) 编译 把源程序翻译为Java可执行程序. 打开控制台界面,到保存hello.java文件的目录,执行下面的命令 javac hello.java 如果产生了一个新的文件hello.class,那么编译成功. 如果没有产生了一个新的文件hello.class,那么编译失败,一般是源程序中有语法错误. (三) 执行 在java.class的目录,实际上就是当前的目录不用变化,执行下面的命令: java hello 将得到程序的执行结果显示如下: 世界,你好! 如果得到上面的结果, 那么庆祝你的第一个java程序执行成功! 如果没有得到上面的结果, 那么参考以前的步骤, 看看哪个步骤错了。 实验二 基本语句和函数 本实验4学时 1、 实验目的: 练习函数的参数、 返回值和对象名字( 引用) 。 2、 实验环境与条件: JDK1.6, Netbeans 3、 实验内容: 编写程序: 验证用户名字和口令.使用Java. 具体内容: 在main()提示用户输入用户姓名和口令,并读入用户输入的姓名和口令. 由身份验证函数验证用户姓名和口令是否与预先设定的用户姓名和口令一致, 并通知用户验证结果. 提示: Java中的函数必须在类里面定义. 附录A: Java编写的用户名口令检测函数示例 import java.util.Scanner; public class Main { public static boolean check(String name, String password){ if(("Dan".equals(name))&&("123456".equals(password))) return true; else return false; } public static String inputUserName(){ Scanner aScanner = new Scanner(System.in); System.out.println("Name:"); String name = aScanner.next(); return name; } public static String inputUserPassword(){ Scanner aScanner = new Scanner(System.in); System.out.println("Password:"); String password = aScanner.next(); return password; } public static void main(String[] args) { String name = inputUserName(); String password = inputUserPassword(); if(check(name, password)) System.out.println("Check OK"); else System.out.println("Wrong name or password"); } } 实验三 类与对象 本实验4学时 1、 实验目的: 类与对象、 数据成员、 成员函数、 构造函数 2、 实验环境与条件: JDK1.6, Netbeans 3、 实验内容: 编写程序: 验证用户名字和口令.使用Java. 具体内容: 编写一个用户接口对象,提示用户输入用户姓名和口令,并读入用户输入的姓名和口令. 在main()由用户接口对象提示用户输入用户姓名和口令,并读入用户输入的姓名和口令.然后, 由身份验证对象验证用户姓名和口令是否与预先设定的用户姓名和口令一致, 并通知用户验证结果. 附录A: 类与对象的基本使用示例 public class Login { private String name; private Scanner aScanner; private String _name; public Login(){ name = new String(); _name = "SHE"; aScanner = new Scanner(System.in); } public Login(String aName){ name = new String(); _name = aName; aScanner = new Scanner(System.in); } public void check(){ if( (_name.equals(name)) ) System.out.println("OK"); else System.out.println("Error"); } public static void main(String[] args) { Login aLogin = new Login(); Login anotherLogin = new Login("AAA"); aLogin.inputName(); aLogin.check(); anotherLogin.inputName(); anotherLogin.check(); } public void inputName() { System.out.println("Name:"); name = aScanner.next(); } } 实验四 文件流 本实验4学时 1、 实验目的: 文件流的基本操作 2、 实验环境与条件: JDK1.6, Netbeans 3、 实验内容: 编写一个身份验证对象,验证用户名字和口令是否正确.要求用户的名字和口令来自于一个配置文件(纯文本文件格式). 编写一个用户接口对象,提示用户输入用户姓名和口令,并读入用户输入的姓名和口令. 在main()由用户接口对象提示用户输入用户姓名和口令,并读入用户输入的姓名和口令.然后, 由身份验证对象验证用户姓名和口令是否与配置文件的用户姓名和口令一致, 并通知用户验证结果. 配置文件的具体格式示例如下: 用户名1:口令1 选做的实验内容: 编写一个用户接口对象,提示用户输入用户姓名和口令,并读入用户输入的姓名和口令. 在main()由用户接口对象提示用户输入用户姓名和口令,并读入用户输入的姓名和口令.然后, 由身份验证对象验证用户姓名和口令是否与配置文件的用户姓名和口令一致, 并通知用户验证结果. 在上述过程中,使用字符串流处理类java.io.Reader,java.io.Writer处理utf-8文件. 要求配置文件中保存多个用户名和口令, 能够使用任意一对(用户名,口令)都能够登录成功. 提示,使用字符串分割. 配置文件的具体格式示例如下: 用户名1:口令1 用户名2:口令2 用户名3:口令3 用户名4:口令4 用户名5:口令5 用户名6:口令6 附录: 一个文件读写的示例 public class FileDemo { /** * @param args the command line arguments */ public static void main(String[] args) { FileDemo fileDemoReadWrite = new FileDemo(); // fileDemoReadWrite.fileCreate(); fileDemoReadWrite.fileWrite(); fileDemoReadWrite.fileRead(); } String fileName = "demofile.txt"; FileInputStream fileInput = null; private FileOutputStream fileOutput; public void fileCreate() { File file = new File(this.fileName); if (file.exists() != true) { try { file.createNewFile(); System.out.println(this.fileName + " Created!"); } catch (IOException ex) { Logger.getLogger(FileDemo.class.getName()).log(Level.SEVERE, null, ex); } } else { file.delete(); } } public void fileRead() { try { fileInput = new FileInputStream(fileName); BufferedReader fileReader = new BufferedReader(new InputStreamReader(fileInput, "utf8")); while (fileReader.ready()) { String content = fileReader.readLine(); System.out.println(content); } } catch (IOException ex) { Logger.getLogger(FileDemo.class.getName()).log(Level.SEVERE, null, ex); } finally { try { fileInput.close(); } catch (IOException ex) { Logger.getLogger(FileDemo.class.getName()).log(Level.SEVERE, null, ex); } } } public void fileWrite() { try { fileOutput = new FileOutputStream(fileName); fileOutput.write("java: simplecomplexlanguage\n".getBytes("utf8")); fileOutput.write("java: 简单复合语言\n".getBytes("utf8")); } catch (IOException ex) { Logger.getLogger(FileDemo.class.getName()).log(Level.SEVERE, null, ex); } finally { try { fileOutput.close(); } catch (IOException ex) { Logger.getLogger(FileDemo.class.getName()).log(Level.SEVERE, null, ex); } } } } 实验五 具体类与继承、 访问控制 本实验4学时 1、 实验目的: 利用继承, 实现程序功能的扩充, 字符串和文件流的基本操作 2、 实验环境与条件: JDK1.6, Netbeans 3、 实验内容: 编写程序: 在前一个实验的基础上完成。增加: 一个具有修改口令功能的身份验证对象。口令要求保存到文件中。 验证用户名字和口令: 编写一个身份验证对象,验证用户名字和口令是否正确.在此基础上,利用类继承,编写一个利用配置文件的身份验证对象, 要求用户的名字和口令来自于一个配置文件(纯文本文件格式). 编写一个用户接口对象,提示用户输入用户姓名和口令,并读入用户输入的姓名和口令. 在main()由用户接口对象提示用户输入用户姓名和口令,并读入用户输入的姓名和口令.然后, 由身份验证对象验证用户姓名和口令是否与配置文件的用户姓名和口令一致, 并通知用户验证结果.。 重新运行程序, 能够使用用户ID和新的口令经过验证。 一些可能有用的提示: 能够使用构造函数中从文件中读出口令。 选做的内容: 在此基础上, 提供一个用”加密”的方式保存口令的身份验证类。最简单的”加密”的方法能够使用按位异或实现。 算法如下: 假设口令为Password, x是一个密钥, 使用按位异或方式进行加密和解密。在C++中用^表示按位异或操作。 加密: Password ^ x = Passwordx 解密: Passwordx ^ x = Password 实验六 多态性和异常处理 本实验4学时 1、 实验目的: 学习使用虚函数实现多态性。经过编写、 调试程序理解异常的产生和处理。 2、 实验环境与条件: JDK1.6, Netbeans 3、 实验内容: 设计一个身份验证接口Auth,用于验证用户名字和口令是否正确. 编写一个利用配置文件的身份验证类Auth1, 具有用户名和口令验证功能. 要求用户的名字和口令来自于一个配置文件(纯文本文件格式). 配置文件格式为: 姓名1:密码1 姓名2:密码2 编写另一个利用配置文件的身份验证类Auth2, 具有用户名和口令验证功能. 要求用户的名字和口令来自于一个配置文件(纯文本文件格式). 配置文件格式为: 姓名1 密码1 姓名2 密码2 在main()中创立用户姓名和口令输入对象,提示用户输入用户姓名和口令, 并读入用户输入的姓名和口令. 然后, 分别创立两种类型的身份认证对象,以验证用户姓名和口令是否与配置文件的用户姓名和口令一致, 利用一个专门的函数通知用户验证结果. void echoResult(Auth aAuth, String name, String password) { if(aAuth.check(name, password)) System.out.println("OK"); else System.out.println("Error"); } 异常处理 在派生类的构造函数中增加异常处理。例如: 当保存密码的文件不存在时, 产生异常。- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 实验 指导书 资料
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文