湖南师大 Java实验.docx

上传人:b****5 文档编号:7464974 上传时间:2023-05-11 格式:DOCX 页数:75 大小:377.17KB
下载 相关 举报
湖南师大 Java实验.docx_第1页
第1页 / 共75页
湖南师大 Java实验.docx_第2页
第2页 / 共75页
湖南师大 Java实验.docx_第3页
第3页 / 共75页
湖南师大 Java实验.docx_第4页
第4页 / 共75页
湖南师大 Java实验.docx_第5页
第5页 / 共75页
湖南师大 Java实验.docx_第6页
第6页 / 共75页
湖南师大 Java实验.docx_第7页
第7页 / 共75页
湖南师大 Java实验.docx_第8页
第8页 / 共75页
湖南师大 Java实验.docx_第9页
第9页 / 共75页
湖南师大 Java实验.docx_第10页
第10页 / 共75页
湖南师大 Java实验.docx_第11页
第11页 / 共75页
湖南师大 Java实验.docx_第12页
第12页 / 共75页
湖南师大 Java实验.docx_第13页
第13页 / 共75页
湖南师大 Java实验.docx_第14页
第14页 / 共75页
湖南师大 Java实验.docx_第15页
第15页 / 共75页
湖南师大 Java实验.docx_第16页
第16页 / 共75页
湖南师大 Java实验.docx_第17页
第17页 / 共75页
湖南师大 Java实验.docx_第18页
第18页 / 共75页
湖南师大 Java实验.docx_第19页
第19页 / 共75页
湖南师大 Java实验.docx_第20页
第20页 / 共75页
亲,该文档总共75页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

湖南师大 Java实验.docx

《湖南师大 Java实验.docx》由会员分享,可在线阅读,更多相关《湖南师大 Java实验.docx(75页珍藏版)》请在冰点文库上搜索。

湖南师大 Java实验.docx

湖南师大Java实验

湖南师范大学工程与设计学院

Java实验报告

学号:

2013180502

姓名:

钟智君

专业:

计算机科学与技术

年级:

2013级

任课教师:

钟坚成

开课时间:

 

 

目录

1.实验一5

2.实验二15

3.实验三21

4.实验四31

5.实验五39

6.实验六51

7.实验七57

8.实验八59

 

注意:

每一个实验的心得不低于500字

实验一:

Java基本知识与概念的实验

Java程序设计语言同大多数程序设计语言一样,具有一些基本特性。

本节实验主要练习Java编程语言的这些基本特性,如Java中的简单数据类型,运算符和表达式,这是学习Java语言必须经过的基础阶段。

掌握了本节实验所讲述的内容后,应该能够对Java程序的构成有一个基本的理解,能够灵活运用Java语言提供的各种数据类型和运算符。

学好Java语言必须具备扎实的语言基础,这对后续学习是很有必要的。

Java程序通过控制语句来执行程序流,完成一定的任务。

程序流是由若干个语句组成的,语句可以是单一的一条语句,也可以是用大括号{}括起来的一个复合语句。

Java中的控制语句主要有分支语句(if-else,switch).循环语句(while,do-while,for)与程序转移有关的跳转语句(break,continue,return)。

本节实验将学习如何控制程序的流程,使程序实现不同功能。

1.1实验目的:

1.掌握Java语言的数据类型。

2.掌握Java语言的运算符和表达式。

3.掌握Java语言的运算符的优先级。

4.学会使用if和if-else和switch分支语句。

5.学会使用while,do-while和for循环语句。

6.学会使用break和continue程序控制语句。

7.进一步熟悉java语言开发环境,掌握Java程序的编辑,编译和运行过程;能够设计具有一定算法的输出程序。

1.2实验预习:

1.Java语言源程序是由Java语言的基本语句构成的,Java语言的语句基本上同C/C++语言的语句一样。

有些在C/C++语言程序中容易产生错误的语句已被Java语言所抛弃。

通过下面的实验步骤,读者可以编写简单的Java程序。

例1-1在横线上填出下列变量的定义类型。

publicclassexample1{

publicstaticvoidmain(stringargs[]){

intx=45;

floaty=3.14f;

doublez=3.1415;

booleantruth=true;

charc=’6’;

//……..更多

}

}

2.利用输出语句来实现数据的格式化显示

Java语言中的输出语句,可以通过调用System.out中的println方法(或print方法),在练习数据格式化显示之前,我们在通过下面两个简单的例子对比一下println方法和print方法的区别。

例1-2观察下面应用程序的打印结果。

打开文本编辑器,输入下列代码:

publicclassasterisk{

publicstaticvoidmain(stringargs[])

{

System.out.print(“*”);

System.out.print(“***”);

System.out.print(“*****”);

}

}

在没有编译运行之前,读者能否得出上面程序的运行结果:

在没有运行前,可得出的运行结果为:

*********

例1-3修改例1-2。

publicclassasterisk{

publicstaticvoidmain(Stringargs[]){

System.out.println(“*”);

System.out.println(“***”);

System.out.println(“*****”);

}

}

在没有编译运行之前,读者能否得出上面程序的运行结果:

在没有运行前,可得出的运行结果为:

*

***

*****

例1-4写出下面程序的运行结果。

打开文本编辑器,输入下列代码:

publicclassTypeconversion{

publicstaticvoidmain(stringargs[]){

chara=1;

intb=4;

doublec=24.6f;

byted;

d=(byte)(a+b+c);

shorte;

e=(short)(a+b+c);

intf;

f=(int)(a+b+c);

doubleg;

g=a+b+c;

System.out.println(“d=”+d);

System.out.println(“e=”+e);

System.out.println(“f=”+f);

System.out.println(“g=”+g);

}

}

在没有编译运行之前,读者能否得出上面程序的运行结果:

在没有运行前,可得出的运行结果为:

d=29

e=29

f=29

g=29.6

例1-5求3个数中的最大值。

打开文本编辑器,输入下列代码:

publicclassMax{

publicstaticvoidmain(stringargs[]){

inta=1;

intb=3;

intc=7;

if(a>b)

if(a>c){

System.out.println(“三个数中最大的是:

“+a);

}

else{

System.out.println(“三个数中最大的是:

“+c);

}

elseif(b>c){

System.out.println(“三个数中最大的是:

“+b);

}

else{

System.out.println(“三个数中最大的是:

“+c);

}

}

}

在没有编译运行之前,读者能否得出上面程序的运行结果:

在没有运行前,可得出的运行结果为:

三个数中最大的是:

7

注意:

else子句不能单独做为语句使用,它必须和if配对使用。

Else总是与离它最近的if配对。

例1-6根据颜色数输出颜色。

打开文本编辑器,输入下列代码:

publicclassswitchcolor1{

publicstaticvoidmain(stringargs[]){

intcolornum=1;

switch(colornum){

case0:

System.out.println(“colorisred”);

case1:

System.out.println(“colorisgreen”);

default:

System.out.println(“colorisblack”);

}}

}

在没有编译运行之前,读者能否得出上面程序的运行结果:

在没有运行前,可得出的运行结果为:

colorisgreen

colorisblack

把例1-8中每个case后面都加上break语句,程序修改如下:

publicclassswitchcolor2{

publicstaticvoidmain(stringargs[]){

intcolornum=1;

switch(colornum){

case0:

System.out.println(“colorisred”);break;

case1:

System.out.println(“colorisgreen”);break;

default:

System.out.println(“colorisblack”);break;

}

}

}

在没有编译运行之前,读者能否得出上面程序的运行结果:

在没有运行前,可得出的运行结果为:

colorisgreen

注意:

case子句中的值必须是不同的。

break语句的作用使程序跳出switch语句后,即终止switch语句的执行。

例1-8用while循环水仙花数(所谓水仙花数,是指一个3位数,其各位数字的立方和等于该数本身。

例如:

153是一个水仙花数。

因为153=1^3+5^3+3^3

打开文本编辑器,输入下列代码:

classwhileexample{

publicstaticvoidmain(stringargs[]){

inta,b,c,num=100,count=1;

while(num<1000){

a=num/100;

b=(num-a*100)/10;

c=num%10;

if((Math.pow(a,3)+Math.pow(b,3)+Math.pow(c,3))==num)

System.out.println(“第”+count+++“个水仙花数为:

”+num):

num++;

}

}

}

程序的运行结果为:

第1个水仙花数为:

153

第2个水仙花数为:

370

第3个水仙花数为:

371

第4个水仙花数为:

407

例1-9百元买百鸡。

打开文本编辑器,输入下列代码:

publicclassContinueOp{

publicstaticvoidmain(stringargs[]){

intn;

for(n=1;n<=10;n++){

if(n%2==0)continue;

System.out.println(“n=”+n);

}

}

}

程序的结果为:

n=1

n=3

n=5

n=7

n=9

例1-10break语句的使用。

publicclassBreakOp{

publicstaticvoidmain(stringargs[]){

intn;

for(n=1;n<=10;n++){

if(n%2==0)break;

System.out.println(“n=”+n);

}

}

}

输出结果:

n=1

1.3实验内容及要求:

(1)设计简单的java程序。

代码:

importjava.util.Scanner;

/*

*猜数游戏

*/

publicclasssimple{

publicstaticvoidmain(String[]args){

inti=(int)(Math.random()*100+1);//产生一个随机数,以当要猜的数

inta=0;

intb=100;

Scannerscanner=newScanner(System.in);//得到键盘输入参数

while(true){

System.out.println("请输入一个"+a+"到"+b+"的数:

");

intn=scanner.nextInt();//得到一个从键盘输入的整数

if(n==i){

System.out.println("恭喜您,猜对了!

");

break;

}else{

if(i

b=n;

}else{

a=n;

}

}

}

}

}

结果:

 

(2)设计一个99表打印的Application程序,要求程序简单,行列对齐美观。

程序截图:

代码:

publicclassChengFaBiao{

publicstaticvoidmain(String[]args){

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

for(intj=1;j<=i;j++){

System.out.print(j+"*"+i+"="+i*j+"\t");

}

System.out.println();

}

}

}

结果:

(3)输出100000之内的所有素数(即非1和自身不能被其他数除尽的数)要求程序简单,程序运行速度较快,行列对齐美观。

代码:

publicclassSuShu{

publicstaticvoidmain(String[]args){

inti,j,count=0;

for(i=2;i<100000;i++){

if(i==2){

count++;

System.out.print(i+"\t");

continue;

}

inttemp=(int)(Math.sqrt(i))+1;

for(j=2;j<=temp;j++){

if(i%j==0)

break;

if(j==temp){

count++;

System.out.print(i+"\t");

if(count%10==0)

System.out.println();

}

}

}

}

}

结果:

1.4实验思考与总结

在这一小节的实验中,我对于Java语言有了一定的认识。

在上述的例子中,我基本上理解了Java语言的语法规则,真正意义上了解到了语法规则的魅力所在,了解到了Java和C语言没有什么较大的区别,学习起来更加容易。

和C语言相比,真正不同的是两者在数据定义上的区别,以及JAVA和C语言在键盘输入方面的不同,JAVA是通过Scanner类实现的,访问它的元素也是调用它里面的方法,最开始用这个的时候,在我看来,C语言的输入要简单得多,但是实验中用了几次之后,熟悉了之后,感觉又有了不同。

而且JAVA封装了很多工具类。

这些类自带非常强大的功能,用起来十分的方便。

对于有语言基础的人来说可以说是相对简单的。

老师的所列的实验题目都会要求运行速度和代码的简洁性,在这个实践过程中,我的编程水平得到了一定的提高精练,在真正开发项目中代码的精炼和运行速度的优化是很有必要的。

以前我编写程序问题停留在只要完成基本功能就好的基础上,但是现在编写程序我会在几种不同的实现方法中进行选择,选择时间空间复杂度最低的加以实现。

我觉得这是很大的一个进步,也是计算机专业人员应该具备的。

这次实验只是JAVA实验一个小小的开头,题目也非常简单,有了以前的基础做起来也比较快。

希望在以后的实验中,能够学习到更多新的知识,掌握新的方法与技能。

虽然题目比较简单,但是收获是巨大的。

在今后的学习用一定要更加努力。

实验二:

面向对象设计基础——复数类的实现

类是面向对象程序设计的基础,是java的核心和本质所在。

在java中,所有的语言元素都必须封装在类中。

编写java程序的过程就是从现实世界中抽象出java可实现的类,并用合适的语句定义它们的过程。

本节实验将学习类的应用,及如何创建类的实例。

通过类的继承更有效地组织程序结构,明确类之间的关系。

掌握了本节实验所讲诉的内容之后,读者就可以使用面向对象技术编写java程序了。

2.1实验目的:

1.掌握java面向对象程序设计的基本思想。

2.掌握类的定义和使用。

3.掌握对象的声明和使用。

4.了解构造函数的概念和使用。

5.掌握类的继承关系和派生方法。

6.掌握多态的概念与使用。

2.2实验预习:

1)阅读下面的程序,在main()方法里添加语句完成如下功能:

①创建一个MyValue类的对象myValue。

②为myValue对象中的value赋值10。

③使用getVaule()方法获得myValue对象中的数据并将它打印在屏幕上

例2-1:

li2_1.java

classMyValue{

privateintvalue;

publicvoidsetValue(intx){

value=x;

}

publicintgetValue(){

returnvalue;

}

}

publicclassli2_1{

publicstaticvoidmain(String[]args)

{MyValuemyValue=newMyValue();

myValue.setValue(10);

System.outprintln(myValue.getValue());

}

}

2)试编写Java代码实现一个计数器类Computer其中包括:

①用counterValue来保存计数器的当前值。

②方法increment()计数器加一。

⑧方法decrement()计数器减一。

④方法reset()计数器清零。

publicclassComputer{

privateintcounterValue;

publicvoidsetCounterValue(intcounterValue){

this.counterValue=counterValue;

}

publicvoidincrement(){

counterValue++;

}

publicvoiddecrement(){

counterValue--;

}

publicvoidreset(){

counterValue=0;

}

publicintgetCounterValue(){

returncounterValue;

}

}

打开文本编辑器,输入下列代码:

classli2_2{

classDog{

privateStringname;

privateintage;

publicintstep;

Dog(Strings,inta){

name=s;

age=a;

step=0;

}

publicvoidrun(Dogfast){

fast.step++;

}

}

publicstaticvoidmain(String[]args){

li2_2a=newli2_2();

Dogd=a.newDog("Tom",3);

d.step=25;

d.run(d);

System.out.println(d.step);

}

}

在没有编译运行之前,读者能否得出上面程序的运行结果:

能,26

2.3实验内容及要求:

定义一个复数类,并实现以下复数类的方法:

构造方法、得到实部、得到虚部、设置实部、设置虚部、复数的加法,减法,乘法,最后,创建对象进行运算。

复数类Complex必须满足如下要求:

(1)复数类Complex的属性有:

RealPart:

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

ImaginPart:

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

(2)复数类Complex的方法有:

Complex():

构造函数,将复数的实部和虚部都置0。

Complex(doubler,doublei):

构造函数,形参r为实部的初值,i为虚部的初值。

doublegetReal():

获得复数对象的实部;

doublegetImagin():

获得复数对象的虚部;

ComplexcomplexAdd(Complexa):

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

ComplexcomplexSub(Complexa):

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

ComplexcomplexMulti(Complexa):

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

StringToString():

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

代码:

packagecom.example.test.unit1;

publicclassComplex{

privatedoubleRealPart;//代表复数的实数部分

privatedoubleImaginPart;//代表复数的虚数部分

publicComplex(){

RealPart=0;

ImaginPart=0;

}

publicComplex(doubler,doublei){

RealPart=r;

ImaginPart=i;

}

publicdoublegetReal(){

returnRealPart;

}

publicdoublegetImagin(){

returnImaginPart;

}

publicvoidsetReal(doubler){

RealPart=r;

}

publicvoidsetImagin(doublei){

ImaginPart=i;

}

publicComplexcomplexAdd(Complexa){

Complexc=newComplex();

c.RealPart=this.RealPart+a.RealPart;

c.ImaginPart=this.ImaginPart+a.ImaginPart;

returnc;

}

publicComplexcomplexSub(Complexa){

Complexc=newComplex();

c.RealPart=this.RealPart-a.RealPart;

c.ImaginPart=this.ImaginPart-a.ImaginPart;

returnc;

}

publicComplexcomplexMulti(Complexa){

Complexc=newComplex();

c.RealPart=this.RealPart*a.RealPart;

c.ImaginPart=this.ImaginPart*a.ImaginPart;

returnc;

}

publicStringtoString(){

if(ImaginPart>=0)

return(RealPart+

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

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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