Java实验报告书写指导.docx

上传人:b****6 文档编号:8258660 上传时间:2023-01-30 格式:DOCX 页数:19 大小:273.52KB
下载 相关 举报
Java实验报告书写指导.docx_第1页
第1页 / 共19页
Java实验报告书写指导.docx_第2页
第2页 / 共19页
Java实验报告书写指导.docx_第3页
第3页 / 共19页
Java实验报告书写指导.docx_第4页
第4页 / 共19页
Java实验报告书写指导.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

Java实验报告书写指导.docx

《Java实验报告书写指导.docx》由会员分享,可在线阅读,更多相关《Java实验报告书写指导.docx(19页珍藏版)》请在冰豆网上搜索。

Java实验报告书写指导.docx

Java实验报告书写指导

Java语言实验报告书写指导

说明:

1、本课程共需要书写5个实验报告。

实验一Java编程环境

实验二Java语言基础

实验三方法和数组

实验四类和对象

实验五深入类设计

2、每个实验报告单独一页开始。

3、红色字部分都删除掉。

4、报告文件保存为:

学号-姓名-班级.doc

提交报告时,本页删除掉

实验一Java编程环境

一、实验目的:

了解Java的配置环境,掌握JavaApplication的程序结构和开发过程,了解JavaApplet的功能与程序结构,掌握Java程序的调试、运行过程。

二、实验内容:

(请根据下面的实验内容进行实验报告的书写,本括号内的内容不要出现在实验报告中)

1、Java环境的配置训练。

2、编写一个Application程序,显示“WelcometoJavaProgramming”

三、主要代码及运行结果:

(请根据实验内容进行实验报告的书写。

本括号内的内容不要出现在实验报告中)

1、JDK开发环境配置

(1)J2SDK1.6.0开发环境安装在“C:

\ProgramFiles\Java\jdk1.6.0”目录下。

(2)设置环境变量PATH和CLASSPATH:

进入命令行(MS-DOS)方式,进行如下设置:

SETPATH=C:

\ProgramFiles\Java\jdk1.6.0\bin;%PATH%

SETCLASSPATH=.;%CLASSPATH%

在WindowsXP下设置:

右键点击[我的电脑],选择[属性],选择[高级]选项卡,单击[环境变量]按钮,在[系统变量]找到path变量,单击[编辑]按钮,把C:

\ProgramFiles\Java\jdk1.6.0添加到里面,与已有的内容用分号隔开。

在[系统变量]中单击[新建]按钮,在[变量名]文本框中输入名称CLASSPATH,在[变量值]文本框中输入.;C:

\ProgramFiles\Java\jdk1.6.0\lib\tools.jar;C:

\ProgramFiles\Java\jdk1.6.0\jre\lib\rt.jar;

2、编写一个Application程序,显示“WelcometoJavaProgramming”

(1)打开编辑器。

(2)键入如下程序:

importjava.io.*;

publicclassHelloWorld{

publicstaticvoidmain(Stringarg[]){

System.out.println("WelcometoJavaProgramming");

      }

}

(3)保存文件。

(4)进入命令行(MS-DOS)方式,设定当前目录为“D:

\Java\”,运行Java编译器:

D:

\Java>javacHelloWorld.java

(5)如果输出错误信息,则根据错误信息提示的错误所在行返回EditPlus编辑器进行修改。

如果没有输出任何信息或者出现“deprecation”警告,则认为编译成功,此时会在当前目录中生成HelloWorld1.class文件。

(6)利用Java解释器运行这个JavaApplication程序,并查看运行结果。

D:

\Java>javaHelloWorld

输出结果为:

WelcometoJavaProgramming

四、思考题(选择1、2个问题作为问题讨论。

本括号内的内容不要出现在实验报告中)

(1)系统环境变量中CLASSPATH的作用是什么?

java加载类(classorlib)的路径,只有类在设置的classpath中,java命令才能识别该类。

(2)java编译器和解释器分别是什么?

java编译器是javac.exe,java解释器是java.exe。

(3)JavaApplication源程序保存时有什么需要注意问题,为什么?

JavaApplication源程序保存时文件名称需要和主类名一致,如果没有主类,则可以采用符合java命名规范的任意类名,但是,在执行时,必须执行相应类名字。

因为java虚拟机自动从主类的main()方法开始执行java程序,没有主类的java类,需要测试类执行该类。

实验二Java语言基础

一、实验目的:

掌握Java基本语言基础:

基本数据类型、操作符、流程控制语句。

二、实验内容:

(请根据下面的实验内容选择2个进行实验报告的书写。

本括号内的内容不要出现在实验报告中)

1、编程掌握变量的定义与数据类型的定义。

2、编程掌握一般算术运算的实现。

3、编写程序,掌握关系运算与逻辑运算

4、利用循环语句编程,找出所有的水仙花数并输出。

其中水仙花数是三位数,它的各位数字的立方和等于这个三位数本身,例如:

371=33+73+13,371就是一个水仙花数。

5、编程实现Fibonacci数列;

其中:

Fibonacci数列的定义为:

F1=1,F2=1,…,Fn=Fn-1+Fn-2      (n>=3)

三、主要代码及运行结果:

(请根据实验内容选择相应的代码部分进行实验报告的书写。

本括号内的内容不要出现在实验报告中)

1、运行下面的程序,掌握变量定义与数据类型。

importjava.io.*;

publicclassSimpleTypes{

publicstaticvoidmain(Stringargs[]){

byteb=055;

shorts=0x55ff;

inti=1000000;

longl=3615L;

charc=''c'';

floatf=0.23F;

doubled=0.7E-3;

booleanbool=true;

System.out.println("b="+b);

System.out.println("s="+s);

System.out.println("i="+i);

System.out.println("l="+l);

System.out.println("c="+c);

System.out.println("f="+f);

System.out.println("d="+d);

System.out.println("bool="+bool);

}

}

执行结果:

将实验内容中的longl=3615L;改为:

longl=3615;

执行结果为:

结果和没改一样,因为整数缺省后缀默认为int型,以上语句实现了自动类型转换为long型。

将实验内容中的floatf=0.23F;改为:

floatf=0.23;

编译时会报出错:

可能损失精度。

因为浮点型数缺省后缀默认为double类型,而变量f为float型,所以不能自动转换数据类型。

2、运行下面的程序,掌握算术运算。

importjava.io.*;

publicclassArithmaticOp{

publicstaticvoidmain(Stringargs[]){

inta=5+4;//a=9

intb=a*2;//b=18

intc=b/4;//c=4

intd=b-c;//d=14

inte=-d;//e=-14

intf=e%4;//f=-2

doubleg=18.4;

doubleh=g%4;//h=2.4

inti=3;

intj=i++;//i=4,j=3

intk=++i;//i=5,k=5

System.out.println("a="+a);

System.out.println("b="+b);

System.out.println("c="+c);

System.out.println("d="+d);

System.out.println("e="+e);

System.out.println("f="+f);

System.out.println("g="+g);

System.out.println("h="+h);

System.out.println("i="+i);

System.out.println("j="+j);

System.out.println("k="+k);

}

}

intj=i++执行过程是:

先是j=i,然后i=i+1;intk=++i执行过程是:

先i=i+1,然后k=i。

3、运行下面的程序,掌握关系运算与逻辑运算

importjava.io.*;

publicclassRelationAndConditionOp2{

publicstaticvoidmain(Stringargs[]){

inta=25,b=3;

booleand=a

System.out.println(a+"<"+b+"="+d);

inte=3;

d=(e!

=0&&a/e>5);

System.out.println(e+"!

=0&&"+a+"/"+e+">5="+d);

intf=0;

d=(f!

=0&&a/f>5);

System.out.println(f+"!

=0&&"+a+"/"+f+">5="+d);

d=(f!

=0&a/f>5);

System.out.println(f+"!

=0&&"+a+"/"+f+">5="+d);

}

}

对于快速逻辑与运算,当运算符左侧表达式的值为true时,不再计算右侧表达式的值。

4、利用循环语句编程,找出所有的水仙花数并输出。

其中水仙花数是三位数,它的各位数字的立方和等于这个三位数本身,例如:

371=33+73+13,371就是一个水仙花数。

源码如下:

publicclassSxh{

publicstaticvoidmain(String[]args){

inta,b,c;

for(inti=100;i<=999;i++){

a=i/100;

b=(i%100)/10;

c=(i%100)%10;

if(i==a*a*a+b*b*b+c*c*c)

System.out.println(i);

}

}

}

实验结果:

5、编程实现Fibonacci数列;

其中:

Fibonacci数列的定义为:

F1=1,F2=1,…,Fn=Fn-1+Fn-2      (n>=3)

源码如下:

publicclassFibn{

publicstaticvoidmain(Stringargs[]){

inti;

intf[]=newint[10];

f[0]=f[1]=1;

for(i=2;i<10;i++)

f[i]=f[i-1]+f[i-2];

for(i=1;i<=10;i++)

System.out.println("F["+i+"]="+f[i-1]);

}

}

实验结果:

 

四、思考题(选择2个问题作为问题讨论。

本括号内的内容不要出现在实验报告中)

(1)定义变量的作用是什么?

将内存中的某个内存块保留下来以供程序使用,里面的内容是可变的

(2)Java运算符的优先级与结合性是怎样的?

优先级

运算符

结合性

1

()

括号运算符

由左至右

1

[]

方括号运算符

由左至右

2

!

、+(正号)、-(负号)

一元运算符

由右至左

2

~

位逻辑运算符

由右至左

2

++、--

递增与递减运算符

由右至左

3

*、/、%

算术运算符

由左至右

4

+、-

算术运算符

由左至右

5

<<、>>

位左移、右移运算符

由左至右

6

>、>=、<、<=

关系运算符

由左至右

7

==、!

=

关系运算符

由左至右

8

&(位运算符AND)

位逻辑运算符

由左至右

9

^(位运算符号XOR)

位逻辑运算符

由左至右

10

|(位运算符号OR)

位逻辑运算符

由左至右

11

&&

逻辑运算符

由左至右

12

||

逻辑运算符

由左至右

13

?

:

三目运算符

由左至右

14

=

赋值运算符

由右至左

(3)for、while和do-while循环的区别?

如果明确的知道循环次数,可以使用for循环语句。

当事先不知道循环执行次数的时,就要用到while循环。

do…while循环也是用于未知循环执行次数的时候,使用do…while循环时,至少都会执行一次循环主体。

实验三方法和数组

一、实验目的:

1、通过实验掌握数组的使用,为以后的Java程序编程打下基础。

2、掌握Java实例方法的定义和调用。

二、实验内容:

(请根据下面的实验内容,数组和方法分别选择1个进行实验报告的书写,相应序号要改变。

本括号内的内容不要出现在实验报告中)

1.统计一维数组里大于0的元素个数、小于0的元素的个数以及等于0的元素的个数并输出。

2.编写程序,定义一个不规则的二维数组,输出其行数和每行的元素个数,并求数组所有元素的和。

3.编辑调试Circle类,根据注释,思考理解程序代码。

4.编写一个Student类,包含学号、姓名、成绩、年龄等成员变量,以及设置变量和提取变量的方法。

通过测试类TestStudent进行测试。

三、主要代码及运行结果:

(请根据实验内容选择相应的步骤和代码部分进行实验报告的书写。

本括号内的内容不要出现在实验报告中)

1、统计一维数组里大于0的元素个数、小于0的元素的个数以及等于0的元素的个数并输出。

publicclassCount{

publicstaticvoidmain(Stringargs[]){

inta[]={1,-3,4,-5,0,9,12};

intcountZero=0,countPos=0,countNeg=0;

inti;

i=a.length();

for(intj=0;j

if(a[j]==0)countZero++;//元素为0

elseif(a[j]>0)countPos++;//元素大于零

elsecountNeg++;//元素小于零

}

//输出统计结果

System.out.println(“Thenumberofzerois:

”+countZero);

System.out.println(“Thenumberofplusis:

”+countPos);

System.out.println(“Thenumberofnegativeis:

”+countNeg);

}

}

运行结果:

2、编写程序,定义一个不规则的二维数组,输出其行数和每行的元素个数,并求数组所有元素的和。

publicclassArr{

publicstaticvoidmain(Stringargs[]){

intb[][]={{11},{21,22},{31,32,33,34}};

intsum=0;

//输出数组的长度

System.out.println("数组b的行数:

"+b.length);

for(intI=0;I

System.out.println("b["+I+"]行的数据个数:

"+b[I].length);

for(intj=0;j

sum=sum+b[I][j];

}

}

System.out.println("数组元素的总和:

"+sum);

}

}

运行结果:

 

3、编辑调试Circle类,根据注释,思考理解程序代码。

publicclassCircle{

privatefloatradius;//半径成员变量

finalfloatPi=3.14159f;//成员常量

Circle(floatr){//构造方法,实现创建对象时对成员变量半径的初始化

if(r<=0){

System.out.println("给定的数据小于0,半径默认为1");

this.radius=1;

}else{

this.radius=r;

}

}

voidsetRadius(floatradius){//属性半径的的写方法

if(radius<=0){

System.out.println("给定的数据小于0,半径默认为1");

this.radius=1;

}else{

this.radius=radius;//属性半径,用“this”与形参区分

}

}

floatgetRadius(){//半径的读方法

returnthis.radius;

}

floatgetCir(){//获得○周长的方法

return2*Pi*radius;

}

floatgetArea(){//获得○面积的方法

returnPi*radius*radius;

}

Publicstaticvoidmain(Stringargs[]){

Circlec=newCircle(3.5f);//创建○对象

System.out.println("半径为"+c.getRadius()+"的圆的周长是"+c.getCir()+",面积是"+c.getArea());

c.setRadius(12.56f);//利用set方法修改○半径

System.out.println("半径为"+c.getRadius()+"的圆的周长是"+c.getCir()+",面积是"+c.getArea());

}

}

4、编写一个Student类,包含学号、姓名、成绩、年龄等成员变量,以及设置变量和提取变量的方法。

通过测试类TestStudent进行测试。

classStudent{

privateStringno;

privateStringname;

privateintage;

privatedoublescore;

publicvoidsetNo(Stringno){

this.no=no;

}

publicvoidsetName(Stringname){

this.name=name;

}

publicvoidsetAge(intage){

this.age=age;

}

publicvoidsetScore(doublescore){

this.score=score;

}

publicStringgetNo(){

returnno;

}

publicStringgetName(){

returnname;

}

publicintgetAge(){

returnage;

}

publicdoublegetScore(){

returnscore;

}

}

publicclassTestStudent{

publicstaticvoidmain(String[]args){

Students1=newStudent();

s1.setNo("20130001");

s1.setName("Tom");

s1.setAge(21);

s1.setScore(97);

System.out.println("该生信息为:

"+s1.getNo()+""+s1.getName()+""+s1.getAge()+""+s1.getScore());

}

}

四、思考题(选择1、2个问题作为问题讨论。

本括号内的内容不要出现在实验报告中)

(1)二维数组中的length表示什么?

“数组名称.length”,一维数组中表示数组元素的个数,二维数组中表示该数组含有的一维数组的个数。

(2)数组初始化有几种方式,各种数据类型的默认初始化值是什么?

数组的初始化分为动态初始化和静态初始化两种。

(3)方法的调用有几种方式?

实验四类和对象

一、实验目的:

掌握java类设计的基本方法,掌握继承实现类的复用,熟悉变量的隐藏和方法的覆盖。

二、实验内容:

(请根据下面的实验内容选择1个进行实验报告的书写。

本括号内的内容不要出现在实验报告中)

1、分析调试程序,掌握java继承的特点。

2、定义图形类shape,包含设置图形类别、获取图形类别、显示类别信息和获取图形面积等方法。

定义图形类子类Circle,包含设置半径、获取半径、计算面积和周长等方法。

并用测试类测试。

三、主要代码及运行结果:

(请根据实验内容选择相应的代码部分进行实验报告的书写。

本括号内的内容不要出现在实验报告中)

1、classA{

Stringname1="zhangsan";

inta=10;

}

classBextendsA{

Stringname2="lisi";

intb=20;

}

classCextendsB{

Stringname3="wangwu";

intc=30;

}

publicclassTestA{

publicstaticvoidmain(String[]args){

Ccc=newC();

System.out.println(cc.name1+cc.name2

+cc.name3);

}

System.out.println(cc.a+cc.b+cc.c);

}

2、publicclassShape{

Stringtype;//图形类别

publicvoidsetType(Stringtype){

this.type=type;

}

publicStringgetType(){

returntype;

}

//显示类别信息

publicvoidshowInfo(){

System.out.println(type);

}

publicvoidgetArea(){

//形状的类别未确定,无法计算面积,方法体为空

}

}

publicclassCircleextendsShape{

doubleradius;//圆的半径

publicvoidsetRadius(doubleradius){

this.radius=radius;

}

publicdoublegetRadius(){

returnradius;

}

publicvoidgetArea(){

showInfo();//直接调用父类的方

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1