1. 두 개의 정수를 입력받고 두 정수 사이에 5의 배수의 개수를 출력하는 프로그램을 작성하세요.(객체 생성)
Count.h
#ifndef COUNT_H
#define COUNT_H
class Count
{
private:
int num1;
int num2;
public:
// 생성자
Count();
Count(int x, int y);
// 멤버 함수
void setNum1(int num);
void setNum2(int num);
int fiveMultiple() const; // 5의 배수 갯수를 구하는 멤버 함수
};
#endif
Count.cpp
#include "Count.h"
void Count::setNum1(int num)
{
num1 = num;
}
void Count::setNum2(int num)
{
num2 = num;
}
// 2수 사이의 5의 배수 갯수를 구해주는 멤버 함수
int Count::fiveMultiple() const
{
int iCnt = 0;
for(int i = (num1 + 1) ; i < num2 ; ++i)
{
if(i % 5 == 0)
{
++iCnt;
}
}
return iCnt;
}
// 디폴트 생성자 정의
Count::Count()
{
setNum1(0);
setNum2(0);
}
// 인자가 있는 생성자 정의
Count::Count(int x, int y)
{
// 큰 수를 Num1에 넣어준다
if(x > y)
{
setNum1(y);
setNum2(x);
}
else
{
setNum1(x);
setNum2(y);
}
}
main.cpp
#include "Count.h"
#include <iostream>
using namespace std;
int main()
{
int num1, num2;
int result;
cout << "정수(2개) 입력 : ";
cin >> num1 >> num2;
// Count 객체 생성
Count c(num1, num2);
result = c.fiveMultiple();
cout << "출력 : " << result << endl;
return 0;
}
2. 두 개의 정수를 입력받고 두 정수 사이의 부호를 다음과 같이 바꿔가면서 계산한 식과 결과를 출력하세요.
CalcToggle.h
#ifndef CALCTOGGLE_H
#define CALCTOGGLE_H
class CalcToggle
{
private:
int num1;
int num2;
public:
// 생성자
CalcToggle();
CalcToggle(int x, int y);
// 멤버 함수
void setNum1(int num);
void setNum2(int num);
void toggleCalculate() const;
};
#endif
CalcToggle.cpp
#include "CalcToggle.h"
#include <iostream>
using namespace std;
void CalcToggle::setNum1(int num)
{
num1 = num;
}
void CalcToggle::setNum2(int num)
{
num2 = num;
}
void CalcToggle::toggleCalculate() const
{
int result = 0;
int toggle = 1;
cout << "X = ";
for(int i = num1 ; i <= num2 ; ++i)
{
if(toggle)
{
result += i;
toggle = 0;
cout << " + " << i;
}
else
{
result -= i;
toggle = 1;
cout << " - " << i;
}
}
cout << endl << "X = " << result << endl;
}
// 디폴트 생성자 정의
CalcToggle::CalcToggle()
{
setNum1(0);
setNum2(0);
}
// 인자가 있는 생성자 정의
CalcToggle::CalcToggle(int x, int y)
{
// 큰수를 num1에 넣어준다
if(x > y)
{
setNum1(y);
setNum2(x);
}
else
{
setNum1(x);
setNum2(y);
}
}
main.cpp
#include "CalcToggle.h"
#include <iostream>
using namespace std;
int main()
{
int num1, num2;
cout << "정수(2개) 입력: ";
cin >> num1 >> num2;
CalcToggle c(num1, num2);
c.toggleCalculate();
return 0;
}
3. 출현 빈도 그래프
- 0에서부터 9까지의 60개의
수가 배열에 저장되어 있을 때, 배열 원소 60개의
합과 평균을 구하여 출력하고 각 수에 대한 빈도 수를 세어서 다음과 같이 막대 그래프 형식으로 출력하시오
- 프로그램의
주요한 부분에 주석을 명시하시오.
InfoArray.h
#ifndef INFOARRAY_H
#define INFOARRAY_H
class InfoArray
{
private:
int array[60];
public:
// 생성자
InfoArray();
// 멤버 함수
void randArray(); // 멤버 변수에 랜덤수를 넣어준다
void printArray() const;
int sumArray() const; // 멤버 변수에 저장되어 있는 각수의 합을 구해준다
float averageArray() const; // 멤버 변수에 저장되어 있는 각수의 평균을 구해준다
void frequencyArray() const; // 멤버 변수에 저장 되어 있는 수의 빈도 출력
};
#endif
InfoArray.cpp
#include "InfoArray.h"
#include <iostream>
using namespace std;
// 멤버 변수에 0~9까지 난수 저장
void InfoArray::randArray()
{
srand((unsigned int)time(NULL));
for(int i = 0 ; i < 60 ; ++i)
{
array[i] = (rand() % 10);
}
}
void InfoArray::printArray() const
{
for(int i = 0 ; i < 60 ; ++i)
{
cout << array[i] << " ";
if((i + 1) % 10 == 0)
{
cout << endl;
}
}
}
// 멤버 변수에 저장된 각 수의 합을 구한다.
int InfoArray::sumArray() const
{
int sum = 0;
for(int i = 0 ; i < 60 ; ++i)
{
sum += array[i];
}
return sum;
}
// 멤버 변수에 저장된 각 수의 평균을 구한다.
float InfoArray::averageArray() const
{
float average;
average = (float)sumArray() / 60;
return average;
}
// 멤버 변수에 저장된 각 수의 빈도를 출력해 준다
void InfoArray::frequencyArray() const
{
int fre[10] = {};
for(int i = 0 ; i < 60 ; ++i)
{
switch(array[i])
{
case 0:
++fre[0];
break;
case 1:
++fre[1];
break;
case 2:
++fre[2];
break;
case 3:
++fre[3];
break;
case 4:
++fre[4];
break;
case 5:
++fre[5];
break;
case 6:
++fre[6];
break;
case 7:
++fre[7];
break;
case 8:
++fre[8];
break;
default:
++fre[9];
}
}
cout << "no\tcount\tbar graph" << endl;
for(int i = 0 ; i < 10 ; ++i)
{
cout << i << "\t" << fre[i] << "\t";
for(int j = 0 ; j < fre[i] ; ++j)
{
cout << "*";
}
cout << endl;
}
}
// 디폴트 생성자
InfoArray::InfoArray()
{
randArray();
}
main.cpp
#include "InfoArray.h"
#include <iostream>
using namespace std;
int main()
{
int sum;
float average;
InfoArray iA;
iA.printArray();
sum = iA.sumArray();
average = iA.averageArray();
cout << "sum = " << sum << endl;
cout << "average = " << average << endl;
iA.frequencyArray();
return 0;
}