作业4
题目要求:
OOA(Object Oriented Analysis,面向对象分析):
从客观存在的事务和事务之间的关系,归纳出有关对象(包括对象的属性和行为)以及对象之间的联系,并将具有相同属性和行为的对象用一个类(class)来表示。建立一个能够反映真实情况的需求模型。
OOD(Object OrientedDesign,面向对象设计):
将面向对象分析阶段形成的需求模型进一步具体设计。如类的设计(继承、派生、类与类之间的消息协作)、算法的设计等。采取通用的工具,如流程图、类图等来描述。
题目描述:
采取面向对象的方法,四则运算自动出题软件,根据需求可以划分为几个类?每个类具有什么属性?每个类具有什么行为?
类与类之间是如何进行协作的?谁给谁发送消息?谁持有谁的引用?
该自动出题软件采取何种算法或者是如何实现的?可以采用流程图描述的方法。
作业:
一.代码的分解
我认为,所有的代码都可以分成三个部分:输入部分,操作部分,输出部分;
输入主要的作用是填入操作部分中的未知参数,而需要输出的,往往是操作部分的过程数据和最终数据 所以其中操作部分是整个代码的核心部分。
以四则运算为例:
输入部分:语言的选择、题目数量;
操作部分:题目的生成、计算正确的答案、将正确答案与输入的答案比较(数据的统计)
输出部分:生成的题目、正确的答案、统计的数据
综上,类大致可分为三中,输入类、操作类、输出类,但是,上面说过,输出的内容大多是操作的数据所以,输出类可以省略。
1.输入类:(用户输入类,文件引入类)
2.操作类:(生成类,统计类(在四则运算中这两者可以合并)
输入类给题目生成类发送题目数量的消息,发送语言给输出类,而输出类需要引用生成类的题目,答案及统计数据