课程作业四

1.采取面向对象的方法,四则运算自动出题软件,根据需求可以划分为几个类?每个类具有什么属性?每个类具有什么行为?

(1)算式类

class F{
public:
    void randomNumber();//用于随机生成数字
    void randomOperation();//用于随机生成运算符
    bool generateExpression();//用于生成运算式
private:
    double random1,random2,random3,random4;//随机数字
    int sign1,sign2,sign3;//随机运算符
}

(2)计算类


class M{
public:
    double qcount(double,double,int);//用于二则运算
    double calculateResult(double,double,double,double,int,int,int);//用于计算生成的运算式的结果
private:
    double answer;
}

(2)交互类


class I{
public:
    void scan();//该函数用于与用户交互,获取输入数据
    void readFile(char *);//读取用户要求的题目数量
    void judgeanswer(double,double);//用于判断用户答题是否正确
    void writeFile(char *);//将最终结果写入文件,写入内容包括:用户输入的题目数,每个生成的表达式、正确答案、用户输入的答案,保存到命令行中第二个参数指定的路径。
    void print();//将统计结果输出给用户
}

2.类与类之间是如何进行协作的?谁给谁发送消息?谁持有谁的引用?

3.该自动出题软件采取何种算法或者是如何实现的?可以采用流程图描述的方法。

原文地址:https://www.cnblogs.com/nwk1130/p/6863274.html