java类与对象练习题2--图形面积计算

来源:互联网 发布:淘宝代充为什么便宜 编辑:程序博客网 时间:2024/06/02 02:15

图形面积计算

我们有一些图形的边长数据,这些图形包括三角新和矩形,请你编写一个程序求出它们的面积。
请你实现一个基础图形类Graph,然后实现三角形类Triangle和矩形类Rectangle,继承自Graph。根据输入的边数实现不同的对象,并计算面积。
输入格式:
一行,一个整数n,表示图形个数。
n行,每行是用空格隔开的整数。
输出格式:
n行,每行是一个图形的面积。
输入样例:
2
5 5
6 6 6
输出样例:
25
15

代码如下

import java.util.Scanner;public class Main {    public static void main(String[] args) {        Scanner in = new Scanner(System.in);        int numbers = in.nextInt();        in.nextLine();        String[] str = new String[numbers];        for(int i=0;i<numbers;i++)        {            str[i] = in.nextLine();        }        for(int i=0;i<numbers;i++)        {            String[] temp = str[i].split(" ");            if(temp.length==3)            {                int[]a = new int[3];                for(int m=0;m<temp.length;m++)                {                    a[m] = Integer.parseInt(temp[m]);                }                Triangle triangle = new Triangle(a);                System.out.println(triangle.getArea());            }            if(temp.length==2)            {                int[]b = new int[2];                for(int m=0;m<temp.length;m++)                {                    b[m] = Integer.parseInt(temp[m]);                }                Rectangle rectangle = new Rectangle(b);                System.out.println(rectangle.getArea());            }        }    }}abstract class Graph{    abstract int getArea();}class Triangle extends Graph{    int [] a;    public Triangle(int[] a)    {        this.a = a;    }    public int getArea()    {        double p = (a[0] + a[1] + a[2])/2.0;        int area = (int)Math.sqrt(p*(p-a[0])*(p-a[1])*(p-a[2]));        return area;    }}class Rectangle extends Graph{    int []m;    public Rectangle(int[] m)    {        this.m = m;    }    public int getArea()    {        return m[1]*m[0];    }}