软件工程第二次结对作业(代码片段)

qianqian丶 qianqian丶     2022-11-03     501

关键词:

一.题目要求

我们在刚开始上课的时候介绍过一个小学四则运算自动生成程序的例子,请实现它,要求:
能够自动生成四则运算练习题
1.可以定制题目数量
2.用户可以选择运算符
3.用户设置最大数(如十以内、百以内等)
4.用户选择是否有括号、是否有小数
5.用户选择输出方式(如输出到文件、打印机等)
6.最好能提供图形用户界面(根据自己能力选做,以完成上述功能为主)
我们选择第一题作为结对项目,第一题要求生成一个四则运算程序,并且加入了与用户互动的部分,例如括号的选择,运算符的选择,等等,至于图形化界面部分,由于我俩都没有学习过c++图形界面设计方面的知识,所以只能选择放弃,转而用运行窗口来进行替代。

二.编程概况

驾驶员:陈大千
领航员:李子涵
编程语言:c++
开发工具:dev c++
运行环境:windows 10

三.功能模块设计

本次作业代码已上传至coding:https://coding.net/u/Bluebird_/p/projects_Pairing/git/blob/master/%E7%BB%93%E5%AF%B92.cpp?public=true
整数模块代码:

void integer_Cal()

    int a,b,c,d;              //定义四个随机整数
    a=(rand()%m)+1;       //生成随机整数
    b=(rand()%m)+1;
    c=(rand()%m)+1;
    int op1,op2,op3;        //定义三个符号变量
    op1=rand()%4;         //生成随机符号变量
    op2=rand()%4;
    if(brackets==1)         //无括号的情况
    
        if(ope==1)        //运算符号为加法
        
            cout<<a<<"+"<<b<<"+"<<c<<"="<<endl;
            outfile<<a<<"+"<<b<<"+"<<c<<"="<<endl;
        
        else if(ope==2)  //运算符号为减法
        
            cout<<a<<"-"<<b<<"-"<<c<<"="<<endl;
            outfile<<a<<"-"<<b<<"-"<<c<<"="<<endl;
        
        else if(ope==3) //运算符号为乘法
        
            cout<<a<<"*"<<b<<"*"<<c<<"="<<endl;
            outfile<<a<<"*"<<b<<"*"<<c<<"="<<endl;
        
        else if(ope==4)  //运算符号为除法
        
            cout<<a<<"/"<<b<<"/"<<c<<"="<<endl;
            outfile<<a<<"/"<<b<<"/"<<c<<"="<<endl;
        
        else               //四种运算符号交替
        
            cout<<a<<op[op1]<<b<<op[op2]<<c<<"="<<endl;
            outfile<<a<<op[op1]<<b<<op[op2]<<c<<"="<<endl;
        
    
    else                       //有括号的情况             
    
        int k;
        k=rand()%2;  //控制括号位置
        if(k==0)         //k=0为时前两个变量之间加入括号
        
            if(ope==1)
            
                cout<<"("<<a<<"+"<<b<<")"<<"+"<<c<<"="<<endl;       //输出至窗口
                outfile<<"("<<a<<"+"<<b<<")"<<"+"<<c<<"="<<endl;    //输出至文件
            
            else if(ope==2)
            
                cout<<"("<<a<<"-"<<b<<")"<<"-"<<c<<"="<<endl;
                outfile<<"("<<a<<"-"<<b<<")"<<"-"<<c<<"="<<endl;
            
            else if(ope==3)
            
                cout<<"("<<a<<"*"<<b<<")"<<"*"<<c<<"="<<endl;
                outfile<<"("<<a<<"*"<<b<<")"<<"*"<<c<<"="<<endl;
            
            else if(ope==4)
            
                cout<<"("<<a<<"/"<<b<<")"<<"/"<<c<<"="<<endl;
                outfile<<"("<<a<<"/"<<b<<")"<<"/"<<c<<"="<<endl;
            
            else
            
                cout<<"("<<a<<op[op1]<<b<<")"<<op[op2]<<c<<"="<<endl;
                outfile<<"("<<a<<op[op1]<<b<<")"<<op[op2]<<c<<"="<<endl;
               
        
        else
        
            if(ope==1)
            
                cout<<a<<"+"<<"("<<b<<"+"<<c<<")"<<"="<<endl;
                outfile<<a<<"+"<<"("<<b<<"+"<<c<<")"<<"="<<endl;
            
            else if(ope==2)
            
                cout<<a<<"-"<<"("<<b<<"-"<<c<<")"<<"="<<endl;
                outfile<<a<<"-"<<"("<<b<<"-"<<c<<")"<<"="<<endl;
            
            else if(ope==3)
            
                cout<<a<<"*"<<"("<<b<<"*"<<c<<")"<<"="<<endl;
                outfile<<a<<"*"<<"("<<b<<"*"<<c<<")"<<"="<<endl;
            
            else if(ope==4)
            
                cout<<a<<"/"<<"("<<b<<"/"<<c<<")"<<"="<<endl;
                outfile<<a<<"/"<<"("<<b<<"/"<<c<<")"<<"="<<endl;
            
            else
            
                cout<<a<<op[op1]<<"("<<b<<op[op2]<<c<<")"<<"="<<endl;
                outfile<<a<<op[op1]<<"("<<b<<op[op2]<<c<<")"<<"="<<endl;
               
        
    

小数模块代码:

void decimal_Cal()

    double a,b,c,d;                                          //定义四个浮点小数
    a=(double)rand()/RAND_MAX*m+1.0;     //随机生成四个随机小数
    b=(double)rand()/RAND_MAX*m+1.0;
    c=(double)rand()/RAND_MAX*m+1.0;
    int op1,op2;                                             //定义两个符号变量
    op1=rand()%4;                                        //随机生成符号变量
    op2=rand()%4;
    if(brackets==1)                                        //没有括号情况
    
        if(ope==1)
        
            cout<<a<<"+"<<b<<"+"<<c<<"="<<endl;
            outfile<<a<<"+"<<"("<<b<<"+"<<c<<")"<<"="<<endl;
        
        else if(ope==2)
        
            cout<<a<<"-"<<b<<"-"<<c<<"="<<endl;
            outfile<<a<<"-"<<"("<<b<<"-"<<c<<")"<<"="<<endl;
        
        else if(ope==3)
        
            cout<<a<<"*"<<b<<"*"<<c<<"="<<endl;
            outfile<<a<<"*"<<"("<<b<<"*"<<c<<")"<<"="<<endl;
        
        else if(ope==4)
        
            cout<<a<<"/"<<b<<"/"<<c<<"="<<endl;
            outfile<<a<<"/"<<"("<<b<<"/"<<c<<")"<<"="<<endl;
        
        else
        
            cout<<a<<op[op1]<<b<<op[op2]<<c<<"="<<endl;
            outfile<<a<<op[op1]<<"("<<b<<op[op2]<<c<<")"<<"="<<endl;
        
    
    else                                                    //有括号情况
    
        int k;
        k=rand()%2;    
        if(k==0)                                     //括号加在前两个变量之间
            
            if(ope==1)                        //随机生成符号为加号
            
                cout<<"("<<a<<"+"<<b<<")"<<"+"<<c<<"="<<endl;
                outfile<<"("<<a<<"+"<<b<<")"<<"+"<<c<<"="<<endl;
            
            else if(ope==2)         //随机生成符号为减号
            
                cout<<"("<<a<<"-"<<b<<")"<<"-"<<c<<"="<<endl;
                outfile<<"("<<a<<"-"<<b<<")"<<"-"<<c<<"="<<endl;
            
            else if(ope==3)         //随机生成符号为乘号
            
                cout<<"("<<a<<"*"<<b<<")"<<"*"<<c<<"="<<endl;
                outfile<<"("<<a<<"*"<<b<<")"<<"*"<<c<<"="<<endl;
            
            else if(ope==4)         //随机生成符号为除号
            
                cout<<"("<<a<<"/"<<b<<")"<<"/"<<c<<"="<<endl;
                outfile<<"("<<a<<"/"<<b<<")"<<"/"<<c<<"="<<endl;
            
            else                        //随机生成四个符号
            
                cout<<"("<<a<<op[op1]<<b<<")"<<op[op2]<<c<<"="<<endl;
                outfile<<"("<<a<<op[op1]<<b<<")"<<op[op2]<<c<<"="<<endl;
               
        
        else                               //有括号情况
        
            if(ope==1)               
            
                cout<<a<<"+"<<"("<<b<<"+"<<c<<")"<<"="<<endl;
                outfile<<a<<"+"<<"("<<b<<"+"<<c<<")"<<"="<<endl;
            
            else if(ope==2)
            
                cout<<a<<"-"<<"("<<b<<"-"<<c<<")"<<"="<<endl;
                outfile<<a<<"-"<<"("<<b<<"-"<<c<<")"<<"="<<endl;
            
            else if(ope==3)
            
                cout<<a<<"*"<<"("<<b<<"*"<<c<<")"<<"="<<endl;
                outfile<<a<<"*"<<"("<<b<<"*"<<c<<")"<<"="<<endl;
            
            else if(ope==4)
            
                cout<<a<<"/"<<"("<<b<<"/"<<c<<")"<<"="<<endl;
                outfile<<a<<"/"<<"("<<b<<"/"<<c<<")"<<"="<<endl;
            
            else
            
                cout<<a<<op[op1]<<"("<<b<<op[op2]<<c<<")"<<"="<<endl;
                outfile<<a<<op[op1]<<"("<<b<<op[op2]<<c<<")"<<"="<<endl;
               
        
    

四.队友评价及总结

??这次编程作业中,李子涵担任我的领航员,协助完成了本次代码的设计,在这里,向李同学表示感谢。最初拿到题目时,我们并没有具体思路,但经过细致的交流之后,得到了一个初步的方案,循着这个方案,我们将问题逐步分解为一个一个模块,然后逐一击破。
??本次作业我们采用模块化设计来实现,主要由两个模块构成,其中一个模块负责证书运算部分,另一个模块负责小数运算部分,在两个模块内部,我们又分别对有无括号情况进行了判断,对于有括号的情况,主要是要考虑括号的位置,第一种情况,括号包含前两个数字,第二种情况,括号在包含后两个数字,为了解决这个问题,我们采用生成随机数的方法进行了解决,如果生成随机数为0,则在前两个数字之间,如果随机数为1,则在后两个数字之间,接下来就是四则运式的生成问题了,由于我俩都没有图形化设计相关知识,所以这一块只能选择放弃,转而选择较为普通的运行窗口设计方案。PS:(我们会在之学习的!!!)
??总之,这次结对编程培养了我们的协助能力,问题解决能力,希望在之后学习生活中,能够有较多这样互相学习、互相进步的机会,这种机会对我们来说绝对是大有裨益。

软件工程第五次作业——第二次结对编程(代码片段)

题目要求本次作业要求两个人合作完成,驾驶员和导航员角色自定,鼓励大家在工作期间角色随时互换,这里会布置两个题目,请各组成员根据自己的爱好任选一题。题目1:我们在刚开始上课的时候介绍过一个小学四则运算自... 查看详情

软件工程第二次作业—结对编程

1.两人组成一队,进行结对编程组员:安梨雅1500802039  http://www.cnblogs.com/aly15109725486/    王莉娟1500802028 http://www.cnblogs.com/w1500802028/ 2.代码地址:https://coding.net/u/wlj1500 查看详情

结对第二次作业

软件工程结对编程第二次作业四则运算要求能够自动生成四则运算练习题可以定制题目数量用户可以选择运算符用户设置最大数(如十以内、百以内等)用户选择是否有括号、是否有小数用户选择输出方式(如输出到文件、打印... 查看详情

第二次结对作业(代码片段)

一、结对作业:随机生成四则运算式1、题目的选择题目1:我们在刚开始上课的时候介绍过一个小学四则运算自动生成程序的例子,请实现它,要求:能够自动生成四则运算练习题可以定制题目数量用户可以选择运算符用户设置... 查看详情

软工第二次结对作业(代码片段)

1.题目介绍由于本次结对作业我和我的结对伙伴选择了题目一,一下题目一介绍题目1:我们在刚开始上课的时候介绍过一个小学四则运算自动生成程序的例子,请实现它,要求:能够自动生成四则运算练习题可以定制题目数量用... 查看详情

第二次结对作业(代码片段)

一、题目及要求本次作业要求两个人合作完成,驾驶员和导航员角色自定,鼓励大家在工作期间角色随时互换,这里会布置两个题目,请各组成员根据自己的爱好任选一题。(我们选择的是题目一)题目1:我们在刚开始上课的... 查看详情

结对第二次作业(代码片段)

题目要求我们在刚开始上课的时候介绍过一个小学四则运算自动生成程序的例子,请实现它,要求:能够自动生成四则运算练习题可以定制题目数量用户可以选择运算符用户设置最大数(如十以内、百以内等)用户选择是否有括... 查看详情

结对编程第二次作业(代码片段)

四部电梯的统一控制题目要求:本次作业要求两个人合作完成,驾驶员和导航员角色自定,鼓励大家在工作期间角色随时互换,这里会布置两个题目,请各组成员根据自己的爱好任选一题。题目2:现有一新建办公大厦,共有21层... 查看详情

软件工程第二次作业—结对编程

一.作业要求两人组成一队,进行结对编程。从第一次软件工程作业中选出一人的作业作为这次作业的基础。设计一个图形界面(GUI)的四则运算应用程序,可以是PC桌面的图形界面程序、网页程序或者手机程序。设计的应用程序... 查看详情

软件工程第二次作业—结对编程1

结对编程队员: 马菊瑞1500802066:https://www.cnblogs.com/mjr15/ 马晓燕1500802046:https://www.cnblogs.com/MXY1239542491/coding链接:https://coding.net/u/mjr1500802066/p/project/git/tree/master/ 程序实现各个功能截 查看详情

2016福州大学软件工程第二次结对编程作业成绩

在这里跟大家道个歉,由于国庆节基本都在参加婚礼的路上所以现在才把成绩统计汇总了一下,份子钱太吓人已经把不多的工资吃掉了,这个月要靠泡面度日了。你们可是要好好学习,好好赚钱,好出的起同学的份子钱啊。扯远... 查看详情

软件工程第二次作业----结对编程

队员:旦切措毛 1500802071 博客地址:https://www.cnblogs.com/GDM1108/专格吉 1500802070 博客地址:https://www.cnblogs.com/zhuan11248/Coding地址:https://coding.net/u/zhuan11248/p/Demo/git程序实现和结果测试的截图github 查看详情

软件工程第二次结对编程作业

题目要求本次作业要求两个人合作完成,驾驶员和导航员角色自定,鼓励大家在工作期间角色随时互换,这里会布置两个题目,请各组成员根据自己的爱好任选一题。我们小队选择的是题目1:我们在刚开始上课的时候介绍过一... 查看详情

软件工程第二次结对编程(代码片段)

题目我们在刚开始上课的时候介绍过一个小学四则运算自动生成程序的例子,请实现它,要求:能够自动生成四则运算练习题可以定制题目数量用户可以选择运算符用户设置最大数(如十以内、百以内等)用户选择是否有括号、... 查看详情

第二次结对编程(代码片段)

1题目要求本次作业要求两个人合作完成,驾驶员和导航员角色自定,鼓励大家在工作期间角色随时互换,这里会布置两个题目,请各组成员根据自己的爱好任选一题。题目1::我们在刚开始上课的时候介绍过一个小学四则运算... 查看详情

软件工程第二次作业(代码片段)

软件工程第二次作业一、选择开发工具因为我对java比较感兴趣,所以我选择了Eclipse,刚开始安装时忘记截图了,之后快装完时才想起来截图。二、使用Eclipse1.运行Eclipse2.需要测试的java类packagecaculator;publicclasscaculatorpublicintadd(inta... 查看详情

软件工程第二次作业(代码片段)

1、选择开发工具eclipse运行界面:2、练习自动单元测试技术JUnit的使用(1)、编辑被测试程序publicclassCalculatepublicintadd(inta,intb)returna+b;publicintsubstract(inta,intb)returna-b;publicintmultiply(inta,intb)returna*b;publicintdiv 查看详情

软件工程第二次作业(代码片段)

与vs官网对visualstudio2017进行了下载VS官网下载地址随后进行安装打开vs创建C#类库将测试用例输入测试用例:namespaceDemoUserpublicclassUserpublicUser(stringuserEmail)m_email=userEmail;privatestringm_email;//useremailasuserid单元测试代码[TestMet 查看详情