题目:

 

一.思考甲方给出的项目要求:

我和魏圆月同学进一步理解题目,发现:

1.因为问题的客户群体是低年级的小学生,小学阶段还没有学到分数和小数,所以100以内的除法需要设置条件保证除法的答案是整数,而不能是分数。

2.讨论该问题的应用场景:为了更好地增强人机交互体验,我们拟计划通过安卓页面的形式实时生成题目,更直观地展示练习题,该方式应用到小学生数学的教学中,可以由老师在白板上限时出题,类似报听写的方式自动提供口算题,设置上课抢答的方式。

二.讨论小项目的实现方式:

由于本学期学到了Android 开发的基础页面设计,因此我们结对编程时,魏圆月负责设计出题页面和按钮监听事件,我负责设置判断条件,处理文本框接收的信息,补充函数接口的数值实现方法。

Android开发语言:Java

实现方式:魏圆月同学在我的电脑上和我轮流进行编程

三.结对编程过程:

1.约好时间面对面讨论结对编程的实现方式

2.讨论结束后写好拟实现方式和拟实现功能(后期由于程序出现bug:页面跳转出现错误,暂时无法解决于是选择折中方案)

3.初步尝试开发(在设计页面的时候多次尝试设计页面)

 

 

 

 

 

由于页面跳转屡次失败,并且一运行程序就出现报错卡退,因此我和魏同学新建了另一个项目重新开始编写代码,为了避免出现页面跳转的错误,我们只设计了一个页面和一个mainactivity,出现的bug可能是由于Android课程还没有学到后期,因此暂时无法解决bug

 

我和魏圆月同学交流讨论的过程在图片的代码注释中。

 

 

 

 

 

设置了private void myRandom()函数接口,生成随机数,并在函数内部编写判断条件

 

 

 

 

 

在设置判断条件的时候,我们一边编写代码一边测试结果(有些条件就是基于测试不正确的结果后补充的)如下图:

这里的除法不对,减法也不对

修改条件后:加减乘除都已经测试完毕

 最终简单设计页面的颜色

 最终版本:

 四.心得体会

1.结对编程能发现很多自己想不到的问题,在编写代码的时候也能发现不一样的编程习惯,编程想法等等,可以在编程之中有效降低程序编写的错误率,做到及时的查漏补缺与错误修正,进而避免潜在问题地产生。在此过程之中,我们可以从彼此身上学得新知,取长补短、互相增进。

2.在不会的时候互相提供思路,搜索资料,一起搜索的时候,因为两个人思考方式不一样,所以能够查漏补缺,发现对方没有发现的潜在的问题。比如判断条件,在判断除法的时候,遇到的困难是:如何保证结果不是分数?采用什么样的解决方法将生成的分数修改成整数?交流后最终找到解决方法。

3.在设置判断条件的时候,我们一边编写代码一边测试结果,对方能发现结果中出现的一些问题,两个人可以观察到更多细节,比如两个随机数容易出现相同的情况,我们采用while循环重复生成随机数并反复判断。

eg:


//考虑整除的情况很多,
// eg:100/1=100(是整数倍数但是两个值相差较大),
// 50/66<1(分数情况),
// 74/3(不是整数倍数,是四舍五入的小数)

//乘法
xxx=mRandom.nextInt(100)+1;
yyy=mRandom.nextInt(10)+1;
//设置乘法一个为100以内,一个为10以内,
// 可以生成2x8和22x4类型的,不能都是两位数,因为10x10的最大值是100

//eg:63+86=149,将63改为63-(149-100)/2(除2是因为对于x和y需要均等地减少一半,保证缩小随机数之后不影响加法的随机生成规律)

 

//负数情况交换数值,保证答案在0-100之内

 

两个人思考的判断条件比一个人的更多一点,虽然我和魏圆月同学尽量考虑了不同结果的情况,但是仍然有一些我们没有考虑到的细节。

 

 posted on 2023-04-18 09:51  Angiv  阅读(127)  评论(3编辑  收藏  举报