课堂在线Java程序设计 类的继承 编程题2
2017-08-18 18:43
351 查看
图形面积计算
我们有一些图形的边长数据,这些图形包括三角新和矩形,请你编写一个程序求出它们的面积。
请你实现一个基础图形类Graph,然后实现三角形类Triangle和矩形类Rectangle,继承自Graph。根据输入的边数实现不同的对象,并计算面积。
输入格式:
一行,一个整数n,表示图形个数。
n行,每行是用空格隔开的整数。
输出格式:
n行,每行是一个图形的面积。
输入样例:
2
5 5
6 6 6
输出样例:
25
15import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int number = Integer.parseInt(in.nextLine());
String[] str = new String[number];
for (int i = 0; i < number; i++) {
str[i] = in.nextLine();
}
for (int n = 0; n < number; n++) {
String[] temp = str
.split(" ");
if (temp.length == 2) {
int[] side = new int[2];
for (int m = 0; m < 2; m++) {
side[m] = Integer.parseInt(temp[m]);
}
Rectangle rectangle = new Rectangle();
rectangle.setside(side);
System.out.println(rectangle.average());
}
if (temp.length == 3) {
int[] side = new int[3];
for (int m = 0; m < 3; m++) {
side[m] = Integer.parseInt(temp[m]);
}
Triangle triangle = new Triangle();
triangle.setside(side);
if (triangle.triangletorf(side[0], side[1], side[2])) {
System.out.println(triangle.average());
}
}
}
}
}
class Graph {
int[] side;
public int[] getside() {
return this.side;
}
}
class Triangle extends Graph {
public int[] setside(int[] side) {
return this.side = side;
}
public int average() {
int avg = 0;
double s=(side[0]+side[1]+side[2])/2.0;
avg = (int) Math.floor(Math.sqrt(s*(s-side[0])*(s-side[1])*(s-side[2])));
return avg;
}
public boolean triangletorf(int i1, int i2, int i3) {
if (i1 + i2 < i3 || i1 + i3 < i2 || i2 + i3 < i1) {
return false;
}
return true;
}
}
class Rectangle extends Graph {
public int[] setside(int[] side) {
return this.side = side;
}
public int average() {
int avg = 0;
avg = (int) Math.floor(this.side[0] * this.side[1]);
return avg;
}
}
各位小伙伴最容易出错的地方就是在计算S的值得时候,除的是2,不是2.0,必须是2.0,不然会丢失精度,丢失了精度只能得10分~
我们有一些图形的边长数据,这些图形包括三角新和矩形,请你编写一个程序求出它们的面积。
请你实现一个基础图形类Graph,然后实现三角形类Triangle和矩形类Rectangle,继承自Graph。根据输入的边数实现不同的对象,并计算面积。
输入格式:
一行,一个整数n,表示图形个数。
n行,每行是用空格隔开的整数。
输出格式:
n行,每行是一个图形的面积。
输入样例:
2
5 5
6 6 6
输出样例:
25
15import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int number = Integer.parseInt(in.nextLine());
String[] str = new String[number];
for (int i = 0; i < number; i++) {
str[i] = in.nextLine();
}
for (int n = 0; n < number; n++) {
String[] temp = str
.split(" ");
if (temp.length == 2) {
int[] side = new int[2];
for (int m = 0; m < 2; m++) {
side[m] = Integer.parseInt(temp[m]);
}
Rectangle rectangle = new Rectangle();
rectangle.setside(side);
System.out.println(rectangle.average());
}
if (temp.length == 3) {
int[] side = new int[3];
for (int m = 0; m < 3; m++) {
side[m] = Integer.parseInt(temp[m]);
}
Triangle triangle = new Triangle();
triangle.setside(side);
if (triangle.triangletorf(side[0], side[1], side[2])) {
System.out.println(triangle.average());
}
}
}
}
}
class Graph {
int[] side;
public int[] getside() {
return this.side;
}
}
class Triangle extends Graph {
public int[] setside(int[] side) {
return this.side = side;
}
public int average() {
int avg = 0;
double s=(side[0]+side[1]+side[2])/2.0;
avg = (int) Math.floor(Math.sqrt(s*(s-side[0])*(s-side[1])*(s-side[2])));
return avg;
}
public boolean triangletorf(int i1, int i2, int i3) {
if (i1 + i2 < i3 || i1 + i3 < i2 || i2 + i3 < i1) {
return false;
}
return true;
}
}
class Rectangle extends Graph {
public int[] setside(int[] side) {
return this.side = side;
}
public int average() {
int avg = 0;
avg = (int) Math.floor(this.side[0] * this.side[1]);
return avg;
}
}
各位小伙伴最容易出错的地方就是在计算S的值得时候,除的是2,不是2.0,必须是2.0,不然会丢失精度,丢失了精度只能得10分~
相关文章推荐
- 课堂在线Java程序设计 类的继承 编程题1
- 课堂在线Java程序设计 类的继承
- 课堂在线Java程序设计 类的继承
- 课堂在线Java程序设计作业 字符串排序
- 课堂在线Java程序设计 泛型和数组元素排序
- 课堂在线Java程序设计作业 求斐波那契数
- 课堂在线Java程序设计 哥德巴赫猜想
- 课堂在线Java程序设计 最大公约数和最小公倍数
- 课堂在线Java程序设计作业求两个数组相同元素个数
- 梁勇2011JAVA语言程序设计基础篇第16章编程题16.8
- [编程题] 回文串 java 蘑菇街2016研发工程师在线编程题
- Java学习课堂笔记——面向对象程序设计的基本概念
- 《Java 程序设计》课堂实践项目-Arrays和String单元测试
- 京东2015在线笔试编程题--分苹果Java实现
- 【JAVA语言程序设计第十版 11.2】+ 多态 + 继承
- java语言程序设计 李元朝 第7章 类的继承和多态机制 练习题答案
- 继承与派生 编程题#2: 魔兽世界之二:装备(Coursera 程序设计与算法 专项课程3 C++程序设计 郭炜、刘家瑛;OpenJudge)
- 《Java 程序设计》课堂实践三
- [编程题] 最大间隔 java 蘑菇街2016研发工程师在线编程题
- java语言程序设计 李元朝 第7章 类的继承和多态机制