首页 > 编程语言 >软件创新与开发——结对编程

软件创新与开发——结对编程

时间:2024-04-18 16:24:00浏览次数:23  
标签:结对 cout 代码 编程 Answer 软件 include

程序要求:两个运算符,100以内的数字,不需要写答案。
需要检查答案是否正确,并且保证答案在0-100之间。

本次作业由2252312和2252413共同完成
由2252312发布博客园

运行环境:Windows10教育版
开发环境:devc++
语言:C++
处理器:11th Gen Intel(R) Core(TM) [email protected] 2.50GHz

以下是源代码

点击查看代码
#include <iomanip>
#include<iostream>
#include<cstdlib>
#include<ctime>
#include<fstream>
using namespace std;
int main()
{
    clock_t T1,T2; 
    int S,N=-1,Answer=1,Answer_right=0;       
    double accuracy=0;        
    for(T2 = clock();Answer<=300;){
        srand(time(NULL));
        int a,b;        
        a= rand() %100;
        b= rand() %100;
        int e= rand() % 3+ 1;        
        if(e==1){            
            S=a+b;
            if(S<=100){
                cout<<"第"<<Answer<<"题:" ;
                cout<<a<<"+"<<b<<"=";
                cin>>N;
                Answer++;
            }
        }

        else if(e==2){        //减法
            S=a-b;
            if(S<=100&&S>=0){
                cout<<"第"<<Answer<<"题:" ;
                cout<<a<<"-"<<b<<"=";
                cin>>N;
                Answer++;
            }
        }

        else if(e==3){        //乘法
            S=a*b;
            if(S<=100&&S>=0){
                cout<<"第"<<Answer<<"题:" ;
                cout<<a<<"*"<<b<<"=";
                cin>>N;
                Answer++;
            }
        }

        else if(e==4){        //除法
            if(b!=0&&a%b==0){
                S=a/b;
                if(S<=100&&S>=0){
                    cout<<"第"<<Answer<<"题:" ;
                    cout<<a<<"/"<<b<<"=";
                    cin>>N;
                    Answer++;
                }
            }
        }

        if(N==S){
            cout<<"再奖励你一题!"<<endl;
            system("pause");
            Answer_right++;
            N=-1;
        }
        else if(N!=-1){        
            cout<<"这都能算错?菜!你就多练!"<<endl;

            ofstream ofs;
            ofs.open("file.txt", ios::app);

            if(e==1){
                ofs<<a<<"+"<<b<<"="<<S<<endl<<"你的答案:"<<N<<endl;
            }
            else if(e==2){
                ofs<<a<<"-"<<b<<"="<<S<<endl<<"你的答案:"<<N<<endl;
            }
            else if(e==3){
                ofs<<a<<"*"<<b<<"="<<S<<endl<<"你的答案:"<<N<<endl;
            }
            else if(e==4){
                ofs<<a<<"/"<<b<<"="<<S<<endl<<"你的答案:"<<N<<endl;
            }


            ofs.close();

            system("pause");
            N=-1;
        }
        if((Answer-1)%10==0)
        system("cls");

    }
    T2 = clock();
    int time=(int)(T2-T2)/CLOCKS_PER_SEC;
    Answer=Answer-1;
    accuracy=(double)Answer_right/(double)Answer;
    cout<<"恭喜做完本轮300试题,您本次的正确率为:"<<fixed<<setprecision(2)<<accuracy*100<<"%"<<endl;
    return 0;
}

遇到的问题以及解决方案:
通过记事本批量修改定义不明确的定义时,将大量数据修改,使得代码不能够正常使用。

解决方案:使用事先存档的代码进行读档,再逐行代码进行修改。
代码编译过于繁乱,除了编译者以外的人看不懂。

点击查看代码
 if(N==S){
            cout<<"再奖励你一题!"<<endl;
            system("pause");
            Answer_right++;
            N=-1;}
        else if(N!=-1){        cout<<"这都能算错?菜!你就多练!"<<endl;
            ofstream ofs;
            ofs.open("file.txt", ios::app);
            if(e==1){   ofs<<a<<"+"<<b<<"="<<S<<endl<<"你的答案:"<<N<<endl;
            }
            else if(e==2){ofs<<a<<"-"<<b<<"="<<S<<endl<<"你的答案:"<<N<<endl;
            }
            else if(e==3){ofs<<a<<"*"<<b<<"="<<S<<endl<<"你的答案:"<<N<<endl;}
            else if(e==4){
                ofs<<a<<"/"<<b<<"="<<S<<endl<<"你的答案:"<<N<<endl;
            }
            ofs.close();
            system("pause");
            N=-1;}
解决方案:将代码整理,使得代码条理清晰。
点击查看代码
else if(N!=-1){        
            cout<<"这都能算错?菜!你就多练!"<<endl;

            ofstream ofs;
            ofs.open("file.txt", ios::app);

            if(e==1){
                ofs<<a<<"+"<<b<<"="<<S<<endl<<"你的答案:"<<N<<endl;
            }
            else if(e==2){
                ofs<<a<<"-"<<b<<"="<<S<<endl<<"你的答案:"<<N<<endl;
            }
            else if(e==3){
                ofs<<a<<"*"<<b<<"="<<S<<endl<<"你的答案:"<<N<<endl;
            }
            else if(e==4){
                ofs<<a<<"/"<<b<<"="<<S<<endl<<"你的答案:"<<N<<endl;
            }


            ofs.close();

            system("pause");
            N=-1;
        }
在编程程序中发现每次随机的数是相同的,在C++中,如果每次生成的随机数相同,经过搜索发现是因为没有设置种子(seed)。在使用rand()函数之前,需要先调用srand()函数设置一个种子,通常使用当前时间作为种子。

运行截图:

心得与体会:
经过本次结对编程实验,我们对结对编程有了更深刻的体会。一是感觉结对编程效率比较高,在编程的过程中双方就能实时交流,能及时提出建议或是改正错误,并且由于随时准备交流,所以专注度高。二是结对编程能实现相对更完整的程序,两个人的头脑风暴更能够让程序完整的呈现。三是结对编程有助于双方能力的提升,每个人的代码风格不同,通过与不同人的代码交流,会发现自己的代码有许多不足的地方,也会帮助他人进行c++的反思。总的来说,本次结对编程实验收获颇丰!

标签:结对,cout,代码,编程,Answer,软件,include
From: https://www.cnblogs.com/aegsis2970/p/18143729

相关文章

  • 【GUI软件】小红书按关键词采集笔记详情,支持多个关键词,含笔记正文、转评赞藏等,爬了102
    一、背景介绍1.1爬取目标熟悉我的小伙伴都了解,我之前开发过2款软件:【GUI软件】小红书搜索结果批量采集,支持多个关键词同时抓取!【GUI软件】小红书详情数据批量采集,含笔记内容、转评赞藏等,支持多笔记同时采集!现在介绍的这个软件,相当于以上2个软件的结合版,即根据关键词爬取......
  • 软件工程是不是教会不怎么会写程序的人开发软件?你的观点?
    “Softwareengineering,ofcourse,presentsitselfasanotherworthycause,butthatiseyewash:ifyoucarefullyreaditsliteratureandanalysewhatitsdevoteesactuallydo,youwilldiscoverthatsoftwareengineeringhasacceptedasitscharter‘Howto......
  • 精通-Python-网络编程第二版(五)
    精通Python网络编程第二版(五)原文:zh.annas-archive.org/md5/dda7e4d1dd78bc5577547014ce9b53d1译者:飞龙协议:CCBY-NC-SA4.0第十二章:使用Jenkins进行持续集成网络触及技术堆栈的每个部分;在我工作过的所有环境中,它总是一个零级服务。它是其他服务依赖的基础服务。在其他......
  • 精通-Python-系统管理脚本编程(一)
    精通Python系统管理脚本编程(一)原文:zh.annas-archive.org/md5/c33d6613eafa4d86b92059a00f7aa16f译者:飞龙协议:CCBY-NC-SA4.0前言Python已经发展并扩展了其功能,涵盖了几乎所有可能的IT操作。本书将帮助你利用Python的最新功能,编写有效的脚本,并创建用于管理环境的命......
  • 精通-Python-系统管理脚本编程(四)
    精通Python系统管理脚本编程(四)原文:zh.annas-archive.org/md5/c33d6613eafa4d86b92059a00f7aa16f译者:飞龙协议:CCBY-NC-SA4.0第十六章:网络爬虫-从网站提取有用的数据在本章中,您将学习有关网络爬虫的知识。您还将学习Python中的beautifulsoup库,该库用于从网站提取信息。......
  • Python-GUI-编程(五)
    PythonGUI编程(五)原文:zh.annas-archive.org/md5/9d5f7126bd532a80dd6a9dce44175aaa译者:飞龙协议:CCBY-NC-SA4.0第十二章:使用Canvas小部件可视化数据在数据库中记录了数月的实验数据后,现在是开始可视化和解释数据的过程。你的同事分析师们询问程序本身是否可以创建图形......
  • Python-GUI-编程(一)
    PythonGUI编程(一)原文:zh.annas-archive.org/md5/9d5f7126bd532a80dd6a9dce44175aaa译者:飞龙协议:CCBY-NC-SA4.0前言响应式图形用户界面(GUI)帮助您与应用程序交互,提高用户体验,并增强应用程序的效率。使用Python,您将可以访问精心设计的GUI框架,可以用来构建与众不同的交互......
  • Python-GUI-编程(七)
    PythonGUI编程(七)原文:zh.annas-archive.org/md5/9d5f7126bd532a80dd6a9dce44175aaa译者:飞龙协议:CCBY-NC-SA4.0第十九章:数据库处理数据库处理在任何应用程序中都起着重要作用,因为数据需要存储以备将来使用。您需要存储客户信息、用户信息、产品信息、订单信息等。在本章......
  • Python-GUI-编程(八)
    PythonGUI编程(八)原文:zh.annas-archive.org/md5/9d5f7126bd532a80dd6a9dce44175aaa译者:飞龙协议:CCBY-NC-SA4.0第二十二章:使用谷歌地图在本章中,您将学习如何在Python应用程序中使用谷歌地图,并探索谷歌提供的不同优势。您将学习以下任务:查找位置或地标的详细信息......
  • Python-GUI-编程(二)
    PythonGUI编程(二)原文:zh.annas-archive.org/md5/9d5f7126bd532a80dd6a9dce44175aaa译者:飞龙协议:CCBY-NC-SA4.0第五章:规划我们应用程序的扩展这个应用程序真的很受欢迎!经过一些初步测试和定位,数据录入人员现在已经使用您的新表单几个星期了。错误和数据输入时间的减少是......