一、实验目标:
1)体验敏捷开发中的两人合作。
2)进一步提高个人编程技巧与实践。
二 、实验内容:
1)根据以下问题描述,练习结对编程(pair programming)实践;
2)要求学生两人一组,*组合。每组使用一台计算机,二人共同编码,完成实验要求。
3)要求在结对编程工作期间,两人的角色至少切换 4 次;
4)编程语言不限,版本不限。建议使用 Python 或 JAVA 进行编程。
三、实验过程
1)课题准备
本来确定题目是“生命游戏”,而后两人讨论中觉的这个题目比较吃力,两人无法完成,于是改为“四则运算”;在交替写代码的过程中,要求代码规范,符合Java书写标准,方法变量定义要清晰明了,有辅助解释的注释; 两人及时沟通,相互交流,指出对方的不足与失误; 目标明确,不拖延,相互促进,相互学习。
2)算法分析
选择语句建立模型,进行代码的总体部分的描述,建立四个模块进行加减乘除的操作。循环语句进行题目的输出,通过四类模块来判断题目答案是否正确,从而得出分数,在下面显示出来。总体流程图如下:
3)实验源码
实验代码:
package com.ys.aa;import java.util.Random;
import java.util.Scanner; public class ys {
public static void main(String[] args) {
System.out.println("请输入题目数量:");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int k=0, count=0;
while( k!=num) {
System.out.println("第"+(k+1)+"题:");
Random ran = new Random();
int i=ran.nextInt(4);
switch (i) {
case 0:
count+=add();
break;
case 1:
count+=sub();
break;
case 2:
count+=mul();
break;
case 3:
count+=div();
break;
default:
break;
}
k++;
}
System.out.println("计算结束,你答对了"+count+"题,获得"+count+"分。");
}
public static int add(){//加法
Random ran = new Random();
int a =ran.nextInt(101);
int b=ran.nextInt(101-a);
int an=a+b;
System.out.println(a+"+"+b+"="+"?");
System.out.print("请输入答案:");
Scanner sc2 = new Scanner(System.in);
int an2= sc2.nextInt();
if(an2==an) {
return 1;
}
return 0;
}
public static int sub(){//减法
Random ran = new Random();
int a =ran.nextInt(101);
int b=ran.nextInt(a+1);
int an=a-b;
System.out.println(a+"-"+b+"="+"?");
System.out.print("请输入答案:");
Scanner sc2 = new Scanner(System.in);
int an2= sc2.nextInt();
if(an2==an) {
return 1;
}
return 0;
}
public static int mul(){//乘法
Random ran = new Random();
int a =ran.nextInt(101);
int b=ran.nextInt(100/a+1);
int an=a*b;
System.out.println(a+"*"+b+"="+"?");
System.out.print("请输入答案:");
Scanner sc2 = new Scanner(System.in);
int an2= sc2.nextInt();
if(an2==an) {
return 1;
}
return 0;
}
public static int div(){//除法
Random ran = new Random();
int a =ran.nextInt(100)+1;
int b=ran.nextInt(100/a)+1;
int c=a*b;
int an=c/a;
System.out.println(c+"/"+a+"="+"?");
System.out.print("请输入答案:");
Scanner sc2 = new Scanner(System.in);
int an2= sc2.nextInt();
if(an2==an) {
return 1;
}
return 0;
}
} 4)运行结果
四、实验小结
结对编程实验是两个人共同合作的从而能良好的完成实验,并使双方都获得收益的过程。本次实验通过对四则运算的编写与测试,与小组成员进过不断地修改与努力,最终成功地完成了本次实验。实现了其基本的功能。本次实验也使自己明白了只有不断地去发现错误才能去改正错误,同学之间的交流是必不可少的,只有互相汲取,互相发现,互帮互助才能更好地完成一件事。结对编程不仅促进了我们的学习,对我们生活也起到了很大的作用,增进了同学们之间的友谊,为以后的交流与学习做下了基础与铺垫。