结对第二次作业

结对编程


一、题目要求

本次作业要求两个人合作完成,驾驶员和导航员角色自定,鼓励大家在工作期间角色随时互换,这里会布置两个题目,请各组成员根据自己的爱好任选一题。我们所选择的是题目一。

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

二、人员组成及角色分配

驾驶员:姜淼 Coding
驾驶员:吴东瀚 博客地址


三、功能实现

  • 设置四则运算生成器模式
void SetNum()//定制题目数量
{
    printf("输入题目数量\n");
    scanf("%d",&num);
}
void SetMul()//选择是否有乘除法
{
    printf("是否有乘除法,是为1,否为0\n");
    scanf("%d",&mul);
    if(mul==1)
        mul=4;
    else mul=2;
}
void SetMax()//用户设置最大数
{
    printf("输入最大数\n");
    scanf("%d",&maximum);
}
void SetBrackets()//设置是否有括号
{
    printf("是否有括号,是为1,否为0\n");
    scanf("%d",&brackets);
}
void SetDecimal()//设置是否有小数
{
    printf("是否有小数,是为1,否为0\n");
    scanf("%d",&decimal);
}

void SetIfprint()//设置是否打印
{
    printf("是否打印,是为1,存入文件为0,以回车结束\n");
    scanf("%d",&ifprint);
}

  • 生成面板
void Panel()//生成面板
{
    printf("1.题目数量          当前:%d\n",num);
    printf("2.设置是否有乘除法  当前:");
    if(mul==2)
        printf("否");
    else
        printf("是");
    printf("\t\n");
    printf("3.最大数            当前:%d\n",maximum);
    printf("4.设置是否有括号    当前:");
    if(brackets==0)
        printf("否");
    else
        printf("是");
    printf("\t\n");
    printf("5.是否有小数        当前:");
    if(decimal==0)
        printf("否");
    else
        printf("是");
    printf("\t\n");
    printf("6.是否打印          当前:");
    if(ifprint==0)
        printf("否");
    else
        printf("是");
    printf("\t\n");
    printf("7.显示题目                             \n");
    printf("8.退出                                 \n");
}
  • 生成题目
void SetCreat()//生成打印题目
{
    fp=fopen("data.txt","w");
    for(int i=0; i<num; i++)
    {
        forebracket();
        inttostr(rand()%maximum+1);
        Adddecimal();
        for(int j=0; j<rand()%3+2; j++)
        {
            chartostr(Symbol[rand()%mul]);
            forebracket();
            inttostr(rand()%maximum+1);
            Adddecimal();
            backbracket();
        }
        if(probrackets==1)
            chartostr(')');
        chartostr('=');
        chartostr('\n');
        chartostr('\0');
        probrackets=0;
        if(ifprint==1)
            printf("%s\n",str);
        if(ifprint==0)
            fputs(str,fp);
        I=0;
    }
    if(ifprint==0)
        printf("已存入文件\n");
}


四、测试

下面只给出一个测试样例,具体请看导航员博客。


五、评价与心得体会、合作照片

  • 评价与心得体会
    第二次结对编程实验是由我和领航员合作完成的。在本次实验中,我担任了驾驶员,我的队友担当了领航员角色,辅助我进行了代码的编写。在编写过程中的过程中我们一起讨论了随机数,括号插入等一系列问题。在讨论的过程中我们对于程序算法,以及实现有了更加深层次的认知并付诸以实践。吴东翰在进行代码测试及改进的过程中给我了很大的帮助,在解决问题过程中,驾驶员可以经常以另外一个角度思考协助我解决问题。在进行测试的过程中,我们从多角度,对我们的程序进行了测试并改进了相关问题。在代码的编写过程中,由于很长时间时间没进行代码的编写,编写的很生疏。而且并没有完成图形界面的题目要求,深感不足,以后应加强学习争取早日迎头赶上,弥补不足。这次的结对作业的过程中,最重要的是让我学到了与人合作编程的好处与方法,为以后更多的合作项目打下了良好的基础。
  • 合作照片

posted @ 2018-04-17 22:26  姜淼  阅读(143)  评论(0编辑  收藏  举报