四则运算分析与设计

一、四则运算调查报告

1、您的角色是?


A、老师(转到2题)


B、学生(跳转24题)

2您教的是什么学科?


A、数学


B、语文


C、英语


D、其他

3、您教几年级的学生?


A、一年级


B、二年级


C、三年级


D、四年级


E、五年级


F、六年级

4、学生需要练习哪种类型的运算题? [多选题]


A、简单算数题 例如 2+2-1=3


B、带分数的四则运算


C、四则混合运算


D、其他 _________________*

5、希望学生每次在运算器中练习多少题才能达到练习效果: [单选题] *


A 、10道


B、20道


C、 30道


D、其他: _________________ *

6、练习中做的错题需要有单独的记录吗?[单选题] *


A、需要


B、不需要

7、错误题目是否需要在练习中重复出现? [单选题] *


A、需要


B、不需要

8、是否需要出题功能吗? [单选题] *


A、需要


B、不需要

9、您希望四则运算的什么难度合适? [单选题] *


A 、简单加减乘除


B、带有真分数的加减乘除


C、 带有括号和分数的加减乘除


D、开方或平方难度及以上

10、您希望我们提供练习是专项练习还是混合练习? [单选题] *


A 、专项练习


B、混合练习

11、您希望我们提供一些高分记录或速度纪录来鼓励答题者吗? [单选题] *


A 、建议


B、不建议


C、无所谓

12、您对我们的项目有什么意见或建议: [填空题]

_________________________________

13、您的孩子现在在上小学几年级? [单选题] *


A、一年级


B、二年级


C、三年级


D、四年级


E、五年级


F、六年级

14、您的孩子现在会自己操作使用电脑吗? [单选题] *


A、会


B、不会

15、如果有一款小学生练习四则运算的系统,您会让您的孩子使用吗? [单选题] *


A、会


B、不会

16、您觉得孩子在线答题需要监督吗? [单选题] *


A、需要


B、不需要

17、您觉得查看孩子做题情况的时候需要知道在错题本里显示之前的错误答案吗? [单选题] *


A、需要


B、不需要

18、您查看孩子做题情况希望看到的信息是: [多选题] *


A、看孩子做错的题


B、查看孩子做题频率


C、看孩子做题总量


D、看孩子完成一次练习的时间

19、您希望孩子在线上做什么类型的题? [多选题] *


A 、简单加减乘除


B、带有真分数的加减乘除


C、 带有括号和分数的加减乘除


D、开方或平方难度及以上

20、您希望有出题功能吗? [单选题] *


A、希望


B、不希望

21、您希望四则运算的什么难度合适? [单选题] *


A 、简单加减乘除


B、带有真分数的加减乘除


C、 带有括号和分数的加减乘除


D、开方或平方难度及以上

22、您希望我们提供练习是专项练习还是混合练习? [单选题] *


A 、专项练习


B、混合练习

23、您希望我们提供一些高分记录或速度纪录来鼓励答题者吗? [单选题] *


A 、建议


B、不建议


C、无所谓

24、你今年在上几年级? [单选题] *


A、一年级


B、二年级


C、三年级


D、四年级


E、五年级


F、六年级

25、你会自己操作电脑吗? [单选题] *


A、会


B、不会

26、你希望四则运算的什么难度合适? [单选题] *


A 、简单加减乘除


B、带有真分数的加减乘除


C、 带有括号和分数的加减乘除


D、开方或平方难度及以上

27、练习算数题,你想一次做多少道题? [单选题] *


A 、20道


B、30道


C、 50道


D、80道


E、其它 _________________ *

28、查看错题的时候,你希望看到自己的错误答案吗? [单选题] *


A、希望


B、不希望

29、你希望我们提供练习是专项练习还是混合练习? [单选题] *


A 、专项练习


B、混合练习

调查结果:

用户1:1.A 2.A 3.A 4.C 5.C 6.A 7.A 8.A 9.D 10.B 11.A 12.出题模块能更加有针对性 13.A 14. A 15. A 16. A 17.A 18.ABCD 19.D 20.A 21.D 22.B 23.A

用户2:1.A 2.B 3.B 4.D 5.C 6.B 7.B 8.A 9.D 10.B 11.A 12.查看错题集是能显示相对应的错题答案 13.B 14. A 15. A 16. A 17.A 18.BCD 19.D 20.A 21.D 22.A 23.A

用户3:1.A 2.C 3.C 4.A 5.D 6.B 7.A 8.A 9.B 10.B 11.A 12.无 13.A 14. A 15.B 16. B 17.A 18.ABCD 19.D 20.A 21.D 22.A 23.B

用户4:1.A 2.B 3.F 4.C 5.C 6.A 7.A 8.A 9.D 10.B 11.A 12.界面设置希望更活泼生动一些 13.A 14. A 15. A 16. A 17.A 18.ABCD 19.D 20.A 21.D 22.B 23.A

用户5:1.A 2.B 3.E 4.B 5.A 6.B 7.C 8.A 9.D 10.B 11.B 12.查看错题集是能显示相对应的错题答案 13.B 14. A 15. B 16. A 17.A 18.BCD 19.D 20.A 21.D 22.A 23.A

用户6:1.B 24.E 25.A 26. C 27.C 28.A 29.B

用户7:1.B 24.B 25.A 26. A 27.D 28.A 29.A

用户8:1.B 24.A 25.B 26. C 27.B 28.A 29.B

用户9:1.B 24.F 25.A 26. B 27.D 28.A 29.A

用户10:1.B 24.C 25.B 26. D 27.A 28.A 29.B

综合调查结果可知,教师对该软件的需求比较高。普遍的教师希望通过简单网上练习方式对学生的知识点进行考察,并从中得知学生对知识点掌握不清的地方。由此错题集的功能在该软件中重要性相对较高。教师的软件出题量的要求比起学生也相对较高,折合老师和学生的出题量要求进行折中选择。由调查统计也能得出,教师和学生都希望题量进行专项练习,可以考虑在设计软件时先由专项练习为主,最后的复习模块可以为混合练习。学生相对此软件功能要求不高,大多只希望达到方便做题的效果。由此,功能的设计可以偏向教师的需求。

一、总体描述

1.产品描述

这个产品是面向小学低年级的“四则运算系统”软件,能自动生成简单的四则运算题目,方便老师出题、学生做题的软件。

2.产品功能

用户对象为老师和学生。用户可以进行注册、修改密码和自己的用户信息。老师注册登录后可以创建班级、布置作业、查看学生的作业完成情况。学生注册登录后可以加入班级,进行题目练习,查看自己的错题情况。

二、具体需求

1.外部接口需求

I.用户界面需求

具体见原型设计:https://modao.cc/app/tIQGJJKdFMQNqOiF3HfG9s0eJoeJ0hV

2.功能需求

I.类图

II.功能描述

用例图如下所示:

用例规约:

III.用户场景

顺序图为:

四、编码规范:格式规范

a)缩进

使用配置文件进行格式化:

配置文件中一个TAB等于4个空格。

b)行长度

每行100字符

注: 使用eclipse自带的Format方法(快捷键:Ctrl+Shift+F)时,需要配置“Maximum line width”设置长度为100

c)声明

d)声明变量、常量

一行只声明一个变量或常量;

在代码块的开始处声明实例变量,不要在首次用到该变量时才声明【推荐】

e)声明类

左大括号”{“位于声明语句同行的末尾,右大括号”}”另起一行;

方法与方法之间以空行分隔

f)语句

可以使用eclipse自带的Format方法(快捷键:Ctrl+Shift+F)时 使用eclipse默认的“Control Statements ”格式化方法进行

注:if语句总是用”{“和”}”括起来

示例

class Example {
    void bar() {
        do {
        } while (true);
        try {
        } catch (Exception e) {
        } finally {
        }
    }
 
    void foo2() {
        if (true) {
            return;
        }
        if (true) {
            return;
        } else if (false) {
            return;
        } else {
            return;
        }
    }
}

等号左右必须各有一个空格:

button = null;

双目运算符左右必须各有一个空格:

imageWidth = imagePadding + imageSize;

标点符号后面必须跟一个空格

标点符号包括“,”、“;”等,下面列出几个例子。

一行定义多个变量时,“,”后跟空格:

int i, j;

在for循环中,“;”后跟空格:

for (int i = 0; i < count; ++i)

在有多个入口参数的函数调用中,“,”后跟一个空格:

addContentView(view, params);

h)变量类型的使用

编程的过程中尽量使用接口编程,而少用类编程。

如:

    List<String> names = new ArrayList<String>();

命名规范

通用规则

命名规范使程序更易读,从而更易于理解。它们也可以提供一些有关标识符功能的信息,以助于理解代码,例如,不论它是一个常量,包,还是类。

包(Packages) 一个唯一包名的前缀总是全部小写的ASCII字母并且是一个顶级域名,通常是com,edu,gov,mil,net,org,或1981年ISO 3166标准所指定的标识国家的英文双字符代码。包名的后续部分根据不同机构各自内部的命名规范而不尽相同。这类命名规范可能以特定目录名的组成来区分部门(department),项目(project),机器(machine),或注册名(login names)。

如:

package com.itotem.view
package com.itotem.utils.xxxx

类(Classes) 命名规则:类名是个一名词,采用大小写混合的方式,每个单词的首字母大写。尽量使类名简洁而富于描述。使用完整单词,避免缩写词(除非该缩写词被更广泛使用,像URL,HTML)

如:

public class Buttonpublic class EditText

接口(Interfaces) 命名规则:接口类名以大写“I”开头,大小写规则与类名相似,

如:

public interface IProjGroupService

方法(Methods) 方法名是一个动词,采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。

如:

public void onCreate(Bundle savedInstanceState)public void run()

局部变量(Local Variables) 采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。变量名应简短且富于描述。变量名的选用应该易于记忆,即,能够指出其用途。尽量避免单个字符的变量名,除非是一次性的临时变量。临时变量通常被取名为i,j,k,m和n,它们一般用于整型。c,d,e,它们一般用于字符型,变量名不应以下划线或美元符号开头。

如:

int i = 0;float imageWidth = 0;

实例变量(Instance Variables) 大小写规则和类名相似,除了前面需要一个m。

如:

    private int mEmployeeId = 0;
    private String mName = "";

若实例变量为public类型的则和局部变量采用相同的命名规则。

如:

    public int width = 0;
    public String contactName = "";

常量(Constants [采用stiatc final 修饰]) 类常量的声明,应该全部大写,单词间用下划线隔开。(类似C语言的宏定义)。

如:

    private static final int MIN_WIDTH = 4; 
    private static final int MAX_WIDTH = 999; 
  • 1
  • 2

资源id 资源id全部采用小写,单词之间用下划线隔开。

注意:这个小写规范是Android强制执行的,如果出现大写或者特殊字符工程是不能编译的。会报错

如:

    download
    app_name
  •     call_log_type

备注(Remark)

所有的标识符名称要求取有意义的单词,不能使用myXXXX和button01等风格的名称。

附加说明

1、从命名中可以直观看懂其定义和用途,否则必须增加注释说明;

2、在同一系统内命名必须保持统一;避免出现类似示例中的情况;

示例:项目组id 变量定义:pgid、projectgroupId、idprojectgroup、idProjGroup

3、避免名字过长、命名采用英文缩写,避免使用汉语拼音【推荐】

组织规范

引入包规范

不允许引入类中未使用的包;

引入包时不能直接引入“.*”,必须明确到引入的类名

可以通过快捷键引入包。Ctrl+Shift+O;

注释规范

a)通用注释规则

b)说明

注释要精简并清晰容易理解;

保持注释与代码同步。

代码质量不好但能正常运行,或者还没有实现的代码用
//TODO:任务 ;

存在错误隐患的代码用 //FIXME:声明;

对于不建议使用(废弃)的类或者方法,必须在他们的注释中增加 @deprecated

c)javadoc注释标签语法定义说明

@author 对类的说明 标明开发该类模块的作者

@version 对类的说明 标明该类模块的版本

@see 对类、属性、方法的说明 参考转向,也就是相关主题

@param 对方法的说明 对方法中某参数的说明

@return 对方法的说明 对方法返回值的说明

@exception 对方法的说明 对方法可能抛出的异常进行说

@deprecated 对类或方法的说明 该类或方法不建议使用

d)类的注释

目的:简单概述该类作用

范围:所有java类,可以不包括javabean

书写规范:类的注释必须写在该类的声明语法之前。在注释中要描述该类的描述,创建者,创建日期。

类注释模板:可以通过eclipse配置(Code Templates 中的 Code 的New Java files)

${filecomment}
${package_declaration}
/**
 * Title: ${project_name}<br>
 * Description: <br>
 * Copyright: Copyright (c) ${year}    <br>
 * Create DateTime: ${date} ${time} <br>
* @author perry.li
 */
${typecomment}
${type_declaration}

类注释示例:

package cn.sh.sstic.projectmanagement.projectfeasibleschemaeval;
/**
 * Title: mwbas2008<br>
 * Description: 可行性方案套数数组定义类<br>
 * Create DateTime: Oct 6, 2008 4:41:03 PM <br>
* @author perry.li
 */public class FormUtil {

e)方法的注释

目的:简要概述该方法的功能,包括其参数、返回值意义的注释

范围:java类中的各种方法

注:接口的实现方法的注释应写在接口中而不是实现代码中;

对自动生成的get/set方法不需要添加注释;

如果方法允许null作为参数,或者允许返回值为null,必须在JavaDoc中说明,如果没有说明,方法的调用者不允许使用null作为参数,并认为返回值是null 安全的。

书写规范:方法注释必须写在方法定义之前。该注释包括:方法其功能的简单 描述,方法的参数、返回值类型、返回值意义简单的描述。

模板:对于已定义好的接口的方法,可以直接输入 /**回车 eclipse可自动生成注释模板

示例:

    /**
     * 演示方法注释
     * @param args
     * @return
     *  返回 null 表示没有找到
     * @throws Exception
     */
    private String[] demoFunction(String args) throws Exception{
        return null;
    }

f)失效代码块的注释

目的:对一块暂时不启用的代码进行注释。

注:这里并不是指垃圾、无用的代码,只是暂时不启用或暂时不明确的代码

书写规范:失效代码块采用块注释方法行注释方法进行标注。

注:采用注释块在 使用eclipse自带的Format方法(快捷键:Ctrl+Shift+F)时需要配置,去掉选中 “Enable block commnet formatting”

示例:

    // if (1==1) {
    //          
    // } else {
    //
    //      }

或者

    /*      if (1 == 1) {
                // 如果1与1相等的时候
                String code1;
            } else {
                // 如果1与1不相等的时候
                String code2;
            }*/

g)分支语句的注释

目的:简单描述该分支条件的意义

书写规范:在分支语句代码的下一行进行注释

示例:

        if (1==1) {
            //如果1与1相等的时候
            code
        } else {
            //如果1与1不相等的时候
            code
        }

h)变量、常量的注释

目的:简单描述该变量、常量的意义。

书写规范:变量、常量注释必须写在变量、常量定义之前或同一行中,简单描述其代表的意义。

注:对自循环所用的变量(i,j,k,)可以不需要注释。

示例:

String commitFlag; //提交标志
i)@Override的使用
所有的重写方法,在方法开始加上 @Override 关键字。
@Overridepublic void onCreate(Bundle savedInstanceState) {
}

异常处理规范

重新抛出的异常必须保留原来的异常,即throw new NewException(“message”, e); 而不能写成throw new NewException(“message”),更不能不继续往上层抛出异常。

针对重要的可捕获的业务相关异常,需创建异常处理类,在方法中捕获到异常后,反馈到用户界面上,提示用户【推荐】

补充规范

代码在提交版本控制之前,请确保已清除不必要的log调试语句

明确的垃圾或无用代码必须删除

原文地址:https://www.cnblogs.com/hyw977/p/9062989.html

时间: 2024-10-09 15:30:31

四则运算分析与设计的相关文章

采用[ICONIX] 方法实践分析和设计之三 [需求复核](转)

需求复核旨在确保用例和域模型同时满足客户的功能性需求.同时确保客户知道开发小组将根据这些需求做何种设计.同时它也是系统分析阶段的一个里程碑(milestone).      这一阶段在ICONIX方法中的位置如下图:      三巨头的首次聚首:客户代表,开发小组代表,经理就已有的工具(用例,原型和域模型)帮助客户理解其需求,并确定系统的功能需求.在这一过程中,ICONIX方法认为可跟踪性(traceability)是非常关键的,它强调清楚每种需求是如何转换为一个或多个用例,以及域模型中的一个或

面向对象分析与设计—四色原型模式(彩色建模、领域无关模型)(概念版)

阅读目录: 1.背景介绍 2.问自己,UML对你来说有意义吗?它帮助过你对系统进行分析.建模吗? 3.一直以来其实我们被一个缝隙隔开了,使我们对OOAD遥不可及 4.四色原型模式填补这个历史缝隙,让我们真的看见OOAD的希望 5.在四色原型上运用彩色建模增强视觉冲击力 6.通过四色原型模式建模出领域无关模型 7.结束语:建模时你可以不考虑具体实现,但是建模者要懂技术实现 1.背景介绍 至今我都清楚的记得我第一次被面试官问起什么叫"建模"技术时的情景,那是好几年前的事情了,当时是胸有成竹

深入浅出面向对象分析与设计笔记

1.在搜索匹配时注意大小写问题. 2.别为了解决旧问题而产生新问题. 3.使用enum的好处:使用enum的方法或类会受到它的保护,不会有未定义的enum的值.因此不会有打错字或拼错字,对任何具有标准范围或合法值的东西都能避免取得坏数据. 4.任何时候看到重复程序代码,就找个地方进行封装. 5.委托: 6.Java匿名内部类是一种特殊的继承方式,既可以扩展类,也可以实现接口,但是不能两者兼备,而且若实现接口也只能实现一个接口.由于其没有名字,因此不会有命名构造器,但可以实例初始化.如果定义一个匿

采用[ICONIX] 方法实践分析和设计之六 [时序图](转)

采用[ICONIX] 方法实践BLOG设计之六 [时序图] 在前几篇文章中,我们分别进行了域模型和用例建模,并使用 Robustness工具进一步分析验证了相应用例的处理流程,并在相应模型(域模型)的基础上,通过Robustness方法引入相关的边界对象,控制对象(控制器),并更新了相应域模型中类的属性(字段).下面就可以进入到交互建模阶段了.如下图:    作为交互建模本身,就是要通过寻找对象之间的交互关系,进而进行方法(操作或行为)分配.    正所谓"只有在所有的用例为所有事件进程建立了交

采用[ICONIX] 方法实践分析和设计之四 [健壮性分析]

在前三章中通过(问题域)建模和用例分析之后,在许多的UML书中可能接下来就要进行时序图和协同图的绘制了.但是问题好像还没那么简单,因为这里有一条鸿沟还没有跨过去,正如下图所示:                    在我刚学开始学习 UML时,在拿到用例文本时要去画时序图总感觉有些别扭,不知如何才能将文本中的意思完全用图的形式表达出来,总是感觉分析出来的文本中缺了一些很重要的东西, 而这些被丢掉的对象最终可能会导致无法绘制时序图,但又找不出用例文本中到底还有什么东西被遗漏,最终导致设计瘫痪.后来

采用[ICONIX] 方法实践分析和设计之二 [用例建模](转)

在上一篇文章中我们了解并进行了域建模,换言之我们有了一个好的开始,起码开发人员对自己要开发的软件已有了初步的认识,且也得到了进行交流时可以使用的术语表. 本章将会在前一篇的基本上进一步阐述使用ICONIX方法实践用例建模,同样在文章的最后还会有在这个阶段最容易犯的10个错误,以给大家提醒或在分析过程中进行参照.     本文在ICONIX方法中所处的位置如下图(红圈标记的地方)     在开始进行用例建模之前,我们需要对这一过程有一些粗线条的认识,如果您以前做过或学习过这方面的知识,可以把下面的

电商研发方案 —— 产品模型业务分析和设计

一.方案概述 <Craft6.cn 电子商务研发方案产品模型业务分析和设计>是颜超敏就电子商务系统研发编写的其中一份方案,分为共享版和企业版. 本文的针对产品模型中产品基本信息.产品分类.产品规格.产品属性.产品销售类型.产品定价.产品归属和产品包等业务进行 业务分析和设计,并给出ER图的设计. 对于企业版,还给出本模块详细的数据库设计和开发上的关键业务说明.另外还附带数据库设计文件(pdm)和UML源文件,客户拿到后 可以立即用于研发. 本文档目前共享版和企业版均是V1.1,将会持续更新.

采用[ICONIX] 方法实践分析和设计之五 [初步设计复核](转)

这一篇文章的内容有些对不住大家了.因为公司正在准备发布新产品(Discuz!NT2.0),大家的心思 全在产品上,因此构思内容和写作的时间几乎没有了,本人就偷了个懒,把书中认为很有必要让大家了解的 内容简单的抄上来.同时因为这一章主要的内容都是进行相应的用例文本和健壮性图的检查,以及更新域模 型(使之逐步向详细类图逼进),所以如果大家感兴趣的话,可以找几个人一起研究一下,相信大家一定会 有所收获的.最后我也希望在产品正式发布之后能够回过头来有时间进一步完善和补充相应的内容.再次向大家致歉了:(

面向对象分析与设计

面向对象基本概念 对象:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位.一个对象由一组属性和对这组属性进行操作的一组服务组成.从更抽象的角度来说,对象是问题域或实现域中某些事物的一个抽象,它反映该事物在系统中需要保存的信息和发挥的作用:它是一组属性和有权对这些属性进行操作的一组服务的封装体.客观世界是由对象和对象之间的联系组成的.主动对象是一组属性和一组服务的封装体,其中至少有一个服务不需要接收消息就能主动执行(称作主动服务). 类:把众多的事物归纳.划分成一些类是人类在认识