分析与设计
Posted 传奇凤凰
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分析与设计相关的知识,希望对你有一定的参考价值。
一、需求分析:
1.
1、您是老师,家长,还是小学生()? A、老师(转到第2题) B、家长(转到第7题) C、小学生(转到第11题) 老师: 2、您教几年级的学生()? A、一年级 B、二年级 C、三年级 D、四年级 E、五年级 F、六年级 3、如果有一款小学生练习四则运算的系统,您会让学生使用吗()? A、会(转到第4题) B、不会(转到6第题) 4、学生需要练习哪种类型的四则运算题()?(多选) A、简单数学题,例:2+3-1 B、带真分数的四则运算,例:2/5+3/4 C、四则运算混合运算,例:1+2*2-(4/2) D、带假分数的四则运算,例:3/2+4/3 5、学生做题一次做多少题能达到练习的目的()? A、20 B、30 C、50 D、80 6、为什么您不希望您的学生使用四则运算系统()?(多选) A、怕没有效果 B、太麻烦 C、学生可能不习惯 D、其他________ 家长: 7、如果有一款小学生练习四则运算的系统,您会让您的孩子使用吗()? A、会(转到第8题) B、不会(转到10第题) 8、您觉得孩子在线答题需要监督吗()? A、需要 B、不需要 9、您查看孩子做题情况的时候需要看到的信息是()?(多选) A、孩子做错的题 B、孩子的做题频率 C、孩子做题总数 D、其他__________ 10、您为什么不希望您的孩子使用四则运算系统()?(多选) A、怕没有效果 B、太麻烦 C、孩子可能不习惯 D、其他________ 小学生: 11、你今年上几年级()? A、一年级 B、二年级 C、三年级 D、四年级 E、五年级 F、六年级 12、如果有一个四则运算系统,你会使用吗()? A、会(转到第13题) B、不会(转到第15题) 13、练习运算题时,你想一次做多少题()? A、20 B、30 C、50 D、80 14、你喜欢什么风格的主题()? A、小动物 B、植物 C、动画人物 D、其他_____ 15、为什么你不用四则运算系统()?(多选) A、学校作业太多 B、有很多补习班 C、多余的时间要玩 D、其他________
|
结果:
王某某:1A 2D 3A 4BCD 5B 郭某某:1A 2C 3A 4D 5C 陈某某:1A 2E 3A 4BD 5B
魏某某:1A 2D 3A 4C 5C 林某某:1A 2F 3B 6AC
张某某:1B 7A 8A 9AC 王某某:1B 7A 8B 9ABC 郑某某:1B 7A 8B 9AB
郭某:1B 7B 10ABC 周某某:1B 7A 8A 9ABC
李某:1C 11C 12A 13B 14C 王某某:1C 11D 12A 13A 14A 林某:1C 11C 12A 13B 14C
周某某:1C 11E 12A 13B 14B 许某某:1C 11E 12B 15AB
以上问卷调查反映出大部分老师还是会让学生使用四则运算练习系统的,而且他们更希望出的题目是带有真假分数的。大部分家长也会让孩子使用,但是一部分家长觉得需要监督,一部分觉得不用监督。有小部分学生认为平时的补习班太多忙不过来。根据以上反馈,我们觉得应该加入题目类型的选择这个选项,可以更符合老师的讲课内容,上到哪一课就布置哪一课的练习题。对于补习班比较多的学生,家长可以通过与老师交流,可以让该学生先不用完成发布的题目。
2.
Git链接
二、原型设计
墨刀地址:
https://modao.cc/app/fRXAplDdO9PEGWHRPihfx1dtTZGh6JM#screen=sE7096B5A961526727852810
三、用例图、用例规约
见需求规格说明书 P4。
四、顺序图
五、类图
见需求规格说明书 P10。
六、编码规范:
一、代码风格规范:
1.缩进:4个空格,在VS2005和其他的一些编辑工具中都可以定义Tab键扩展成为几个空格键。不用 Tab键的理由是Tab键在不同的情况下会显示不同的长度。4个空格的距离从可读性来说正好。
2.行宽:100字符
3.括号:在复杂的条件表达式中,用括号清楚地表示逻辑优先级。
4.断行与空白的{ }行:每个“{”和“}”都独占一行,例如下面:
if ( condition)
{
DoSomething();
}
else
{
DoSomethingElse();
}
5.分行:不把多行语句放在一行上,不同的变量不定义在一行上。
6.命名:在变量面前加上有意义的前缀,就可以让程序员一眼看出变量的类型及相应的语义
7.下划线:下划线用来分隔变量名字中的作用域标注和变量的语义,如:一个类型的成员变量通常用m_来表示。
8.大小写:
Pascal——所有单词的第一个字母都大写;
Camel——第一个单词全部小写,随后单词随Pascal格式。
9.注释:
(1)复杂的注释应该放在函数头,很多函数头的注释都是解释参数的类型等。
(2)注释(包括所有源代码)应只用ASCII字符,不要用中文或其他特殊字符。
二、代码设计规范
1.可以使用 goto函数
2.参数处理:所有的参数都要验证其正确性
3.断言:用Assert(断言)来验证正确性
4.公共/保护/私有成员Public、Private和Protected:按照这样的次序来说明类中的成员:public、protected、private
5.数据成员:
(1)数据类型的成员用m_name说明。
(2)不要使用公共的数据成员,要用inline访问函数,这样可同时兼顾封装和效率
6.虚函数Virtual Functions:
(1)使用虚函数来实现多态(Polymorphism)。
(2)只有在非常必要的时候,才使用虚函数。
(3)如果一个类型要实现多态,在基类(Base Class)中的析构函数应该是虚函数。
7.构造函数Constructors:
(1)不要在构造函数中做复杂的操作,简单初始化所有数据成员即可。
(2)构造函数不应该返回错误(事实上也无法返回)。把可能出错的操作放到HrInit()或FInit()中。
8.析构函数:
(1)把所有的清理工作都放在析构函数中。如果有些资源在析构函数之前就释放了,记住要重置这些成员为0或NULL。
(2)析构函数也不应该出错。
9.New和Delete:
(1)如果可能,实现自己的New/Delete,这样可以方便地加上自己的跟踪和管理机制。自己的New/Delete可以包装系统提供的New/Delete。
(2)检查New的返回值。New不一定都成功。
(3)释放指针时不用检查NULL。
10.运算符(Operators):
(1)在理想状态下,我们定义的类不需要自定义操作符。只有当操作符的确需要时。
(2)运算符不要做标准语义之外的任何动作。例如,“==”的判断不能改变被比较实体的状态。
(3)运算符的实现必须非常有效率,如果有复杂的操作,应定义一个单独的函数。
(4)当你拿不定主意的时候,用成员函数,不要用运算符。
11.异常(Exceptions):
(1)异常是在“异乎寻常”的情况下出现的,它的设置和处理都要花费“异乎寻常”的开销,所以不要用异常作为逻辑控制来处理程序的主要流程。
(2)当使用异常时,要注意在什么地方清理数据。
(3)异常不能跨过DLL或进程的边界来传递信息,所以异常不是万能的。
12.类型继承(Class Inheritance)
(1)当有必要的时候,才使用类型继承。
(2)用Const标注只读的参数(参数指向的数据是只读的,而不是参数本身)。
(3)用Const标注不改变数据的函数。
七、项目分工
魏铭杰201521122113:需求分析,编码规范,需求规格说明书。
吴子炜201521122117:用例图,用例规约,类图,顺序图。
韩霆亮201521122106:原型设计,功能描述(详细)。
以上是关于分析与设计的主要内容,如果未能解决你的问题,请参考以下文章