仅供参考,严禁抄袭!!!
目录
一、实验一
编写一个 Java 应用程序,该程序中有 3 个类:Triangle、T rapezium 和 Circle,分别用来 表示三角形、梯形和圆形。具体要求如下。
- Triangle 类具有类型为 double 的三个边、周长以及面积属性,Triangle 类具有构造方法初始化属性和返回周长、面积以及修改三个边的功能。另外,Triangle 类还具有一个 boolean 型的属性,该属性用来判断三个数能否构成一个三角形。
- Trapezium 类具有类型为 double 的上底、下底、高以及面积属性,具有构造方法初始化属性和返回面积的功能。
- Circle 类具有类型为double的半径、周长以及面积属性,具有构造方法初始化属性和返回周长、面积的功能。
package text;
import java.util.*;
public class Text //主类
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
System.out.println("请选择您想计算的图形!");
System.out.println("1是三角形,2是梯形,3是圆形");
int idx=sc.nextInt();
switch(idx)
{
case 1:
{
System.out.println("请输入三角形的三边!");
double x=sc.nextDouble();
double y=sc.nextDouble();
double z=sc.nextDouble();
Triangle p=new Triangle(x,y,z);
p.get_m(x,y,z);
p.get_area(x,y,z);
System.out.println("请修改三角形的三边!");
double x1=sc.nextDouble();
double y1=sc.nextDouble();
double z1=sc.nextDouble();
p.change(x, y, z, x1, y1, z1);
p.get_m(x1, y1, z1);
p.get_area(x1, y1, z1);
break;
}
case 2:
{
System.out.println("请输入梯形的上底、下底、高!");
double x=sc.nextDouble();
double y=sc.nextDouble();
double h=sc.nextDouble();
Trapezium p=new Trapezium(x,y,h);
p.get_area(x, y, h);
break;
}
case 3:
{
System.out.println("请输入圆的半径!");
double r=sc.nextDouble();
Circle p=new Circle(r);
p.get_area(r);
p.get_m(r);
break;
}
}
}
}
class Triangle
{
double a,b,c;
double m,area; //m是周长 area是面积
Triangle(double a,double b,double c)
{
this.a=a;
this.b=b;
this.c=c;
}
public boolean check(double a,double b,double c)
{
if(a<=0||b<=0||c<=0||a+b<=c||a+c<=b||b+c<=a) return false;
return true;
}
public void get_m(double a,double b,double c)
{
if(check(a,b,c))
System.out.printf("三角形的周长为:%.2f\n",a+b+c);
else
System.out.printf("不能构成三角形!请您重新输入!\n");
}
public void get_area(double a,double b,double c)
{
if(check(a,b,c))
{
double p=(a+b+c)/2;
double Area=Math.sqrt(p*(p-a)*(p-b)*(p-c));
System.out.printf("三角形的面积为:%.2f\n",Area);
}
else System.out.printf("不能构成三角形!请您重新输入!\n");
}
//修改三边
public void change(double a,double b,double c,double x,double y,double z)
{
a=x; b=y; c=z;
}
}
class Trapezium
{
double x,y,h;
double area;
Trapezium(double x,double y,double h)
{
this.x=x;
this.y=y;
this.h=h;
}
public void get_area(double x,double y,double h)
{
System.out.printf("梯形的面积是:%.2f\n",(x+y)*h/2);
}
}
class Circle
{
double r;
double area,m;
static double PI=3.14159;
Circle(double r)
{
this.r=r;
}
public void get_m(double r)
{
System.out.printf("圆形的周长是:%.2f\n",2*PI*r);
}
public void get_area(double r)
{
System.out.printf("圆形的面积是:%.2f\n",r*PI*r);
}
}
二、实验二 - 待改进
重载3个不同版本的max方法和min方法,这些方法均有3个参数,分别用来求3个int、3个long、3个float数的最大值和最小值。编写Java应用程序,使用这些方法。
package text;
import java.util.*;
public class Text //主类
{
public static void main(String[] args)
{
Max_Min p=new Max_Min();
System.out.println(p.max(2, 6, 8));
System.out.println(p.min(2, 6, 8));
}
}
class Max_Min
{
public int max(int x,int y,int z)
{
int res=Math.max(Math.max(x,y),z);
return res;
}
public int min(int x,int y,int z)
{
int res=Math.min(Math.min(x,y),z);
return res;
}
public long max(long x,long y,long z)
{
long res=Math.max(Math.max(x,y),z);
return res;
}
public long min(long x,long y,long z)
{
long res=Math.min(Math.min(x,y),z);
return res;
}
public float max(float x,float y,float z)
{
float res= x>y? x:y;
res=res>z? res:z;
return res;
}
public float min(float x,float y,float z)
{
float res= x>y? y:x;
res=res>z? z:res;
return res;
}
}