爱 math 口算题卡
1. 总体要求
- 综合运用软件工程的思想,协同完成一个软件项目的开发,掌软件工程相关的技术和方法;
- 组成小组进行选题,通过调研完成项目的需求分析,并详细说明小组成员的分工、项目的时间管理等方面。
- 根据需求分析进行总体设计、详细设计、编码与测试等。
2. 基本内容
根据给出的题目任选一题,自行组队,设计与开发中软件过程必须包括:
- 问题概述、需求分析:正确使用相关工具和方法说明所开发软件的问题定义和需求分析,比如 NABCD 模型,Microsoft Visio,StarUML 等工具 (20%);
- 原型系统设计、概要设计、详细设计:主要说明所开发软件的架构、数据结构及主要算法设计,比如墨刀等工具(35%);
- 编码与测试:编码规范,运用码云等平台进行版本管理,设计测试计划和测试用例(30%);
- 功能创新:与众不同、特别吸引用户的创新(10%);
- 用户反馈:包括用户的使用记录,照片,视频等(5%)。
3. 问题定义
3.1 项目背景与意义
3.1.1 项目需求(Need)
家长在辅导上小学的孩子学习数学时,通常需要很大的题量来熟悉和掌握四则运算。但是作业册的题量不一定能够满足需求,而且题目的难度、侧重点会随年级提升有所改变,所以会导致用户出题的效率变得很低。用户希望通过一个可靠且方便的平台能够为儿童定制练习题;
3.1.2 实现方法(Approach)
平台通过难度地每次随机生成 10 道四则运算题目帮助各个年级的孩子练习和掌握数学运算;平台通过计时测试的功能帮助家长发布测验,检测孩子学习进度;平台通过对测验结果进行数据分析,产生反馈信息,让用户实时发现对应的不足之处;平台还有用户数据的排名情况,可以和小伙伴比一比谁做的题更多,准确率更大,为做数学题增加一丝乐趣。
3.1.3 好处(Benefit)
用户每次做题时都会有计时器功能,可以模拟真实场景下的情况;用户可以通过平台快速地为孩子定制数学运算练习题,也可以通过每次的反馈信息找到短板进行针对性训练;用户可以通过测验功能为孩子布置作业,测验成绩优秀的奖励机制也可以激励孩子努力学习;
3.1.4 竞争(Competitors)
教育领域网络化智能化趋势明显,更多互联网巨头都想分得一杯羹,所以针对此类的平台竞争压力会比较大。但值得注意的是,在我们尝试使用相关的 app 中,大多内容趋于同质化,很少有让人眼前一亮的产品。
相比之下,我们网站特有的算法会生成不同难度的题目,这样更适用于不同年级的学生。此外,特有的打印功能更方便生成纸质文件,更呵护视力。
3.1.5 推广(Delivery)
通过朋友圈、空间之类的“熟人网络”进行推广。
找学校老师进行推广。通过小学生微信群推荐给家长和老师们。
与教育企业合作,增加影响力。
在中小学生开学或者升学的时间,通过在网络统计数据,在目标用户浏览较多的网站上投放广告,完成前期的宣传工作。
3.1.6 功能创新(亮点)
平台提供用户更加精准的的注册方式——手机号注册。因此,用户注册时需要逐步输入用户名、图片验证码、短信验证码等来保证账号的安全。当注册完成后,用户输入自己的账号/手机号加上密码即可登录。
每次测试会有得分统计与错题统计,用户/家长可以根据自己的做题情况得到反馈,从而接下来可以根据该板块进行强化练习。
测试结束后,家长可以根据需要将错题下载到客户端,进而可以打印成纸质版的习题方便孩子提升自己。现在已经有了许多四则运算生成的网站,但是功能都比较局限:
3.2 项目基本目标
我们设计的项目的基础目标是满足所有小学生不同程度的日常口算学习的需求,该项目主要包含了两个重要模块。
第一是用户注册模块。在注册模块内,用户注册时需要逐步输入用户名、图片验证码、短信验证码等来保证账号的安全。当注册完成后,用户输入自己的账号/手机号加上密码即可登录。
第二个是测试模块。在主页面内,用户点击口算题卡即可进入测试模块。用户选择好年级后系统会一次性的相应出 10 道题目,并同时开始计时。用户作答完毕后可以提交页面,然后系统给出此次习题的得分情况。
在分年级选择题目类型中,我们定义如下的环境:
- 一二年级:两个 100 以内操作数的加减法:a+b
- 三四年级:两个 100 以内操作数的加减乘除法:a*b
- 五六年级:三个 100 以内操作数的加减乘除法:a+b/c
- 三个 30 以内操作数的带括号的加减乘除法:(a-b)*c,a/(b-c)
3.3 可行性分析
3.3.1 技术可行性分析
本项目平台为 Web 端,前端采用 HTML、CSS、JS,前端设计中注册页面采用 flask 框架,后端采用 Redis 与 MySQL;个人主页页面和做题页面采用 Java 的框架。由于此前缺少使用开发平台的经验,对团队项目合作流程也不太熟悉,在开发过程中会遇到一些困难。但项目的核心算法并不太复杂,主要困难在于如何实现前后端交互,应该可以通过查找资料以及请教有开发经验的同学来完成这部分功能。
3.3.2 操作可行性分析
项目操作上手比较容易,与大多数需要注册登录的流程无异。用户注册输入手机号即可,对预置的密码强度也没有要求。登录系统之后选择“口算题卡”即为做题模式,用户选择年级后即可开始做题之旅。最终呈现的网页界面十分简洁,因此用户很快就能掌握平台的使用方法。
3.3.3 市场可行性分析
市面上存在的幼儿及低年级学习网站以视频付费类型为主,也有一些综合类型的网站,但是此类网站功能繁多,对计算机接触较少的家长和学生不易熟练使用,很少有操作简单并且对某一科目有针对性的网站。,因此本项目具备一定的独特性,但是竞争压力仍然存在。
只能生成比较简单的四则运算式
仅有部分网站提供选择学生年级来控制题目的难度。
3.4 人员管理和项目进度管理
3.4.1 人员分工
崔星奇:组长。负责前端模块的架构,主要负责前端中注册和登录模块和个人主页的实现;部分报告内容的撰写。
闻佳佳:负责项目前端页面的设计和实施,负责项目前端的设计者;部分报告内容的撰写。
左振:负责项目后端的架构,主要负责后端与前端的交互,并将用户数据存入数据库;部分报告内容的撰写。
闫锐:负责项目主要算法的实现,实现了根据不同年纪选择不同的习题;部分报告内容的撰写。
库尔夏提·亚森:配合部分前端工作的完成,主要负责部分 JS 的编写;部分报告内容的撰写。
4. 需求分析
4.1 E-R 图、数据流图等
4.1.1 E-R 图
我们有“商店”和“顾客”两个实体。“商店”即我们的答题网站——爱 Math 在线答题网站;“顾客”即为网站的用户,主要群体为一年级到六年级的小学生。
“商店”的属性有:店名(网站名)、地址(网址)、店面装修(前端)、仓库与物流(数据库及相应的数据交互);“顾客”的属性有:用户名(身份标识)、用户密码、手机号、年龄和年级。
网站可以有多个用户访问。用户每次登录网站、选择年级后进行线上数学口算题练习,每次练习都会更新“分数”和“排名”两个属性。同时,用户可以取走练习结果,即通过我们的“打印”功能。
综合以上分析,可作出 ER 图如图 2.1 所示:

图 2.1 ER 图
4.1.2 数据流图
从数据的角度分析该系统,可作出数据流图如图 2.2 所示:

图 2-2 数据流图
4.2 用例图

图 2-3 用例图
4.3 原型系统设计
4.3.1 设计工具
整个系统的设计是在前端和后端的相互配合下完成的。前端设计所用的核心“工具”为 HTML 和 CSS,其中 HTML 用于控制网页的结构,CSS 用于控制网页的外观,我们也在不断对网页外观的求简求美的过程学习了新的知识;后端设计所用的核心“工具”为 Java,外加一些 JavaScript,用于实现与服务器的交互并控制网页的行为实现一些特定功能。
4.3.2 设计思路
基于 Web 开发,设计相应的页面,主要有:登录页面——注册页面——个人主页——个人信息页面——年级选择页面——做题页面——查看排名。
4.3.3 设计成果
基于 Web 开发,实现效果如下:
登录页面

注册页面

个人主页

个人信息界面

做题界面

查看排名

5. 概要设计和详细设计
5.1 系统结构
整个系统结构如下图所示:

1万+

被折叠的 条评论
为什么被折叠?



