• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

幽默的橘子

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

结对编程--中小学数学卷子自动生成程序代码总结

 

  • 一、项目技术选择

  在个人项目中我使用的是java而我的队友使用的是python,但是当我们仔细阅读项目需求说明后,我发现了之前我们在个人项目中实现的不好的地方,例如封装性不够,很多函数需要重写,出题逻辑不合理,很多题目难以计算,甚至可能出现tan90,对于后端方面我决定保留其中最主要的部分即题目生成的逻辑--先生成操作数(带符号)然后再添加括号,其他的方面我们需要做进一步的优化。而说到题目要求中的图形界面,由于吴同学学习过qt的内容,上手会稍微快一点,我们就决定用qt来做UI,而且我和我的队友都对c++比较熟练,后端我们作出改动由我来使用c++重写生成题目的逻辑。  

  • 二、代码复用

  个人项目中,我们仅仅要求实现出题部分,尽管也是结对项目的核心内容,但是还要避免一些极端情况,需要更贴近实际。所以我参考了部分个人项目的代码,比如出题的整体逻辑完全可以参考个人项目,流程逻辑也可以根据个人项目来设计,但是在结对项目中需要设置随机的四个选项,题目太难要稍微降低难度,将一些人工难算的算式简化,控制台实现只有输入即可控制,转换成UI页面,我们就可以实现多个入口,多个转折,页面的跳转逻辑设计变得更加复杂一些。

  • 三、个人开发任务

  我负责的主要是后端部分下面式对我代码主要部分的分析

1.注册部分

  

 

 下面的部分没有截图,此处代码的功能就是检查账号是否被注册过,然后就是判断密码是否符合规范,两次输入的密码是否匹配。

  2.登录部分

 3.出题部分

 

 题目生成的逻辑我采用的还是我个人项目中的思想,但是为了让题目的结果更加人性化,我对sin,cos,tan做出调整,引入了π,并以π/4和π/6为最小单位,使得三角函数值可计算。

 在生成算式的过程中我将算式的答案存入result,在获取试卷时同步产生。

 

 

 为了生成混淆项我也随机生成了几个与答案接近的选项,打乱顺序后更贴近生活情形。

  • 四、项目总结与教训

   这次项目经历是一个非常好的锻炼机会,我和队友都在开发中得到了成长,非常我的队友的付出,积极沟通,努力优秀的态度。

  然后,通过这次开发,我得到了一些教训,首先项目开发之前应该要做好设计,在设计中途反复修改实在太难了,其次在分工合作的过程中一定要有及时的沟通,不然在完成我们分工的过程中碰到一些没有沟通到位的部分,等到写完了这部分再来对接,既浪费了时间时间也没能很好的完成我们的预定目标。这为以后的开发提供宝贵的经验教训,不过还好我每一阶段完工之后都会和队友一起备份一次工作进度,这是一个非常好的习惯。

  另外,在最后,鸣谢我的队友,十分辛苦!

posted on 2021-10-10 15:00  幽默的橘子  阅读(226)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3