实验二 结对编程 第一阶段

一、实验目标:

   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年代开始逐渐引起广泛关注的新型软件开发方法,是一种能应对快速变化需求的软件开发能力。它们的具体名称、理念、过程、术语都不尽相同,相对于"非敏捷",更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重做为软件开发中人的作用。

      敏捷软件开发描述了一套软件开发的价值和原则,在这些开发中,需求和解决方案皆通过自组织跨功能团队达成。敏捷软件开发主张适度的计划、进化开发、提前交付与持续改进,并且鼓励快速与灵活的面对开发与变更。这些原则支援许多软件开发价值的定义和持续进化。
     敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
  b、结对编程是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工作。一个人输入代码,而另一个人审查他输入的每一行代码。输入代码的人称作驾驶员,审查代码的人称作观察员(或导航员)。两个程序员经常互换角色。
   在结对编程中,观察员同时考虑工作的战略性方向,提出改进的意见,或将来可能出现的问题以便处理。这样使得驾驶者可以集中全部注意力在完成当前任务的“战术”方面。观察员当作安全网和指南。结对编程对开发程序有很多好处。比如增加纪律性,写出更好的代码等。
结对编程是极端程序的组成部分。

 2)讨论课题加深理解

  a、需要考虑的要求和功能:

     算式的要求:用随机数实现100以内的加、减、乘、除运算,其中和与积不能超过100,差不为负,商不为小数或分数。要求总计输出10个运算式,每输出一个运算式,等待输入结果,然后进行对错判断并输出。最后输出统计答对的题数与分。
    软件的功能:输入你要出题的个数,随机产生四则运算,然后用户回答,并且进行打分。
         四则运算:指加法、减法、乘法和除法四种运算。

            

  b、四则运算运算的理解与基本设计构思:

   若遇到数字,我们就直接将其输出。

   若遇到非数字时,若栈为空或者该符号为左括号或者栈顶元素为括号,直接入栈。

     若遇到一个右括号,持续出栈并输出符号,直到栈顶元素为左括号,然后将左括号出栈,右括号不入栈。

   若遇到运算符号且栈非空,查看栈顶元素,若栈顶元素的运算优先级大于或者等于该运算符号,则持续出栈,直到栈顶元素优先级小于该运算符。最后将该元素

   若我们读到了输入的末尾,则将栈中所有元素依次弹出。

六、开放平台与技术工具

     进过认真讨论和权衡后决定采用

开发平台:Eclipse

开发语言:JAVA

技术工具:腾讯QQ(互屏沟通、远程操控)

七、其他,如二人讨论的记录

通过qq电话讨论相关细节

猜你喜欢

转载自www.cnblogs.com/99xinyu/p/12543319.html