JAVA - 0411
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장