本周完成如下2个实验:
- 面向对象数据持久化编程,使用java编写程序,完成三角形的类型判断,程序模块要求如下:
创建三角形对象triangle,该对象属性有三边a,b,c,该对象有:
方法1:isOutOfRange(int I,int max),用于判断一个整数是否在(0, max)区间内(max值请各人自行设定),返回值:true-否;false-是,
方法2:isLegal(int a, int b, int c);用于判断三条边是否合法(即:判断三条边都在合法的范围内),返回值:true-是; false-否
方法3:isSumBiger(int x, int y, int z);用于判断两条边之和是否大于第三边,返回值:true-是; false-否
方法4:isTriangle(int a, int b, int c);用于判断三条边是否能够组成三角形,返回值:true-是; false-否
方法5:isEquals(int x, int y);用于判断两条边是否相等,返回值:true-是; false-否
方法6:howManyEquals(int a, int b, int c);用于求三角形有几条边相等,返回值:相等边的数量
方法7:isPowerSumEquals(int x, int y, int z);用于判断是否满足两边平方之和是否等于第三边的平方,返回值:true-是; false-否
方法8:isGreaterThan(int x, int y);用于判断第一个数是否比第二个数大。
方法9:isRightRriangle(int a, int b, int c);用于判断是否是直角三角形,返回值:true-是; false-否
方法10:triangleType(int a, int b, int c);用于判断三角形的类型,返回值:
- 1、不能组成三角形
- 2、等边三角形
- 3、等腰三角形
- 4、直角三角形
- 5、一般三角形
程序运行要求,三角形三边的值来自于本地一个文本文件input.txt,三角形类型的值最终存储于本地文本文件out.txt中。
- 程序目录
import java.io.*;
public class taskOne {
public static boolean isOutOfRange(int I, int max) {
return I > 0 && I < max;
}
public static boolean isLegal(int a, int b, int c) {
return a > 0 && b > 0 && c > 0;
}
public static boolean isSumBiger(int x, int y, int z) {
return x + y > z && y + z > x && z + x > y;
}
public static boolean isTriangle(int a, int b, int c) {
return isLegal(a, b, c) && isSumBiger(a, b, c);
}
public static boolean isEquals(int x, int y) {
return x == y;
}
public static int howManyEquals(int a, int b, int c) {
if (a == b && b == c) {
return 3;
} else if (a == b || b == c || c == a) {
return 1;
} else {
return 0;
}
}
public static boolean isPowerSumEquals(int x, int y, int z) {
return x * x + y * y == z * z || y * y + z * z == x * x || z * z + x * x == y * y;
}
public static boolean isGreaterThan(int x, int y) {
return x > y;
}
public static boolean isRightRriangle(int a, int b, int c) {
return isPowerSumEquals(a, b, c);
}
public static String triangleType(int a, int b, int c) {
if(isTriangle(a, b, c)){
if(howManyEquals(a, b, c) == 3){
return "* 2、等边三角形";
}
if(howManyEquals(a, b, c) == 1) {
return "* 3、等腰三角形";
}
if(isRightRriangle(a, b, c)){
return "* 4、直角三角形";
}
return "* 5、一般三角形";
}else {
return "* 1、不能组成三角形";
}
}
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader("src/input.txt"));
FileWriter fileWriter = new FileWriter("src/out.txt", true);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
String line;
while ((line = reader.readLine()) != null) {
String[] s = line.split(" ");
String out = triangleType(Integer.parseInt(s[0]), Integer.parseInt(s[1]), Integer.parseInt(s[2]));
bufferedWriter.write(out + '\n');
}
bufferedWriter.flush();
fileWriter.close();
}
}
- input.txt
3 4 5
3 3 4
3 3 3
3 3 1
3 1 1
- out.txt
* 4、直角三角形
* 5、一般三角形
* 2、等边三角形
* 4、直角三角形
* 3、等腰三角形
* 2、等边三角形
* 3、等腰三角形
* 1、不能组成三角形