2 qq 28313865 qq_28313865 于 2016.04.30 16:50 提问

一个java实验报告代码

(1)编写一个Java程序,该程序中有5个类:Trangle、Lader、Circle、AreaAndLength和TrangleException,AreaAndLength类来调用其他3个类。
(2)Trangle类具有类型为double的三个边,以及周长、面积属性,具有有参构造函数、返回周长、返回面积以及修改三条边的功能。
(3)Lader类具有类型为double的上底、下底、高、面积属性,具有有参构造函数、返回周长、返回面积的功能。
(4)Circle类具有类型为double的半径、周长和面积属性,具有有参构造函数、返回周长、返回面积的功能。
(5)AreaAndLength类有且仅有一个主函数,在主函数中实例化Trangle、Lader、Circle这3个类、输出3个类的周长以及面积。
(6)TrangleException类完成三角形构成的判断,如果不能构成三角形,输出提示信息。
(7)在Trangle类中主动抛出TrangleException异常,在AreaAndLength类中处理。

import java.io.*;
class Trangle
{

double A,B,C,area,length;
boolean boo;
public void TrangleException(){}
public Trangle(double a,double b,double c)throws IOException
{
A=a;
B=b;
C=c; //参数a,b,c分别赋值给sideA,sideB,sideC
}
double getLength()
{

double length;
length=A+B+C;
return length; //方法体,要求计算出length的值并返回
}
public double getArea()
{
if(boo)
{
double p=(A+B+C)/2.0;
area=Math.sqrt(p*(p-A)*(p-B)*(p-C)) ;
return area;
}
else
{
System.out.println("不是一个三角形,不能计算面积");
return 0;
}
}
public void setABC(double a,double b,double c)
{
A=a;B=b;C=c; //参数a,b,c分别赋值给sideA,sideB,sideC
}
}
class Lader
{

double above,bottom,height,area;
Lader(double a,double b,double h)
{
above=a;bottom=b;height=h; //方法体,将参数a,b,c分别赋值给above,bottom,height
}
double getArea()
{
area=(above+bottom)*height/2;
return area; //方法体,,要求计算出area返回
}
}

class Circle
{
double radius,area;
Circle(double r)
{ radius=r;
//方法体
}
double getArea()
{
return 3.14*radius*radius;

}
double getLength()
{
return 2*3.14*radius;
}
void setRadius(double newRadius)
{
radius=newRadius;
}
double getRadius()
{
return radius;
}
}
class TrangleException extends Trangle{
public TrangleException(double a, double b, double c) throws IOException {
super(a, b, c);
// TODO Auto-generated constructor stub
try
{
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
a = Integer.valueOf(stdin.readLine());
b = Integer.valueOf(stdin.readLine());
c = Integer.valueOf(stdin.readLine());
if(a+b>c&&b+c>a&&a+c>b) //a,b,c构成三角形的条件表达式
{ boo=true;//给boo赋值。
System.out.println("能构成三角形。");
}
else
{
boo=false; //给boo赋值。
}
}
catch (IOException e) {
boo=false;
System.out.println("不能构成三角形。");
}

}
}
public class AreaAndLength
{
public static void main(String args[]) throws IOException
{ double length,area;
Circle circle;
Trangle trangle;
Lader lader;
circle=new Circle(10); //创建对象circle //创建对象trangle。
lader=new Lader(4,5,8); //创建对象lader
trangle= new Trangle(5,6,5); //创建对象trangle。
trangle.TrangleException();
length=circle.getLength(); // circle调用方法返回周长并赋值给length
System.out.println("圆的周长:"+length);
area=circle.getArea(); // circle调用方法返回面积并赋值给area
System.out.println("圆的面积:"+area);
length=trangle.getLength(); // trangle调用方法返回周长并赋值给length
System.out.println("三角形的周长:"+length);
area=trangle.getArea ();// trangle调用方法返回面积并赋值给area
System.out.println("三角形的面积:"+area);
area=lader.getArea(); // lader调用方法返回面积并赋值给area
System.out.println("梯形的面积:"+area);

}

}

但是运行结果出错了,还有我想问一下怎样修改才能使它的数字是从键盘输入而不是代码固定边长??

3个回答

niaonao
niaonao   Rxr 2016.04.30 18:32

Scanner 类能实现
Scanner scan = new Scanner();
int length, width, height;
//键盘输入长宽高
length = scan.nextInt();
width = scan.nextInt();
height = scan.nextInt();

//下面是你的类 lader
lader=new lader(length, width, height);

zsw_2015
zsw_2015   2016.05.02 20:22
也可以是用BufferedReader  br=new BufferedReader(new InputStreamReader(System.in))实现输入。
sinat_34996830
sinat_34996830   2016.05.14 19:17

package hello;

interface Area {
double getArea();
}
interface Length {
double getLength();
}

public class Trangle implements Area,Length {
double sideA;
double sideB;
double sideC;
double area;
double length;

    public double getLength()
    {
        length=sideA+sideB+sideC;
        return length; //计算出周长length的值并返回
    }
    public double getArea()//重写接口是public方法
    {
        double p = ((sideA+sideB+sideC)/2);

        area = Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC)) ;

        return area;//计算出面积area的值并返回
    }

    public void setABC(double a,double b,double c) throws TrangleException{

        sideA=a;sideB=b;sideC=c; //修改边长


             throw new TrangleException(sideA,sideB,sideC);

    }

    public Trangle() {
        // TODO Auto-generated constructor stub
    }


    }

class Lader implements Length,Area {

    double above;
    double bottom;
    double height;
    double area;
    double length;
    double y1;
    double y2;

    public double getArea()
    {
        return (above+bottom)*height/2 ;//计算出面积area的值并返回
    }

    public double getLength()
    {
        length=above+bottom+y1+y2;
        return length; //计算出周长length的值并返回
    }

    public void setABhy(double la,double lb,double h,double y3,double y4){
        above = la;
        bottom = lb;
        height = h; //修改边长
        y1 = y3;
        y2 = y4;
    }


    }

class Circle implements Area,Length {
double radius;
double area;
double length;

public  double getArea()
{

// area = 3.14*radius*radius;
return 3.14*radius*radius;

}
public double getLength()
{

    return 2*3.14*radius;
}
public void setR(double r){
    radius=r;
}

}

class TrangleException extends Exception {
String message;
public TrangleException(double sideA,double sideB,double sideC){
if(sideA+sideB<=sideC||sideA+sideC<=sideB||sideB+sideC<=sideA){
message="no trangle";
}
}
public String warnMess(){
return message;
}
}
package hello;

import java.util.Scanner;

public class AreaAndLength {

@SuppressWarnings("resource")
public static void main(String args[]) throws Exception{

Scanner in= new Scanner(System.in);
System.out.println("依次输入边长");
double a = in.nextDouble();
double b = in.nextDouble();
double c = in.nextDouble();

Trangle trangle = new Trangle(); 


try
{       

        trangle.setABC(a, b, c);


        System.out.println("三角形的面积:"+trangle.getArea());
        System.out.println("三角形的周长:"+trangle.getLength());

}


catch (TrangleException e) {

    System.out.println(e.warnMess());
}

// Scanner in= new Scanner(System.in);

        Lader lader= new Lader(); 
        lader.setABhy(1, 2, 3, 4, 5);




        System.out.println("梯形的面积:"+lader.getArea());
        System.out.println("梯形的周长:"+lader.getLength());

        Circle circle = new Circle(); 
        circle.setR(10);
        System.out.println("圆的周长:"+circle.getLength());

        System.out.println("圆的面积:"+circle.getArea());




    }

}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
java实验三 实验报告代码
/*1、定义一个描述人的基本类,该类包括人的性别和出生日期两个数据成员,以及设置和获取这些属性值的方法成员; 再定义一个大学生类,使大学生类具有人的所有属性外,还具有姓名、学号,大学入学成绩,籍贯属性以及设置和获取这些属性值的方法成员; 编写完整的程序,完成一个具有班级学生信息管理功能的程序。*/ public class Person {     String sex;     
Java程序设计实践1 --大炮打飞机(含实验报告)
Java程序设计实践1 --大炮打飞机(含实验报告) 有需要的拿走吧
java学生管理系统 源代码和实验报告 纯手工+解释+数据库
这是小弟看视频后 做的java程序设计作业,增删改,查询功能应全,还增加了登陆功能,实验报告解释了部分功能。
简单的浏览器 Java课程设计报告 源代码
用户通过在URL输入框中输入要下载的网络页面的网址,并点击浏览器界面上相应的按钮,或直接按回车键,就能完成网络页面下载的功能。同时,它还支持浏览本地HTML文件,用户在输入框中输入文件所在盘符及具体路径,并按回车键,或者点击界面上相应按钮,实现浏览本地文件的功能。它能够实现页面的文本链接,能够显示网页图片,并能够通过相应按钮的操作返回上一次访问的页面,还可以通过相应按钮返回后退之前访问的页面。该简易浏览器能帮助用户实现基本的网页浏览功能。
JAVA简单记事本程序设计实验报告(带源码)
JAVA简单记事本程序设计实验报告(带源码) 课题:学生成绩管理 4.功能要求: 编写一个简单记事本程序,要求包含以下菜单项 文件 新建、打开、保存、退出 编辑 剪切、拷贝、粘贴、查找 帮助 关于 5.实现文件和编辑菜单里的功能
图形用户界面设计-基本控件 java实验报告第四个
第一个: 编写程序
JAVA多态性的实现-java实验报告
1、 实验内容或题目(1) 定义一个抽象基类Shape,它包含一个抽象方法getArea(),从Shape类派生出Rectangle和Circle类,这两个类都用getArea()方法计算对象的面积。编写编写应用程序使用Rectangle类和Circle类。(2) 定义一个接口ClassName,接口中只有一个抽象方法getClassName()。设计一个类Horse,该类实现接口ClassName中的方法getClassName(),功能是获取该类的类名。编写应用程序使用Horse类。(3) 定义接口my
Java 一个计算器设计实验报告
功能 1:按下数字键在液晶平上会显示数字,这时计算器最基本的功能。    功能 2:在任何时候按下“±”键,计算器文本框上的数字置反号。    功能 3:第一次按下“运算”键,再按下数字键,将重新输入第二个数字。再次按下“运 算”键,将算出前两个数字运算的结果,然后按下数字,将又重新输入新的数字。   功能 4:输入数字后,按下“等于”键,将仍输出原来的数 输入运算符和第二个数字后再按下“=”键,将得到二者运算的结果,然后又重复功能 3 和功能 4 。    功能 5:按下清除“C”键,数据被全部清楚。
Java的抽象和接口实验报告
实验报告 课程名称 面向对象程序设计 实验日期 2016.03.30 实验项目名称 Java的抽象和接口 实验地点 1#608 实验类型 □验证型    √设计型 □综合型    学  时 2 一、实验目的及要求(本实验所涉及并要求掌
java贪吃蛇源代码实验报告包含可运行的源代码
这是我的java小程序作业,代码是调试好的,放到java开发工具里就可以运行啦,和大家分享一下