mathJava程序设计实验指导书.docx

上传人:b****3 文档编号:11760477 上传时间:2023-06-02 格式:DOCX 页数:24 大小:68.42KB
下载 相关 举报
mathJava程序设计实验指导书.docx_第1页
第1页 / 共24页
mathJava程序设计实验指导书.docx_第2页
第2页 / 共24页
mathJava程序设计实验指导书.docx_第3页
第3页 / 共24页
mathJava程序设计实验指导书.docx_第4页
第4页 / 共24页
mathJava程序设计实验指导书.docx_第5页
第5页 / 共24页
mathJava程序设计实验指导书.docx_第6页
第6页 / 共24页
mathJava程序设计实验指导书.docx_第7页
第7页 / 共24页
mathJava程序设计实验指导书.docx_第8页
第8页 / 共24页
mathJava程序设计实验指导书.docx_第9页
第9页 / 共24页
mathJava程序设计实验指导书.docx_第10页
第10页 / 共24页
mathJava程序设计实验指导书.docx_第11页
第11页 / 共24页
mathJava程序设计实验指导书.docx_第12页
第12页 / 共24页
mathJava程序设计实验指导书.docx_第13页
第13页 / 共24页
mathJava程序设计实验指导书.docx_第14页
第14页 / 共24页
mathJava程序设计实验指导书.docx_第15页
第15页 / 共24页
mathJava程序设计实验指导书.docx_第16页
第16页 / 共24页
mathJava程序设计实验指导书.docx_第17页
第17页 / 共24页
mathJava程序设计实验指导书.docx_第18页
第18页 / 共24页
mathJava程序设计实验指导书.docx_第19页
第19页 / 共24页
mathJava程序设计实验指导书.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

mathJava程序设计实验指导书.docx

《mathJava程序设计实验指导书.docx》由会员分享,可在线阅读,更多相关《mathJava程序设计实验指导书.docx(24页珍藏版)》请在冰点文库上搜索。

mathJava程序设计实验指导书.docx

mathJava程序设计实验指导书

《Java程序设计》

实验指导书

 

淮北师范大学数学科学学院

《Java程序设计语言》实验教学大纲

 

一、实验教学目的和要求

《JAVA程序设计语言》是一门实践性很强的专业课程。

通过上机实验,不仅可以帮助学生较好地掌握Java语言和面向对象程序设计的基本概念、基本方法和技巧,同时也可培养学生独立设计程序的能力,理解面向对象的编程思想。

实验教学目的:

1.使学生通过实验,验证书本和课堂教学内容:

逐步理解、体会、消化、巩固和补充课堂所学主要内容;

2.培养学生设计与动手能力:

通过设计性的实验任务,通过实践环节理解Java语言的基本结构和程序设计方法。

通过亲手编程掌握Java语言编程的方法,从而提高学生的分析问题、解决问题的能力和动手能力。

通过实验,要求学生应达到以下实验能力与标准:

1.熟练掌握Java程序的编辑、编译、运行步骤及程序调试的方法;

2.熟练运用Java语言进行面向对象程序设计;

3.深入理解面向对象的封装、继承和多态等特性

4.利用Java语言进行异常处理

5.能利用Java语言进行磁盘数据文件的建立及读写操作编程。

二、主要仪器设备(所开实验的主要仪器设备)

每个学生上机使用一台PC机进行程序开发,PC机的硬件、软件环境如下:

1)硬件:

CPUP43.0GHZ256M内存,80G硬盘空间。

2)软件:

操作系统:

WindowsXP

开发工具:

Editplus或者eclipse

 

三、实验项目名称和学时分配

序号

实验项目名称

学时

分配

实验

属性

实验

类型

实验者类别

必开/选开

1

熟悉Java程序的编辑、编译和运行环境

2

专业类

验证性

本科生

必开

2

初步的面向对象的程序设计

2

专业类

验证性

本科生

必开

3

面向对象程序设计的继承、多态等特性的练习

2

专业类

设计性

本科生

必开

4

异常类的定义及处理

2

专业类

验证性

本科生

必开

5

文件的读/写操作

2

专业类

验证性

本科生

必开

四、实验课考核方式

1.实验报告:

1)在报告中重点给出调试分析过程描述:

包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等);

2)根据思考题要求,重点描述需求分析、概要设计和详细设计过程,并提交包含详细注释的源程序清单,最后详细描述程序调试分析过程。

2.考核方式

2.1实验课成绩根据学生的实验预习、实验纪律、实验动手能力、实验结果和实验报告等几个部分进行综合评定,并给出优、良、中、及格和不及格共五档成绩。

2.2实验课成绩占课程总成绩的30%。

 

目录

实验一熟悉Java程序的编辑、编译和运行环境1

实验二初步的面向对象的程序设计练习6

实验三面向对象程序设计的继承、多态等特性的练习10

实验四异常类的定义及处理14

实验五流、文件及基于文本的应用18

 

实验一熟悉Java程序的编辑、编译和运行环境

一、实验目的

1)掌握设置Java程序运行环境的方法,并熟悉Java程序的集成开发工具。

2)掌握编写、编译、运行简单的JavaApplication和JavaApplet程序的方法步骤,初步了解java程序的特点和基本结构。

3)掌握Java基本数据类型、运算符与表达式。

4)理解Java程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法。

二、实验内容

1)安装和配置JDK软件开发包。

2)编写一个JavaApplication,利用JDK软件包中的工具编译并运行这个程序,使之能够输出字符串信息“HelloWorld!

”。

3)编写一个JavaApplet,使之能够在浏览器中显示“welcometoJavaAppletWorld”的字符串信息。

三、实验原理

1)Javaapplication和Javaapplet程序

java程序可以分为两类:

javaapplication和javaapplet。

前者是完整的应用程序,需要独立的解释器来解释运行;后者则是嵌在网页中的非独立程序,由浏览器所自带的java解释器来解释运行。

2)Java程序开发调试过程。

图1.1Java程序开发流程

3)JavaApplication程序的编辑、编译和运行步骤

(1)在编辑器中输入源程序,文件名与公共类相同,文件后缀为.java(如HelloWorldApp.java),并将其保存到工作目录(如e:

\java目录)。

(2)编译源程序

e:

\java>

C:

\ProgramFiles\Java\jdk1.6.0_01\bin\javac-d.HelloWorldApp.java

若编译通过,在e:

\java目录下会生成一个HelloWorldApp.class文件

(3)程序的运行

运行包含main方法的主类所编译生成的字节码文件,不用加.class后缀

e:

\java>

C:

\ProgramFiles\Java\jdk1.6.0_01\bin\java–classpath.HelloWorldApp

4)JavaApplet程序的编辑、编译和运行步骤

(1)在编辑器中输入源程序,将其保存为与公共类同名的java文件。

(2)编译源程序并生成一个和源文件同名且后缀为class的字节码文件。

(3)生成一个Html文件,并在其中的标记中嵌入Applet字节码文件。

标记中必须包含三个参数:

●CODE:

指明嵌入Html文件中的JavaApplet字节码文件的文件名

●HEIGHT:

指明JavaApplet程序在Html文件所对应的Web页面中占用区域的高度。

●WIDTH:

指明JavaApplet程序在Html文件所对应的Web页面中占用区域的宽度。

(4)用支持Java的浏览器打开Html文件,就能看到Applet程序的运行效果。

另外JDK中还提供了一个AppletViewer工具,也可用来浏览Html中的Applet。

四、实验步骤

1)编写一个JavaApplication,利用JDK软件包中的工具编译并运行这个程序。

步骤

(1):

编写、编译Java源程序。

打开Jcreator编辑器,新建一个java文件,键入如下程序代码:

publicclassHello

{

publicstaticvoidmain(Stringargs[])

{System.out.println("Hello,World!

");}

}

将文件命名为Hello.java,注意保存文件Hello.java到路径“e:

\java\program\”下。

步骤

(2):

编译Java源程序

Java源程序编写后,要使用Java编译器(javac.exe)将Java源程序编译成字节码文件。

Java源程序都是扩展名为.java的文本文件。

编译时首先读入Java源程序,然后进行语法检查,如果出现问题就终止编译。

语法检查通过后,生成可执行程序代码即字节码,字节码文件名和源文件名相同,扩展名为.class。

打开命令提示符窗口(MS-DOS窗口)进入Java源程序所在路径e:

\java\program。

键入编译器文件名和要编译的源程序文件名,具体如下:

javac-dclassHello.java

按回车键开始编译(注意:

文件名H要大写,否则运行会出问题)。

如果源程序没有错误,则屏幕上没有输出,键入“dir”按回车键后可在当前目录中看到生成了class子目录,在class子目录下有一个同名字的.class文件即“Hello.class”。

否则,将显示出错信息。

步骤(3):

运行Java程序

使用Java解释器(java.exe)可将编译后的字节码文件Hello.class解释为本地计算机代码。

在命令提示符窗口或MS-DOS窗口键入解释器文件名和要解释的字节码文件名:

java–classpathe:

\java\program\classHello或者javaHello,按回车键即开始解释并可看到运行结果。

3)编写一个JavaApplet,使之能够在浏览器中显示“welcometoJavaAppletWorld”的字符串信息。

步骤

(1):

编写HelloWorldApplet.java程序文件,源代码如下。

importjava.applet.*

importjava.awt.*

publicclassHelloWorldAppletextendsApplet

{

publicvoidpaint(Graphicsg)

{g.drawString(“welcometoJavaAppletWorld,40,20);}

}

步骤

(2):

保存文件为e:

\java\program\HelloWorldApplet.java。

编译该文件,生成HelloWorldApplet.class字节码文件。

步骤(3):

编写显示HelloWorldApplet.calss的页面文件HelloWorld.html,代码如下。

/java/program/classcode=HelloWorldApplet.calsswidth=300height=120>

步骤(4):

在提示符窗口调用小程序查看器浏览HelloWorld.html页面,观察Applet应用程序。

五、思考题

1)编程实现:

产生一个20个整数存放到数组中,然后对其按照升序进行排序,最后对排序前后的数组按照每5个数的方式输出。

2)编程实现:

产生一个1-12之间的随机整数,并根据该随机整数的值,输出对应月份的英文名称。

提示:

产生0-1之间的随机数方法一:

Math.random()

产生一个随机整数方法二:

importjava.util.*

……

Randomr=newRandom();

Math.abs(r.nextInt())

实验二初步的面向对象的程序设计练习

一、实验目的

1)掌握类和构造方法的定义。

2)掌握创建类实例的方法。

3)初步掌握面向对象的编程思想

二、实验内容

1)编写程序实现如下功能:

已知学生类有属性(学号、班号、姓名、性别、年龄)和方法(获得学号、获得班号、获得性别、获得年龄、修改年龄,显示基本信息),定义一组学生对象,并初始化他们的基本信息,然后依次输出。

2)编写程序实现如下功能:

已知学生类有属性(姓名、考号、综合成绩、体育成绩)和方法(获取综合成绩、获取体育成绩、显示基本信息),学校类有静态变量(录取分数线)和方法(设置录取分数、获取录取分数线),录取类有方法(获取学生是否符合录取条件,其中录取条件为综合成绩在录取分数线之上,或体育成绩在96分以上并且综合成绩大于300分)。

现要求编写程序输出一组学生对象中被某学校录取的学生基本信息。

三、实验原理

1)类、域、方法

类体中包括属性和方法,都是类的成员。

一个类可以定义多个域和方法。

(1)是类的静态属性,也称为变量、成员变量等,格式为:

类型名属性名;

在定义属性前,还可以加修饰符。

(2)方法是类的动态属性。

Java的方法与其它语言中的函数类似。

由方法头和方法体组成:

修饰符1……返回类型方法名(形参列表)throws异常列表

{

方法体语句;

}

其中,形参列表格式为:

形参类型形参名1,形参类型形参名2

2)类和对象

(1)类(class):

抽象的集合概念。

类包括系统类库中已定义好的类和用户自定义的类

(2)对象(实例instance):

实际个体。

创建某个类的具体对象(类似变量声明),具体定义格式为:

类名对象变量=new类名([参数]);

(3)构造方法:

构造方法的名字与类名相同。

创建对象时自动调用,并对对象进行初始化操作。

注意:

构造方法前面没有返回类型定义,它没有返回值,也不是void。

[不能return];JAVA每个类都至少有一个构造方法[系统默认无参数构造方法];一旦定义了构造方法,系统不再提供默认构造方法。

(4)对象的使用:

要访问或调用一个对象的域或者方法,使用.操作符。

一般形式:

引用对象变量名.域/方法名;如p.sayHello();

由于只能用对象变量来访问这个对象的域或方法,不通过引用变量就没有办法访问,体现了面向对象的“封装性”。

3)静态属性和静态方法

(1)静态属性

用static修饰的域属于类的静态域(静态量,类变量),不用static修饰的为实例变量(实例域)。

静态域的特点如下:

●它们是类的域,不属于任何一个类的具体对象实例。

它保存在类的内存区域的公共存储单元。

●对于该类的任何一个实例对象,静态域是一个公共的存储单元。

●任何一个类的对象访问它,取到的都是相同的值;

●任何一个类的对象修改它,那么也是在对同一个内存单元进行操作。

(2)静态方法

用static修饰的方法属于类的静态方法,又称为类方法。

不用static修饰的方法为实例方法。

类方法的本质是该方法属于整个类,而不是属于某个实例。

静态方法具有如下特点:

●static方法是属于整个类的,它在内存中的代码段将随着类的定义而进行分配和装载。

而非static的方法是属于某个对象的,在这个对象创建时,对象的方法在内存中有自己的代码段。

●static方法不能操纵属于某个对象的成员变量,只能处理属于类的成员变量,即只能处理static域和方法。

●类方法中不能访问实例变量,也不能使用this或super。

●调用类方法可以使用类名,也可以用具体对象名。

四、实验步骤

1)编写程序实现如下功能:

已知学生类有域变量(学号、班号、姓名、性别、年龄)和方法(构造方法、获得学号、获得班号、获得性别、获得年龄、修改年龄,显示基本信息),定义一组学生对象,并初始化他们的基本信息,然后依次输出。

步骤

(1):

定义类Stduent,并添加如下域变量:

Stringsno;Stringclassno;Stringname;charsex;intage;

步骤

(2):

在类Student中添加如下方法,并编写代码实现具体方法的功能:

Student(Stringsno,Stringclassno,Stringname,charsex,intage){……}

StringgetSno(){……}

StringgetClassno(){……}

StringgetSex(){……}

intgetAge(){……}

voidupdateAge(intage){……}

voidprint(){……}

步骤(3):

定义一个包含main方法的Application程序类TestStudent,初始化一个学

生类对象数组,并利用循环语句显示所有学生的基本信息。

步骤(4):

保存文件名为TestStudent.java,然后编译、调试和运行程序。

2)编写程序实现如下功能:

已知学生类有域变量(姓名、考号、综合成绩、体育成绩)和方法(获取综合成绩、获取体育成绩、显示基本信息),学校类有静态变量(录取分数线)和方法(设置录取分数、获取录取分数线),录取类有方法(获取学生是否符合录取条件,其中录取条件为综合成绩在录取分数线之上,或体育成绩在96分以上并且综合成绩大于300分)。

现要求编写程序输出一组学生对象中被某学校录取的学生基本信息。

步骤

(1):

定义类Stduent,并添加如下域变量:

Stringname;Stringid;floatcomScore;floatscore;

步骤

(2):

在类Student中添加如下方法,并编写代码实现具体方法的功能:

Student(Stringname,Stringid,floatcomScore,floatscore){……}

floatgetcomScore(){……}

floatgetscore(){……}

voidprint(){……}

步骤(3)定义类School,并添加静态变量

staticfloatscoreLine;

添加静态方法

staticfloatgetScoreLine(){……}

staticvoidsetScoreLine(floatscore){……}

步骤(4)定义一个Application程序类Enroll并添加方法:

publicstaticvoidmain(Stringargs[]){……}

staticbooleanisEnroll(Students){……}

步骤(5)保存文件名为Enroll.java,然后编译、调试和运行程序。

五、思考题

1、1)定义复数类Complex,其满足如下要求(18分):

●复数类Complex的属性有:

RealPart:

double型,代表复数的实数部分

ImaginPart:

double型,代表复数的虚数部分

●复数类Complex的方法有:

Complex(doublerp,doubleip):

构造函数,形参rp为实部的初值,ip为虚部的初值。

ComplexcomplexAdd(Complexa):

将当前复数对象与形参复数对象相加,所得的结果仍是一个复数,并将结果返回给此方法的调用者。

ComplexcomplexMinus(Complexa):

将当前复数对象与形参复数对象相减,所得的结果仍是一个复数,并将结果返回给此方法的调用者。

publicStringtoString():

把当前复数对象的实部、虚部组合成a+bi的字符串形式,其中a和b分别为实部和虚部的数据。

(2)编写一个完整的JavaApplication程序,实现如下功能:

创建两个复数对象,然后让用户从键盘输入一个运算符('+'或'-'),求取两个复数对象的和或差的结果并输出。

实验三面向对象程序设计的继承、多态等特性的练习

一、实验目的

1)掌握类的继承机制。

2)熟悉类中成员变量和方法的访问控制。

3)熟悉方法或构造方法多态性。

4)熟悉接口的定义方法。

二、实验内容

1)编写程序实现如下功能:

已知Person类包含三个公共域变量(姓名、性别、年龄)和一个构造方法,Student类是Person类的派生类,包含两个新的公共域变量(学号、班号)、两个公共方法(修改年龄、显示基本信息)及一个构造方法。

定义一组学生对象,并初始化他们的基本信息,然后依次输出。

2)将Shape类分别定义为一个抽象类和接口,然后将源程序进行修改,让其实现相同功能。

三、实验原理

1)类的继承

面向对象语言允许从一个已有的类[父类]定义新的类[子类],从而形成继承关系。

父类是所有子类的公共域和公共方法的集合,每个子类是父类的特殊化。

子类继承父类的状态和行为,同时也可以修改父类,并可以添加新的状态和行为。

(1)域的继承和添加

子类可以从父类那里继承所有的没有被private和static修饰的域。

那么子类就无需再重复定义。

还可以在子类中定义其独特的域变量:

(2)方法的继承、覆盖和添加

父类的非private方法也可以被子类自动继承。

同时子类也可以重新定义与父类同名的方法,实现对其的覆盖/重置(override/overlay)。

在覆盖父类方法时注意应保持完全相同的方法名、返回值和参数类型列表,即重写父类中的方法。

另外子类还可以重载父类的方法或添加新的方法。

2)访问修饰符

Java提供4种访问权限:

public、protected、private和默认。

描述

private

默认

protected

public

同一类中

同一包中对子类

×

同一包中对非子类

×

不同包中对子类

×

×

不同包中对非子类

×

×

×

3)抽象类和接口

(1)抽象类和抽象方法

一个方法如果没有定义方法体,则称该方法为抽象方法。

包含一个或多个抽象方法的类,称为抽象类。

定义抽象类后,其它类可以对它进行扩充并且通过实现其中的抽象方法,使抽象类具体化。

Java语言中,用abstract关键字来修饰一个类时,这个类叫做抽象类,用abstract关键字来修饰一个方法时,这个方法叫做抽象方法。

抽象类的语法格式如下

abstractClass{…}//抽象类

抽象方法的语法格式如下

abstractreturnTypeabstractMethod([paramlist])//抽象方法

抽象类必须被继承,抽象方法必须被重写。

抽象方法只需声明,无需实现,抽象类不能被实例化。

若类中包含了抽象方法,则该类必须被定义为抽象类。

(2)接口

接口是抽象类的一种,只包含常量和方法的定义,而没有方法的实现,且其方法都是抽象方法。

它的用处体现在下面几个方面:

●通过接口指明多个类需要实现的方法。

●通过接口实现不相关类的相同行为,而无需考虑这些类之间的关系。

●通过接口了解对象的交互界面,而无需了解对象所对应的类。

接口的定义包括接口声明和接口体,接口声明的格式如下:

[public]interfaceinterfaceName[extendslistOfSuperInterface]{…}

其中,extends子句与类声明的extends子句基本相同,不同的是一个接口可有多个父接口,用逗号隔开,而一个类只能有一个基类。

4)多态的两种表现形式

(1)同一类中的方法多态(方法重载):

同一类中允许多个同名方法,通过参数的数量、类型的差异进行区分。

(2)子类对父类方法的重新定义(方法覆盖):

方法名、返回值和参数形态完全一样。

四、实验步骤

1)编写程序实现如下功能:

已知Person类包含三个公共域变量(姓名、性别、年龄)和一个构造方法,Student类是Person类的派生类,包含两个新的公共域变量(学号、班号)、两个公共方法(构造方法、修改年龄、显示基本信息)和一个构造方法。

定义一组学生对象,并初始化他们的基本信息,然后依次输出。

步骤

(1):

定义类Person,并添加以下公共域变量

publicStringname;publiccharsex;publicintage;

添加构造方法Person(Stringname,charsex,intage){……}

步骤

(2):

基于类Person派生类Student,并添加如下公共域变量和方法

publicStringclassno;publicSt

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2