<component name="libraryTable"> | |||||
<library name="jars"> | |||||
<CLASSES> | |||||
<root url="jar://$PROJECT_DIR$/jars/hamcrest-core-1.3.jar!/" /> | |||||
<root url="jar://$PROJECT_DIR$/jars/junit-4.12.jar!/" /> | |||||
</CLASSES> | |||||
<JAVADOC /> | |||||
<SOURCES /> | |||||
</library> | |||||
</component> |
<?xml version="1.0" encoding="UTF-8"?> | |||||
<project version="4"> | |||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" project-jdk-name="openjdk-17" project-jdk-type="JavaSDK"> | |||||
<output url="file://$PROJECT_DIR$/out" /> | |||||
</component> | |||||
</project> |
<?xml version="1.0" encoding="UTF-8"?> | |||||
<project version="4"> | |||||
<component name="ProjectModuleManager"> | |||||
<modules> | |||||
<module fileurl="file://$PROJECT_DIR$/TriangleCheckerAssignment.iml" filepath="$PROJECT_DIR$/TriangleCheckerAssignment.iml" /> | |||||
</modules> | |||||
</component> | |||||
</project> |
<?xml version="1.0" encoding="UTF-8"?> | |||||
<project version="4"> | |||||
<component name="VcsDirectoryMappings"> | |||||
<mapping directory="" vcs="Git" /> | |||||
</component> | |||||
</project> |
<?xml version="1.0" encoding="UTF-8"?> | |||||
<module type="JAVA_MODULE" version="4"> | |||||
<component name="NewModuleRootManager" inherit-compiler-output="true"> | |||||
<exclude-output /> | |||||
<content url="file://$MODULE_DIR$"> | |||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" /> | |||||
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" /> | |||||
</content> | |||||
<orderEntry type="inheritedJdk" /> | |||||
<orderEntry type="sourceFolder" forTests="false" /> | |||||
<orderEntry type="library" name="jars" level="project" /> | |||||
</component> | |||||
</module> |
import java.util.Arrays; | |||||
import java.util.Scanner; | import java.util.Scanner; | ||||
public class TriangleChecker { | public class TriangleChecker { | ||||
public enum TriangleType { | |||||
NONE, | |||||
NORMAL, | |||||
ISOSCELES, // Gleichschenklig | |||||
EQUILATERAL // Gleichseitig | |||||
} | |||||
public static void main(String[] args) { | |||||
Scanner s = new Scanner(System.in); | |||||
System.out.println("Geben Sie die Seitenlängen ein."); | |||||
float a = enterFloat(s, "a: "); | |||||
float b = enterFloat(s, "b: "); | |||||
float c = enterFloat(s, "c: "); | |||||
s.close(); | |||||
printAnalysis(a, b, c); | |||||
} | |||||
// Eingabe einer Seitenlänge | |||||
private static float enterFloat(Scanner s, String prompt) { | |||||
System.out.print(prompt); | |||||
return s.nextFloat(); | |||||
} | |||||
// Ausgabe der ermittelten Dreiecksart | |||||
private static void printAnalysis(float a, float b, float c) { | |||||
TriangleType type = checkTriangle(a, b, c); | |||||
switch (type) { | |||||
case NONE: | |||||
System.out.println("Kein Dreieck"); | |||||
break; | |||||
case NORMAL: | |||||
System.out.println("Dreieck"); | |||||
break; | |||||
case ISOSCELES: | |||||
System.out.println("Gleichschenkliges Dreieck"); | |||||
break; | |||||
case EQUILATERAL: | |||||
System.out.println("Gleichseitiges Dreieck"); | |||||
break; | |||||
public enum TriangleType { | |||||
NONE, | |||||
NORMAL, | |||||
ISOSCELES, // Gleichschenklig | |||||
EQUILATERAL // Gleichseitig | |||||
} | |||||
public static void main(String[] args) { | |||||
Scanner s = new Scanner(System.in); | |||||
System.out.println("Geben Sie die Seitenlängen ein."); | |||||
float a = enterFloat(s, "a: "); | |||||
float b = enterFloat(s, "b: "); | |||||
float c = enterFloat(s, "c: "); | |||||
s.close(); | |||||
printAnalysis(a, b, c); | |||||
} | |||||
// Eingabe einer Seitenlänge | |||||
private static float enterFloat(Scanner s, String prompt) { | |||||
System.out.print(prompt); | |||||
return s.nextFloat(); | |||||
} | |||||
// Ausgabe der ermittelten Dreiecksart | |||||
private static void printAnalysis(float a, float b, float c) { | |||||
TriangleType type = checkTriangle(a, b, c); | |||||
switch (type) { | |||||
case NONE: | |||||
System.out.println("Kein Dreieck"); | |||||
break; | |||||
case NORMAL: | |||||
System.out.println("Dreieck"); | |||||
break; | |||||
case ISOSCELES: | |||||
System.out.println("Gleichschenkliges Dreieck"); | |||||
break; | |||||
case EQUILATERAL: | |||||
System.out.println("Gleichseitiges Dreieck"); | |||||
break; | |||||
} | |||||
} | } | ||||
} | |||||
// Analyse der Dreiecksart | |||||
public static TriangleType checkTriangle(float a, float b, float c) { | |||||
return TriangleType.NONE; | |||||
} | |||||
// Analyse der Dreiecksart | |||||
public static TriangleType checkTriangle(float a, float b, float c) { | |||||
//find Hypotenuse | |||||
float[] tmp = {a, b, c}; | |||||
Arrays.sort(tmp); | |||||
float hypo = tmp[2]; | |||||
float a1 = tmp[0]; | |||||
float b1 = tmp[1]; | |||||
//normal | |||||
if (a1 + b1 > hypo) { | |||||
//gleichseitig | |||||
if (a1 + b1 + hypo == 3 * a1) | |||||
return TriangleType.EQUILATERAL; | |||||
//gleichschenklig | |||||
if (a1 == b1 || b1 == hypo || a1 == hypo) | |||||
return TriangleType.ISOSCELES; | |||||
return TriangleType.NORMAL; | |||||
} | |||||
return TriangleType.NONE; | |||||
} | |||||
} | } |
import org.junit.Test; | import org.junit.Test; | ||||
import java.util.Arrays; | |||||
import static org.junit.Assert.*; | import static org.junit.Assert.*; | ||||
public class TriangleCheckerTest { | public class TriangleCheckerTest { | ||||
@Test | @Test | ||||
public void testValidTriangle() { | public void testValidTriangle() { | ||||
assertEquals(TriangleChecker.TriangleType.NORMAL, type); | assertEquals(TriangleChecker.TriangleType.NORMAL, type); | ||||
} | } | ||||
@Test | |||||
public void testEquilateralTriangle() { | |||||
// Arrange | |||||
float a = 2; | |||||
float b = 2; | |||||
float c = 2; | |||||
// Act | |||||
TriangleChecker.TriangleType type = TriangleChecker.checkTriangle(a, b, c); | |||||
// Assert | |||||
assertEquals(TriangleChecker.TriangleType.EQUILATERAL, type); | |||||
} | |||||
@Test | |||||
public void testIsocelesTriangle() { | |||||
// Arrange | |||||
float a = 2; | |||||
float b = 2; | |||||
float c = 3; | |||||
// Act | |||||
TriangleChecker.TriangleType type = TriangleChecker.checkTriangle(a, b, c); | |||||
// Assert | |||||
assertEquals(TriangleChecker.TriangleType.ISOSCELES, type); | |||||
} | |||||
@Test | |||||
public void testNoTriangle() { | |||||
// Arrange | |||||
float a = 2; | |||||
float b = 2; | |||||
float c = 4; | |||||
// Act | |||||
TriangleChecker.TriangleType type = TriangleChecker.checkTriangle(a, b, c); | |||||
// Assert | |||||
assertEquals(TriangleChecker.TriangleType.NONE, type); | |||||
} | |||||
} | } | ||||