首页 > 编程语言 >结对编程---四则运算

结对编程---四则运算

时间:2023-04-12 20:55:33浏览次数:35  
标签:rand 结对 cout 10 int 四则运算 --- 实验

目录

一、实验目的

二、实验内容

三、实验代码

四、实验结果

五、实验心得

一、实验目的

  通过两位同学组队用结对编码(两位位同学轮流coding,另一个同学在旁边审核代码)的方式完成本次实验。本次实验需要设计一个四则运算练习题的随机出题程序,可以通过C/C++/Java/Python等语言进行实现,四则运算练习题需要一或两个运算符,100以内的数字,不需要写答案,但是需要再输入答案之后检查答案是否正确并保证答案在0-100之间。

二、实验内容

  编写一个四则运算程序(c/c++),限制100以内的数字,运算符1-2个,并检查答案是否正确。

三·、实验代码

队员A(2152211)编写部分:

 void DisplayFenshu(int a[][2],int w,int m) {
     if(w==1) {
         for(int q=0; q<m; q++) {
             if(a[q][0]==0)
                 cout<<"0"<<'\t';
             else
                 cout<<a[q][0]<<"/"<<a[q][1]<<'\t';
             if(q%5==4) {
                 cout<<endl;
             }
         }
     } else {
     };
 }
 void DealInt(int m,int a[]) {
 
     for(int p=0; p<m; p++) {
         int i=(int)rand()%10;
         int j=(int)rand()%10;
         int k=(int)rand()%100/25;
         switch(k) {
             case 0:
                 cout<<i<<"+"<<j<<"=";
                 a[p]=i+j;
                 break;
             case 1:
                 cout<<i<<"-"<<j<<"=";
                 a[p]=i-j;
                 break;
             case 2:
                 cout<<i<<"*"<<j<<"=";
                 a[p]=i*j;
                 break;
             case 3:
                 try {
                     a[p]=i/j;
                     cout<<i<<"/"<<j<<"=";
                 } catch(...) {
                     p--;
                 }
 
         }
 
         if(p%5==4) {
             cout<<endl;
         } else {
             cout<<'\t';
         }
     }
 }

 

队员B(2052643)编写部分:

 void DisplayInt(int a[],int w,int m) {
     if(w==1) {
         for(int q=0; q<m; q++) {
             cout<<a[q]<<'\t';
             if(q%5==4) {
                 cout<<endl;
             }
         }
     } else {
     };
 }
 void DealFenshu(int m, int a[][2]) {
     for(int p=0; p<m; p++) {
         int i=(int)rand()%10;
         int j=(int)rand()%10;
         while(j==0||i>=j) {
             i=(int)rand()%10;
             j=(int)rand()%10;
         }
         int x=(int)rand()%10;
         int y=(int)rand()%10;
         while(y==0||x>=y) {
             x=(int)rand()%10;
             y=(int)rand()%10;
         }
         int k=(int)rand()%100/25;
         switch(k) {
             case 0:
                 cout<<"("<<i<<"/"<<j<<")"<<"+"<<"("<<x<<"/"<<y<<")"<<"=";
                 a[p][0]=i*y+x*j;
                 a[p][1]=j*y;
                 break;
             case 1:
                 cout<<"("<<i<<"/"<<j<<")"<<"-"<<"("<<x<<"/"<<y<<")"<<"=";
                 a[p][0]=i*y-x*j;
                 a[p][1]=j*y;
                 break;
             case 2:
                 cout<<"("<<i<<"/"<<j<<")"<<"*"<<"("<<x<<"/"<<y<<")"<<"=";
                 a[p][0]=i*x;
                 a[p][1]=j*y;
                 break;
             case 3:
                 a[p][0]=i*y;
                 a[p][1]=j*x;
                 cout<<"("<<i<<"/"<<j<<")"<<"/"<<"("<<x<<"/"<<y<<")"<<"=";
         }
         if(p%5==4) {
             cout<<endl;
         } else {
             cout<<'\t';
         }
     }
 }

 

队员C(2152219)编写部分:

 int main() {
     int p;
     do {
         system("cls");
         int a[1000],b[1000][2];
         int m,n,w;
         cout<<"请输入生成的四则运算题个数:";
         cin>>m;
         cout<<endl;
         cout<<"请输入要生成的四则运算种类(输入1为整数,否则为真分数):";
         cin>>n;
         cout<<endl;
         if(n==1) {
             DealInt(m,a);
             cout<<endl;
         } else {
             DealFenshu(m,b);
             cout<<endl;
         }
         cout<<"是否输出答案(输入1则输出答案否则不输出答案)"<<endl;
         cin>>w;
         if(n==1) {
             DisplayInt(a,w,m);
         } else {
             DisplayFenshu(b,w,m);
         }
         cout<<endl;
         cout<<"是否继续生成运算题(输入1则生成否则不生成)"<<endl;
         cin>>p;
         cout<<endl;
     } while(1==p);
 }

 

四、实验结果

 

 五、实验心得

  我们代码都是结对一起写的,一些单元测试和一些小修小改是分开进行的,然后结对的时候交流更改了什么。结对编程确实大大提高了攻坚的效率,而且代码的质量确实更高了,单元测试很少测出错误。但是在我们的实践中并没有提高对需求的覆盖,仍旧时不时遗忘一些不重要的需求。而对于这一次结对编程,队友之间的相互配合真的很重要,三人完成自己的部分从而可以顺利的组合会让整个过程变得更加的流程。再者,函数的正确命名以及适当的注释非常重要,利于代码组合以后的修改与维护。

 

 

 

标签:rand,结对,cout,10,int,四则运算,---,实验
From: https://www.cnblogs.com/lhd001/p/17311215.html

相关文章

  • PVS-Studio分析
    PVS-Studio是一个静态代码扫描工具,还不错。先通过dnspy调试主进程可以发现检查授权文件的的进程是一个子进程,如:PVS-Studio.exe--checkreg=yes--lic-file="D:\pvs.lic"因此要解决授权问题,核心应该是调试PVS-Studio.exe这个进程。通过命令行分析我们可以知道该进程肯定是要读......
  • 今日报告-51
    今日打卡所花时间(包括上课):2h代码量(行):100发表博客:1篇(不包括本篇)学习进度和了解到的知识点:今天开了scrum项目冲刺会议,具体探讨了我们之后的规划,前端开发,调用接口等任务。......
  • python习题-筛法求素数
    【题目描述】用户输入整数n和m(1<n<m<1000),应用筛法求[n,m]范围内的所有素数。【基本思想】用筛法求素数的基本思想是:把从2到N的一组正整数从小到大按顺序排列。从中依次删除2的倍数、3的倍数、5的倍数,直到根号N的倍数为止,剩余的即为2~N之间的所有素数。【源代码程序】defsie......
  • 63、K8S-使用K8S部署Prometheus、grafana
    Kubernetes学习目录1、准备工作1.1、教程Github地址https://github.com/prometheus-operator/kube-prometheus.git1.2、下载编写好的yamlwgethttps://github.com/prometheus-operator/kube-prometheus/archive/refs/tags/v0.12.0.tar.gz1.3、解压项目代码tarxvfkub......
  • CentOS系统使用docker-compose安装Doris数据库
    doris当前最新版本为1.2.31、docker与docker-compose安装    docker安装:CentOS安装Docker   docker-compose安装:docker-compose安装与使用2、doris相关下载   1)doris-be、doris-fe2) 3、修改vi/etc/security/limits.conf添加如下信息:*softnofile65......
  • Go微服务框架go-kratos实战学习08:负载均衡基本使用
    微服务框架go-kratos中负载均衡使用一、介绍在前面这篇文章负载均衡和它的算法介绍,讲了什么是负载均衡以及作用、算法介绍。go-kratos的负载均衡主要接口是Selector,它是一个可插拔的设计。因为它设计的都是接口,只要实现了接口就实现了负载均衡。go-kratos在目录下提供了......
  • python习题-验证6174猜想
    【题目描述】1955年,卡普耶卡(D.R.Kaprekar)对4位数字进行了研究,发现一个规律:对任意各位数字不相同的4位数,使用各位数字能组成的最大数减去能组成的最小数,对得到的差重复这个操作,最终会得到6174这个数字,并且这个操作最多不会超过7次。请编写程序验证这个猜想。【源代码程序】de......
  • python习题-杨辉三角
    【题目描述】输出n(0<n)行杨辉三角形,n由用户输入。【源代码程序】n=int(input("请输入要打印的杨辉三角的行数:"))#初始化杨辉三角的第一行triangle=[[1]]#循环生成杨辉三角foriinrange(1,n):#初始化当前行的第一个元素为1row=[1]#循环生成当......
  • java多线程 - 狂神
    多线程实现方法第一种方法:Thread自定义线程类继承Thread类重写run()方法,编写线程执行体创建线程对象,调用start()方法启动线程注意:线程不一定立即执行,由CPU安排调度继承Thread类创建多线程packagecom.waves.dxcdemo;​importjava.text.DateFormat;importja......
  • 二叉树的前、中、后序遍历以及查找-Java实现
    对于遍历不过多的赘述,关于查找有关的思想,关键是如何实现查找的顺序以及结果的回传;附代码1packagedataSrtuct;23publicclassBinaryTreeDemo{4publicstaticvoidmain(String[]args){5BinaryTreebinaryTree=newBinaryTree();6......