实验二 结对编程 第一阶段
一、实验目标:
1)体验敏捷开发中的两人合作。
2)进一步提高个人编程技巧与实践。
二 、实验内容:
1)根据以下问题描述,练习结对编程(pair programming)实践;
2)要求学生两人一组,自由组合。每组使用一台计算机,二人共同编码,完成实验要求。
3)要求在结对编程工作期间,两人的角色至少切换 4 次;
4)编程语言不限,版本不限。建议使用 Python 或 JAVA 进行编程。
三、所选课题与问题描述
开发一个自动生成小学四则运算题目的命令行 “软件”。实现 输入你要出题的个数,随机产生四则运算,然后用户回答,并且进行打分。
规则:用随机数实现100以内的加、减、乘、除运算,其中和与积不能超过100,差不为负(即须大减小),商不为小数或分数(即必须整除)。要求总计输出10个运算式,每输出一个运算式,等待输入结果,然后进行对错判断并输出。最后输出统计答对的题数与分
四、组队情况,各队博客地址,github仓库地址,所选择的课题
队伍名称:哲学边界
队长:王鑫煜 博客园地址:https://www.cnblogs.com/99xinyu/
队员:曹源 博客园地址:https://www.cnblogs.com/zhiless/
仓库地址:https://github.com/yuanyuan0931/homeworkillers
选做课题:四则运算
五、实验过程
1)查阅相关资料加深对敏捷开发和结对编程的理解
a、敏捷开发是一种从1990年代开始逐渐引起广泛关注的新型软件开发方法,是一种能应对快速变化需求的软件开发能力。它们的具体名称、理念、过程、术语都不尽相同,相对于"非敏捷",更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重做为软件开发中人的作用。
2)讨论课题加深理解
a、需要考虑的要求和功能:
算式的要求:用随机数实现100以内的加、减、乘、除运算,其中和与积不能超过100,差不为负,商不为小数或分数。要求总计输出10个运算式,每输出一个运算式,等待输入结果,然后进行对错判断并输出。最后输出统计答对的题数与分。
软件的功能:输入你要出题的个数,随机产生四则运算,然后用户回答,并且进行打分。
四则运算:指加法、减法、乘法和除法四种运算。
b、四则运算运算的理解与基本设计构思:
若遇到数字,我们就直接将其输出。
若遇到非数字时,若栈为空或者该符号为左括号或者栈顶元素为括号,直接入栈。
若遇到一个右括号,持续出栈并输出符号,直到栈顶元素为左括号,然后将左括号出栈,右括号不入栈。
若遇到运算符号且栈非空,查看栈顶元素,若栈顶元素的运算优先级大于或者等于该运算符号,则持续出栈,直到栈顶元素优先级小于该运算符。最后将该元素
若我们读到了输入的末尾,则将栈中所有元素依次弹出。
六、开放平台与技术工具
进过认真讨论和权衡后决定采用
开发平台:Eclipse
开发语言:JAVA
技术工具:腾讯QQ(互屏沟通、远程操控)
七、其他,如二人讨论的记录
通过qq电话讨论相关细节