《Java程序设计实验报告.docx》由会员分享,可在线阅读,更多相关《Java程序设计实验报告.docx(83页珍藏版)》请在课桌文档上搜索。
1、二合肥学浣HEFEiVniversity计算机科学与技术系,实.验报告专业名称计算机科学与技术课程名称JaVa程序设计项目名称JaVa语言基础班级学号姓名同组人员试验日期2 .打印“水仙花”数packagesyl;publicclassEam2(publicstaticvoidmain(Strigargs)for(intnum=100;num=999;nurtH-+)(inta=num10;intb三(num-a*l)l;intc-um%10;if(aa*a*b*bbc*c4c-num)(System.out.print(num+);)运行结果:153370371473 .用do-while和
2、for循环计算l+l2!+3!+l4!.的前20项和packagesyl;publicclassEam3publicstaticintfun(intn)(if(n三=IInl)return1;elsereturnn*fm(nl);publicstaticvoidmain(Strlngargs)doubles=;intn=20;int1=1;do(s+=l(double)(fun(i);ii;while(i-n);Syste.out.println(*s三*s);doublesl=;for(l=l;i=2;-j)if(i%j-)break;if(D三=l)System.out.printIn(i
3、);/intij;1.oop:for(i三2ji10ji+)(for(j-2;j=0j-)System.out.print(aj);十进制转八进制publicstaticvoidtoOcter(intn)Inti,j;inta-ncwint100;if(n=)System.out.println();for(i=0;n!=0;i+)ai=%8;11-8;for(j=i-l;j=0;j-)Systeffl.out.print(aJ);)十进制传十六进制publicstaticvoidtoHex(intn)(inti,j;chara=newchar100;if(-)(System.out.prin
4、tln();for(l-0;n!-0;i+)(ai=(char)(n%16);11=16;if(al=0j-)Systea.out.print(aj);publicstaticvoidmain(Stringargs)(SyStem.out.printIn(谙输入,个正整数:”);Scanners=newScanner(System.in);i11tn=lt();ExamS.toBinry(n);System.outprintln();Eam5.toOcter();System.out.PrintIn();ExamS.toHex(n);s.close();)运行结果:请输入一个正整数:lll12
5、A类和对象一、试验目的与要求:目的,1.驾驭JaVa类的结构、类的定义、方法和属性的定义以及对象的实现;2 .驾驭类及其成员修饰符的运用:驾驭构造函数的运用:方法的参数传递和返回值的用法:3 .驾驭类变量与实例变量,以及类方法与实例方法的区分。要求:1 .正确地定义类、方法和属性;2 .学会方法的参数传递和返回值的用法:3 .娴熟运用类及其成员修饰符4 .运用构造函数创建类的对象:5 .类变量与实例变量,以及类方法与实例方法的运用6 .程序应包括各个被调用方法的执行结果的显示。7 .写出试验报告。要求记录编译和执行JaVa程序当中的系统错误信息提示,并给出解决方法.(附运行界面、源代码)。二、
6、试黯内容;1.定义个学生类(StUdent),属性有PriVate的名字(name),PUbliC的年龄(ag。),专业(specialty)和封装name属性的方法:SetName(),getName(),getspecialtyO编写APPliCation,创建一个学生对象,设置name和age属性值,然后调用个方法(此方法将对象作为参数传递,在方法中打印出学生的名字name和年龄Uge)。(学生类仅包含静态成员变量和方法。)8 .定义一个类POinI,代表一个点,public屈性有X和y,方法有显示点坐标show(),构造函数有两个参数分别给x,y赋值,在main方法中构造两个对象,再创
7、建一方法(getMiddlc)为取两个点构成线段的中点的坐标,参数为2个点对缴,调用此方法后得到一个新的点,编写.Application,显示该对象的坐标值。9 .定义一个复数(z=x+iy)类COmPleX,包含:两个属性:实部X和虚部y默认构造函数ComplexO,设置x=0,y=0构造函数:Complex(inti,intj)显示更数的方法:ShOWCxnp将其显示为如:5+8i或5-8i的形式。求两个史数的和的方法:(参数是两个发数类对象,返回值是发数类对象)publicComplexaddConp(ComplexCl,ComplexC2)求两个更数的差的方法:(参数是两个更数类对象,
8、返回值是豆数类对象)publicComplexsubCo)System,out.println(this,*this.y*i);if(this.y)SyStem.out.print】n(this.x+this.y+i);publicComplexaddComp(ComplexCllComplexC2)(this.=C1.x+C2.;this.y=Cl.y+C2.y;returnthis;publicComplexSUbCOmP(ComPleXCljComplexC2)this.=C1.x-C2.x;this.y=Cl.y-C2.y;returnthis;publicComplexmultiCo
9、mp(CompleCl,ComplexC2)(this.=C1.*C2.-Cl.ytC2.y;this.y-Cl.x*C2.yl.y*C2.x;returnthis;publicbooleanequalCOlnP(ConPleXCl,ComplexC2)(if(Cl.x=C2.x&Cl.y=C2.y)returntrue;elsereturnfalse;)publicclassEam3publicstaticvoidmain(Stringargs)intl,yl,2,y2;Scanners=newScaner(System.tn);l=s.nextlt();yl-s.nextlt();x2三s
10、.nextlnt();y2=s.nextlnt();Complexcl=newCoc2);cl.showConp();cl.subComp(cl,c2);cl.showCofnp();cl.mltiComp(cljc2);cl.ShowCofflpO;booleanb=cl.equalCo11p(cl,c2);System.out.println(b);s.close();运行结果:12341+213+4i46il+2i-S-14iFalse三、试验分析与小结:1 .(第1题)定义一个学生类(StUdent)及它的属性和方法;定义主类和main。,在Inaino方法中创建学生对象,并通过对象调
11、用它的方法SelName0,getNa三e0,输出学生的名字name和年龄age.2 .(第2题)定义类Point及它的属性、方法和构造函数,定义主类和main。.在main。方法中创建两个坐标对象,并通过对象调用getMiddle方法后得到一个新的点坐标,调用ShOH()显示该对象的坐标值。3 .(第3题)定义个笈数(z=x+iy)类COInPlex,及它的属性、方法和构造函数:定义主类和main。方法,在main。方法中创建两个复数类Complex对软,并通过更数类对象调用它们的属性和方法,输出方法执行结果。在用ScannersnewScanner(System,in);创建一个对象时,最
12、终肯定要用s.close。;关闭资源,否则会出现ReSoUrCeleak:sisneverclosed警告四、其它自做试改1.构造一个类来描述屏幕上的一个点,该类的构成包括点的X和y两个坐标,以及一些对点进行的操作,包括:取得点的坐标值,对点的坐标进行赋值,编写应用程序生成该类的对彖并对其进行操作。2 .编写实现:有一个角形类TriangIe,成员变量有底边X和另一条边y,和两边的夹角a(0a180),a为静态成员,成员方法有两个:求面积S(无参数)和修改角度(参数为角度)。3 .编写实现:构造函数为TriangIe(iniXX,intyy,intaa)参数分别为x,y,a赋值在main方法中
13、构造两个对象,求出其面枳,然后运用修改角度的方法,修改两边的夹角,再求出面积值。(提示:求高的方法hy*Math.sin(八))留意:构造方法用于对成员变出初始化,无参数的构造方法聘成员变量初始化为0值。点类:packagesy2;importjava.util.Scanner;classP(i11tx,y;P(intxx,intyy)this.=x;this.y-yy;publicintget()returnx;)publicvoidsetX(int)this.x三x;SyStem.out.printing正得X的做为:+x);publicintgetY()(returny;)publicv
14、oidsetY(inty)(this.y=y;System.out.print1n(iftyffi:,y);)publicstaticdoubleSlOPe(Ppl,Pp2)doubles;s-(2.getY()pl.getY()(double)(p2.getX()-pl.get();returns;)publicclassEXam5publicstaticvoidmain(Stringargs)i11tx,y,l,yl;Scanners=newScanner(System.in);x=s.nextlnt();y-s.nextlnt();xl=s.11extlnt();yl=s.11extln
15、t();Ppl=11ewP(x,y);Pp2=newP(l,yl);SyStem.out.println(“该点的横中标为:+plgetX();SyStem.out.print】n(该点的圾坐标为:n+pl.getY();5y$t.out.printIn(0两点的斜率为:*P.stOPe(l,p2);pl.setX(l);pl.setY(2);s-close();)运行结果t3S01该点的横坐标为:3该点的纵坐标为:5两点的斜率为11.3333333333333333获得X的依为:10获得y的值为:2三角形TriangIe类packagesy2;classTriangledoublex,y;s
16、taticdoublea;Triangle(doubledoublejdoublek)this.=i;+,(+,+y+z+);publicdoubledistance(Point2Dp2dl,Point2Dp2d2)doubled=Math.sqrt(p2d2.-p2dl.)*(p2d2.-p2dl.)+(p2d2.y-p2dl.y)*(p2d2.y-p2dl.y);returnd;publicdoubledistance(Point3Dp3dl,Point3Dp3d2)(doubled=Math.sgrt(p3d2.-p3dl.)*(p3d2.-p3dl.)+(p3d2.y-p3dl.y)*
17、(p3d2.y-p3dl.y)+(p3d2.y-p3dl.y)*(p3d2.z-p3dl.z);returnd;)publicclassExamlpublicstaticvoidmain(Stringargs)Point2Dp2dl=newPoint2D(l,2);p2dl.offset(lj2);Point2Dp2d2=newPoint2D(3,4);p2d2.offset(l,2);Point3Dp3=newPoint3D(p2dl,3);p3.ofset(l,2,3);doubled=p3.distance(p2dl,p2d2);System.out.Println(“二维两点间的距离为
18、;+d);Point3Dp31=newPoint3D(1,2,1);Point3Dp32三newPOint3D(2,3,2);doubledl=p3.distance(p31,p32);System.out.println(三维两点间的距离为;-+dl);运行结果:平移后的坐标为:(4,6)平移后的坐标为:(1,2,6)二维两点间的距离为;2.8284271247461903三维两点间的距离为;1.73205080756887722.packagesy3;abstractclassShape(abstractvoidshowArea();classRectangleextendsShapeim
19、plementsDiagAreainta,b;Rectangle(inti,intj)(this.a=i;this.b=j;)voidshowArea()doublearea=this.getArea();SyStem.out.Println(矩形的长为:+a+矩形的宽为:+b+矩形的面积为:+area+”矩形的对角线长为:+this.getDiagonal();)publicdoublegetArea()(returnab;)publicdoublegetDiagonal()(returnMath.sqrt(a*a+b*b);)classCircleextendsShape(intr;Cir
20、cle(inta)this.r=a;voidShowArea()doublearea=Math.PI*r*r;System.out.println(M的面积为:+area);classSquareextendsShapeimplementsDiagArea(intb;Square(inta)(this.b=a;voidShowArea()(doublearea=this.getArea();SyStem.out.println(正方形的边长为:+b+iE方形的面积为:+area+”正方形的对角线为:+this.getDiagonal();)publicdoublegetDiagonal()re
21、turnMath.sqrt(2*b*b);)publicdoublegetArea()returnb*b;interfaceDiagAreadoublegetDiagonal();doublegetArea();publicclassEXam2publicstaticvoidmain(Stringargs)Rectanglerec=newRectangle(4,3);rec.showArea();Squaresqu三newSquare(4);squ.showArea();Circlec=newCircle(10);c.showArea();)运行结果:矩形的长为:4矩形的宽为:3矩形的面枳为:
22、12.0矩形的对角线长为:5.0正方形的边长为:4正方形的面积为:16.0正方形的对角线为:5.656854249492381圆的面枳为三、试验分析与小结:1 .(第1题)定义POint2D,及定义它的属性和方法:定义子类Point3D.及定义它的属性和方法:在Point3D中的主函数main。中实例化两个Point2D的对象,并通过这两个对象调用它们的属性和方法,输出方法执行结果。2 .(第2题)定义抽象类ShaPe,抽象方法为ShOmea(),再定义矩形类ReCtangIe,正方形类SqUare,圆类Circle,和各自的属性。定义主类、主方法,在main方法中构造3个对象,调用ShOWA
23、rea方法:定义接口DiagAroa,其中包含方法doubleKetDiagonal(),在主rruin方法中输出方法执行结果。吗、其它自做试改1,定义一个描述人的基本类,该类包括人的性别和诞生日期两个数据成员,以及设置和获得这些屈性值的方法成员:再定义一个高校生类,使高校生类具有人的全部属性外,还具有姓名、学号,高校入学成果,籍贯属性以及设置和获得这些属性值的方法成足:编写完整的程序,完成一个具有班级学生信息管理功能的程序。代码:packagesy3;classPerson(charsex;Stringbirth;Person()Person(chars,Stringbin)(se=s;bi
24、rth=bir;)publicvoidsetSex(chars)(this.se=s;)publicchargetSex()(returnsex;)publicvoidsetBirth(Stringbir)this.birth=bir;)publicStringgetBirth()(returnbirth;)publicvoidprint()SyStem.out.println(性别:+this.getSex()+n+诞生Il期:+this.getBirth();)classCollegeextendsPerson(Stringname;intno;doublescore;Stringorig
25、;College(Stringna,intnjdoubles,Stringor)name=na;no=n;score=s;orig=or;)publicvoidsetName(Stringname)(this.name三name;publicStringgetName()(returnname;)publicvoidsetNo(intno)(this.no=no;publicintgetNo()(returnno;)publicvoidsetScore(doublescore)(this.score=score;)publicdoublegetScore()(returnscore;)publ
26、icvoidsetOrig(Stringorig)(this.orig=orig;)publicStringgetrig()(returnorig;)publicvoidoutput()System.out.printIn(姓名:+this.getName()+11+学号:“+1:15612()+0+”入学成果:+this.getScore()+n+ll:+this.getrig();)publicclassEam3(publicstaticvoidmain(Stringargs)(Personp=newPerSon(男,19940502);p.print();Collegec=newCoIl
27、egee李明”,4,580,“合肥”);c.output();运行结果:性别:男诞生日期:19940502姓名:李明入学成果:580.0籍贯:合肥2.创建一个接口ShaPe,其中有抽象方法area,类CirCIe、ReCtangle实现area方法计算其面积并返回。又有Star实现ShaPe的area方法,其返回值是O.Star类另有一返回值blean型方法isStar:在main方法里创建一个VeCtor,依据随机数的不同向其中加入ShaPe的不同子类对象(如是1,生成Cirde对象:如是2,生成ReCtangIe对象:如是3.生成Star对象)。然后将VeCtor中元素依次取出,推断其是否
28、为Star类。如是返回其是个Star。否则返回其面枳。代码:packagesy3;interfaceShap(doublearea();classCirimplementsShap(doubler;Cir(doubler)this.r=r;)publicdoublearea()(returnMath.PI*r*r;)classRectangimplementsShapdoublea,b;Rectang(doublealdoubleb)(this.a=a;this.b=b;publicdoublearea()returna*b;)classStarimplementsShappublicdoub
29、learea()return0;)publicbooleanisStar()returntrue;publicclassEXam4publicstaticvoidmain(Stringargs)Circ=newCir(10);SySteIn.out.printin(圆形的面积为:+c.area();Rectangrec=newRectang(3,5);SyStem.out.println(“长方形的面积为:+rec.area();Stars=newStar();SyStem.out.println(星形的面积为:+s.area();运行结果:圆形的面积为:长方形的面积为:15.。星形的面积为:
30、APPlet类及应用一、试验目的与要求I、试验目的,驾驭applet的程序结构和运行方式;驾驭从html文档向JaVaAPPIet传递参数的方法:了解applet程序的生命周期:驾驭在APPIeI中对字体、颜色、播放声音、显示图像和动画限制方法;(2X试脸要求I1 .必需编写成JaYaAPPleI程序:2 .能够通过传递参数限制一种或者几种图形的绘制:3 .写出试验报告。要求记录编译和执行Java程序当中的系统错误信息提示,并给出解决方法。(附运行界面、源代码)。二、试脸内容1 .编写APPICt程序,变更applet窗口大小,使其最大化、最小化,查看init()、start()、Paint(
31、)、和destroy。方法的执行状况(执行依次和执行次数)2 .编写八PPIet显示字符串,显示字符串及其显示位置,字体、字体大小和颜色通过HTM1.文件中的参数来传递。3 .编写APPIeI(大小140*60),其背景色为蓝色,画一个长方形(其填充色为Pink,各边离边小于10像素)和一个在烦充的长方形中左右移动的小球(半径15)4 .实现一个ApPlel,显示一幅图片。不停地运行一个动画。三、试验分析与小结:试验1代码如下:packagesy8;importjava,applet.Applet;importjava.awt.*;importjava,applet.*;importjava.
32、awt.*;pubIicclassEam1extendsAppIetprivatestaticfinalIongserialVersionUID=11.;pubIicinta=newint0,0,0,0);pubIicColorcolor=Color.blue,Color.red,Color.cyan,Color.green);pubIicvoidinitO(a0+;pubIicvoidstart()1;pubIicvoidpaint(Graphicsg)(a2+;g.draw1.ine(20,200,220,200);g.draw1.ine(20,200,20,20);g.drawStrin
33、g(init,40,215);g.drawString(start,90,215);g.drawString(paint,140,215);g.drawString(destroy,190,215);for(inti=0;i0)for(inti=0;i=0;i=i-15)try(Thread.sleep(100);catch(InterruptedExceptione)importjava.awt.Image;SuppressWarnings(serial)pubIicclassExam4extendsAppIt(Imageim;inttotaI=3;intcurrent=0;pubIicvo
34、idinit()(im=newImagetotaI;for(inti=0;itotaI;i+)imi=getImage(getDocumentBaseO,6na11+(i+1)+.jpg);)pubIicvoidpaint(Graphicsg)g.drawlmage(imcurrent,20,20,250,250,this);currnt=+currnttotaI;tryThread,sIeep(1000);catch(InterruptedExceptione)OrepaintO;)试脸效果:连续显示此幅图片。四、其它自做试验,5,自定义椭圆(或圆)的方法,画一组椭圆(最大半径200),以圆心处为参考点,半径依次增加2个像素,圆周的颜色随机。代码,packagesy8;importjava.awt.*;importjava.applet.*;importjava.util.Random;SppresSWarnings(serial)