1 题目要求
本次作业要求两个人合作完成,驾驶员和导航员角色自定,鼓励大家在工作期间角色随时互换,这里会布置两个题目,请各组成员根据自己的爱好任选一题。
题目1:
:我们在刚开始上课的时候介绍过一个小学四则运算自动生成程序的例子,请实现它,要求
:能够自动生成四则运算练习题
:可以定制题目数量
:用户可以选择运算符
:用户设置最大数(如十以内、百以内等)
:用户选择是否有括号、是否有小数
:用户选择输出方式(如输出到文件、打印机等)
:最好能提供图形用户界面(根据自己能力选做,以完成上述功能为主)
具体代码:四则运算
结对伙伴:马超群
2 具体实现
(1) 题目控制
Scanner scr = new Scanner(System.in);
int x = scr.nextInt();
int a = 0;
int b = 0;
int c = 0;
while (c < x)
nextInt()取值范围是题目数量而定,所以定义生成的题数在0~99之间,
如果想要更改数值范围可以在scr.nextInt()更改即可。
(2)随机函数
Random r = new Random();
随机函数运用目的是确保数字之间的运算不会出现重复。而数值范围控
制在0~99之间,对更大的数值可能会出现溢出情况,在这里还未处理。
(3)四则运算的实现
1)加法的实现
case 0: {
i = r.nextInt(30) + 1;
j = r.nextInt(30) + 1;
System.out.print(+i + "+" + j + "=");
Scanner sc = new Scanner(System.in);
int str = 0;
str = sc.nextInt();
int sum = i + j;
if (str == sum) {
System.out.println("回答正确");
c++;
a++;
} else {
System.out.println("回答错误");
int p = i + j;
System.out.println("正确答案是:" + p);
c++;
b++;
}
}
break;
2)减法实现
case 1: {
i = r.nextInt(30) + 1;
j = r.nextInt(30) + 1;
System.out.print(+i + "-" + j + "=");
Scanner sc = new Scanner(System.in);
int str = 0;
str = sc.nextInt();
int cha = i - j;
if (str == cha) {
System.out.println("回答正确");
c++;
a++;
} else {
System.out.println("回答错误");
int p = i - j;
System.out.println("正确答案是:" + p);
c++;
b++;
}
}
break;
3)乘法的实现
case 2: {
i = r.nextInt(30) + 1;
j = r.nextInt(30) + 1;
System.out.print(+i + "*" + j + "=");
Scanner sc = new Scanner(System.in);
int str = 0;
str = sc.nextInt();
int ji = i * j;
if (str == ji) {
System.out.println("回答正确");
c++;
a++;
} else {
System.out.println("回答错误");
System.out.println("正确答案是:" + i * j);
c++;
b++;
}
}
break;
4)除法的实现
case 3: {
i = r.nextInt(30) + 1;
j = r.nextInt(10) + 1;
if (i % j == 0) {
System.out.print(+i + "÷" + j + "=");
Scanner sc = new Scanner(System.in);
int str = 0;
str = sc.nextInt();
int shang = i / j;
if (str == shang) {
System.out.println("回答正确");
c++;
a++;
} else {
System.out.println("回答错误");
System.out.println("正确答案是:" + i / j);
c++;
b++;
}
}
}
break;
3 导航员的评价
对马同学的评价:嗯,认真负责,很大程度上帮助本次作业的需求和准备
工作,积极参与结对编程,在分析问题时遇到过分歧,后来在耐心的互相
解释和让步中找到解决办法,这样是最好的解决办法,还有在运算过程中
遇到棘手问题也是一起解决的,在一个结对中伙伴的力量都不可或缺,所
以以后的团队中更是需要大伙一起才能做好工作。马同学在需求分析中提
出,要解决题目数量最大上限,还有如果回答的不对该如何处理。我解决
的办法是,上限是nextInt最大数值,对给出的答案应该和计算的结果对
比,正确不处理,错误应给出正确答案,并提示。
4 总结
通过此次结对编程,收获的都是在交流中和解决实际问题中得到的,不去
解决问题也许就无法有所收获,所以应该在实际问题中去学习,然后在去
看书,查资料,这样才会有目的去学习,记忆最深刻。