结对编程--中小学数学卷子自动生成程序代码互评(2)
时间:2021-10-10
本文章向大家介绍结对编程--中小学数学卷子自动生成程序代码互评(2),主要包括结对编程--中小学数学卷子自动生成程序代码互评(2)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
本博客为吴贞逸和黄泽云的结对编程项目总结
-
一、选择实现结对编程项目的技术
说实话一开始并没有想用C++和QT的方式来实现这次的结对编程。在个人项目中我使用的是python而黄同学使用的是Java,都不是c++,但是当我们仔细阅读项目需求说明并同自己个人项目的实现情况比较后,我们决定将一切推倒重来。就我个人而言,个人项目中存在着以下问题:封装性不够,很多函数需要重写,登录方式需要重构;出题逻辑不够合理,很多题目难以计算。所以,最后我们选择了我俩都熟悉的语言c++。而说到c++的UI,肯定不会去用网页,因为c++本身就有一个很棒的QT支持,而我学习过一点pyqt的内容,所以上手也会稍微快一点。
-
二、复用说明
由于语言的更换,直观上代码的复用基本是不可见的。但是部分代码逻辑还是汲取了个人项目中较为优秀的思想,比如生成题目的逻辑,仍然是先对操作数操作符进行考虑再对括号进行考虑;用户登录和修改密码等账户类操作也是用对txt文件读写实现。
-
三、经验教训
这次的结对编程项目存在着许多难点。首先是基础的技术方面。虽然我们都很熟悉c++,但是用起来确实不怎么顺手,习惯了python和Java便捷的接口后,总觉得c++的开发特别繁琐缓慢。然后是QT,虽然是基于面向对象,但是每一个控件都是一个类,调用起来也很是麻烦,不像pyqt那样能直接一个函数搞定;对于QT creator的使用也不是很熟练,导致在生成发布版本时出现了一些问题;在生成完整项目时还要学习资源文件的编写。然后是需求实现方面的难点。如前文所述,我们之前的题目生成逻辑虽然能生成题目,但基本无法计算,于是我们引入了π,并以π/4和π/6为最小单位,使得三角函数值可计算;答案设置方面也会有困难,为了更具迷惑性、更贴近实际,我们不能直接以随机数出答案,而应该以计算结果为基准来出答案。这种贴切实际的考量使得我们的代码更加复杂,需要更多的逻辑判断。
当然,经过这次项目也收获了许多,我对QT和QT creator的操作更加熟练了,也重新捡起了很多c++的知识。对于过程中的难点的克服,有时还得多多上网查询学习。给我印象最深的两个关键词“做中学”和“万事开头难”,学习QT的时候对着网上的教学视频和资料,有时看了后面忘了前面,看完后使用时又感觉什么也没学会,总是感觉很难理解运用,只能通过对界面重复的改来改去然后观察结果来倒逼自己熟练设计方法,因此觉得很是折磨。但看到稍微人性化一点点的界面以后的成就感会慢慢冲淡畏难的情绪,从而坚持完成项目。
QT creator生成项目时编译还遇到了一个问题多方求助上网查询都没有解决。最后仔细看报错详情才解决了。
https://www.cnblogs.com/wtdyyds/p/15388772.html
原文地址:https://www.cnblogs.com/wtdyyds/p/15388740.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- thinkphp5框架路由原理与用法详解
- ThinkPHP5&5.1实现验证码的生成、使用及点击刷新功能示例
- php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
- 对python 命令的-u参数详解
- ThinkPHP5.1+Ajax实现的无刷新分页功能示例
- Python推导式简单示例【列表推导式、字典推导式与集合推导式】
- Python 从相对路径下import的方法
- Python随机生成身份证号码及校验功能
- 对python的bytes类型数据split分割切片方法
- PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
- python 实现数字字符串左侧补零的方法
- tp5.0框架隐藏index.php入口文件及模块和控制器的方法分析
- laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
- 使用Python实现微信提醒备忘录功能
- 对web.py设置favicon.ico的方法详解