Java程序设计实验指导书2016年版本.doc_第1页
Java程序设计实验指导书2016年版本.doc_第2页
Java程序设计实验指导书2016年版本.doc_第3页
Java程序设计实验指导书2016年版本.doc_第4页
Java程序设计实验指导书2016年版本.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

Java程序设计实验指导书Java程序设计实验指导书武汉科技大学信息科学与工程学院 Java程序设计实验教学大纲实验课程名称:Java程序设计 英文名称:The Java Programming Language实验课程性质:非独立设课 应开实验学期:6课程编码:0402004 实验学时数:10适用专业:电子信息工程 一、实验教学目的和要求JAVA程序设计是一门实践性很强的专业课程。通过上机实验,不仅可以帮助学生较好地掌握Java语言和面向对象程序设计的基本概念、基本方法和技巧,同时也可培养学生独立设计程序的能力,理解面向对象的编程思想。实验教学目的:1 使学生通过实验,验证书本和课堂教学内容:逐步理解、体会、消化、巩固和补充课堂所学主要内容;2 培养学生设计与动手能力:通过设计性的实验任务,通过实践环节理解 Java语言的基本结构和程序设计方法。通过亲手编程掌握 Java 语言编程的方法,从而提高学生的分析问题、解决问题的能力和动手能力。通过实验,要求学生应达到以下实验能力与标准:1 熟练掌握Java程序的编辑、编译、运行步骤及程序调试的方法,熟练运用Java语言进行面向对象程序设计2 深入理解面向对象的封装、继承和多态等特性3 利用Java语言进行异常处理4 能利用Java语言进行磁盘数据文件的建立及读写操作编程。5 利用Java语言实现多线程编程。二、 主要仪器设备(所开实验的主要仪器设备)每个学生上机使用一台PC机进行程序开发,PC机的硬件、软件环境如下:1)硬件:CPU P4 3.0GHZ 256M内存,80G 硬盘空间。2)软件:操作系统:Windows XP开发工具:MyEclipse 8.5、Jsdk1.6.1_02软件开发包三、实验项目名称和学时分配 序号实验项目名称学时分配实验属性实验类型实验者类别必开/选开1初步的面向对象的程序设计2专业类设计性本科生必开2面向对象程序设计2专业类设计性本科生必开3异常类的定义及处理2专业类设计性本科生必开4流、文件及基于文本的应用2专业类设计性本科生必开5综合设计2专业类设计性本科生必开四、实验课考核方式1.实验报告:每位同学必须独立书写实验报告,注意:不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。实验报告的内容应包括以下几个部分:1) 按照实验内容和实验步骤要求完成实验任务后,若程序已通过实验指导教师验收,则只在报告中重点给出调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等);若程序未完全通过验收,则需再此基础上提交包含详细注释的源程序清单。2) 根据思考题要求,重点描述需求分析、概要设计和详细设计过程,并提交包含详 细注释的源程序清单,最后详细描述程序调试分析过程。2.考核方式2.1 实验课成绩根据学生的实验预习、实验纪律、实验动手能力、实验结果和实验报告等几个部分进行综合评定,并给出优、良、中、及格和不及格共五档成绩。 2.2 实验课成绩占课程总成绩的25%。五、实验指导书及主要参考书1 蔡翠平 主编 唐大仕 编著,JAVA程序设计(修订本) ,北方交通大学出版社 清华大学出版社,2007年. 2 侯捷译,JAVA编程思想(第二版),机械工业出版社,2002.3 丁振凡,Java语言实用教程,北京邮电大学出版社,2005.4 丁振凡,Java语言实用教程实验指导,北京邮电大学出版社,北京,2006一、综合设计题目某小型公司,主要有三类人员:经理、兼职技术人员和兼职推销员。这三类人员共同拥有的相关属性:姓名、编号; 相关方法:获取当月薪水的getPay()方法、显示个人信息的toString()方法。人员编号基数为1000,每创建一个人员实例对象,其编号属性的值顺序加1。月薪计算方法:经理拿固定月薪8000元;兼职技术人员按每小时100元领取月薪;兼职推销人员的月薪按当月的销售额的4%提成。要求:结合本课程所学知识点,采用面向对象的编程思想,结合题意自己确定需要定义的类及各类的属性、构造方法和其他方法,并编写Java Applcation程序实现功能:1. 查询职工个人信息,可通过姓名、编号查询2. 查询部门所有职工的详细信息3. 修改职工信息;4. 删除职工信息;5. 添加职工信息6. 查询所有职工信息,并将其存储到职工信息文件EmployeeData.txt中; 二、初步的面向对象的程序设计 (实验1)1、实验目的1) 掌握类和构造方法的定义。2) 掌握创建类实例的方法。3) 初步掌握面向对象的编程思想2、实验内容1) 编写一个Java Application,利用JDK软件包中的工具在命令行方式下编译并运行这个程序,使之能够输出字符串信息“Hello World! ”。(注:其后的所有实验如无特别说明,均是在MyEclipse8.5环境下编译执行)2) 编写程序实现如下功能:已知学生类有域变量(姓名、考号、综合成绩、体育成绩)和方法(获取综合成绩、获取体育成绩、显示基本信息),学校类有静态变量(录取分数线)和方法(设置录取分数、获取录取分数线),录取类有方法(获取学生是否符合录取条件,其中录取条件为综合成绩在录取分数线之上,或体育成绩在96分以上并且综合成绩大于300分)。现要求编写程序输出一组学生对象中被某学校录取的学生基本信息。3、实验步骤1) 编写一个Java Application,利用JDK软件包中的工具编译并运行这个程序。步骤(1):编写、编译Java 源程序。打开MyEclipse,新建一个java文件,键入如下程序代码: public class Hello public static void main(String args) System.out.println(Hello,World!); 将文件命名为Hello.java,注意保存文件Hello.java到路径“e:自己学号java”下。步骤(2):编译Java 源程序打开命令提示符窗口(MSDOS 窗口)进入Java 源程序所在路径e:自己学号java”。键入编译器文件名和要编译的源程序文件名,具体如下:Set path=%path%;c:program filesjdk1.6.0_02bin; javac -d class Hello.java按回车键开始编译(注意:文件名H 要大写,否则运行会出问题)。如果源程序没有错误,则屏幕上没有输出,键入 “dir”按回车键后可在当前目录中看到生成了class子目录,在class子目录下有一个同名字的.class 文件即“Hello. class”。否则,将显示出错信息。步骤(3):运行Java 程序在命令提示符窗口或MSDOS 窗口键入解释器文件名和要解释的字节码文件名:java classpath e:自己学号javaclass Hello按回车键即开始解释并可看到运行结果。2) 编写程序实现如下功能:已知学生类有域变量(姓名、考号、综合成绩、体育成绩)和方法(获取综合成绩、获取体育成绩、显示基本信息),学校类有静态变量(录取分数线)和方法(设置录取分数、获取录取分数线),录取类有方法(获取学生是否符合录取条件,其中录取条件为综合成绩在录取分数线之上,或体育成绩在96分以上并且综合成绩大于300分)。现要求编写程序输出一组学生对象中被某学校录取的学生基本信息。(注意:这个程序可以直接在Eclipse集成编辑环境中完成)步骤(1):定义类Stduent,并添加如下域变量: String name; String id; float comScore; float score ;步骤(2):在类Student中添加如下方法,并编写代码实现具体方法的功能: Student(String name,String id, float comScore, float score) float getcomScore() float getscore() void print() 步骤(3)定义类School,并添加静态变量 static float scoreLine; 添加静态方法 static float getScoreLine() static void setScoreLine(float score)步骤(4)定义一个Application程序类Enroll并添加方法: public static void main(String args) static boolean isEnroll(Student s)步骤(5)保存文件名为Enroll.java, 然后编译、调试和运行程序。4、思考题围绕综合设计题目,完成第一个任务:(1)定义三个类Saler、Manager和Techer。(2)分别创建三个类的对象,实现对象信息的打印输出。三、面向对象程序设计(实验2)1、实验目的1) 掌握类的继承机制。2) 熟悉类中成员变量和方法的访问控制。3) 熟悉方法或构造方法多态性。4) 熟悉接口的定义方法。2、实验内容1) 编写程序实现如下功能:已知Person类包含三个公共域变量(姓名、性别、年龄)和一个构造方法,Student类是Person类的派生类,包含两个新的公共域变量(学号、班号)、两个公共方法(修改年龄、显示基本信息)及一个构造方法。定义一组学生对象,并初始化他们的基本信息,然后依次输出。2) 输入课本例5-4的源程序,观察其运行结果,然后将Shape类分别定义为一个抽象类和接口,然后将源程序进行修改,让其实现相同功能。3、实验步骤1) 编写程序实现如下功能:已知Person类包含三个公共域变量(姓名、性别、年龄)和一个构造方法,Student类是Person类的派生类,包含两个新的公共域变量(学号、班号)、两个公共方法(构造方法、修改年龄、显示基本信息)和一个构造方法。定义一组学生对象,并初始化他们的基本信息,然后依次输出。步骤(1):定义类Person,并添加以下公共域变量 public String name; public char sex; public int age; 添加构造方法Person(String name,char sex,int age)步骤(2):基于类Person派生类Student,并添加如下公共域变量和方法 public String classno; public String sno; public void updateAge(int age) void toString() Student(String name,char sex,int age,String sno,String name) super(name,sex,age); . 步骤(3):定义一个包含main方法的Application程序类TestStudentPerson,初 始化一个学生类对象数组,并利用循环语句显示所有学生基本信息。4、思考题围绕综合设计题目,完成第二个任务:(1)思考已定义的三个类Saler、Manager和Techer的公共属性和方法,考虑定义三个类的基类Employer类,然后Saler、Manager和Techer是Employer类的子类。根据系统需求修改实验一的程序,。(2)定义Employer类对象数组,存储管理一组雇员,并实现遍历所有雇员的信息功能。(3)定义CEmployerSet类,其有addNewEmployer、updateEmployer、deleteEmployer、listAllEmployer方法四、 异常类的定义及处理(实验3)1、实验目的1) 了解异常处理方法。2) 熟悉并掌握常见异常的捕获方法。3) 熟悉JDK中已经定义的若干异常类的层次结构。4) 掌握自定义异常类的创建方法。2、实验内容编写程序实现如下功能:生成并捕获到NegativeArraySizeException和IndexOutOfBoundsException类型的异常,并显示捕获到的异常信息。然后在此基础上生成并捕获到NullPointerException类型的异常,并显示捕获到的异常信息。参考知识:常见的系统异常(1) ArithmeticException(2) ArrayIndexOutOfBandsException(3) ArrayStoreException(4) IOException(5) FileNotFoundException(6) NullPointerException(7) MalformedURLException(8) NumberFormatException(9) OutOfMemoryException1)翻译下列常用异常类的描述信息OutOfMemoryError A class instance creation expression, array creation expression , or string concatenation operatior expression throws an OutOfMemoryError if there is insufficient memory available. NegativeArraySizeException An array creation expression throws a NegativeArraySizeException if the value of any dimension expression is less than zero.NullPointerException A field access throws a NullPointerException if the value of the object referenceexpression is null. A method invocation expression that invokes an instance method throws a NullPointerException if the target reference is null. An array access throws a NullPointerException if the value of the array referenceexpression is null. ArrayIndexOutOfBoundsException An array access throws an ArrayIndexOutOfBoundsException if the value of the array index expression is negative or greater than or equal to the length of the array. ClassCastException Thrown to indicate that the code has attempted to cast an object to a subclass of which it is not an instance. For example, the following code generates a ClassCastException: Object x = new Integer(0); System.out.println(String)x);ArithmeticException Thrown when an exceptional arithmetic condition has occurred. For example, an integer divide by zero throws an instance of this class. ArrayStoreExceptionAn assignment to an array component of reference type throws an ArrayStoreException when the value to be assigned is not compatible with the component type of the array.NoSuchFieldExceptionSignals that the class doesnt have a field of a specified name.NoSuchMethodExceptionThrown when a particular method cannot be foundNumberFormatExceptionThrown to indicate that the application has attempted to convert a string to one of the numeric types, but that the string does not have the appropriate format. FileNotFoundExceptionSignals that an attempt to open the file denoted by a specified pathname has failed.IOExceptionSignals that an I/O exception of some sort has occurred. This class is the general class of exceptions produced by failed or interrupted I/O operations3、实验步骤1)编写程序实现如下功能:生成并捕获到NegativeArraySizeException和IndexOutOfBoundsException类型的异常,并显示捕获到的异常信息。然后在此基础上生成并捕获到NullPointerException类型的异常,并显示捕获到的异常信息。步骤(1):编写一个包含main方法的Application类TestException,然后定义一个方法void arraySize()生成并捕获NegativeArraySizeException异常。步骤(2):添加一个方法void outofBound()生成并捕获IndexOutOfBoundsException异常。步骤(3):添加一个方法void nullPointer()生成并捕获IndexOutOfBoundsException异常。步骤(4):在main方法中分别调用以上三个方法。步骤(5):将文件保存为TestException.java,然后编译、调试应用程序。步骤(6):将outofBound()方法中捕获异常的语句注释掉,重新编译程序,看看会不会有什么语法错误?如果没错误,执行程序看结果有什么不同?步骤(7):将array方法重新定义为如下形式:void arraySize() throws NegativeArraySizeException然后修改arraySize方法中捕获NegativeArraySizeException异常的语句执行部分。4、思考题1)编写一个程序,用于根据用户输入的命令行参数数量来计算长方形、正方形、三角形的面积。如果输入的参数个数为1、2、3则它们应分别对应正方形、长方形、三角形,如果参数值为0,则异常处理方法显示错误消息。提示:自己定义一个异常类,表示参数个数0这一异常。然后定义一个抽象的父类,并提供一个抽象的方法area(),再派生出三个子类,重写area方法,最后在main方法中编写测试逻辑。五 流、文件及基于文本的应用(实验4)1、实验目的1) 理解数据流的概念。2) 理解Java流的层次结构。3) 理解并掌握文件的读写操作方法。2、实验内容1) 编写一个java Application程序,接受用户输入的10个整数,比较并输出其中的最大值和最小值。3、实验步骤1) 编写一个java Application程序,接受用户输入的10个整数,比较并输出其中的最大值和最小值。步骤(1):定义一个包含main方法的Application类MaxMinClass。步骤(2):在MaxMinClass类中添加如下两个方法,分别求取10个整数的最大值和最小值:static int maxInt(int data,int n)static int minInt(int data,int n)

温馨提示

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

评论

0/150

提交评论