COMDORI Blog

컴돌이 블로그에 오신것을 환영합니다!

자세히보기

IT/Programming

[Java] 원, 정삼각형, 삼각형 넓이, 둘레 구하기

COMDORI 2020. 3. 4. 19:00
728x90
반응형

 

▶ 조건

 인터페이스를 이용한 원, 정사각형, 삼각형의 넓이, 둘레 구하기 

 interface 명은 Shape이며, 하나의 상수와 2개의 메소드를 갖음 

 상수 : PI=3.14159 로 지정한다.

 Method 

 double area() // 넓이 

 double perimeter() //둘레 

 3개의 각 클래스 Circle, Square, Triangle 

 생성자  Circle : Circle(), Circle(double radius) 

 Square : Square(), Square(double side) 

 Triangle : Triangle(), Triangle(double a, double, b, double, c) 

 삼각형의 넓이 구하는 공식은 아래와 같다.

 sqrt(s*(s-a)*(s-b)*(s-c)) 

 여기서 s =(a+b+c)/2.0; 

 sqrt 사용시 Math를 import 시켜야 한다.

 HW1_2 class

  각 원의 반지름과 정사각형 길이, 삼각형의 3꼭지점을 입력 받는다.

 그리고 모든 결과를 출력 한다.

 여기서 직접 계산하는 것이 아니다.

 각 클래스의 메소드 호출해서 출력 해야 한다.

소스코드

Circle 클래스

public class Circle {
	static double radius;

	final double PI = 3.14159; // 원주율 변수 생성.

	public Circle(double radius) {
		this.radius = radius;
	}

	public double getRadius(double radius) {
		return radius;
	}

	public void setRadius(double radius) {
		this.radius = radius;
	}

	public double Area() {

		return PI * radius * radius; // 원의 넓이 구하는 공식
	}

	public double Perimeter() {
		return 2 * PI * radius; // 원의 들레 구하는 공식
	}
}

Square 클래스

public class Square {
	static double side;

	public Square(double side) {
		Square.side = side;
	}

	public double Area() {
		return side * side; // 정사각형의 넓이 구하는 공식
	}

	public double Perimeter() {
		return (side + side) * 2; // 정사각형의 둘레 구하는 공식
	}
}

}

Tirangle 클래스

public class Triangle {
	static double a, b, c, s;

	public Triangle(double a, double b, double c) {
		Triangle.a = a;
		Triangle.b = b;
		Triangle.c = c;
	}

	public double Area() {
		s = (a + b + c) / 2.0;
		return Math.sqrt(s * (s - a) * (s - b) * (s - c)); // Math함수를 사용하여 삼각형의
															// 넓이 구하는 공식

	}

	public double Perimeter() {
		return a + b + c; // 삼각형의 둘레 구하는 공식.
	}
}

 

메인클래스

import java.util.Scanner;

public class HW1_2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Circle circle = new Circle(3.1);		//원 클래스 불러오기
		Square square = new Square(3.1);		//정사각형 클래스 불러오기
		Triangle triangle = new Triangle(3.1, 3.1, 3.1);		//삼각형 클래스 불러오기
		Scanner scan = new Scanner(System.in);

		System.out.println("======================\n학번: 20160000\n이름: 컴돌이\n======================");

		System.out.println("원의 반지름을 입력하세요:");
		Circle.radius = scan.nextInt();			//원의 반지름 입력받기.
		System.out.println("정사각형의 길이를 입력하세요:");
		Square.side = scan.nextInt();			//정삼각형의 길이 입력받기.
		System.out.println("삼각형의 a점을 입력하세요:");
		Triangle.a = scan.nextInt();			//삼각형 a점 입력받기.
		System.out.println("삼각형의 b점을 입력하세요:");
		Triangle.b = scan.nextInt();			//삼각형 b점 입력받기.
		System.out.println("삼각형의 c점을 입력하세요:");
		Triangle.c = scan.nextInt();			//삼각형 c점 입력 받기.

		System.out.println("\t원\n넓이: " + circle.Area() + "\n둘레: " + circle.Perimeter());		//원의 넓이, 둘레 출력하기.
		System.out.println("\t정사각형\n넓이: " + square.Area() + "\n둘레: " + square.Perimeter());	//정사각형의 넓이, 둘레 출력하기.
		System.out.println("\t삼각형\n넓이: " + triangle.Area() + "\n둘레: " + triangle.Perimeter());//삼각형의 넓이, 둘레 출력하기.
	}

}

 

◈ 소스코드를 보시고 고칠 부분이나 더 좋은 로직이 있다면 코멘트 달아주세요! 

이상 문제 10번 입니다.

 

컴돌이블로그

#자바

 

728x90
반응형