《面向对象程序设计》第四次作业
- OOA(Object Oriented Analysis,面向对象分析): 从客观存在的事务和事务之间的关系,归纳出有关对象(包括对象的属性和行为)以及对象之间的联系,并将具有相同属性和行为的对象用一个类(class)来表示。建立一个能够反映真实情况的需求模型。
- OOD(Object Oriented Design,面向对象设计):将面向对象分析阶段形成的需求模型进一步具体设计。如类的设计(继承、派生、类与类之间的消息协作)、算法的设计等。采取通用的工具,如流程图、类图等来描述。
对于四则运算自动出题软件,我分为一下几类
- 文件读写类。其大致行为为对读取用户所需要的题目数量,以及对一些生成数据存入文件中,比如例题正确答案。
- 随机题目生成类。其行为大致为随机生成数字与四则运算符,和将数字与四则运算符组合生成算式。
- 结果生成与结果判断和统计类。其行为大致为对随机生成题目的运算,生成结果与用户答案的比较,统计正确与错误题数。
- 输出类。其行为大致为输出用户正确与错误题数以及对错误题数给出正确答案和用户所要求的语言类型。
以下为类的定义
class ReadWrite
{
public:
int readFile(); //读取用户要求的题目数量
int writeFile(); //存入一下内容:用户输入的题目数,每个生成的表达式、正确答案、用户输入的答案,正确与错误题数
}
class Expression
{
public:
int randomNumber(); //用于随机生成数字
char randomOperation(); //用于随机生成符号
string generateExpression(); //生成算式
private:
string formula; //产生的算式
};
class CalculateJudge
{
public:
int calculateResult(); //计算算试并判断结果是否为整型
int judgement(); //判断用户答案是否正确
int scan(); //该函数用于与用户交互,获取输入数据
private:
int result; //存储计算结果
int right; //正确题数
int wrong; //错误题数
};
class Print
{
public:
void putExpression(); //输出算式
void putJudgement(); //输出算式正确与错误的题数并给出错误题数的正确答案
void putLanguage(); //输出用户所要求的语言
}
类图
流程图
本次作业感受
已经好几次没做博客作业了,这次觉得我应该能完成,我就尝试这去做了,虽然效果不怎么样。这次作业给我的是对编写程序有了更深的了解,不是胡乱一上手就是忙着打代码,尤其是对哪些代码量比较多的情况下。c++的类是真的好用,能是程序更易书写而且可读性非常高。