zoukankan      html  css  js  c++  java
  • 结对编程第一阶段

     一、实验目标:

     1)体验敏捷开发中的两人合作。

    2)进一步提高个人编程技巧与实践。

    二 、实验内容

    1)根据以下问题描述,练习结对编程(pair programming)实践;

    2)要求学生两人一组,自由组合。每组使用一台计算机,二人共同编码,完成实验要求。

    3)要求在结对编程工作期间,两人的角色至少切换 4 次;

    4)编程语言不限,版本不限。建议使用 Python 或 JAVA 进行编程。

    三、实验过程

    1.查阅相关资料加深对敏捷开发和结对编程的理解

    (1)查阅资料

    敏捷开发:https://baike.baidu.com/item/%E6%95%8F%E6%8D%B7%E5%BC%80%E5%8F%91

    结对编程:https://baike.baidu.com/item/%E7%BB%93%E5%AF%B9%E7%BC%96%E7%A8%8B

    (2)理解

          软件开发面临着需求不断变化和快速交付的挑战,所以人们开始尝试敏捷开发方法,敏捷开发是一-种基于更紧密的团队协作、能够有效应对快速变化需求、快速交付高质量软件的迭代和增量的新型软件开发方法。而结对编程是一种敏捷开发的方法。现阶段我    们没有办法面对面结对编程,所以采用远程结对编程。

    2.组队情况

     队名:代码敲不队

    (1)各队博客地址:

             王锦(https://www.cnblogs.com/wjin/) 张子毓(https://www.cnblogs.com/lingluan23333/)  四则运算 

    (2)github仓库地址

             https://github.com/Wjinfiny/daimaqiaobu

    (3)所选择的课题

            四则运算:

            开发一个自动生成小学四则运算题目的命令行 “软件”。实现 输入你要出题的个数,随机产生四则运算,然后用户回答,并且进行打分。

     规则:用随机数实现100以内的加、减、乘、除运算,其中和与积不能超过100,差不为负(即须大减小),商不为小数或分数(即必须整除)。要求总计输出10个运算式,每输出一个运算式,等待输入结果,然后进行对错判断并输出。最后输出统计答对的题数与分数。

    3、对课题的理解

    (1) 需求理解

    随机产生需要计算的式子10个、计算结果

    输入:用户计算的结果
    输出:判断正误,给出分数
    满足真分数的运算如:1/3 + 1/4 = 7/12
    处理的运算符为 +, −, ×, ÷
    能处理用户的输入,并判断对错,统计分数。


    (2)设计思路
    自动生成四则运算,需要用到随机数,用随机数随机生成数字,以及随机生成0,1,2,3分别代表加减乘除符号以switch语句进行分类
    特殊情况主要有除数不能为0,假如除数为0,则再产生一个随机数,利用while循环;
    用count统计做对的条数,与总数相除作为正确率

    4、采用开发平台和技术工具

          经过我们的讨论,我们决定使用Dev开发平台,开发语言为C语言;

          实际我们是先确定开发语言的,我们直接了当的选择了C语言,因为我们俩都对C语言最为熟悉,选择C语言后,我们再决定选择了四则运算,因为相对于生命游戏需要良好的界面化设计,我们认为四则运算相对更是适合用面向过程的C语言编写。接下来我们相互说了自己的开发平台,我们决定使用Dev开发。

    5、其他

        我们再实验开始时,讨论了大概的进度。

        我们根据老师布置的阶段编程任务,也参考了其他同学的进度,最后决定3月21日完成阶段编程一,并对四则运算编程的基本代码框架进行确定;在3月25日及星期三下午进行第二阶段的结对编程。

        我们在结对编程的一开始就遇到了困难,我们对于托管并不是很了解,如何保持远程仓库与本地仓库保持一致等等问题都让我们苦恼,所以用重新看了老师教学视频,做了选做的托管实验,加深了对托管的理解后,我们就正式开始准备结对编程。

    四、关于算法的讨论

    1. 我们对题目进一步进行了讨论,首先题目说的四则运算复杂度到底是多少,有可能是1+2=3这样很简单的的运算,也有可能是三到四个运算符的复杂运算,如果是手动输入产生的运算式还比较简单,张子毓指出这是随机生成的式子,那么怎么确定式子的复杂度       呢。我们之间有了分歧,张子毓认为可以固定式子的长度为三到四个运算符,我认为可以利用随机数,确定式子长度微一到五个运算符。最后我们决定等写代码时根据具体复杂程度来确定方案。

    2. 我们还讨论了运算符和运算数是用数字放还是堆栈。如果是生成式子用数组比较简单,因为运算符只有四个;但是如果用数组,在运算时相对于堆栈要麻烦,优先级不好处理,所以初步确定用堆栈存放运算符和运算数。

    3. 我们也基本了解掌握了判断运算符优先级和两数运算的算法。

    准备工作基本都已经做好了,万事俱备,只欠周三的到来 ,嘻嘻!

  • 相关阅读:
    HDU 3874 Necklace 区间查询的离线操作
    POJ 1651 Multiplication Puzzle (区间dp)
    POJ 2528 Mayor's posters(离散+线段树)
    POJ 2886 Who Gets the Most Candies?
    webgl教程
    GL_ARRAY_BUFFER 和 GL_ELEMENT_ARRAY_BUFFER
    几个不错的webgl教程网
    svg图标库
    sublime text nodejs set
    图形学着色器学习
  • 原文地址:https://www.cnblogs.com/wjin/p/12538421.html
Copyright © 2011-2022 走看看