💻 개인공부 💻/C | C++

[C++] 객체 배열화를 이용하여 정사각형 넓이 구하기

공대생 배기웅 2020. 4. 19. 01:22
반응형

문제

요구사항

1. Rectagle이라는 클래스를 지정해야 함

 

2. Rectangle클래스 안에 width height라는 정수형 지역 변수 설정 필요

 

3. 클래스 안에 getArea()라는 메소드를 설정 필요

 

4. getArea() width*height 값을 return하도록 코드 설계 필요

 

5. 객체 배열의 크기를 설정하기 위해 int n을 입력

 

6. 각각의 Rectangle 객체에 width값과 height값을 저장하고 같으면 정사각형이라는 것을 출력해야함

 

설계도

 

소스코드

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
#include <iostream>
 
using namespace std;
 
class Rectangle {
 
public:
 
           int width, height;
 
//멤버 변수 width, height를 선언해준다. c++에서는 접근 선언자를 하지 않으면 protected이므로 public을 꼭 써줘야 한다. 이것때문에 좀 애먹었다.ㅠㅠ
 
public:
 
           double getArea() {
 
                       return width * height;
 
           }
 
//정사각형의 넓이를 return 해주는 메소드
 
};
 
 
 
int main() {
 
 
 
           int n;
 
           cout << "생성할 사각형의 개수는?";
 
           cin >> n;//생성할 사각형의 개수를 입력한다
 
           Rectangle *rect=new Rectangle[n]; // n개인 Rectangle 객체 배열 생성
 
           static int width, height;
 
           for (int i = 0; i < n; i++) {//각각 사각형의 가로 세로를 입력해준다
 
                       cout << "Rect" << i << "의 가로 세로 값은?" << endl;
 
                       cin >> width;
 
                       cin >> height;
 
                       rect[i].width = width;//입력한 값을 각각 Rectagle의 객체인 객채 배열들에 넣어준다.
 
                       rect[i].height = height;
 
           }
 
           cout << endl;
 
           cout << "결과 :" << endl;
 
 
 
           for (int i = 0; i < n; i++) {
 
                       if (rect[i].width == rect[i].height) {//만약 가로와 세로가 같으면 정사각형임을 출력해준다
 
                                  cout << "Rect" << i+1 << "은" << "정사각형이다" << endl;
 
                       }
 
           }
 
 
 
           for (int i = 0; i < n; i++)
 
                       cout << "Rect " << i+1 << "의 면적은 " << rect[i].getArea() << endl;
 
           }//객체 배열들의 getArea(), 즉 넓이를 출력한다.
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs

 

실행 결과

 

의견

지금까지 객체를 배열화한 경우는 못봤는데 이번에 처음으로 해보아서 낯설기도 했지만 신기하였다.

변수를 사용할 때 클래스에서나 main함수에서나 둘다 필요하다는 것을 배웠다.

728x90
반응형