1. 이전채널 

 

<문제> 

MyTv2클래스에 getter setter 를 추가한 후  이전 채널(previous channel)이동하는 기능의 메서드를 추가해서 실행결과와 같은 결과를 얻도록 하시오.

[Hint] 이전 채널의 값을 저장할 멤버변수를 정의하라.

메서드명 : gotoPrevChannel

기 능 : 현재 채널을 이전 채널로 변경한다.

반환타입 : 없음

매개변수 : 없음

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import java.util.Set;
 
class MyTv2{
    boolean isPowerOn;
    int channel;
    int volume;
    final int MAX_VOLUME = 100;
    final int MIN_VOLUME = 0;
    final int MAX_CHANNEL = 100;
    final int MIN_CHANNEL = 1;
    int prevChannel;  //이전 채널 값
    
    void gotoPrevChannel() {  //이전 채널로 되돌아간다.
        //현재 채널값에 이전채널값을 넣는다. 
        setChannel(prevChannel);
    }    
    
    public int getChannel() {
        return channel;
    }
 
    public void setChannel(int channel) {
        prevChannel = this.channel;   //채널값은 이전채널로 넣고
        //멤버변수를 지정안해주면 파라미터 변수가 와서 오류난다. 
        this.channel = channel;
    }    
}
 
public class Exercise {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        MyTv2 t = new MyTv2();
        t.setChannel(10);
        System.out.println("CH:"+t.getChannel());
        t.setChannel(20);
        System.out.println("CH:"+t.getChannel());
        t.gotoPrevChannel();
        System.out.println("CH:"+t.getChannel());
        t.gotoPrevChannel();
        System.out.println("CH:"+t.getChannel());
    }
}
 
cs

 

<결과 값>

CH:10
CH:20
CH:10
CH:20

 

 

 

 

2. 배열 객체 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import java.util.Iterator;
 
//문제 : Person 클래스 정의
//멤버변수 : name, age, address
 
class Person{
    String name;
    int age;
    String address;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
}
public class PersonUse {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Person []pArr = new Person[3];
        
        for (int i = 0; i < pArr.length; i++) {
            pArr[i] = new Person(); //초기화.
            pArr[i].setName("홍길동" + (i +1));
            pArr[i].setAddress("경상북도 경산리 금락리" + (211+ i));
            pArr[i].setAge(22 + i);
        }
        for (int i = 0; i < pArr.length; i++) {
            System.out.println((i+1+ "번 : " + pArr[i].getName() + "," + pArr[i].getAge() + "," + pArr[i].getAddress());
        }
 
    }
 
}
 
cs

 

 

<출력 결과>

 

 

 

 

3. 도형 공식 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import java.util.Scanner;
 
public class FigureFormula {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scanner = new Scanner(System.in);
        final double pi = 3.14;
        boolean stop = false;
        
        do {            
            System.out.println("***도형선택***");
            System.out.println("1. 삼각형");
            System.out.println("2. 원");
            System.out.println("3. 사다리꼴");
            System.out.println("4. 종료");
            System.out.println("선택 : ");
            int menuNumber = scanner.nextInt();
            
            switch(menuNumber) {
            case 1:
                System.out.println("삼각형 넓이");
                System.out.println("밑변 : ");
                int base = scanner.nextInt();
                System.out.println("높이 : ");
                int height = scanner.nextInt();
                double area = (base* height) /2;                
                System.out.printf("넓이 : %.2f%n%n", area);
                break;
                
            case 2:
                System.out.println("원 넓이");
                System.out.println("반지름 : ");
                int round = scanner.nextInt();
                area = pi * (round^2);
                System.out.printf("넓이 : %.2f%n%n", area);                
                break;
                
            case 3:
                System.out.println("사다리꼴 넓이");
                System.out.println("밑변 : ");
                base = scanner.nextInt();
                System.out.println("윗변 : ");
                int Upperside = scanner.nextInt();
                System.out.println("높이 : ");
                height = scanner.nextInt();                
                area = (height * (base+ Upperside))/2;
                System.out.printf("넓이 : %.2f%n%n", area);    
                break;
                
            case 4:
                System.out.println("프로그램 종료");
                stop = true;
                break;
            
            default:
                break;
            }
            
        }while(!stop);        
    }    
}
 
cs

<출력결과>

 

 

4. 비만도 계산기 

 

<문제>

 

1. Super클래스명 : HealthSuper

필드명(protected) : char gender(성별)

                    double tall (신장)

                    double weight(체중)

메소드 : input() - 성별, 신장, 체중입력받기

           output1() - 출력

2. Sub클래스 : HealthChild

필드명(private) : double s_weight (표준체중)

                  double fat (비만도)

                  String result (결과값)

메소드 : calculate() - 비만도 계산

           output2()  - 출력

====================================

표준체중계산법★

남성 : 표준체중 = (신장-100)*0.9

여성 : 표준체중 = (신장-100)*0.85

비만도 = 현재체중(Kg)/표준체중(Kg)*100

-------------------------------------------------------

90%이하  : 저체중               121-130% : 경도비만

91 -110% : 정상(표준체중)       131-150% : 중도비만

111-120% : 과체중               150%     : 고도비만

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import java.util.Scanner;
 
class HealthSuper{
    char gender;
    double tall;
    double weight;
    
    void input() {
        
        Scanner scanner = new Scanner(System.in);
        System.out.println("---- 비만도 체크 ----");
        System.out.println("성별(M/F): ");
        gender = scanner.next().charAt(0);
        System.out.println("신장(Cm): ");
        tall = scanner.nextDouble();
        System.out.println("체중(kg): ");
        weight = scanner.nextDouble();        
    }
    
    void output1() {
        System.out.println("성별 : " +  gender);
        System.out.println("신장 : " +  tall);
        System.out.println("체중 : " +  weight);
    }
}
 
class HealthChild extends HealthSuper{
    double s_weight;
    double fat; //비만도
    String result;
    
    void calculate() {
        if(gender == 'M') {
            s_weight = (tall - 100*0.9;
        }
        else if(gender =='F') {
            s_weight = (tall - 100)  * 0.85;
        }
        
        fat = weight / s_weight * 100//비만도
        
        if(fat <=90) {
            result ="저체중";
        }
        else if(fat <= 110 ) {
            result ="정상(표준체중)";
        }
        else if(fat <= 120 ) {
            result ="과체중";
        }
        else if(fat <= 130 ) {
            result ="경도비만";
        }
        else if(fat <= 150 ) {
            result ="중도비만";
        }
        else {
            result ="고도비만";
        }                
    }    
    void output2() {
        System.out.println("당신의 비만도" + String.format("%.2f", fat) + "이고, " + result + "입니다.");
    }
}
 
public class ObesityCalculator {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        HealthChild healthChild = new HealthChild();
        
        healthChild.input();
        healthChild.output1();
        healthChild.calculate();
        healthChild.output2();
    }
}
 
cs

<출력결과>

성별 입력시 소문자로 입력하면 오류난다. 

+ Recent posts