728x90
#include <iostream>
#include <string>
using namespace std;
class LoopAdder { // 추상 클래스
    string name; // 루프의 이름
    int x, y, sum; // x에서 y까지의 합은 sum
    void read(); // x, y 값을 읽어 들이는 함수
    void write(); // sum을 출력하는 함수
protected:
    LoopAdder(string name = "") { // 루프의 이름을 받는다. 초깃값은 ""
        this->name = name;
    }
    int getX() { return x; }
    int getY() { return y; }
    virtual int calculate() = 0; // 순수 가상 함수. 루프를 돌며 합을 구하는 함수
public:
    void run(); // 연산을 진행하는 함수
};
void LoopAdder::read() { // x, y 입력
    cout << name << ":" << endl;
    cout << "처음 수에서 두번째 수까지 더합니다. 두 수를 입력하세요 >> ";
    cin >> x >> y;
}
void LoopAdder::write() { // 결과 sum 출력
    cout << x << "에서 " << y << "까지의 합 = " << sum << " 입니다" << endl;
}
void LoopAdder::run() {
    read(); // x, y를 읽는다.
    sum = calculate(); // 루프를 돌면서 계산한다.
    write(); // 결과 sum을 출력한다
}
class WhileLoopAdder :public LoopAdder {
protected:
    int calculate();
public:
    WhileLoopAdder(string name) :LoopAdder(name) {}
};
int WhileLoopAdder::calculate()
{
    int sum = 0;
    int i = getX();
    while (i <= getY())
    {
        sum += i;
        i++;
    }
    return sum;
}
class doWhileLoopAdder :public LoopAdder {
protected:
    int calculate();
public:
    doWhileLoopAdder(string name) :LoopAdder(name) {}
};
int doWhileLoopAdder::calculate()
{
    int sum = 0;
    int i = getX();
    do
    {
        sum += i;
        i++;
    } while (i <= getY());
    return sum;
}

int main()
{
    cout << "2018305065 전유정" << endl << endl;

    WhileLoopAdder whileLoop("While Loop");
    doWhileLoopAdder doWhileLoop("Do while Loop");
    whileLoop.run();
    doWhileLoop.run();
}

#include <iostream>
#include <string>
using namespace std;
class LoopAdder { // 추상 클래스
    string name; // 루프의 이름
    int x, y, sum; // x에서 y까지의 합은 sum
    void read(); // x, y 값을 읽어 들이는 함수
    void write(); // sum을 출력하는 함수
protected:
    LoopAdder(string name = "") { // 루프의 이름을 받는다. 초깃값은 ""
        this->name = name;
    }
    int getX() { return x; }
    int getY() { return y; }
    virtual int calculate() = 0; // 순수 가상 함수. 루프를 돌며 합을 구하는 함수
public:
    void run(); // 연산을 진행하는 함수
};
void LoopAdder::read() { // x, y 입력
    cout << name << ":" << endl;
    cout << "처음 수에서 두번째 수까지 더합니다. 두 수를 입력하세요 >> ";
    cin >> x >> y;
}
void LoopAdder::write() { // 결과 sum 출력
    cout << x << "에서 " << y << "까지의 합 = " << sum << " 입니다" << endl;
}
void LoopAdder::run() {
    read(); // x, y를 읽는다.
    sum = calculate(); // 루프를 돌면서 계산한다.
    write(); // 결과 sum을 출력한다
}
class ForLoopAdder :public LoopAdder {
protected:
    int calculate();
public:
    ForLoopAdder(string name) :LoopAdder(name) {}
};
int ForLoopAdder::calculate()
{
    int sum = 0;
    for (int i = getX(); i <= getY(); ++i)
        sum += i;
    return sum;
}

int main()
{
    cout << "2018305065 전유정" << endl << endl;

    ForLoopAdder forLoop("For Loop");
    forLoop.run();
}

반응형

'전공 공부 > C++' 카테고리의 다른 글

클래스 Oval, Rect, Triangular  (0) 2021.06.16
클래스 KmToMile  (0) 2021.06.16
클래스 WonToDollar  (0) 2021.06.16
클래스 Shape 가상 함수  (0) 2021.06.16
클래스 BaseArray (상속)  (0) 2021.06.16
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기