1)体验敏捷开发中的两人合作。
2)进一步提高个人编程技巧与实践。
二 、实验内容:
1)根据以下问题描述,练习结对编程(pair programming)实践;
2)要求学生两人一组,自由组合。每组使用一台计算机,二人共同编码,完成实验要求。
3)要求在结对编程工作期间,两人的角色至少切换 4 次;
4)编程语言不限,版本不限。建议使用 Python 或 JAVA 进行编程。
查阅相关资料对敏捷开发和结对编程的理解
在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。简单地来说,敏捷开发并不追求前期完美的设计、完美编码,而是力求在很短的周期内开发出产品的核心功能,尽早发布出可用的版本。然后在后续的生产周期内,按照新需求不断迭代升级,完善产品。
结对编程是一种敏捷软件开发的方法,更有益两人之间的相互学习,编出更好的代码
以下为我查阅资料的地址
https://blog.csdn.net/csdn15556927540/article/details/90712308
https://baike.baidu.com/item/%E7%BB%93%E5%AF%B9%E7%BC%96%E7%A8%8B/7526152?fr=aladdin
组队情况
博客地址
王锦(https://www.cnblogs.com/wjin/) 张子毓(https://www.cnblogs.com/lingluan23333/)
github仓库地址
https://github.com/Wjinfiny/daimaqiaobu
选题
开发一个自动生成小学四则运算题目的命令行 “软件”。实现 输入你要出题的个数,随机产生四则运算,然后用户回答,并且进行打分。
规则:用随机数实现100以内的加、减、乘、除运算,其中和与积不能超过100,差不为负(即须大减小),商不为小数或分数(即必须整除)。要求总计输出10个运算式,每输出一个运算式,等待输入结果,然后进行对错判断并输出。最后输出统计答对的题数与分。
针对课题查阅的资料,对课题的理解
用random完成随机部分,然后通过判断来检查答案是否正确,再计算得分。
采用开发平台和技术工具
采用开发平台和经过讨论,我们决定使用C语言作为我们的开发语言,因为相对来说对C语言更为熟练。使用Dev开发平台。
讨论
第一个问题就是题目说的四则运算复杂度到底是多少?有可能是1+2=3这样很简单的的运算,也有可能是三到四个运算符的复杂运算,如果是手动输入产生的运算式还比较简单,可是我们的要求是随机产生四则运算,如何确定式子的复杂度呢?我认为可以固定式子的长度为三到四个运算符,王锦同学认为可以利用随机数,确定式子长度为一到五个运算符。我们决定编代码时再具体分析。
第二个问题是运算符和运算数是用数字放还是堆栈。如果是生成式子用数组比较简单,因为运算符只有四个;但是如果用数组,在运算时相对于堆栈要麻烦,优先级不好处理,所以初步确定用堆栈存放运算符和运算数。
目前我们已经确定了判断符号优先级和两数运算的算法。
经过日前的交流,我们已经产生了一定的默契,希望在后来的实验里,更上一层楼!