结对编程 第一阶段

一、实验目标:

1)体验敏捷开发中的两人合作。

2)进一步提高个人编程技巧与实践。

二 、实验内容:

1)根据以下问题描述,练习结对编程(pair programming)实践;

2)要求学生两人一组,自由组合。每组使用一台计算机,二人共同编码,完成实验要求。

3)要求在结对编程工作期间,两人的角色至少切换 4 次;

4)编程语言不限,版本不限。建议使用 Python 或 JAVA 进行编程。

三、问题描述

    开发一个自动生成小学四则运算题目的命令行 “软件”。实现 输入你要出题的个数,随机产生四则运算,然后用户回答,并且进行打分。

规则:用随机数实现100以内的加、减、乘、除运算,其中和与积不能超过100,差不为负(即须大减小),商不为小数或分数(即必须整除)。要求总计输出10个运算式,每输出一个运算式,等待输入结果,然后进行对错判断并输出。最后输出统计答对的题数与分数。

四、第一阶段

1)查阅相关资料加深对敏捷开发和结对编程的理解;

 1、敏捷开发:

  敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。

  敏捷开发,没有其他开发那么复杂繁琐,敏捷开发是当代信息社会孕育出来的适应社会的需求的一种开发模式,我认为,敏捷开发比较快速,有了什么想法立马编程,所写的文档比较少,节约了大量时间,很快的面向市场了,推动了社会信息化的发展。

       敏捷开发适合小型,中型大型的项目,开发比较快,像那种软件公司,小游戏公司比较适合。还有就是项目的组员不多,5-7个人就可以了。节约了大量的人才,可以提高效率,创造更高的价值。

        相比迭代式开发两者都强调在较短的开发周期提交软件,敏捷方法的周期可能更短,并且更加强调队伍中的高度协作。

      相比瀑布式开发,瀑布是开发的主要的问题是它的严格分级导致的自由度降低,项目早期即作出承诺导致对后期需求的变化难以调整,代价高昂。瀑布式方法在需求不明并且在项目进行过程中可能变化的情况下基本是不可行的。敏捷方法则在几周或者几个月的时间内完成相对较小的功能,强调的是能将尽早将尽量小的可用的功能交付使用,并在整个项目周期中持续改善和增强。

  敏捷设计是一个过程,不是一个事件。它是一个持续的应用原则、模式以及实践来改进软件的结构和可读性的过程。它致力于保持系统设计在任何时间都尽可能得简单、干净和富有表现力。敏捷开发是我们当今发展的必需品,是我们学习的必备的技能。

 2、结对编程技术:

  是一个非常简单和直观的概念,能达到事半功倍的工作效果。但是,人与人之间的合作不是一件简单的事情——尤其当人们都早已习惯了独自工作的时候。实施结对编程技术将给软件项目的开发工作带来好处,只是这些好处必须经过缜密的思考和计划才能真正体现出来。而另一方面,两个有经验的人可能会发现配对编程里没有什么技能的转移,但是让他们在不同的抽象层次解决同一个问题会让他们更快地找到解决方案,而且错误更少。

        两个程序员具有相同的缺点和盲点的可能性很小,所以当我们采用结对编程的时候会获得一个强大的解决方案。而这个解决方案恰恰是其它软件工程方法学中所没有的。
  在我们平时的编程当中,如果遇到一个非常难解决的问题(困难到对该项目产生厌烦的态度),那么你势必会希望录求帮助,无论是从信息量庞大的网上,还是从身边的技术大师那里,你都会努力去解决(前提是你有对计算机知识的热爱)。这个时候不妨采用结对编程试一下,其它的不说,可能感觉就不同。


2)组队情况,各队博客地址,github仓库地址,所选择的课题;

  1、队名:WxWz

  2、各队员博客地址:3170701103 王旭(https://www.cnblogs.com/014wangxu/)

             3170701104 王振(https://www.cnblogs.com/wshu221/)

  3、课题及仓库:四则运算 https://www.gitHub.com/jdbcsy/yunsuan

3)针对课题查阅的资料,对课题的理解;

  1、课题:

  开发一个自动生成小学四则运算题目的命令行 “软件”。实现 输入你要出题的个数,随机产生四则运算,然后用户回答,并且进行打分。

  规则:用随机数实现100以内的加、减、乘、除运算,其中和与积不能超过100,差不为负(即须大减小),商不为小数或分数(即必须整除)。要求总计输出10个运算式,每输出一个运算式,等待输入结果,然后进行对错判断并输出。最后输出统计答对的题数与分数。

  2、理解:

  (1)随机产生100之内的正整数的题目。此处要用到随机数

  (2)答案不能是负数,不可大于100且必须为整数。此处可以用一个函数来判断
  (3)题目数根据用户而定。
  (4)立即判断用户输入值的对错,并给出用户的正确答案。
  (5)最后给出分数。


4)二个人商量后,采用开发平台和技术工具

  使用VC++6.0,C语言编写代码。


5)其他,如二人讨论的记录

  1、由于是整数运算的题目,因此需要考虑真分数对题目的影响,要将其排除掉。

  2、可以把各运算分开进行。

  3、运算顺序问题,设计时应该考虑。

  4、结果的范围要求有很多,要注意不能遗漏

原文地址:https://www.cnblogs.com/014wangxu/p/12539066.html