기록장
[C++] 객체지향과 절자지향 코드 비교 (TV 전원, 볼륨, 채널) 본문
#include <iostream>
using namespace std;
void turnOn(bool & on) {
on = true;
}
void turnOff(bool & on) {
on = false;
}
void setChannel(bool & on, int & channel, int & newChannel) {
if (on && newChannel >= 1 && newChannel <= 120)
channel = newChannel;
}
void setVolume(bool & on, int & volumeLevel, int newVolumeLevel) {
if (on && newVolumeLevel >= 1 && newVolumeLevel <= 7)
volumeLevel = newVolumeLevel;
}
void channelUp(bool & on, int & channel) {
if (on && channel < 120)
channel++;
}
void channelDown(bool & on, int & channel) {
if (on && channel > 1)
channel--;
}
void volumeUp(bool & on, int & volumeLevel) {
if (on && volumeLevel < 7)
volumeLevel++;
}
void volumeDown(bool & on, int & volumeLevel) {
if (on && volumeLevel > 1)
volumeLevel--;
}
int main()
{
// tv1
bool tv1On = false;
int tv1Channel = 1;
int tv1VolumeLevel = 1;
turnOn(tv1On);
int newChannel = 30;
setChannel(tv1On, tv1Channel, newChannel);
int newVolume = 3;
setVolume(tv1On, tv1VolumeLevel, newVolume);
// tv2
bool tv2On = false;
int tv2Channel = 1;
int tv2VolumeLevel = 1;
turnOn(tv2On);
channelUp(tv2On, tv2Channel);
channelUp(tv2On, tv2Channel);
volumeUp(tv2On, tv2VolumeLevel);
cout << "tv1's channel is " << tv1Channel
<< " and volume level is " << tv1VolumeLevel << endl;
cout << "tv2's channel is " << tv2Channel
<< " and volume level is " << tv2VolumeLevel << endl;
return 0;
}
절차지향 코드.
#include <iostream>
using namespace std;
class TV
{
public:
int channel;
int volumeLevel;
bool on;
TV()
{
channel = 1;
volumeLevel = 1;
on = false;
}
void turnOn() {
on = true;
}
void turnOff() {
on = false;
}
void setChannel(int newChannel) {
if (on && newChannel >= 1 && newChannel <= 120)
channel = newChannel;
}
void setVolume(int newVolumeLevel) {
if (on && newVolumeLevel >= 1 && newVolumeLevel <= 7)
volumeLevel = newVolumeLevel;
}
void channelUp() {
if (on && channel < 120)
channel++;
}
void channelDown() {
if (on && channel > 1)
channel--;
}
void volumeUp() {
if (on && volumeLevel < 7)
volumeLevel++;
}
void volumeDown() {
if (on && volumeLevel > 1)
volumeLevel--;
}
};
int main()
{
TV tv1;
tv1.turnOn();
tv1.setChannel(30);
tv1.setVolume(3);
TV tv2;
tv2.turnOn();
tv2.channelUp();
tv2.channelUp();
tv2.volumeUp();
cout << "tv1's channel is " << tv1.channel
<< " and volume level is " << tv1.volumeLevel << endl;
cout << "tv2's channel is " << tv2.channel
<< " and volume level is " << tv2.volumeLevel << endl;
return 0;
}
객체지향 코드
'코딩 공부 > C++' 카테고리의 다른 글
[C++] 이차방정식의 해를 구하는 클래스 (0) | 2023.03.23 |
---|---|
[C++] Date클래스: time(0)으로 현재 날짜 구하기 (구조체사용 안 함) (0) | 2023.03.23 |
[C++ 자료구조] ch2 프로그래밍 프로젝트 1번 : 다항식 클래스 테스트 프로그램 (0) | 2023.03.14 |
[C++] 100개의 알파벳 랜덤 생성 후 개수 세기 (리스트, 배열, 데이터타입 형변환) (0) | 2023.03.07 |
[C++] 배열, 복권번호가 다 입력됐는지 (0) | 2023.03.07 |