java实验答案解读.docx
- 文档编号:25767019
- 上传时间:2023-06-13
- 格式:DOCX
- 页数:29
- 大小:21.66KB
java实验答案解读.docx
《java实验答案解读.docx》由会员分享,可在线阅读,更多相关《java实验答案解读.docx(29页珍藏版)》请在冰豆网上搜索。
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: //
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 实验 答案 解读