学习进度条:
在上周的软件工程课程中,老师给了我们一个编程项目的练习:
某公司程序员二柱的小孩上了小学二年级,老师让家长每天出30道(100以内)四则运算题目给小学生做。二柱立马就想到写一个小程序来做这件事。 这个事情可以用很多语言或者工具来实现:
•Excel、C/C++、Java、C#、VB、Unix Shell、Vbscript、Javascript、Perl、 Python、…
结对编程成员:肖启祥 2013110441 席胜 2013110441
对方博客地址:http://www.cnblogs.com/ShengXi-1994/
编程贡献比例:1:1
结对编程照片:
刚拿到这道题的时候,我们大家都觉得题目很容易理解,很简单,心中立刻涌现出一大堆算法设计思路,什么循环,产生随机数,数组存储等等。于是和小组的成员立刻结对准备入手写代码,但在与此同时就出现了一些细节的讨论,比如说产生随机数,可能会有重复题目的情况,而且题目要求只需要出题,而不是像计算器一样算出答案。还有各种类的接口如何实现等等问题,经过讨论之后,队友提出将随机数设为静态变量,这样就不会出现重复的题目。还有一个问题就是除法运算中除数不能为0的判断。这些随之即来的问题也突然中断了我们天真的想法,所以开始重视并认真讨论起来。经过一系列的讨论,我和室友开始决定编程实现这道题目的要求。
结对编程代码:
package com.shengxi.math;
import java.util.Random;
public class MyMath {
private static int num1;
private static int num2;
private static String operation;
private static String[] ptr = {"+","-","×","÷"};
private static final int NUMBER = 100;
public static void main(String[] args){
Random rand =new Random();
for(int i=1;i<=30;i++){
//随机获取数字和符号
num1=rand.nextInt(NUMBER);
num2=rand.nextInt(NUMBER);
operation=ptr[rand.nextInt(4)];
//去除除数为0
if(operation.equals("÷")){
if(num2==0){
num2= rand.nextInt(NUMBER);
}
}
if(i<10){
System.out.println(num1+operation+num2+"=");
}else
System.out.println(num1+operation+num2+"=");
}
}
}
import java.util.Random;
public class MyMath {
private static int num1;
private static int num2;
private static String operation;
private static String[] ptr = {"+","-","×","÷"};
private static final int NUMBER = 100;
public static void main(String[] args){
Random rand =new Random();
for(int i=1;i<=30;i++){
//随机获取数字和符号
num1=rand.nextInt(NUMBER);
num2=rand.nextInt(NUMBER);
operation=ptr[rand.nextInt(4)];
//去除除数为0
if(operation.equals("÷")){
if(num2==0){
num2= rand.nextInt(NUMBER);
}
}
if(i<10){
System.out.println(num1+operation+num2+"=");
}else
System.out.println(num1+operation+num2+"=");
}
}
}
输出结果:
结对编程项目的好处有:
1、两人一组编程可以互相帮助,探讨问题,更高效的解决问题;
2、可以通过学习队友编程方面好的地方,弥补自己的不足;
3、在调试过程中两个人也更容易发现BUG并合理解决BUG;
4、结对编程可以互相督促和修正自己认为对方不足的地方,同时也学习和他人共享编程经验;
5、可以更有效地模拟以后团队开发项目的工作环境,使自己对团队开发过程更加理解和熟悉。
结对编程心得:按两人一组结对尝试对项目开始进行编程。起初无从下手,和室友讨论了许久。并通过网络和相关书籍等途径查找了很多类似的资料。至此,我们关于项目的结对编程就更加理性化了,这样统一了命名规则和思想后,效率也有所提高。总而言之,这次的“结对编程”给了我很多启发,这个过程中遇到的问题以及解决的办法也让我受益匪浅,我明白了结对编程分工与合作有机协调的重要性。在和别人交流的过程之中,言简意赅的表达自己的思路或者想法,也提高了自己的语言交际能力。编程中自己有不规范的地方也经过室友的提示得到了规范,也深刻明白了取长补短的益处,看到别人对同样的问题有更好的解决办法后,自己也学到了这些知识。所以,对于一个结对编程开发项目,两人之间不仅有相互督促也有相互进步。组队编程明确需求是基础,提高效率是关键,互相帮助才是根本。
That's all,thank you for reading my blogs.