课程作业四

本文介绍了一款四则运算自动出题软件的设计方案,通过面向对象的方法将其划分为文件读写类、用户交互类、随机生成类和计算结果类四个主要类,并详细描述了各模块的功能和类间协作。

Git链接

题目描述:

OOA(Object Oriented Analysis,面向对象分析): 从客观存在的事务和事务之间的关系,归纳出有关对象(包括对象的属性和行为)以及对象之间的联系,并将具有相同属性和行为的对象用一个类(class)来表示。建立一个能够反映真实情况的需求模型。

OOD(Object Oriented Design,面向对象设计):将面向对象分析阶段形成的需求模型进一步具体设计。如类的设计(继承、派生、类与类之间的消息协作)、算法的设计等。采取通用的工具,如流程图、类图等来描述。

前几次的编码作业,相信大家心里都有无数的...呼啸而过。那么第四次的作业就“相对轻松一点吧”。请大家思考如下几个问题:

采取面向对象的方法,四则运算自动出题软件,根据需求可以划分为几个类?每个类具有什么属性?每个类具有什么行为?
类与类之间是如何进行协作的?谁给谁发送消息?谁持有谁的引用?
该自动出题软件采取何种算法或者是如何实现的?可以采用流程图描述的方法。

一.类的划分

根据题目描述,我想把四则运算程序分为四个类:

1、文件读写类

class Filereadwrite
{
private:
    char inpath[10];
    char outpath[10];
public:
    void readfile();/*读文件*/
    void writefile();/*写文件*/
}

2.用户交互类

属性是对象的静态特征,行为则是对象的动态特征。此类具有语言、题目数量、题目答案等属性,它主要用于语言选择、输入结果、结果统计等。

class Mutual
{
private:
    int problemNum;
    int answer;
    int rawNum;
public:
    void scan();/*获取用户的输入数据(语言选择、题目数量)*/
    void print();/*将用户的答题情况输出*/
}

3、随机生成类

此类具有随机字符、随机数字等属性,它主要用于生成随机算式。

class RandomGeneration
{
private:
    int number;
    char operation;
public:
    void RandomNumber();/*随机数字生成*/
    void RandomOperation();/*随机字符生成*/
    void RandomExpretion();/*随机算式生成*/
}

4、计算结果类

此类主要用于计算算式,生成答案

class Caculate
{
private:
    int answer;
public:
    int caculate();/*用于计算结果*/
    int swift();/*用于判断运算符*/
    void judge();/*统计用户的答题情况*/
}

二.类图

1095158-20170515203200807-349951570.png

三.类的协作

1095158-20170515195029885-811177005.png

四.实现流程

1095158-20170515202830197-1920234671.png

转载于:https://www.cnblogs.com/52wu244/p/6858007.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值