博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
结对第二次作业
阅读量:7010 次
发布时间:2019-06-28

本文共 3198 字,大约阅读时间需要 10 分钟。

1.题目选择及要求

  

  对于本次作业,我先和队友阅读了作业要求,并对这俩道编程题进行了研究,最后一致认为第一题更适合我们。以下是小学四则运算自动生成程序的相关要求:

  • 能够自动生成四则运算练习题
  • 可以定制题目数量
  • 用户可以选择运算符
  • 用户设置最大数(如十以内、百以内等)
  • 用户选择是否有括号、是否有小数
  • 用户选择输出方式(如输出到文件、打印机等)
  • 最好能提供图形用户界面(根据自己能力选做,以完成上述功能为主)

2.结对伙伴

队友博客地址:

我在本次作业中担任驾驶员,以下是我的职责:

  • 能够完成全部代码工作,程序基本实现全部要求功能,并将代码上传至coding.net或者GitHub代码托管系统中。
  • 能够对导航员在本次编程工作中起到的作用给出客观评价,并完成500字以上的总结。

    3.主要代码分析

    代码地址 :

程序流程图:

1345516-20180416144232437-1494194452.png

1.变量定义

int title_number=0;//题目数量        int[] operator={1,1,1,1};//加减乘除四个运算符选择        int maxnum=100;//设置最大数        int has_bracket=0;//选择是否有括号        int has_decimal=0;//是否有小数        int print_way=0;//选择输出方式

2.用户要求输入处理

  在这里我以是否有括号进行了说明,其他的处理都类似。

System.out.println("请选择是否有括号:");        System.out.println("1.有   2.没有");        while(1==1)        {            has_bracket=in.nextInt();            if(has_bracket==1)            {                break;            }               else if(has_bracket==2)            {                has_bracket=0;                break;            }            else                System.out.println("输入错误,请重新输入:");        }

3.算式输出

我将算式输出分成了以下四种情况:

  • 不含括号且不含小数
  • 不含括号且含小数
  • 含括号且不含小数
  • 含括号且含小数
    其中,含括号且含小数的情况最复杂,所以我以这种情况为例解释一下我具体实现的过程。
/*相关函数说明*float get_random_float(int maxmun) 随机输出一个小于maxmun的浮点数*int get_random_int(int minmun,int maxmun) 随机输出一个介于minmun和maxmun的正整数*char get_operator(int[] operator)根据加减乘除运算符数组随机输出一个运算符*/int num=get_random_int(2,6);//算式中一共包含的数字总数int flag=0;//标记括号是否已经输出int bracket=0;//标记左括号输出概率int bracket_you=0;//标记右括号输出概率int decimal=0;//标记小数输出概率int pre=0;//标记当前应输出数字,还是运算符while(num!=0){    if(pre==0)    {        if(num!=1&&flag==0)        {            bracket=get_random_int(0,10);            if(bracket>8)            {                System.out.print("(");                flag=num;            }        }        decimal=get_random_int(0,4);        if(decimal<3)            System.out.print(get_random_int(1,maxnum));        else            System.out.printf("%.2f",get_random_float(maxnum));        pre=1;        num--;    }    else    {        if(bracket>8&&(flag-num)!=1&&flag!=1000)        {            bracket_you=get_random_int(0,10);            if(bracket_you<6)            {                System.out.print(")");                flag=1000;            }        }        System.out.print(get_operator(operator));        pre=0;    }}//如果数字已经输出完毕,判断右括号是否已经输出过if(flag!=1000&&bracket>8)    System.out.print(")");System.out.print("="+"\n");

4.程序运行结果

1)输出到屏幕

1345516-20180416144446943-202251663.png

2)输出到文件

1345516-20180416144507352-567781371.png
1345516-20180416144531103-481743415.png

5.程序综述

  这个程序已经实现了题目的所有要求,能够自动生成指定要求的四则运算练习题,但美中不足的地方是没有图形界面。

4.导航员工作评价

  此次结对编程,我担任的是驾驶员,我的partner梁恒担任的是领航员的角色。通过此次小学四则运算自动生成程序的例子,经过实战吧算是,我认为结对编程既有好处也有不足之处。好处在于编程的时候我们也就在复审,这样能够降低我们程序出错的概率,提高代码质量,两个人相互讨论,互相合作,会对问题分析的更透彻,对问题有更好的解决能力。比如在此次小学四则运算自动生成程序的例子中,我在写随机生成整数的函数中,没有对输入的俩个参数进行大小比较,忽略了为零的情况,但是梁恒正好在做这个函数的代码测试中发现了这个小问题,我就及时的改正过来。如果这是我一个人在编程的话,把这种小问题忽略掉,而且程序还是有bug,我可能要花出好长的时间来找这个bug,可能很长时间也找不出来,还要去请教别人。所以结对编程时我们可以节省一些寻找bug的时间,关键函数还是要再测试的。而且结对编程时,我感觉两个人在一起的话编程的效率也比一个人编程时要高,队友比较有激情,所以在这方面他激励着我,编程效率更高,节奏更快,没有在一个小问题上浪费更多的时间。不过任何事物都是有两面性的,结对编程同样也不例外,它也是存在着一些问题的。对于我们来说,我觉得在时间上有问题。结对编程需要找我们都有空的时候,除去正常的上课时间,我还报了校内的考研班,他报了校外的考研班,我们时间冲突着还(这就贼气),而且我们每个人还都有自己的事情,找一个两个人都有空的时间编程不是很简单啊,还好我们是舍友,所以很快度过磨合阶段,利用晚上的时间在一起讨论,编程。总的来说,这次的结对编程对我们来说还是有新鲜感的,相信未来的结对编程我们会更加默契,加油!

最后附上合照一张:

1345516-20180416150257293-757659607.png

转载于:https://www.cnblogs.com/haozhirong/p/8855827.html

你可能感兴趣的文章
Signal函数
查看>>
[Errno 14] PYCURL ERROR 7 - "couldn't connect to host"
查看>>
chrono
查看>>
hdu2586 lca模板(在线路径倍增)
查看>>
AscII表
查看>>
BASE64图片转字符串
查看>>
springboot-国际化
查看>>
C11中替代gets()的函数
查看>>
[转]水晶报表自动补空行及格线(无分组版)
查看>>
PHP里用户密码的回复和管理
查看>>
jqprint导入jqgrid表格时,内容溢出的原因以及解决方法
查看>>
IOS self.使用
查看>>
POJ1151 Atlantis
查看>>
UltraEdit编辑器使用心得之正则表达式篇
查看>>
dnspod 批量添加记录
查看>>
ZCMU训练赛-H(模拟)
查看>>
Codeforces Round #449 (Div. 2) A. Scarborough Fair【多次区间修改字符串】
查看>>
CCCC L1-039. 古风排版【图形输出/循环控制行列/模拟/细节】
查看>>
POJ 1182 食物链 【带权并查集/补集法】
查看>>
V字形
查看>>