首页 > 编程语言 >结对编程

结对编程

时间:2023-04-08 23:33:05浏览次数:110  
标签:结对 float int 编程 number2 number1 answer operation

本次结对编程作业由我和2152701一起完成

1.源代码

#include <cstdio>
#include <cstdlib>
#include <time.h>
using namespace std;
char operation(int operation);
float createEquation();
float calculate(int number1, int number2, int operation);
const int plus = 1, subtract = 2, multiplication = 3, division = 4;
int main () {
    int num, i;
    printf("欢迎使用四则运算系统(专为小学生服务)\n1.请输入题目个数:");
    scanf("%d", &num);

    for (i = 0; i < num; i++) {
        createEquation();
    }


}

float createEquation() {
    int number1, number2, number3, operation1, operation2;
    float input_answer, answer = 0;
    do {
        srand(time(0));
        number1 = rand()%100+1;
        number2 = rand()%100+1;
        number3 = rand()%100+1;
        operation1 = rand()%4+1;
        operation2 = rand()%4+1;
        if(operation1 == multiplication || operation1 == division) {
            answer = calculate(calculate(number1, number2, operation1), number3, operation2 );
        }
        else {
            if(operation2 == multiplication || operation2 == division) {
                answer = calculate(number1 ,calculate(number2, number3, operation1), operation2 );
            }
            else {
                answer = calculate(calculate(number1, number2, operation1), number3, operation2 );
            }
        }
    }while(answer < 0||answer>100);
    printf("%d %c %d %c %d =",number1, operation(operation1),number2, operation(operation2), number3);
    scanf("%f", &input_answer);
    if(answer == input_answer) {
        printf("答案正确");
    }
    else {
        printf("答案错误,正确答案是%f", answer);
    }

    printf("\n");
}

char operation(int operation) {
    char c;
    switch(operation) {
        case plus:
            c = '+';
            break;
        case subtract:
            c = '-';
            break;
        case multiplication:
            c = '*';
            break;
        case division:
            c = '/';
            break;
    }
    return c;
}

float calculate(int number1, int number2, int operation) {
    switch(operation) {
        case plus:
            return (float)number1 + number2;
        case subtract:
            return (float)number1 - number2;
        case multiplication:
            return (float)number1 * number2;
        case division:
            return (float)number1 / number2;
    }
}

2.运行结果

3.心得体会

这次结对编程四则运算题目我们利用c++进行开发。在本次代码编写的过程中,最重要的两个问题是随机数字符号的生成以及优先级的确定,在第一次编写代码的时候我们遇到了一个问题——算术结果不正确。经过计算和研究,我们发现是因为优先级不正确导致运算结果出错误,因此在进行二次改写的时候,我们进行了改正。除此以外,在代码的编写过程中,我们两个人也出现了一些分歧,例如switch语句的举例,但是最终我们在商量下共同完成了本次作业,这让我们意识到了合作的重要性以及团队精神的重要性,一个好的项目必然离不开队友之间的讨论与相互帮助。

标签:结对,float,int,编程,number2,number1,answer,operation
From: https://www.cnblogs.com/2115414hkx/p/17299583.html

相关文章

  • 结对编程——四则运算题目生成程序
    在本次结对编程中,我和2152618徐成阳一起完成了四则运算题目生成程序的编写,在这次结对编程中收获良多。在一起完成一个项目时,首先应该进行明确的分工,根据自己的特长进行分工可以大大提高效率,结对编程可以培养我们团队合作的意识,让我们更好地完成工作。以下是程序的源代码:#include......
  • Rust编程语言入门之函数式语言特性:-迭代器和闭包
    函数式语言特性:-迭代器和闭包本章内容闭包(closures)迭代器(iterators)优化改善12章的实例项目讨论闭包和迭代器的运行时性能一、闭包(1)-使用闭包创建抽象行为什么是闭包(closure)闭包:可以捕获其所在环境的匿名函数。闭包:是匿名函数保存为变量、作为参数可在一个地方......
  • 在结队编程过程中,我收获了这些 【Tutorials】
    在结队编程过程中,我收获了这些受到了编程开发领域文档设计的启发’Whatnobodytellsyouaboutdocumentation’,本文结构为四种基本博客文档结构中的Tutorials类型,旨在记录与总结,并以清晰的行文展示出来。......
  • 第七周实验——结对编程
    结对编程-四则运算练习题一、结对成员2152102&2152108 二、实验目的通过两位同学组队用结对编码(一位同学coding,另一个同学在旁边审核代码,之后再交换角色)的方式完成本次实验。本次实验需要设计一个四则运算练习题的随机出题程序,可以通过C/C++/Java/Python等语言进行实现,四......
  • 结对编程--随机四则运算生产
    在本次作业中,与我一同搭档完成结对编程的同学学号为2152434。在讨论后,我们决定基于c++进行本次程序开发。在该系统中,如何产生随机数及使用随机数产生随机符号为开发关键点。以下为程序部分代码展示:    而输出结果如下:  实验体会:结对编程中最重要的是调......
  • 分析以下数字的规律1 1 2 3 5 8 13 21用Python语言编程实现输出,此为斐波那契数列
    方法一:list1=[]#定义一个空列表foriinrange(15):#遍历语句循环15次ifi==0ori==1:#前两个数字的值都是1list1.append(1)#print(list1)else:list1.append(list1[i-1]+list1[i-2])print(list1)方法二:list1=[1,......
  • 前端笔试遇到的两个编程题
    倒计时:在倒计时不超过一天的代码varhour=document.querySelector(".hour");  varminute=document.querySelector(".minute");  varsecond=document.querySelector(".second");//截止的时间  varinputTime=+newDate("2023-4-0820:0......
  • Python 进阶指南(编程轻松进阶):十四、实践项目
    原文:http://inventwithpython.com/beyond/chapter14.html到目前为止,这本书已经教会了你编写可读的Python风格代码的技巧。让我们通过查看两个命令行游戏的源代码来实践这些技术:汉诺塔和四人一排。这些项目很短,并且基于文本,以保持它们的范围较小,但是它们展示了本书到目前为......
  • Python 进阶指南(编程轻松进阶):十七、Python 风格 OOP:属性和魔术方法
    原文:http://inventwithpython.com/beyond/chapter17.html很多语言都有OOP特性,但是Python有一些独特的OOP特性,包括属性和魔术方法。学习如何使用这些Python风格技巧可以帮助您编写简洁易读的代码。属性允许您在每次读取、修改或删除对象的属性时运行一些特定的代码,以......
  • Python 进阶指南(编程轻松进阶):七、编程术语
    原文:http://inventwithpython.com/beyond/chapter7.html在XKCD漫画《飞人五号》(xkcd.com/1133)中,网络漫画的艺术家兰道尔·门罗只用了1000个最常见的英语单词,就创作出了土星五号火箭的技术示意图。这部漫画把所有的技术术语分解成小孩子能理解的句子。但这也说明了为什么我......