[C++]명품 C++ 프로그래밍 실습문제 9장 4번
[C++]명품 C++ programming 실습문제 9장 4번
명품 C++ 프로그래밍실습문제/연습문제 /C++
#include <iostream>
#include <string>
#include <ctime>
#include <cstdlib>
using namespace std;
class LoopAdder { // 최상위 클래스
string name;
int x,y,sum;
void read();
void write();
protected:
LoopAdder(string name= ""){this->name =name;}
int getX(){return x;}
int getY(){return y;}
virtual int calculate()=0;
public:
virtual void run();
};
void LoopAdder::read(){
cout << name << ":" << endl;
cout << "처음 수부터 두번째수까지 더합니다. 두수를 입력하세요>>" ;
cin >> x >> y;
}
void LoopAdder::write(){
cout << x << "에서 " << y << " 까지의 합 = " << sum << " 입니다" << endl;
}
void LoopAdder::run(){
read();
sum = calculate();
write();
}
class WhileLoopAdder : public LoopAdder{ //make while func
public:
WhileLoopAdder(string name) : LoopAdder(name) {}
int calculate(){
int sum=0;
int i=0;
int a=getX();
int k = getY()-getX(); // 4 2 2
while (i<=k)
{
sum = sum + a++;
i++;
}
return sum;
}
};
class DoWhileLoopAdder : public LoopAdder{ //make do while func
public:
DoWhileLoopAdder(string name) : LoopAdder(name) {}
int calculate(){
int sum=0;
int i=0;
int a=getX();
int k = getY()-getX(); // 4 2 2
do
{
sum = sum+ a++;
i++;
}
while (i<k+1);
return sum;
}
};
int main(){
WhileLoopAdder whileLoop("While Loop");
DoWhileLoopAdder dowhileLoop("Do while Loop");
whileLoop.run();
dowhileLoop.run();
return 0;
}
'C++' 카테고리의 다른 글
[C++] 명품 C++ 프로그래밍 실습문제 9장 7번 (0) | 2023.01.14 |
---|---|
[C++] 명품 C++ 프로그래밍 실습문제 9장 5번 (0) | 2023.01.14 |
[C++] 명품 C++ 프로그래밍 실습문제 9장 오픈챌린지/openchallenge (0) | 2023.01.14 |
[C++] 명품 C++ 프로그래밍 실습문제 8장 9번 (0) | 2023.01.13 |
[C++] 명품 C++ 프로그래밍 실습문제 8장 8번 (0) | 2023.01.13 |