java实验答案解读.docx

上传人:b****9 文档编号:25767019 上传时间:2023-06-13 格式:DOCX 页数:29 大小:21.66KB
下载 相关 举报
java实验答案解读.docx_第1页
第1页 / 共29页
java实验答案解读.docx_第2页
第2页 / 共29页
java实验答案解读.docx_第3页
第3页 / 共29页
java实验答案解读.docx_第4页
第4页 / 共29页
java实验答案解读.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

java实验答案解读.docx

《java实验答案解读.docx》由会员分享,可在线阅读,更多相关《java实验答案解读.docx(29页珍藏版)》请在冰豆网上搜索。

java实验答案解读.docx

java实验答案解读

实验一

水仙花数:

classshuixianhua

{//水仙花数

publicstaticvoidmain(Stringarg[])

{

inti,a,a1,b,b1,c;

for(i=100;i<1000;i++)

{

a=i%10;

a1=i/10;

b=a1%10;

b1=a1/10;

c=b1%10;

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

System.out.println(i);

}

}

}

输出如下:

153

370

371

407

打印出100以内素数:

publicclasssushu{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

inti,j,k=0;

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

if(i==2)

System.out.println(i);

i++;

for(j=2;j

{

if(i%j!

=0)

k=1;

}

if(k==1)

System.out.println(i);

}

}

求1!

+2!

+……+20!

publicclassjiecheng{

publicstaticvoidmain(String[]args){

inti,sum=0,k;

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

{

k=ji(i);

sum=k+sum;

}

System.out.print(sum);

}

staticintji(intn)

{

if(n==1)

return1;

else

returnji(n-1)*n;

}

}

习题2.6

publicclassTest{

publicstaticvoidmain(String[]args)//第19题,打出图形.菱形

{

intn=3;

for(inti=1;i<=n;i++)

{

for(intk=n-1;k>=i;k--)

{

System.out.print("");

}

for(intj=1;j<=2*i-1;j++)//打印*

{

System.out.print("*");

}

System.out.println();

}

}

}

编写程序,命令行窗口输出希腊字母表。

(希腊字母表开始为α,最后一个为ω)

importjava.applet.*;

importjava.awt.*;

publicclassmyappletextendsApplet

{

publicvoidpaint(Graphicsg)

{

Stringstr="";

for(chara='α';a<'ω';a++)

{

str+=a;

}

g.drawString(str,2,10);

}

}

实验二

设计一个名为figure的图形软件包(package)。

包中包含三角形、矩形、圆三个类。

要求:

(1)每个类都要构造方法并为成员设置get和set方法;

(2)每个类都要有计算周长和面积的成员方法;(3)完成该软件包后的编码后,在另一个包的含有main方法的类中编写代码,分别使用图形软件包中的三个类,生成三个对象,并打印出其周长和面积。

Triangle.java

packagefigure;

publicclassTriangle

{

privatedoublea,b,c;

publicTriangle(doublex,doubley,doublez)

{

a=x;

b=y;

c=z;

}

publicvoidget()

{

}

publicvoidset(doublex,doubley,doublez)

{

a=x;

b=y;

c=z;

}

publicdoublePerimeter()

{

doubleper=a+b+c;

returnper;

}

publicdoubleArea()

{

doublearea=0;

doublep=(a+b+c)/2;

doubles=p*(p-a)*(p-b)*(p-c);

area=(double)Math.sqrt(s);

returnarea;

}

}

Rectangle.java

packagefigure;

publicclassRectangle

{

privatedoublelength;

privatedoublewidth;

publicRectangle(doublel,doublew)

{

length=l;

width=w;

}

publicvoidget()

{

}

publicvoidset(doublel,doublew)

{

length=l;

width=w;

}

publicdoublePerimeter()

{

doubleper=2*(length+width);

returnper;

}

publicdoubleArea()

{

doublearea=length*width;

returnarea;

}

}

Circle.java

packagefigure;

publicclassCircle

{

privatedoubler;

privatedoublePI=3.14;

publicCircle(doublex)

{

r=x;

}

publicdoubleget()

{

returnr;

}

publicvoidset(doublex)

{

r=x;

}

publicdoublePerimeter()

{

doubleper=2*(PI*r);

returnper;

}

publicdoubleArea()

{

doublearea=PI*(double)Math.pow(r,2);

returnarea;

}

}

figureTest.java

packageTest;

importfigure.Circle;

importfigure.Rectangle;

importfigure.Triangle;

publicclassfigureTest

{

publicstaticvoidmain(String[]args)

{

Circlec=newCircle(3.2);

System.out.println(c.Area());

System.out.println(c.Perimeter());

Rectangler=newRectangle(3,4);

System.out.println(r.Area());

System.out.println(r.Perimeter());

Trianglet=newTriangle(3,4,4);

System.out.println(t.Area());

System.out.println(t.Perimeter());

}

}

编写类Factorial,为其添加两个静态方法(方法名自定义)。

其中一个使用递归计算n的阶乘,一个使用非递归计算n的阶乘。

构造main方法进行测试。

publicclassFac{

publicstaticvoidmain(String[]args){

intn=5;

longfac=digui(n);

longfac2=nonDigui(n);

}

//循环方法

privatestaticlongnonDigui(intn){

longfac=1L;

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

fac=fac*i;

}

returnfac;

}

//递归

privatestaticlongdigui(intn){

if(n==1){

return1;

}

returnn*digui(n-1);

}

}

按照要求使用Java进行编码。

1)设计一个教师类Teacher,属性有编号(no)、姓名(name)、年龄(age)、所属学院(seminary),为这些属性设置相应的get和set方法;

2)为Teacher类添加方法equals;(当两个教师对象的no相同时返回true)

3)为Teacher类添加方法toString,通过该方法可以返回“编号为**、姓名为**、年龄为**的**学院老师”形式的字符串。

4)构造main方法进行测试。

Teacher.java

publicclassTeacher{

publicstaticintnum;

publicintno;

publicStringname;

publicintage;

publicStringseminary;

publicTeacher(){

super();

}

publicTeacher(intno,Stringname,intage,Stringseminary){

super();

this.no=no;

this.name=name;

this.age=age;

this.seminary=seminary;

}

publicstaticintgetNum(){

returnnum;

}

publicstaticvoidsetNum(intnum){

Teacher.num=num;

}

publicintgetAge(){

returnage;

}

publicvoidsetAge(intage){

this.age=age;

}

publicStringgetName(){

returnname;

}

publicvoidsetName(Stringname){

this.name=name;

}

publicintgetNo(){

returnno;

}

publicvoidsetNo(intno){

this.no=no;

}

publicStringgetSeminary(){

returnseminary;

}

publicvoidsetSeminary(Stringseminary){

this.seminary=seminary;

}

publicbooleanequals(ObjectotherObject){

if(otherObject==null)

returnfalse;

if(getClass()!

=otherObject.getClass())

returnfalse;

Teacherother=(Teacher)otherObject;

returnno==other.no;

}

publicStringtoString(){

return"编号:

"+getNo()+"姓名:

"+getName()+"年龄:

"+getAge()+"学院老师:

"+getSeminary();

}

}

---------------------------------------

TestTeacher.java

publicclassTestTeacher{

publicstaticvoidmain(String[]args){

Teachert1=newTeacher(1,"zhangsan",43,"计算机");

System.out.println(t1.getNo());

System.out.println(t1.getName());

System.out.println(t1.getAge());

System.out.println(t1.getSeminary());

System.out.println("t1.toString():

"+t1);

t1.setName("wangwu");

t1.setAge(50);

t1.setSeminary("国际经贸");

System.out.println(t1.getNo());

System.out.println(t1.getName());

System.out.println(t1.getAge());

System.out.println(t1.getSeminary());

Teacher.setNum(Teacher.getNum()+1);

System.out.println(Teacher.getNum());

Teachert2=newTeacher(2,"lisi",44,"经管");

Teacher.setNum(Teacher.getNum()+1);

System.out.println(Teacher.getNum());

Teachert3=newTeacher(3,"zhouwu",45,"信息");

Teacher.setNum(Teacher.getNum()+1);

System.out.println(Teacher.getNum());

System.out.println(t2)

}

}

设计一个带表头的单链表(链表中的元素属于同一类型对象,但对象的类型可以随意),提供以下操作:

(1)insert:

在某个位置插入对象;

(2)delete:

在某个位置删除对象;(3)delete:

删除链表中与x相同的元素;(4)size:

返回当前链表中对象的个数;(5)isEmpty:

判断链表是否为空;(6)traverse:

遍历链表,打印出所有的元素;(7)getData:

取得某个位置的对象。

构造main函数进行测试。

publicclassCode{

privateintdata;

privateCodenext;

publicintgetData(){

returndata;

}

publicvoidsetData(intdata){

this.data=data;

}

publicCodegetNext(){

returnnext;

}

publicvoidsetNext(Codenext){

this.next=next;

}

}

publicclassList{

publicCodehead;

List()

{

this.head=newCode();

head.setData(0);

}

List(intn)

{

this.head=newCode();

Codep,temp;

p=head;

for(inti=0;i

{

temp=newCode();

temp.setData(i+1);

p.setNext(temp);

p=p.getNext();

}

head.setData(n);

}

//判断是否为空

publicvoidIsEmptyList()

{

if(this.head==NULL)

System.out.println("空链表");

else

System.out.println("非空");

}

PublicvoidI

//遍历节点

publicvoidTraverseList()

{

intSize=0;

Codetemp;

temp=head;

while(temp.getNext()!

=null)

{

Size++;

temp=temp.getNext();

System.out.println(temp.getData());

System.out.println(Size);

}

}

//删除节点

publicvoidDeleteCode(intn)

{

if(n>head.getData()){

System.out.println("找不到第"+n+"个节点");

return;

}

Codetemp;

temp=head;

for(inti=0;i

{

temp=temp.getNext();

}

temp.setNext(temp.getNext().getNext());

head.setData(head.getData()-1);

}

//插入节点

publicvoidInsertCode(intn,intd)

{

if(n>head.getData()+1){

System.out.println("找不到第"+n+"个节点");

return;

}

Codep=newCode();

p.setData(d);

Codetemp;

temp=head;

for(inti=0;i

{

temp=temp.getNext();

}

p.setNext(temp.getNext());

temp.setNext(p);

}

publicstaticvoidmain(Stringargs[])

{

Listl=newList(5);

l.rList();

l.iCode(3,8);

l.rList();

l.dCode(4);

l.rList();

}

}

实验三

1、按照要求使用Java进行编码。

1)编写一个抽象类Shape,其中有抽象方法getArea()和getPerimeter()

2)在Shape类的基础上派生出Rectangle和Circle类,二者都实现了计算面积的方法getArea()和计算周长的方法getPerimeter();

构造main函数,生成Rectangle和Circle对象,并用Shape类型的变量调用Rectangle和Circle对象的getArea()和getPerim()方法。

Shape.Java

importjava.io.*;

publicclassShape{

/**

*@paramargs

*@author

*@dateDec4

*/

publicstaticvoidmain(String[]args)throwsIOException{

floatradius;//定义圆的周长

floata,b,c;//定义三角形的三边长

floatw,h;//定义矩形的宽和长

intselect;//功能选项序号

BufferedReaderbuf=newBufferedReader(newInputStreamReader(System.in));

Stringstr;

Graphicsgp;

while(true)//控制程序循环

{

PrintMenu();

while(true)

{

str=buf.readLine();

try{

if(str.length()>1||str.charAt(0)>52||str.charAt(0)<48)

{

System.out.print("输入不合法!

请输入(0-3)的整数:

");

continue;

}

select=Integer.parseInt(str);

while(select>3||select<0)

{

System.out.print("输入不合法!

请输入(0-3)的整数:

");

continue;

}

break;

}

catch(Exceptionne)

{

System.out.print("输入的不是(0-3)之间的整数,请重新输入:

");

continue;

}

}

switch(select)//处理用户要执行的功能

{

case1:

//处理圆的情况

System.out.println("请输入圆的半径:

");

while(true)

{

try{

str=buf.readLine();

radius=Float.parseFloat(str);

//Circlecircle=newCircle(radius);

if(radius<=0)

{

System.out.print("圆的半径应为大于0的实数,请重新输入圆的半径:

");

continue;

}

System.out.println("圆的半径为:

"+radius);

gp=newCircle(radius);

gp.area();

gp.perimeter();

break;//退出循环

}

catch(NumberFormatExceptionne)

{

System.out.println("输入的数据不合要求!

\n请重新输入圆的半径:

");

continue;

}

}

break;

case2:

//

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

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

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

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