1. 문자가
숫자인지 알려주는 isDigit 함수를 구현하세요. 문자 ch를 입력 받고, ch가 숫자인지 출력하세요. 맞다면 YES, 아니면 NO를
출력합니다.
character.h
#ifndef CHARACTER_H
#define CHARACTER_H
class Character
{
public:
// 생성자
Character();
Character(char c);
// 멤버 함수
void setChar(char c);
int getChar() const;
bool isDigit() const;
protected:
// 멤버 변수
char ch;
};
#endif
character.cpp
#include "Character.h"
void Character::setChar(char c)
{
ch = c;
}
int Character::getChar() const
{
return ch;
}
bool Character::isDigit() const
{
if(('0' <= ch) && ('9' >= ch))
{
return 1;
}
else
{
return 0;
}
}
Character::Character()
{
ch = 0;
}
Character::Character(char c)
{
setChar(c);
}
main.cpp
#include "Character.h"
#include <iostream>
using namespace std;
int main()
{
char ch;
cout << "문자: ";
cin >> ch;
Character c(ch);
if(c.isDigit())
{
cout << "결과: YES" << endl;
}
else
{
cout << "결과: NO" << endl;
}
}
2. 정수 N을 입력하면 2의 N승을 출력하는 프로그램을 작성하세요. 단, 비트 연산을 이용합니다.
그리고 -1을 입력할 경우 프로그램은 종료됩니다.
Multiplier.h
#ifndef MULTIPLIER_H
#define MULTIPLIER_H
class Multiplier
{
public:
// 생성자
Multiplier();
Multiplier(int num);
// 멤버 함수
void setNum(int num);
int getNum() const;
void twoMulti(int num);
int getResult() const;
protected:
int num; // 승수
int result; // 결과
};
#endif
Multiplier.cpp
#include "Multiplier.h"
void Multiplier::setNum(int num)
{
this -> num = num;
}
int Multiplier::getNum() const
{
return num;
}
void Multiplier::twoMulti(int num)
{
result = 1 << num;
}
int Multiplier::getResult() const
{
return result;
}
Multiplier::Multiplier()
{
num = 0;
result = 0;
}
Multiplier::Multiplier(int num)
{
setNum(num);
twoMulti(num);
}
main.cpp
#include "Multiplier.h"
#include <iostream>
using namespace std;
int main()
{
int num;
while(1)
{
cout << "입력: ";
cin >> num;
if(num == -1)
{
return -1;
}
Multiplier m(num);
cout << "출력: 2 ^ " << m.getNum() << " = " << m.getResult() <<endl;
}
return 0;
}