JAVA程序设计(自主模式)-图形面积计算

版权声明:文章都是原创,转载请注明~~~~ https://blog.csdn.net/SourDumplings/article/details/88391937

编程练习题2

(100/100 分数)

图形面积计算

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

Java:

//各位小伙伴最容易出错的地方就是在计算S的值得时候,除的是2,不是2.0,必须是2.0,不然会丢失精度,丢失了精度只能得10分

import java.util.Scanner;

public class Main
{
	public static void main(String[] args)
	{
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		int N = Integer.parseInt(sc.nextLine());
		for (int i = 0; i != N; ++i)
		{
			String[] sData = sc.nextLine().trim().split(" ");
			if (sData.length == 2)
			{
				System.out.println((new Rectangle(sData)).getArea());
			}
			else
			{
				System.out.println((new Triangle(sData)).getArea());
			}
		}
		sc.close();
	}
}

abstract class Graph
{
	public String[] sData;
	Graph(String[] sData)
	{
		this.sData = sData;
	}
	public abstract int getArea();
}

class Rectangle extends Graph
{
	Rectangle(String[] sData)
	{
		super(sData);
	}
	public int getArea()
	{
		int a = Integer.parseInt(sData[0]);
		int b = Integer.parseInt(sData[1]);
		return a * b;
	}
}

class Triangle extends Graph
{
	Triangle(String[] sData)
	{
		super(sData);
	}
	public int getArea()
	{
		int a = Integer.parseInt(sData[0]);
		int b = Integer.parseInt(sData[1]);
		int c = Integer.parseInt(sData[2]);
		double p = (a + b + c) / 2.0;
		return (int)Math.sqrt(p * (p - a) * (p - b) * (p - c));
	}
}

猜你喜欢

转载自blog.csdn.net/SourDumplings/article/details/88391937