结对项目:四则运算(曾肖宇、林雪花)
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/gdgy/Networkengineering1834 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/gdgy/Networkengineering1834/homework/11148 |
这个作业的目标 | 实现一个自动生成小学四则运算题目的命令行程序,学会团队合作 |
1.结队编程
姓名 | 学号 | 任务 |
---|---|---|
曾肖宇 | 3118005314 | 后台 |
林雪花 | 3218005353 | 前端 |
2.github地址
1)后台:https://github.com/beyondzxy/topicSystem.git
2)前端:https://github.com/HUAHUAXIA10086/createTopics.git
3.PSP 表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 30 | 30 |
Estimate | 估计这个任务需要多少时间 | 240 | 360 |
Development | 开发 | 480 | 640 |
Analysis | 需求分析 (包括学习新技术) | 60 | 60 |
Design Spec | 生成设计文档 | 0 | 0 |
Design Review | 设计复审 | 30 | 30 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 30 | 30 |
Design | 具体设计 | 60 | 60 |
Coding | 具体编码 | 400 | 600 |
Code Review | 代码复审 | 30 | 30 |
Test | 测试(自我测试,修改代码,提交修改) | 60 | 180 |
Reporting | 报告 | 30 | 30 |
Test Report | 测试报告 | 30 | 30 |
Size Measurement | 计算工作量 | 15 | 15 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 30 | 30 |
Total | 合计 | 675 | 955 |
4.设计实现过程
本项目是一个前后端分离项目,前后端交互数据格式为json,后端基于SpringBoot框架实现,进行了MVC分层,使用Maven管理依赖,lombok插件简化代码编写,并利用AOP面向切面编程在controller层进行统一的异常封装处理,配合Assert(断言)完善代码健壮性。
功能描述:前端传入题目数量、数字范围等限制参数,系统由后端生成题目并输出题目文件返回至前端;前端展示题目,用户作答后可进行判错,前端返回作答情况以及正确答案至后端,后端输出成绩文件以及答案文件
后台
1)程序流程图
2)项目框架部分:
a.项目结构:
b.项目依赖:
3)功能实现部分:
a.主要实现类:
b.创建题目实现方法:
实现思路:判断传参是否正确-循环生成题目-判断该题目计算值是否小于0-存储于list中-输出题目文件
c.随机生成数字、运算符实现方法:
实现思路:产生两个随机数分别作为分子分母-判断该数字是否小于等于0-判断分子是否整除分母:是则返回整除结果-防止产生运算语义错误,用括号将分数包裹
实现思路:生成一个包含四则运算符的数组-产生一个0-100之内的随机数-该随机数对3取模,得到数组下标-随机获取运算符
4)异常处理部分:
本项目采用AOP面向切面编程,对全局异常统一在controller层进行封装处理,以此建立完善的错误反馈体系,便于后期调试判断代码出错部分
前端
1)程序流程图
2)项目结构
3)使用组件
element-ui
4)界面展示
5)结果展示
页面效果:
目标文件
5.项目小结
曾肖宇童鞋tql!由于不想不熟在服务器上,所以前端自己运行后端项目生成本地服务器来获取接口,但是本人是个后端白痴,一报错就滴滴曾肖宇童鞋,曾肖宇童鞋每次都很耐心地帮我解决了问题,啊,感受到了码农兄弟的友善hiahiahia~一加一果然大于二!
在开发的过程中难免出现BUG,但是相对于个人项目,结对项目解决BUG的速度快了很多,老衲不禁感叹:结对真香!
本次最大的收获就是前后端队员的对接模式,感谢曾肖宇童鞋带飞!