首页 > 其他 > 详细

实验二 结对编程

时间:2020-03-22 11:09:15      阅读:56      评论:0      收藏:0      [点我收藏+]

一、实验目标:

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

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

二 、实验内容:

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

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

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

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

三、问题描述(二选一)

1.生命游戏

        生命游戏是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机,它包括一个二维矩形世界,这个世界中的每个方格居住着一个活着的或死亡的细胞。一个细胞在下一个时刻生死取决于相邻八个方格中活着的或死了的细胞的数量。如果相邻方格活着的细胞数量过多,这个细胞会因为资源匮乏而在下一个时刻死去;相反,如果周围活细胞过少,这个细胞会因太孤单而死去。

        游戏在一个类似于围棋棋盘一样的,可以无限延伸的二维方格网中进行。例如,设想每个方格中都可放置一个生命细胞,生命细胞只有两种状态:“生”或“死”。图中,用黑色的方格表示该细胞为“死”, 其它颜色表示该细胞为“生” 。

        游戏开始时, 每个细胞可以随机地(或给定地)被设定为“生”或“死”之一的某个状态, 然后,再根据如下生存定律计算下一代每个细胞的状态:

        每个细胞的状态由该细胞及周围 8 个细胞上一次的状态所决定;

        如果一个细胞周围有 3 个细胞为生,则该细胞为生,即该细胞若原先为死则转为生,若原先为生则保持不变;

        如果一个细胞周围有 2 个细胞为生,则该细胞的生死状态保持不变;

        在其它情况下,该细胞为死,即该细胞若原先为生则转为死,若原先为死则保持不变。

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

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

 

Week 1

一、项目概况                                                                       

选题

四则运算

开发工具

Eclipse

组员

盛静远(3171002236)、苏巧玲(3140802225)

项目地址

https://github.com/Shengjingyuan/Su-Sheng-travel-plans

博客园地址

https://www.cnblogs.com/shengjingyuan/

https://www.cnblogs.com/SQL666/

 

 

 

 

 

 

 

 

 

一、相关概念介绍

1.敏捷开发

         敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。简单地来说,敏捷开发并不追求前期完美的设计、完美编码,而是力求在很短的周期内开发出产品的核心功能,尽早发布出可用的版本。然后在后续的生产周期内,按照新需求不断迭代升级,完善产品。具体见https://blog.csdn.net/csdn15556927540/article/details/90712308

2.结对编程

        结对编程(英语:Pair programming)是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工作。一个人输入代码,而另一个人审查他输入的每一行代码。输入代码的人称作驾驶员,审查代码的人称作观察员(或导航员)。两个程序员经常互换角色。在结对编程中,观察员同时考虑工作的战略性方向,提出改进的意见,或将来可能出现的问题以便处理。这样使得驾驶者可以集中全部注意力在完成当前任务的“战术”方面。观察员当作安全网和指南。结对编程对开发程序有很多好处。比如增加纪律性,写出更好的代码等。结对编程是极端编程的组成部分。详细见https://baike.baidu.com/item/%E7%BB%93%E5%AF%B9%E7%BC%96%E7%A8%8B/7526152?fr=aladdin
二、项目准备
       本次项目通过Github平台来托管团队代码来开展协作。首先由队员1在本地创建好Java项目,在项目所在目录下创建Git仓库,将首次编写好的项目提交到本地的Git仓库后,上传到队员1的Github平台。

 技术分享图片

技术分享图片

技术分享图片
       在Github上托管好项目后,队员2根据队员1提供的项目地址,即可获取项目代码,并且可在该平台上直接加入协作,这样就实现了队员1和队员2之间的结队编程。
三、项目内容
  • 项目名称:四则运算
  • 包名称:四则运算
  • 文件名称:Arithmetic.java;ChangeToFenshuDemo.java;CT.java
  • main方法在文件3中,文件1中的GetQueston_int()和GetQuestion_div()方法分别用来生成整数表达式和分数表达式;
  • 文件1中定义了arithmetic()方法来求解表达式字符串的结果(返回值double型),支持分数表达式;
  • 文件2中定义了toFenshu()方法来将小数转化成分数,在GetQuestion_div()中使用它可以生成小于1的随机分数;
  • 当已做题数到达5的倍数时就出一道分数题,否则出整数题;
  • 定义一个大小30的字符串数组盛放已做题目,生成题目时需要判断是否已经做过;
  • 在文件1中计算除法时,运算数是BigDecimal型的,使用divide方法运算时如果没有告诉计算机小数位精确到哪位的话,将结果分为小数部分和整数部分,小数部分可能因为超过int数值范围而报错,所以需要在81行位置指定精度2。

四、代码准备

       本次项目选用的编程语言为Java,参考代码所属的博文如下:

https://cloud.tencent.com

五、初步成果
技术分享图片
      初次结果仍有不足,虽然可以判断对错,但是没有打分的功能。就此问题下周会与队友详细讨论。

 

 

 

 

 

 
 
 

实验二 结对编程

原文:https://www.cnblogs.com/shengjingyuan/p/12543751.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!