作业帮 > 综合 > 作业

如何将加减乘除四则运算抽象成C++的类?

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/13 17:51:19
如何将加减乘除四则运算抽象成C++的类?
公选课老师给我们布置的大作业,要求必须用到C++的类实现数据封装和公用实现。。
对于一个没上过C、完全从C开始自学到C++的楼主来说,完全不知道怎么抽象出类来。。。
征求思路~~好想法必有好回报呐!!!
以下是程序要求:
开发一个新游戏。游戏面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。
(1)只出10道题,每题10分,程序结束时显示游戏参与者得分(和用了多少时间);
(2)确保算式没有超出1~2年级的水平,只允许进行随机性的50以内数值做随机性的加法或减法(或乘法,则随机数值范围在1~9),不允许两数之和或之差超出0~50的范围,负数更是不允许的;
(3)每道题游戏参与者有三次机会输入答案,当游戏参与者输入错误答案时,提醒游戏参与者重新输入,如果三次机会结束则输出正确答案;
(4)对于每道题,游戏参与者第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;
(5)当游戏参与者输入了正确得数后,随机显示评价结果,例如“Right!”、“Correct!”、“You got it!”、“That's the answer!”、“Bingo!”, “Gaoging!”等,若答案错误,则按照相应的回答机会随机输出“No, the answer is …”、“Error! Try again. please!”、“Wrong! once again. please!”、“No! a second time. please!”、“Mistaken! a last time. please!”、“No! once more. please!”等错误信息,若第3次还是回答错误,则除了输出随机错误信息,并输出正确答案信息。
如何将加减乘除四则运算抽象成C++的类?
本人 思路 如下,定义了两个类,CQuestion类对象就代表1个四则运算题目,generate方法产生题目,answer方法模拟答题过程并返回结果。 CQuestionLib类对象就代表1个题库,可统计总分,答题时间等。execute方法里,可定义CQuestion的对象,根据要产生的题目数,循环调用CQuestion的方法即可。 并累加answer方法返回的分数。 谨供参考。 
enum
{
    add,
    sub,
    mul,
    div,
};
class CQuestion
{
public:
    CQuestion(){};
    void generate(); // 随机生成题目,即生成有效随机数赋给成员变量
    int answer(); // 模拟答题过程,并返回答题所得分数
protected:
private:
    unsigned int a; // 题目的左操作数
    unsigned int b; // 题目的右操作数
    unsigned int oper; // 四则运算类型,加减乘除
};
class CQuestionLib
{
public:
    CQuestionLib(int num)
    {
        m_questionNum = num;
        m_score = 0;
        m_time = 0;
    }
    void start(); // 初始化成员变量工作,以及开始计时
    void finish(); // 结束计时
    void execute(); // 根据m_questionNum个数生成题目,并进行答题过程,记录答题分数
    void showResult(); // 显示结果
protected:
private:
    int m_questionNum;
    int m_score;
    int m_time;
};
再问: 虽然不完全正确,但是很大程度上启发了我,我已经抽象出类并且完成了这个程序~收获颇多呐~~