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

结对编程——四则运算

时间:2023-04-12 11:00:23浏览次数:33  
标签:rand 结对 编程 10 int 四则运算 实验

目录

一、实验目的

二、实验方法

三、实验内容

四、实验代码

五、实验结果

六、实验心得

 

一、实验目的

体验结对编程,两人合力完成一个编程(队友2152231)。

二、实验方法

两人使用一台机器,使用Visual Studio 2019进行编程,一个人输入代码,而另一个人审查他输入的每一行代码,在进行角色互换。

三、实验内容

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

四、实验代码

队员A(2152231)编写部分:

 1 void DisplayFenshu(int a[][2],int w,int m) {
 2     if(w==1) {
 3         for(int q=0; q<m; q++) {
 4             if(a[q][0]==0)
 5                 cout<<"0"<<'\t';
 6             else
 7                 cout<<a[q][0]<<"/"<<a[q][1]<<'\t';
 8             if(q%5==4) {
 9                 cout<<endl;
10             }
11         }
12     } else {
13     };
14 }
15 void DealInt(int m,int a[]) {
16 
17     for(int p=0; p<m; p++) {
18         int i=(int)rand()%10;
19         int j=(int)rand()%10;
20         int k=(int)rand()%100/25;
21         switch(k) {
22             case 0:
23                 cout<<i<<"+"<<j<<"=";
24                 a[p]=i+j;
25                 break;
26             case 1:
27                 cout<<i<<"-"<<j<<"=";
28                 a[p]=i-j;
29                 break;
30             case 2:
31                 cout<<i<<"*"<<j<<"=";
32                 a[p]=i*j;
33                 break;
34             case 3:
35                 try {
36                     a[p]=i/j;
37                     cout<<i<<"/"<<j<<"=";
38                 } catch(...) {
39                     p--;
40                 }
41 
42         }
43 
44         if(p%5==4) {
45             cout<<endl;
46         } else {
47             cout<<'\t';
48         }
49     }
50 }
51 void DisplayInt(int a[],int w,int m) {
52     if(w==1) {
53         for(int q=0; q<m; q++) {
54             cout<<a[q]<<'\t';
55             if(q%5==4) {
56                 cout<<endl;
57             }
58         }
59     } else {
60     };
61 }

队员B(1959137)编写部分:

 1 #include<iostream>
 2 #include<stdlib.h>
 3 #include<conio.h>
 4 using namespace std;
 5 void DealFenshu(int m, int a[][2]) {
 6     for(int p=0; p<m; p++) {
 7         int i=(int)rand()%10;
 8         int j=(int)rand()%10;
 9         while(j==0||i>=j) {
10             i=(int)rand()%10;
11             j=(int)rand()%10;
12         }
13         int x=(int)rand()%10;
14         int y=(int)rand()%10;
15         while(y==0||x>=y) {
16             x=(int)rand()%10;
17             y=(int)rand()%10;
18         }
19         int k=(int)rand()%100/25;
20         switch(k) {
21             case 0:
22                 cout<<"("<<i<<"/"<<j<<")"<<"+"<<"("<<x<<"/"<<y<<")"<<"=";
23                 a[p][0]=i*y+x*j;
24                 a[p][1]=j*y;
25                 break;
26             case 1:
27                 cout<<"("<<i<<"/"<<j<<")"<<"-"<<"("<<x<<"/"<<y<<")"<<"=";
28                 a[p][0]=i*y-x*j;
29                 a[p][1]=j*y;
30                 break;
31             case 2:
32                 cout<<"("<<i<<"/"<<j<<")"<<"*"<<"("<<x<<"/"<<y<<")"<<"=";
33                 a[p][0]=i*x;
34                 a[p][1]=j*y;
35                 break;
36             case 3:
37                 a[p][0]=i*y;
38                 a[p][1]=j*x;
39                 cout<<"("<<i<<"/"<<j<<")"<<"/"<<"("<<x<<"/"<<y<<")"<<"=";
40         }
41         if(p%5==4) {
42             cout<<endl;
43         } else {
44             cout<<'\t';
45         }
46     }
47 
48 }
49 
50 
51 int main() {
52     int p;
53     do {
54         system("cls");
55         int a[1000],b[1000][2];
56         int m,n,w;
57         cout<<"请输入生成的四则运算题个数:";
58         cin>>m;
59         cout<<endl;
60         cout<<"请输入要生成的四则运算种类(输入1为整数,否则为真分数):";
61         cin>>n;
62         cout<<endl;
63         if(n==1) {
64             DealInt(m,a);
65             cout<<endl;
66         } else {
67             DealFenshu(m,b);
68             cout<<endl;
69         }
70         cout<<"是否输出答案(输入1则输出答案否则不输出答案)"<<endl;
71         cin>>w;
72         if(n==1) {
73             DisplayInt(a,w,m);
74         } else {
75             DisplayFenshu(b,w,m);
76         }
77         cout<<endl;
78         cout<<"是否继续生成运算题(输入1则生成否则不生成)"<<endl;
79         cin>>p;
80         cout<<endl;
81     } while(1==p);
82 
83 }

五、实验结果

六、实验心得

  结对编程的好处就在于快速发现问题,节省时间和找debug的精力。由于身边有个观察员角色的存在,在编写代码时,一旦出现输入错误,就会有人及时的提醒。并且,在设计代码时,有个同伴可以一起讨论,融合两个人不同的见解和观点,我们往往可以得出更加准确且更加高效的设计思路。都为我们在完成代码后的debug过程省去了大量的时间。我们小组在结对编程过程中出现的最多的问题就是标点符号以及字母大小写问题的出现,编写代码过程中就会感觉到,身边有个观察员可以及时提醒错误,大大提高了效率。同时在意见发生分歧的时候,可以快速讨论,得到最合适的解决办法。
  同时两个人可以轮流编程,不会感觉到太疲惫,程序设计思路可以共享,互相为对方避免错误,同时结对编程也有个别不好的地方,在某名成员编程时,观察员可能出现了不一样的意见,立马就指出来,会打断驾驶员的思路,可能会导致工作量滞后。

标签:rand,结对,编程,10,int,四则运算,实验
From: https://www.cnblogs.com/jjs1959137/p/17309078.html

相关文章

  • JavaScript编程实现tab选项卡切换的效果+1
    之前在“圳品”信息系统使用了tab选项卡来显示信息,详见:JavaScript编程实现tab选项卡切换的效果在tab选项卡中使用其它<div>来显示信息就出现了问题,乱套了,比如下面的这段代码:<!DOCTYPEhtml><html><head><metaname="Author"content="PurpleEndurer"><title>“圳品”信息系......
  • 提升工作效率的顶级AI工具:写作、图像、音视频、编程与效率
    ChatGPT风靡全球,人人可用!小红书上有关ChatGPT的笔记已有10w+篇,相关话题浏览量也达到了1.12亿次。其中讨论最为热烈的,要数“ChatGPT使用教程”。(当然,类似的话题还包括,教你如何使用Midjourney等等)甚至还有人通过ChatGPT教学,月入十万。在如今处处都追求降......
  • C++核心编程之-函数提高
    函数提高函数默认参数在c++中,函数的形参列表中的形参是可以有默认值的。语法:返回值类型函数名(参数=默认值){}注意点:1、如果某个位置参数有默认值,那么从这个位置往后,必须都要有默认值​ 2、如果函数声明有默认值,函数实现的时候就不能有默认参数函数占位参数C++中......
  • C++核心编程之-引用
    引用引用的基本使用作用:给变量起别名语法:数据类型&别名=原名引用的注意事项引用必须初始化引用在初始化后,不可以改变示例:#include<iostream>usingnamespacestd;intmain(){ inta=30; intb=50; //int&c;//这行错误,引用必须初始化 int&c=a......
  • 结对编程——300题四则运算
    一、程序介绍本次我和2152524同学结对编程完成的程序是“300道四则运算练习题”,本次程序开发的难点在于2个运算符的各4种形态也即共16种组合方式。我们采用最传统的方式——穷举法,将十六种组合用switch函数一字排开,一个个去输出结果。二、程序源码1#include<iostr......
  • 结对编程-四则运算
     本次结对编程作业由我和2152714完成源代码:/**Createdbyzouranon2023/4/10.*Description:四则运算*prams:*/#include<ctime>#include<random>#include"iostream"usingnamespacestd;//存储运算符classOperations{private:charoperation[4]{}......
  • 结对编程-小学生四则运算题目生成
    这次结对编程我是跟学号为2152520的朋友一起进行的四则运算题目生成的编程的。这次我们采用的编程语言是c++编程要求为:题目均为两次的运算,大小限制在一百以内的数字,且答案需要坐落在0~100之间(不显示出答案)。代码演示:#include<iostream>#include<cstdlib>usingnamespacest......
  • 异步编程的终极方案
    async和await实际上就是让我们像写同步代码那样去完成异步操作await表示强制等待的意思,await关键字的后面要跟一个promise对象,它总是等到该promise对象resolve成功之后执行,并且会返回resolve的结果  上面代码会等待5秒之后,弹出5     ......
  • MyBatisPlus——DML编程控制——乐观锁
    乐观锁业务并发现象带来的问题:秒杀最后一单用于中小型项目(2000请求以下)添加一个数据库字段,使每次请求修改数据时,这个字段就加一,当有多人同时请求时,这些人同时获取到的都是相同的该字段,但当有一人完成了秒杀后字段加一,其他同时获取到的该字段就不匹配了配置步骤数据库表中......
  • MybatisPlus——DML编程控制——增删改
    DML编程控制id生成策略控制不同的表应用不同的id生成策略日志:自增(1,2,3,4,......)购物订单:特殊规则(FQ23948AK3843)外卖单:关联地区日期等信息(1004202003143491)关系表:可省略id......注解控制@TableId类型:属性注解位置:模型类中用于表示主键的属性定义上方作用:设置......