자바

JAVA - 0411

코드짜는 뉴비 2024. 4. 11. 15:01

1번 - 삼각형 넓이 구하기

package sevenClass;

public class Test0411_01 {
	public static void main(String[] args) {
		Triangle t1 = new Triangle(5.0, 7.5);
		
		t1.area();
		System.out.printf("삼각형의 넓이는: %.3f\n", t1.area2());
	}
}

class Triangle{
	double width, height;
	Triangle(){}
	Triangle(double w, double h){
		this.width = w;
		this.height = h;
	}
	void area() {
		System.out.printf("삼각형의 넓이는: %.3f\n", (width*height)/2.0);
	}
	double area2() { return (width * height) / 2.0; };
}

 

Triangle Class

기본 변수 생성

매개인자가 없는 생성자, 매개인자가 있는 생성자 생성

 

return 값이 없는 void area() 함수 생성

 - 삼각형의 넓이를 계산하고 바로 출력하는 코드 생성

 

double 값을 return하는 area2() 생성

 - 넓이를 계산하고 return

 

 

Main

매개인자를 보내는 t1객체 생성

class 내부에서 t1객체의 넓이를 계산하고 출력하는 함수를 호출

t1객체의 높이, 길이를 계산하여 return 받은 넓이를 출력

 

결과

삼각형의 넓이는: 18.750
삼각형의 넓이는: 18.750

 


2번 - 원의 넓이 구하기

package sevenClass;

public class Test0411_02 {
	public static void main(String[] args) {
		Circle c = new Circle(4.4);
		
		System.out.printf("원의 넓이는: %.3f", c.area());
	}
}

class Circle{
	double radius;
	Circle(){}
	Circle(double r){
		this.radius = r;
	}
	
	double area() {
		return radius*radius*3.14;
	}
}

 

Circle Class

double 형인 radius 변수 생성

매개인자가 없는 생성자, 매개인자가 있는 생성자 생성

 

double형의 데이터를 반환하는 area() 함수 생성

 - 원의 넓이를 계산하고 그 값을 반환

 

Main

매개인자를 보내는 c 객체 생성

c의 넓이를 계산하고 반환하는 c.area() 함수를 통해 반환된 결과 출력

 

결과

원의 넓이는: 60.790

 


3번 - 육면체 부피 구하기

package sevenClass;

public class Test0411_03 {
	public static void main(String[] args) {
		Box b1 = new Box(4, 5, 6);
		System.out.printf("박스 b1의 부피는: %d", b1.area());
	}
}


class Box{
	int garo, sero, height;
	Box(){}
	Box(int g, int s, int h){
		this.garo = g;
		this.sero = s;
		this.height = h;
	}
	
	int area() {
		return garo*sero*height;
	}
}

 

Box Class

육면체의 부피를 구하기위한 가로, 세로, 높이 변수 생성

매개인자가 필요없는 생성자, 매개인자가 필요한 생성자 생성

 

int 값을 반환하는 area() 함수 생성

 - 부피를 계산하여 return

 

Main

매개인자를 보내서 b1객체 생성

b1의 부피를 계산하여 return 받은 데이터를 출력

 

결과

박스 b1의 부피는: 120

 


4번 - 학생 등급 산출

package sevenClass;

public class Test0411_04 {
	public static void main(String[] args) {
		Student kim = new Student("20730", 95, 60, 88);
		
		System.out.printf("성적합계 : %d\n", kim.s_sum());
		System.out.printf("평균 : %d\n", kim.s_avg());
		System.out.printf("등급 : %s\n", kim.s_d());
	}
}


class Student{
	String hak, d;
	int k_s, e_s, m_s, sum, avg;
	
	Student(){}
	Student(String h, int k, int e, int m){
		this.hak = h;
		this.k_s = k;
		this.e_s = e;
		this.m_s = m;
	}
	
	int s_sum() {
		sum = k_s + e_s + m_s;
		return sum;
	}
	
	int s_avg() {
		avg = (k_s + e_s + m_s)/3;
		return avg;
	}
	
	String s_d() {
		if(avg>=90) {
			d = "A";
		}
		else if(avg>=80) {
			d = "B";
		}
		else {
			d = "낙제";
		}
		return d;
	}
}

 

Student Class

문자열 변수 '학번', '등급' 변수 생성

등급 산출을 위한 int변수 k_s, e_s, m_s, sum, avg 변수 생성;

 

매개인자가 필요없는 생성자와 매개인자가 필요한 생성자 생성

 

int값을 반환하는 s_sum(), s_avg() 함수 생성

 - sum, avg를 계산하여 return

 

문자열 값을 반환하는 s_d() 함수 생성

 - 평균 점수를 기준으로 등급 산출, 그 등급을 return

 

Main

매개인자를 보내는 kim객체 생성

return받은 성적합계, 평균, 등급을 출력

 

결과

성적합계 : 243
평균 : 81
등급 : B

 


5번 - 자동차 속도 조절

package sevenClass;

public class Test0411_05 {
	public static void main(String[] args) {
		Car c1 = new Car(60);
		
		c1.speedUp(10);
		c1.speedDown(70);
		c1.speedDown(20);
	}
}


class Car{
	int speed;
	Car(){}
	Car(int s){
		this.speed = s;
	}
	
	void speedUp(int u){
		this.speed += u;
		System.out.printf("자동차의 속도는: %d\n", this.speed);
	}
	
	void speedDown(int d) {
		if((speed - d) >= 0) {
			this.speed -= d;
			System.out.printf("자동차의 속도는: %d\n", this.speed);
		}
		else
			System.out.println("자동차의 속도보다 더 높은값을 입력하셨습니다. " + this.speed);
	}
}

 

 

Car Class

속도 speed 변수 생성

매개인자가 필요없는 생성자, 매개인자가 필요한 생성자 생성

 

속도의 변화를 바로 출력해주는 void speedUp, void speedDown 함수 생성

 - 속도의 변화를 저장하고 변화값을 바로 출력

 - 만약 현재 자동차의 속도보다 더 크게 감속할경우 경고문 출력

 

Main

기본 속도 60을 가진 c1객체 생성

 

c1의 속도 10 가속

c1의 속도 70 감속

c1의 속도 20 감속 - 현재 속도보다 더 감속해서 경고문 출력

 

결과

자동차의 속도는: 70
자동차의 속도는: 0
자동차의 속도보다 더 높은값을 입력하셨습니다. 0

 


6번 - 계산기

package sevenClass;

public class Test0411_06 {
	public static void main(String[] args) {
		Calc c1 = new Calc("+", 22, 44);
		Calc c2 = new Calc("-", 22, 44);
		Calc c3 = new Calc("*", 22, 44);
		Calc c4 = new Calc("/", 22, 44);
		Calc c5 = new Calc("%", 22, 44);
		Calc c6 = new Calc("A", 22, 44);
		
		c1.Cal();
		c2.Cal();
		c3.Cal();
		c4.Cal();
		c5.Cal();
		c6.Cal();
	}
}


class Calc{
	String op;
	double n, m;
	double eval;
	Calc(String p, double a, double b){
		this.n = a;
		this.m = b;
		this.op = p;
	}
	
	void Cal(){
		if(op.equals("+")) {
			eval = n + m;
		}
		else if(op.equals("-")) {
			eval = n - m;
		}
		else if(op.equals("*")) {
			eval = n * m;
		}
		else if(op.equals("/")) {
			eval = n / m;
		}
		else if(op.equals("%")) {
			eval = n % m;
		}
		else {
			System.out.println("잘못된 수식 입력");
			return;
		}
		System.out.printf("%.2f %s %.2f = %.3f\n", n, op, m, eval);
	}
}

 

 

Calc Class

계산을 위한 op, n, m, eval 변수 생성

매개인자를 받는 생성자 생성

 

계산해서 출력하는 void Cal() 함수 생성

 - 수식인 op를 비교하고 맞는 수식을 계산하여 eval 변수에 저장

 - 잘못된 수식인 경우 경고 출력 후 return

 - 저장된 결과를 출력

 

Main

여러가지 식을 매개인자로 보내는 객체 생성

각가지 객체의 계산 결과를 Cal() 함수를 이용하여 출력

c6은 수식이 이상하니 경고문 출력

 

결과

22.00 + 44.00 = 66.000
22.00 - 44.00 = -22.000
22.00 * 44.00 = 968.000
22.00 / 44.00 = 0.500
22.00 % 44.00 = 22.000
잘못된 수식 입력

 


7번 - 돈 나누기

package sevenClass;

public class Test0411 {
	public static void main(String[] args) {
		Money my = new Money(198765);
		my.calculate();
	}
}


class Money{
	int money;
	int[] eval = new int[6];
	int[] e = {50000, 10000, 1000, 100, 10, 1};
	Money(int m){
		this.money = m;
	}
	
	void calculate() {
		for(int i = 0; i<eval.length; i++) {
			eval[i] = money/e[i];
			money -= e[i] * eval[i];
			System.out.printf("%d원 %d장\n", e[i], eval[i]);
		}
	}
}

 

 

Money Class

money 변수 생성

분할을 위한 배열 생성

 

반복문으로 분할 후 출력

 

Main

매개인자를 보내는 money 객체 생성

분할 함수 호출

 

결과

50000원 3장
10000원 4장
1000원 8장
100원 7장
10원 6장
1원 5장