java2教程实验代码及答案_第1页
java2教程实验代码及答案_第2页
java2教程实验代码及答案_第3页
java2教程实验代码及答案_第4页
java2教程实验代码及答案_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

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

文档简介

上机实践1初识JAVA..................................................................................................................3

试验1一个简洁的应用程序....................................................3

试验2一个简洁的JAVAAPPLET程序.............................................3

试验3联合编译...............................................................4

上机实践2基本数据类型与限制语句..............................................5

试验1输出希腊字母表.........................................................5

试验2回文数.................................................................6

试验3猜数字游戏.............................................................8

上机实践3类与对象.............................................................9

试验1三角形、梯形和圆形的类封装............................................9

试验2实例成员与类成员......................................................12

试验3运用PACKAGE语句与1MEOK1语句........................................14

上机实践4继承与接口..........................................................16

试验1继承..................................................................16

试验2上转型对象............................................................19

试验3接口回调.............................................................21

上机实践5字符串、时间与数字.................................................23

试验1STRING类的常用方法...................................................23

试验2比较日期的大小.......................................................24

试验3处理大整数............................................................25

上机实践6组件及事务处理.....................................................26

试验1算术测试..............................................................26

试验2信号灯................................................................29

试验3布局与日历............................................................31

上机实践7组件及事务处理2....................................................................................................35

试验1方程求根..............................................................35

试验2字体对话框............................................................38

试验3英语单词拼法训练.....................................................41

上机实践8多线程.............................................................45

试验1汉字打字练习..........................................................45

试验2旋转的行星............................................................47

试验3双线程接力............................................................51

上机实践9输入输出流..........................................................54

试验1学读汉字..............................................................54

试验2统计英文单词字........................................................57

试验2读取ZIP文件..........................................................61

上机实践10JAVA中的网络编程................................................62

试验1读取服务器端文件.....................................................62

试验2运用套接字读取服务器端对象...........................................64

试验3基于UDP的图像传输..................................................67

上机实践U数据结构...........................................................71

试验1扫雷小游戏............................................................71

试验2排序与查找............................................................76

试验3运用TREESET排序.....................................................77

上机实践12JAVASWING............................................................................................................79

试验1JLAYEREDPANE分层窗格................................................79

试验2运用表格显示日历.....................................................80

试验3多文档界面(MDI)....................................................83

上机实践1初识Java

试验1一个简洁的应用程序

i.答案:

【代码1】:System.out.println("你好,很兴奋学习Java");

【代码2】:System.out.printlnC^Wearestudents*');

2.模板代码

Hello.java

publicclassHello

{

publicstaticvoidmain(Stringargs[])

{

【代码1】〃叮嘱行窗口输出"你好,很兴奋学习Java”

Aa=newA();

a.fA();

I

I

classA

{

voidfA()

{

【代码2】〃叮嘱行窃口输出"Wearestudents'1

}

)

试验2一个简洁的JavaApplet程序

i.答案:

【代码1】:g.drawString("这是一个JavaApplet程序",10,30);

【代码2】:g.drawSlring(哦变更了字体”,20.50);

2.模板代码

FirstApplet.java

importjava,applet.*;

importjava.awt.*;

publicclassFirstAppletextendsApplet

(

publicvoidpaint(Graphicsg)

(

g.setColor(Color,blue):

【代码1】7在JavaApplet中绘制一行文字:"这是一个JavaApplet程序”

g.setColor(Color,red):

g.setFont(newFont('宋体",Font.BOLD,36));

【代码2】〃在JavaApplet中绘制一行文字:“我变更了字体”

)

}

试验3联合编译

i.答案:

【代码1】:System.out.println("你好,只需编译我)

[代码2]:Sysiem.out.println(',IamA");

[代码3]:System.out.println("IamB");

【代码4】:System.out.println("IamC");

2.模板代码

模板1:Hello.java

publicclassMainClass

(

publicstaticvoidmain(Stringargs[])

(

【代码1】〃叮嘱行窗口输出"你好,只需编译我”

Aa=newA();

a.fA():

Bb=newB();

b.fB();

}

)

模板2:A.java

publicclassA

(

voidfA()

【代码2】〃町嘱行窗口输出"IamA"

模板3:B.java

publicclassB

(

voidfB()

(

[代码3]〃叮嘱行窗口输出"IamB"

)

)

模板4:C.java

publicclassC

(

voidfCO

(

【代码4】〃叮嘱行窗口输出"IamC*

}

上机实践2基本数据类型与限制语句

试验1输出希腊字母表

i.答案:

【代码I】:startPosition=(int)cStart;

【代码2】:endPosition=(int)cEnd;

【代码3】:c=(char)i;

2.模板代码

Greek?\lphabet.java

publicclassGreekAlphabet

{

publicstaticvoidmain(Stringargs[])

{

intstartPosi(ion=0,endPosition=0;

charcStart="a',cEnd-<*>,;

【代码I】//cStart做int型转换据运算,并将结果赋值给startPosition

【代码2】//cEnd做int型转换运算,并将结果赋值给endPosition

System.out.println("希腊字母Va、在unicode表中的依次位置:"+(int)c);

Syslem.oul.println("希腊字母表:");

for(inti=startPosition;i<=endPosition;i++)

charc=M)';

【代码3】〃i做char型转换运算,并将结果赋值给c

Sysiem.oui.priniC*"+c);

if((i-startPosition+1)%10==0)

System.out.printlnC

}

)

}

试验2回文数

i.答案:

【代码1】:number<=99999&&number>=1

[代码2]:d5=number/10000;

[代码3]:d4=number%10000/10C0;

【代码41:d3=number%1000/100;

【代码5】:d5!=0

【代码6】:dl==d5&&d2==d4

【代码7】:d4!=0

【代码8】:dl==d4&&d2==d3

【代码9】:d3!=0

【代码101dl==d3

2.模板代码

Numbenjava

importjavax.swingJOptionPane;

publicclassNumber

(

publicstaticvoidmain(Stringargs口)

(

intnumber=0,d5.d4.d3,d2.d1:

Stringsir=JOplionPane.showInputDiaIog("输入一个1至99999之间的数)

number=lnteger.parselnt(str);

if([代码1])〃推断number在1至99999之间的条件

{

【代码2】〃计算number的最高位(万位〉d5

【代码3】〃计算number的千位(14

[代码4]〃计算number的百位d3

d2=number%100/10;

dl=number%10;

if(【代码5])〃推断number是5位数的条件

System.out.println(number+"^5位数");

if(【代码6])〃推断number是回文数的条件

Sysiem.ouLprinUn(number十"是回文数");

}

else

Sysiem.out.println(number+"不是回文数");

J

elseif(【代码7】)〃推断number是4位数的条件

System.out.println(number+',f^4位数

if(【代码8])〃推断number是回文数的条件码

{

Sysiem.out.println(number+"是回文数");

}

else

System.out.prinUn(number+"不是回文数");

elseif([代码9])〃推断number是3位数的条件

System.oul.println(numbcr+"M3位数");

if([代码10])〃推断number是回文数的条件

System.out.println(number+"^回文数)

else

System.out.println(number+”不是回文数”);

}

}

elseif(d2!=0)

Systcm.out.println(numbcr+"M2位数");

if(dl==d2)

I

System.out.println(number+"^0文数");

else

Sy$tem.oul.prinlln(number+”不是回文数");

I

elseif(dl!=O)

System.out.println(number+"^1位数”);

System.out.piintln(number+"是回文数");

)

)

else

{

System.out.printf("\n%d不在1至99999之间;number);

)

)

}

试验3猜数字游戏

i.答案:

【代码1】:yourGuess!=realNumber

【代码2】:yourGuess>rea!Number

【代码3】:yourGuess<realNumber

2.模板代码

GuessNumber.java

importjavax.swing.JOptionPane;

publicclassGuessNumber

(

publicstaticvoidmain(Stringargs[])

(

System.out.println("给你一个1至100之间的整数,请揣测这个数

intrealNumber=(int)(Malh.random()*100)+1;

intyourGuess=0;

Stringstr=JOptionPane.showInputDialog("输入您的揣测:");

yourGuess=Integer.parseInt(str);

while(【代码1】)〃循环条件

(

if(【代码2】)〃条件代码

{

str=JOptionPane.showInputDialog("猜大了,再输入你的揣测

yourGuess=Ir.teger.parseIni(str);

)

elseif(【代码3】)/;条件代码

sir=JOpiionPane.showlnputDialog("猜小了,再输入你的揣测:,,);

yourGuess=Intcger.parseinl(str);

)

System.out.println("猜对了!");

}

)

上机实践3类与对象

试验1三角形、梯形和圆形的类封装

1.答案:

【代码1】:sideA=a;

sideB-b;

sideC=c;

【代码2】:a+b>c&&a+c>b&&c+b>a

【代码3】:boo=true;

【代码4】:boo=false;

【代码5】:

if(boo)

(

length=sideA+sideB+sideC;

returnlength;

)

else

{

System.out.println("不是一个三角形,不能计算周长");

return0;

I

【代码6】:sidcA=a;sidcB=b;sideC=c;

【代码7】:a+b>c&&a+c>b&&c+b>a

【代码8】:boo=true;

【代码9】:boo=false;

[代码10):

above=a;

bottom=b;

height=h;

[代码11):

area=(above+bottom)/2*height;

returnarea;

[代码12]:radius=r;

[代码13]:return3.14*radius*radius;

【代码14】:return3.l4*2*radius;

[代码15]:circle=newCircle(l0);

[代码16]:trangle=newTrangle(3,4,5);

[代码17]:lader=newLader(3,4,10);

[代码18]:length=circle.getLength();

【代码191:area=circle.getArea();

[代码20]:length=trangle.getLength();

[代码21]:area=trangle.getArea();

[代码22]:area=lader.getArea();

[代码23]:trangle.setABC(12,34,1);

[代码24]:area=trangle.getArea();

[代码25]:length=trangle.getLcngth();

2.模板代码

AreaAndLength.java

classTrangle

(

doublesideA.sideB.sideC.area,length;

booleanboo;

publicTrangle(doublea.doubleb.doublec)

(

[代码1]〃参数a,b,c分别赋值给sideA,sideB,sideC

if(【代码2】)〃a,b,c构成三角形的条件表达式

{

【代码3】〃给boo赋值。

}

else

{

【代码4】〃给boo赋值.

}

I

doublegetLength()

{

【代码5】〃方法体,要求计算出length的值并返回

}

publicdoublegetArea()

(

if(boo)

(

doublep=(sideA+sidcB+sideC)/2.0;

area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC));

returnarea;

else

Sysiem.ouLpriniln("不是一个三角形,不能计算面积”);

return0;

}

)

publicvoidsetABC(doublea.doubleb.doublec)

{

[代码6]〃参数a,b,c分别赋值给sideA,sideB,sideC

if(【代码7】)〃a,b,c构成三角形的条件表达式

I

【代码8】〃给boo赋值。

}

else

{

【代码9】〃给boo赋值。

}

)

}

classLader

{

doubleabove,bottom,hcigh(,area;

Lader(doublea.doubleb.doubleh)

{

【代码10]〃方法体,将参数a,b,c分别赋值给above,bollom,heighl

}

doublegelArea()

(

【代码11]〃方法体,,要求计算出area返回

1

)

classCircle

(

doubleradius.area;

Circle(doubler)

(

【代码12】/访法体

1

doublegetArea()

(

【代码13]〃方法体,要求计算出area返回

)

doublegetLength()

[代码14]//getArea方法体的代码,要求计算出length返回

}

voidsetRadius(doublenewRadius)

{

radius=newRadius;

doublegciRadius()

returnradius;

publicclassAreaAndLength

publicstaticvoidmain(S(ringargs[])

doublelength,area.

Circlecircle=nuik

Trangletrangle;

Laderlader;

【代码15]〃创建对象circle

【代码16]〃创建对象“angle。

【代码17]〃创建对象lader

[代码18)//circle调用方法返回周长并赋值给length

System.out.println("圆的周长:"length);

【代码19]“circle调用方法返回面积并赋值给area

Syslem.out.prinlln("圆的面积:"+area);

[代码20]//trangle调用方法返回周长并赋值给length

Sysiem.ouLpriniln("三角形的周长T'+length);

【代码21]“irangle调用方法返回面积并赋值给area

System.out.println("三角形的面积:"+area);

【代码22】〃lader调用方法返回面积并赋值给area

System.oui.printin("梯形的面积:"+area);

[代码23]//trangle调用方法设置三个边,要求将三个边修改为12,341。

[代码24]//trangle调用方法返回面积并赋值给area

Sy31cm.oul.priniln("三角形的面积:"+arca);

[代码25]//trangle调用方法返回周长并赋值给length

Sysiem.oui.println("三角形的周长:"+length);

1

I

试验2实例成员与类成员

i.答案:

【代码1】:floata;

[代码2]:staticfloatb;

【代码3】:this.a=a;

【代码4】:this.b=b;

【代码5】:A.b=100;

【代码6】:A.inputB();

【代码7】:cat.setA(200);

【代码8】:cat.setB(400);

【代码9】:dog.setA(150);

[代码10]:dog.setB(300);

【代码11】:cat.inputA();

[代码12]:cat.inputB();

【代码13】:dog.inputA();

[代码14]:dog.inputBO;

2.模板代码

Example.java

classA

(

[代码1]〃声明一个float型实例变量a

【代码2】〃声明一个float型类变量b,即static变量b

voidsetA(floata)

(

【代码3】〃将参数a的值赋值给成员变量a

voidsetB(floatb)

(

【代码4】〃将参数b的值赋值给成员变量b

}

floatgetA()

(

returna;

)

floatgctB()

(

returnb;

}

voidinputA()

(

System.out.println(a);

}

staticvoidinputBO

System.out.println(b);

}

publicclassExample

(

publicstaticvoidmain(Stringargsfl)

(

【代码5】〃通过类名操作类变量b,并赋值100

[代码6]〃通过类名调用方法inpulB。

Acat=newA();

Adog=newA();

[代码7]“cat象调月方法setA(inta)将cat的成员a的值设置为200

[代码8]//cat调用方法setB(intb)将cat的成员b的值设置为400

【代码91//dog象调用方法setA(inta)将dog的成员a的值设置为150

[代码10]//dog调用方法setB(intb)将dog的成员b的值设置为300

[代码11]//cat调用inputA()»

【代码12]“cat调用inputB。。

[代码13]//dog调用inputA()o

[代码14]//dog调用inputB()o

}

}

试验3运用package语句与import语句

i.答案:无

2.模板代码

SquareEquation.java

packagetom.jiafei;

publicclassSquareEquation

{

doublea.b.c;

doublerooll,root2;

booleanboo;

publicSquareEquation(doublea,doubleb,doublec)

(

this.a=a;

this.b=b;

this.c=c;

if(a!=O)

(

boo=true;

}

else

boo=false;

}

}

publicvoidgetRoots()

{

if(boo)

{

Syslcm.oul.priniln("是一元2次方程");

doubledisk=b*b-4*a*c;

if(disk>=0)

(

root1=(-b+Math.sqrt(disk))/(2*a);

root2=(-b-Math.sqrt(disk))/(2*a);

System.out.prinif("方程的根:%t%f\iT,root1,root2);

}

else

(

System.out.printff方程没有实根\n");

}

)

else

(

System.out.println("不是一元2次方程");

}

)

publicvoidsetCoefficient(doublea.doubleb,doublec)

{

this.a=a;

this.b=b;

this.c=c;

if(a»=O)

(

boo=true:

}

else

(

boo=false;

}

1

}

SunRise.java

importtom.jiafei.*;

classSunRise

publicstaticvoidmain(Stringargsf])

SquareEquaiionequaiion=rewSquareEquaiion(4,5,1);

equation.gelRoots();

equation.setCoefficient(-3A5);

cqualion.gclRools。;

}

上机实践4继承与接口

试验1继承

1.答案:

[代码1]:publicvoidspeakHello()

(

System.out.println("你好,吃饭了吗?");

)

【代码2】:

publicvoidaverageHeight()

(

height=173;

System.out.println("中国人的平均身高:"+height+"厘米");

)

【代码3】:

publicvoidaverageWeight。

{

weight=67.34;

System.out.prinlln("中国人的平均体重:"+weight+"公斤");

)

【代码4】:Systenwut.println("坐如钟,站如松,睡如弓”);

【代码5】:

publicvoidspeakHello()

(

System.out.println("HowdoYoudo");

1

【代码6】:

publicvoidaverageHeight()

height=l88;

System.out.println("AmerianAverageheight:"4-height+"cm");

}

【代码7】:

publicvoidaverageWeight()

(

weight=80.23;

System.out.println("AmerianAverageweight:"+weight+"kg*');

)

[代码8]:Systenwul.println("直拳、钩拳”);

【代码9】:

publicvoidspeakHello()

(

System.out.println("您好");

)

【代码101:

publicvoidaveragcHcight()

(

height=16;

System.out.println("北京人的平均身高:"+height+"厘米)

)

【代码ill:

publicvoidaverageWeight()

(

weigh(=6;

System.out.println("北京人的平均体重:"+weight+"公斤”);

}

[代码12]:System.out.println("京剧术语");

2.模板代码

Examplc.java

classPeople

(

protecteddoubleweight,height;

publicvoidspeakHelloO

(

System,out.prin11n(^yayawawa*);

)

publicvoidaveragelleight()

(

height=173;

System,out.printIn(*averagcheight:*+height);

)

publicvoidaverageWeightO

weight=70;

System,out.printIn("averageweight:'weight);

}

)

classChinaPeopleextendsPeople

(

【代码1】//重写publicvoidspeakHell。。方法,要求输出类似尔好,吃了吗”这样的

〃汉语信息

【代码2】〃重写publicvoidaverageHeight()方法,要求输出类似

//“中国人的平均身高:168.78厘米”这样的汉语信息

【代码3】〃重写publicvoidaverageWeight()方法,

〃要求输出类似“中国人的平均体重:65公斤”这样的汉语信息

publicvoidchinaGongfu()

(

【代码4】〃输出中国武术的信息,例如:"坐如钟,站如松,睡如弓”等

)

}

class?\mericanPeopleextendsPeople

(

【代码5】〃重写publicvoidspeakHelloO方法,要求输出类似

//“Howdoyoudo”这样的英语信息。

【代码6】〃重写publicvoidaverageHeightO方法

【代码7】〃重写publicvoidaverageWeight()方法

publicvoidamericanBoxingO

(

【代码8】〃输出拳击的信息,例如,“直拳”、“钩拳”等

)

}

classBeijingPeopleextendsChinaPeople

(

【代码9】〃重写publicvoidspcakHelloO方法,要求输出类似“您好”这样的汉语信息

【代码10]〃重写publicvoidaverageHeight()方法

【代码11]〃重写publicvoidaverageWeightO方法

publicvoidbeijingOpera0

(

【代码12]//输出京剧的信息

)

)

publicclassExample

(

publicstaticvoidmain(Stringargs口)

ChinaPeoplechinaPeople=newChinaPeopleO;

AmericanPeopleamericanPeople=newAmericanPeopleO;

BeijingPeoplebeijingPeople=newBeijingPeopleO;

chinaPeople.speakHelloO;

amcricanPcople.speakHelloO;

beijingPeople.speakHelloO;

chinaPeople.averagelleighl();

americanPeople.averageHeight();

beijingPeople.averageHeight();

chinaPeople.averageWeight();

americanPeople.averageWeight();

beijingPeople.averageWeight0;

chinaPeople.chinaGongfuO:

americanPeople.americanBoxingO;

beijingPeople.beijingOperaO;

beijingPeople.chinaGongfuO;

}

)

试验2上转型对象

i.答案:

【代码i】:

publicdoubleeamings()

{

return50000.456;

I

【代码2】:

publicdoubleeamings()

{

return12*2300;

I

【代码3】:

publicdoubleeamings()

{

return52*500;

}

【代码4】:

fbr(inti=0;i<emp!oyee.length;i++)

{

salaries=salaries+employee[i].eamings();

I

2.模板代码

HardWork.java

abstractclassEmployee

{

publicabstractdoubleearnings。;

)

classYearWorkerextendsEmployee

(

[代码1]〃重写earnings。方法

}

classMonthWorkerextendsEmployee

{

【代码2】〃重写earnings。方法。

}

classWeekWorkerextendsEmployee

{

[代码3]〃重写earnings。方法。

)

classCompany

{

Employee1]employee;

doublesalaries=O;

Company(Employee(]employee!

(

this.employee=employee;

}

publicdoublesalariesPayO

{

salaries=O;

[代码4]〃计算salaries.

returnsalaries;

)

}

publicclassHardWork

{

publicstaticvoidmain(Stringargs1])

{

Employee1]employee=newEmployeel20J;

fbr(inti=0;i<employee.length;i++)

(

if(i%3==0)

cmploycc[i]=ncwWcckWorkcr();

elseif(i%3=l)

employee[i]=newMonthWorkerO;

elseif(i%3=2)

employce(i]=ncwYcarWorkcr();

)

Companycompany=newCompany(employee);

Syslem.out.prinlln("公司年工资总额:"+company.salariesPay());

试验3接口回调

1.答案:

【代码1】:

publicdoublecomputeWeightO

{return45.5;

}

【代码2】:

publicdoublecomputeWeightO

(return65.5;

}

【代码3】:

publicdoublecomputeWeight()

{

return145;

)

【代码4】:

fbr(intk=0;k<goods.length;k++)

(

totalWeights=totalWeights+goods[kJputeWeight();

}

2.模板代码

Road.java

interfaceComputerWeight

{

publicdoublecomputeWeight();

}

classTelevisionimplementsCompulcrWcight

{【代码1】〃实现computeWeight。方法。

}

classComputerimplementsComputerWeight

{【代码2]〃实现computeWeight。方法。

classWashMachineimplementsComputerWeight

{【代码3】〃实现compuicWci&hl()方法。

}

classCar

{ComputerWeightlJgoods;

doubletotalWeights=0;

Car(Compu(erWeigh(l]goods)

{

this.goods=goods;

}

publicdoublegetTotalWeightsO

(

totalWeights=0;

[代码4]〃计算totalWeights

returntotalWeights;

I

)

publicclassRoad

(

publicstaticvoidmain(Stringargs(])

{ComputerWeightlJgoodsOne=newComputerWeight[50J,

goodsTwo=newComputerWeightf22];

ibr(inti=0;i<goodsOne.length;i++)

{if(i%3==0)

goodsOnc[i]=newTclevision();

温馨提示

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

评论

0/150

提交评论