1.三角形、梯形和圆形的类封装
要求:
编写一个Java应用程序,该程序中有3个类:Trangle、Leder和Circle,分别用来刻画“三角形”、“梯形”和“圆形”。具体要求如下:
a) Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle类具有返回周长、面积以及修改三个边的功能。另外,Trangle类还具有一个boolean型的属性,该属性用来判断三个属能否构成一个三角形。
b) Lader类具有类型double的上底、下底、高、面积属性,具有返回面积的功能。
c) Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的功能
package xin;
import java.util.Scanner;
class Circle {
double rad,a,area;
Circle(double x){ //构造函数
rad = x;
}
double ZhouC(){
a = 2*3.14*rad; //圆周长
return a;
}
double CmsianJi(){
area = 3.14*rad*rad; //圆面积
return area;
}
}
class Lader {
double above,bottom,height;
double area;
Lader(double x,double y,double z){ //构造函数
above = x;
bottom = y;
height = z;
}
double LmianJi(){
area = (above+bottom)*height/2.0; //梯形面积
return area;
}
}
class Trangle {
double a;
double b;
double c;
double p;
double zhouchang,area;
boolean boo;
Trangle(double x,double y,double z){ //构造函数
a = x;
b = y;
c = z;
p = (a+b+c)/2.0;
if(a+b>c&&a+c>b&&b+c>a) {
boo = true;
if(boo) //判断能否构成三角形
System.out.println("三边能构成三角形");
}
else
{
System.out.println("三边不能构成三角形");
}
}
double TzhouC(){
zhouchang = a+b+c; //三角形周长
return zhouchang;
}
double TmianJi(){
area = Math.sqrt(p*(p-a)*(p-b)*(p-c)); //三角形面积
return area;
}
}
public class Example {
public static void main(String args[]){
double area,zc,area1,zc1;
Scanner reader = new Scanner(System.in);
System.out.println("输出a的值为true还是false");//判断a输入值
boolean a = reader.nextBoolean();
if(a) {
while(a){
Circle circle = new Circle(2.0);
System.out.println("请输入圆的半径值:");
circle.rad = reader.nextDouble();
area = circle.CmsianJi();
zc = circle.ZhouC();
System.out.println("圆的面积为:"+area);
System.out.println("圆的周长为:"+zc);
System.out.println("重新输入半径的值:");
circle.rad = reader.nextDouble(); //设置新值
area1 = circle.CmsianJi();
zc1 = circle.ZhouC();
System.out.println("圆的面积为:"+area1);
System.out.println("圆的周长为:"+zc1);
System.out.println("***************************");
Lader lader = new Lader(4.0,5.0,6.0);
area = lader.LmianJi();
System.out.println("梯形的面积为:"+area);
System.out.println("重新输入长、宽、高的值:");
lader.above = reader.nextDouble(); //设置新值
lader.bottom = reader.nextDouble(); //设置新值
lader.height = reader.nextDouble(); //设置新值
area1 = lader.LmianJi();
System.out.println("梯形的面积为:"+area1);
System.out.println("***************************");
Trangle trangle = new Trangle(3.0,4.0,5.0);
area = trangle.TmianJi();
zc = trangle.TzhouC();
System.out.println("三角形的面积为:"+area);
System.out.println("三角形的周长为:"+zc);
System.out.println("重新输入三角形的三条边的值:");
trangle.a = reader.nextDouble(); //设置新值
trangle.b = reader.nextDouble(); //设置新值
trangle.c = reader.nextDouble(); //设置新值
Trangle trangle1 = new Trangle(trangle.a,trangle.b,trangle.c);//设置新的三边进行赋值
area1 = trangle1.TmianJi();
zc1 = trangle1.TzhouC();
System.out.println("三角形的面积为:"+area1);
System.out.println("三角形的周长为:"+zc1);
System.out.println("***************************");
System.out.println("输出值为true则继续,反之终止程序");//判断while语句是否继续
boolean b = reader.nextBoolean();
if(b)
{main(args);}//自己调用主函数完成循环
else
break;//如果不继续调用则退出
}
}
else
{System.out.println("程序无法执行!!!!!!!!");}
}
}
运行结果:
如往常一样, 客户发给我一个xml文件, 用来更新数码课堂日程安排——是一个js读...
微软确认, 将会在Win10 Build 19043.899(21H1)更新中,彻底从系统中删除经典...
JSP开发中Apache-HTTPClient 用户验证的实例详解 前言: 在微服务框架之外的系统...
HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、...
OCR光学字符识别OPTICAL CHARACTER RECOGNITION作为计算机视觉领域的经典问题之...
前言: 今天这篇文章给大家介绍关于ajax的content-download时间过慢问题的解决与...
为什么我们需要它 不得不说,在知道这个命令的时,以及之后的使用中,我都超级热...
来自:机器之心 最近在 GitHub 上最火的项目是一个对视力友好的十六进制编辑器,...
本文实例为大家分享了JSP+Servlet实现文件上传到服务器功能的具体代码,供大家参...
有时候我么您需要获取网址,端口、路径文件名、参数等,这里就为大家分享一下这...