java实验程序.docx

上传人:b****6 文档编号:5960259 上传时间:2023-01-02 格式:DOCX 页数:42 大小:28.44KB
下载 相关 举报
java实验程序.docx_第1页
第1页 / 共42页
java实验程序.docx_第2页
第2页 / 共42页
java实验程序.docx_第3页
第3页 / 共42页
java实验程序.docx_第4页
第4页 / 共42页
java实验程序.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

java实验程序.docx

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

java实验程序.docx

java实验程序

1.编写JavaApplication程序,输出1900年到2000年之间的所有润年。

(闰年的判断条件:

能被4整除且不能被100整除,或能被400整除);

publicclassyear{

publicstaticvoidmain(String[]args){

inti;

for(i=1900;i<=2000;i++){

if(i%4==0&&i%100!

=0||i%400==0)

System.out.println(+i);

}

}

}

2.编写JavaAppet程序打印“水仙花”数(它的个、十、百位数字的立方的和等于该数本身,如:

153=1^3+5^3+3^3)importjava.awt.*;

importjava.applet.Applet;

publicclassflowersextendsApplet{

publicvoidpaint(Graphicsg){

inti,j,r=20;

inta,b,c;

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

j=i;

a=j%10;

b=(j/10)%10;

c=j/100;

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

g.drawString("水仙花"+i,20,r);

r=r+20;

}

}

}

}

3.编写JavaApplication程序,分别用do-while和for循环计算1+1/2!

+1/3!

+1/4!

...的前20项和

publicclasscount{

publicstaticvoidmain(String[]args){

inti,j=1;

doubleresult=0;

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

j=j*i;

result=result+1.0/j;

}

System.out.println("计算结果="+result);

}

}

publicclasscount1{

publicstaticvoidmain(String[]args){

inti,j;

i=j=1;

doubleresult=0;

do{

j=j*i;

result=result+1.0/j;

i++;

}while(i<=20);

System.out.println("计算结果="+result);

}

}

1.定义一个学生类(Student),属性有private的名字(name),public的年龄(age),专业(specialty)和封装name属性的方法:

setName(),getName(),getspecialty()编写Application,创建一个学生对象,设置name和age属性值,然后调用一个方法(此方法将对象作为参数传递,在方法中打印出学生的名字name和年龄age)。

(学生类仅包含静态成员变量和方法。

classStudent{

privateStringname;//姓名

publicintage;//年龄

publicStringspecialty;//专业

publicvoidsetname(Strings){

name=s;

}

publicvoidgetname(){

System.out.println("姓名:

"+name);

}

publicvoidsetage(intmyage){

age=myage;

}

publicvoidgetage(){

System.out.println("年龄:

"+age);

}

publicvoidsetspecialty(Stringsubject){

specialty=subject;

}

publicvoidgetspecialty(){

System.out.println("专业:

"+specialty);

}

}

publicclassStu{

publicstaticvoidmain(Stringargs[]){

Studenta=newStudent();

a.setname("小明");

a.getname();

a.setage(20);

a.getage();

a.setspecialty("计算机科学与技术");

a.getspecialty();

}

}

2.定义一个类Point,代表一个点,public属性有x和y,方法有显示点坐标show(),构造函数有两个参数分别给x,y赋值,在main方法中构造两个对象,再创建一方法(getMiddle)为取两个点构成线段的中点的坐标,参数为2个点对象,调用此方法后得到一个新的点,编写Application,显示该对象的坐标值。

classpoint{

publicdoublex;//横坐标

publicdoubley;//纵坐标

publicvoidintxy(doublex0,doubley0){

x=x0;

y=y0;

}

publicvoidshow(){

System.out.print("("+x+","+y+")");

}

publicvoidgetMiddle(pointa,pointb){

x=(a.x+b.x)/2;

y=(a.y+b.y)/2;

show();

}

}

publicclasspoin{

publicstaticvoidmain(Stringargs[]){

pointa=newpoint();

pointb=newpoint();

pointc=newpoint();

a.intxy(5.0,6.0);

b.intxy(7.0,8.0);

System.out.print("两个点坐标分别为:

");

a.show();

b.show();

System.out.print("两个点中点坐标为:

");

c.getMiddle(a,b);

}

}

定义一个复数(z=x+iy)类Complex,包含两个属性:

实部x和虚部y默认构造函数Complex(),设置x=0,y=0构造函数:

Complex(inti,intj)显示复数的方法:

showComp()将其显示为如5+8i或5-8i的形式。

求两个复数的和的方法:

(参数是两个复数类对象,返回值是复数类对象)publicComplexaddComp(ComplexC1,ComplexC2)求两个复数的差的方法:

(参数是两个复数类对象,返回值是复数类对象)publicComplexsubComp(ComplexC1,ComplexC2)求两个复数的乘积的方法:

(参数是两个复数类对象,返回值是复数类对象,新复数实部=两复数实部乘积-两复数虚部乘积,新复数虚部=两复数实部与虚部交叉乘积之和,)publicComplexmultiComp(ComplexC1,ComplexC2)比较两个复数是否相等的方法(参数是两个复数类对象,返回值是boolean类型)publicbooleanequalComp(ComplexC1,ComplexC2)在Application中测试该类的方法,实部x和虚部y可由main方法参数提供输入。

classComplex{

publicintx,y;

publicvoidComplex(inti,intj){

x=i;

y=j;

}

publicvoidshowComp(){

if(y>0)

System.out.println("z="+x+"+"+y+"i");

else

System.out.println("z="+x+y+"i");

}

publicComplexaddComp(ComplexC1,ComplexC2){

x=C1.x+C2.x;

y=C1.y+C2.y;

System.out.println("两个复数的和为:

");

showComp();

returnC1;

}

publicComplexsubComp(ComplexC1,ComplexC2){

x=C1.x-C2.x;

y=C1.y-C2.y;

System.out.println("两个复数的差为:

");

showComp();

returnC1;

}

publicComplexmultiComp(ComplexC1,ComplexC2){

x=C1.x*C2.x-C1.y*C2.y;

y=C1.x*C2.y-C2.x*C1.y;

System.out.println("两个复数的积为:

");

showComp();

returnC1;

}

publicbooleanequalComp(ComplexC1,ComplexC2){

inta,b;

booleanbool=false;

a=C1.x-C2.x;

b=C1.y-C2.y;

if(a==0&&b==0){

bool=true;

System.out.println("两个复数相等!

");

}

else{

System.out.println("两个复数不等!

");

}

returnbool;

}

}

publicclassCOMP{

publicstaticvoidmain(Stringargs[]){

ComplexA=newComplex();

ComplexB=newComplex();

ComplexC=newComplex();

A.Complex(3,5);

B.Complex(2,3);

System.out.println("两个复数分别为:

");

A.showComp();

B.showComp();

C.addComp(A,B);

C.subComp(A,B);

C.multiComp(A,B);

C.equalComp(A,B);

}

}

1.分别编写两个类Point2D,Point3D来表示二维空间和三维空间的点,使之满足下列要求:

(1) Point2D有两个整型成员变量x,y(分别为二维空间的X,Y方向坐标),Point2D的构造方法要实现对其成员变量x,y的初始化。

(2)Point2D有一个void型成员方法offset(inta,intb),它可以实现Point2D的平移。

(3)Point3D是Point2D的直接子类,它有有三个整型成员变量x,y,z(分别为三维空间的X,Y,Z方向坐标),Point3D有两个构造方法:

Point3D(intx,inty,intz)和Point3D(Point2Dp,intz),两者均可实现对Point3D的成员变量x,y,z的初始化。

(4)Point3D有一个void型成员方法offset(inta,intb,intc),该方法可以实现Point3D的平移。

(5)在Point3D中的主函数main()中实例化两个Point2D的对象p2d1,p2d2,打印出它们之间的距离,再实例化两个Point2D的对象p3d1,p3d2,打印出他们之间的距离。

classPoint2D{

publicintx,y;

voidoffset(inta,intb){

this.x=x-a;

this.y=y-b;

System.out.print("x="+x+"y="+y);

}

Point2D(intx,inty){

this.x=x;

this.y=y;

}

publicvoidshow(Point2Dp2d1,Point2Dp2d2){

x=(p2d1.x-p2d2.x);

y=(p2d1.y-p2d2.y);

x=x*x+y*y;

System.out.println(+Math.sqrt(x));

}

}

classPoint3DextendsPoint2D{

intz;

publicPoint3D(intx,inty,intz){

super(x,y);

this.z=z;

}

publicPoint3D(Point2Dp,intz){

super(p.x,p.y);

this.z=z;

}

voidoffset(inta,intb,intc){

super.offset(a,b);

this.z=z-c;

System.out.println("z="+z);

}

publicvoidshow1(Point3Dp3d1,Point3Dp3d2){

x=(p3d1.x-p3d2.x);

y=(p3d1.y-p3d2.y);

z=(p3d1.z-p3d2.z);

x=x*x+y*y+z*z;

System.out.println(+Math.sqrt(x));

}

}

classpoin{

publicstaticvoidmain(Stringargs[]){

Point2Dp2d1=newPoint2D(1,2);

Point2Dp2d2=newPoint2D(3,4);

Point2Dp2d3=newPoint2D(6,2);

Point3Dp3d1=newPoint3D(1,2,3);

Point3Dp3d2=newPoint3D(4,5,6);

Point3Dp3d3=newPoint3D(6,2,1);

//Point3Dp3d3=newPoint3D(p2d3,1);

System.out.print("p2d1的平移后的坐标");

p2d1.offset(0,3);

System.out.println("");

System.out.print("p3d1的平移后的坐标");

p3d1.offset(1,4,3);

System.out.print("p2d2和p2d3之间的距离=");

p2d2.show(p2d2,p2d3);

System.out.print("p3d2和p3d3之间的距离=");

p3d2.show1(p3d2,p3d3);

}

}

2.定义抽象类Shape,抽象方法为showArea(),求出面积并显示,定义矩形类Rectangle,正方形类Square,圆类Circle,根据各自的属性,用showArea方法求出各自的面积,在main方法中构造3个对象,调用showArea方法。

定义接口DiagArea,其中包含方法doublegetDiagonal()求对角线长,doublegetArea()求面积,定义一个矩形类,实现此接口,并自行扩充成员变量和方法,定义一个正方形类继承矩形类(如矩形有长w和宽h,正方形有边x,并有相应的构造函数,有一个方法中一次直接显示边长、面积和对角线长),在另一类中的主方法里使用测试该类。

interfaceDiagArea{

publicdoublegetDiagonal();//求对角线长

publicdoublegetArea();//求面积

}

abstractclassShape{

abstractpublicvoidShowArea();//求面积

}

classRectangleextendsShapeimplementsDiagArea{

doublelength,width;

publicvoidShowArea(){

System.out.println("通过抽象方法求出的矩形面积="+length*width);

}

publicdoublegetDiagonal(){

return(Math.pow(length*length+width*width,0.5));

}

publicdoublegetArea(){

returnlength*width;

}

}

classSquareextendsShapeimplementsDiagArea{

doubleside;

publicvoidShowArea(){

System.out.println("通过抽象方法求出的正方形的面积="+side*side);}

publicdoublegetDiagonal(){

return(Math.pow(2*side*side,0.5));

}

publicdoublegetArea(){

returnside*side;

}

}

classCircleextendsShapeimplementsDiagArea{

doubleradius;

publicvoidShowArea(){

System.out.println("通过抽象方法求出的圆的面积="+3.14*radius*radius);}

publicdoublegetDiagonal(){

returnradius;

}

publicdoublegetArea(){

return3.14*radius*radius;

}

}

classExam4_2{

publicstaticvoidmain(Stringargs[]){

RectangleA=newRectangle();

SquareB=newSquare();

CircleC=newCircle();

A.length=2;

A.width=3;

B.side=4;

C.radius=7;

A.ShowArea();

System.out.println("通过接口求出的矩形的面积="+A.getArea());

System.out.println("通过接口求出的矩形的对角线="+A.getDiagonal());

B.ShowArea();

System.out.println("通过接口求出的正方形的面积="+B.getArea());

System.out.println("通过接口求出的正方形的对角线="+B.getDiagonal());

C.ShowArea();

System.out.println("通过接口求出的圆的面积="+C.getArea());

System.out.println("通过接口求出的圆的半径="+C.getDiagonal());

}

}

1.从命令行得到5个整数,放入一整型数组,然后打印输出,要求:

如果输入数据不为整数,要捕获Integer.parseInt()产生的异常,显示“请输入整数”,捕获输入参数不足5个的异常(数组越界),显示“请输入至少5个整数”。

publicclassExam5_1{

publicstaticvoidmain(Stringargs[]){

try{

if(args.length<5){

ArrayIndexOutOfBoundsExceptione=newArrayIndexOutOfBoundsException();

throwe;

}

for(inti=0;i<=4;i++){

Integer.parseInt(args[i]);

}

for(inti=0;i<=4;i++){

System.out.print(args[i]+"");

}

}

catch(ArrayIndexOutOfBoundsExceptione){

System.out.println("请输入至少5个整数!

");

}

catch(NumberFormatExceptione){

System.out.println("请输入整数!

");

}

finally{

System.out.println("处理完毕!

");}

}

}

2.写一个方法voidsanjiao(inta,intb,intc),判断三个参数是否能构成一个三角形,如果不能则抛出异常IllegalArgumentException,显示异常信息a,b,c+”不能构成三角形”,如果可以构成则显示三角形三个边长,在主方法中得到命令行输入的三个整数,调用此方法,并捕获异常。

publicclassExam5_2{

publicstaticvoidmain(Stringargs[]){

inta=Integer.parseInt(args[0]);

intb=Integer.parseInt(args[1]);

intc=Integer.parseInt(args[2]);

sanjiao(a,b,c);

}

staticvoidsanjiao(inta,intb,intc){

try{

if((a+b<=c)||(a+c<=b)||(b+c<=a)){

IllegalArgumentExceptione=newIllegalArgumentException();

throwe;

}

System.out.println(a+","+b+","+c+"能构成三角形!

");

}

catch(IllegalArgumentExceptione){

System.out.println(a+","+b+","+c+"不能构成三角形!

");

}

finally{

System.out.println("处理完毕!

");

}

}

}

3.自定义类Sanj,其中有成员x,y,z,作为三边长,构造方法Sanj(a,b,c)分别给x,y,z赋值,方法求面积getArea和显示三角形信息(三个边长)showInfo,这2个方法中当三条边不能构成一个三角形时要抛出自定义异常NotSanjiaoException,否则显示正确信息。

在另外一个类中的主方法中构造一个Sanj对象(三边为命令行输入的三个整数),显示三角形信息和面积,要求捕获异常。

public

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

当前位置:首页 > 自然科学

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

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