实验二 结对编程 (第二阶段)

一、实验目标
  1)体验敏捷开发中的两人合作。

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

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

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

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

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

三、代码规范

1、变量名不可以是关键字,尽量做到见名知意。
2、宏定义里变量名全大写。
3、函数名采用小驼峰式命名法。
4、缩进正确
5、注释简明易懂

四、设计思路

1.首先需要一个能够生成随机四则运算的类ProduceProblem其中包括能够进行随机数的生成,随机符号的生成且将生成的数字串起来,并打印输出。

2.其次需要一个类Translate将上一个类中生成的中缀表达式转换为后缀表达式且保存,需要定义一个栈再按照栈的操作,对式子进行遍历重排

3.再次我们需要将保存起来的表达式进行运算,及引用一个新类Count对上述的后缀表达式进行遍历,然后运算结果

4.最后是小学生作业系统的核心,需要一个类Judge进行作业批改,且将对错与否传递给主类进行统计,并输出概率

UML类图

五、结对编程过程

这次结对编程我和队员李相杰主要是通过QQ(屏幕分享以及语音电话)来进行沟通交流的。

六、功能模块和具体代码

1.生成随机式子的主要代码:

2.中缀转换代码

3.计算式子结果的代码

4.判断正误的代码

5.主类代码

 6.在编写代码时我们遇到的问题:

(1)第一个问题就是如何不仅限于生成两个数字的加减乘除运算,解决方法即代码展示:我们想的是利用随机数来决定生成的数字个数即int m = 2 + (int) (Math.random() * 6); (每个运算式数目的个数符号的个数就是m-1,再将生成的数字与符号交叉排序生成一个字符串。)

(2)其次在实现表达式转换时我们也碰到一个问题:就是原来的代码是当碰到“-或+”时我们会将之前保存到栈里的会弹出底部的一个接到式子上去本来觉得没有问题,但在后来的运行过程中我们发现当有两个没有括号的减法式子相连的时候如3-2*5-6就会发生转换错误,两个减号的顺序会发生变化导致结果错误。经过讨论后我们发现我们上述的代码有一个问题就是,我们在减号碰到减号时弹出来的减号并没有接上去,且在真正算式中应该是要直到碰到“(”才会结束,所以我们将这一式子改成了while的循环,才得以解决。

(3)刚开始我们的想法是将Translate定为Judge的父类借此来继承它计算出的answer以此来比较正误,不过发现行不通。后来我两商议,反着来将Judge作为父类,让转换类来继承判断正误这项方法。

(4)在最后进行串联的时候发现了一个比较重大的问题,就是我们该如何统计正确题目的个数。最后我们决定flag的反复继承应用直到传递到主类中,为1即count加一进行统计.

7.运行测试截图

六、github项目

github仓库地址:https://github.com/lw484014130/my-travel-plans.git

七、实验总结

(1)这次实验应该算是自上大学以来做的比较复杂的实验了。因为第一次接触结对编程,所以刚开始还不熟悉所以进度有点慢。但到后来逐渐熟悉操作之后就感觉结对编程比自己一个要便捷的多。

(2)对于编写代码部分还是花费了挺多时间的。由于放假时间太长导致java编程的很多知识都忘记了,通过查阅资料以及浏览别人是如何操作的才渐渐编写出来代码,并且初期代码有好多报错通过漫长的修改才能正常运行。一开始写出来的程序功能并不是很完善,通过一步步修改才满足题目要求。

(3)这次实验收获良多,首先复习了一遍java编程,对于java的知识多了一点了解,其次对于git命令进一步掌握了,同时也熟悉了github的操作。

原文地址:https://www.cnblogs.com/lw484014130/p/12637108.html

时间: 2024-08-29 16:42:06

实验二 结对编程 (第二阶段)的相关文章

实验二 结对编程 第二阶段

结对编程(阶段二) 一.实验目标1)体验敏捷开发中的两人合作. 2)进一步提高个人编程技巧与实践. 二 .实验内容1)根据以下问题描述,练习结对编程(pair programming)实践: 2)要求学生两人一组,自由组合.每组使用一台计算机,二人共同编码,完成实验要求. 3)要求在结对编程工作期间,两人的角色至少切换 4 次: 4)编程语言不限,版本不限.建议使用 Python 或 JAVA 进行编程. 博客内容应该包括:1.代码规范 在编写代码时我们一般遵循代码规范的七大原则——空行.空格.

实验二 结对编程第二阶段

一.实验目标: 1)体验敏捷开发中的两人合作. 2)进一步提高个人编程技巧与实践. 二 .实验内容: 1)根据以下问题描述,练习结对编程(pair programming)实践: 2)要求学生两人一组,自由组合.每组使用一台计算机,二人共同编码,完成实验要求. 3)要求在结对编程工作期间,两人的角色至少切换 4 次: 4)编程语言不限,版本不限.建议使用 Python 或 JAVA 进行编程. 三 .实验过程记录 1)总体设计 2)  结对编程过程 刚开始我们只是简单的讨论了一下大概的模块设计.

软件工程 实验二 结对编程(第二阶段)

一.实验目标: 1)体验敏捷开发中的两人合作. 2)进一步提高个人编程技巧与实践. 二 .实验内容: 1)根据以下问题描述,练习结对编程(pair programming)实践: 2)两个学生组合,每人使用一台计算机,二人共同编码,完成实验要求. 3)针对课题查阅相关资料,加深对课题的理解: 4)在结对编程工作期间,两人的角色至少切换 4 次: 5)实验过程中合作编程两人互相探讨后采用开发平台和技术,语言工具,准备实验开展工作: 6)做好试验记录和分析工作. 三.实验过程 (一)问题描述 生命游

实验二结对编程 第二阶段

实验目标 1)体验敏捷开发中的两人合作. 2)进一步提高个人编程技巧与实践. 实验内容 1)根据以下问题描述,练习结对编程(pair programming)实践: 2)要求学生两人一组,自由组合.每组使用一台计算机,二人共同编码,完成实验要求. 3)要求在结对编程工作期间,两人的角色至少切换 4 次: 4)编程语言不限,版本不限.建议使用 Python 或 JAVA 进行编程. 1.代码规范 (1)空行与空格:空行起着分隔程序段落的作用,空行得体将使程序的布局更加清晰.每当定义变量和函数后都要

实验二结对编程 第一阶段

一.实验目标: 1)体验敏捷开发中的两人合作. 2)进一步提高个人编程技巧与实践. 二 .实验内容: 1)根据以下问题描述,练习结对编程(pair programming)实践: 2)要求学生两人一组,自由组合.每组使用一台计算机,二人共同编码,完成实验要求. 3)要求在结对编程工作期间,两人的角色至少切换 4 次: 4)编程语言不限,版本不限.建议使用 Python 或 JAVA 进行编程. 三 .问题描述: 我选择的问题是四则运算,具体要求如下: 开发一个自动生成小学四则运算题目的命令行 “

实验二 结对编程(阶段一)

实验记录—第一阶段 自我学习Github的相关知识的记录: https:////www.cnblogs.com/Incoming22/p/12419553.html 一.查阅资料    ?? 查阅相关资料加深对敏捷开发的和结对编程的理解: 1.敏捷开发 (1)概念: 敏捷开发以用户的需求进化为核心,采用迭代.循序渐进的方法进行软件开发.在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视.可集成和可运行使用的特征.换言之,就是把一个大项目分为多个相互联系,但也

实验二—结对编程第一环节

结对编程(英语:Pair programming)是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工作.一个人输入代码,而另一个人审查他输入的每一行代码.输入代码的人称作驾驶员,审查代码的人称作观察员(或导航员).两个程序员经常互换角色. 在结对编程中,观察员同时考虑工作的战略性方向,提出改进的意见,或将来可能出现的问题以便处理.这样使得驾驶者可以集中全部注意力在完成当前任务的“战术”方面.观察员当作安全网和指南.结对编程对开发程序有很多好处.比如增加纪律性,写出更好的代码等. 一.实验目

实验二 结对编程 第一阶段

一.实验目标: 1)体验敏捷开发中的两人合作. 2)进一步提高个人编程技巧与实践. 二 .实验内容 1)根据以下问题描述,练习结对编程(pair programming)实践: 2)要求学生两人一组,自由组合.每组使用一台计算机,二人共同编码,完成实验要求. 3)要求在结对编程工作期间,两人的角色至少切换 4 次: 4)编程语言不限,版本不限.建议使用 Python 或 JAVA 进行编程. 三.实验过程 1)查阅相关资料加深对敏捷开发和结对编程的理解: 敏捷开发:敏捷开发是一种从1990年代开

实验二 结对编程第一阶段

结对编程:第一阶段 ***一.实验目标:*** 1)体验敏捷开发中的两人合作. 2)进一步提高个人编程技巧与实践. ***二 .实验内容:*** 1)根据以下问题描述,练习结对编程(pair programming)实践: 2)要求学生两人一组,自由组合.每组使用一台计算机,二人共同编码,完成实验要求. 3)要求在结对编程工作期间,两人的角色至少切换 4 次: 4)编程语言不限,版本不限.建议使用 Python 或 JAVA 进行编程. ***三.第一阶段:*** ***1) 组队:*** 我的