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

结对编程

时间:2024-04-24 20:24:47浏览次数:20  
标签:std 结对 ofstream num1 num2 int 编程 include

#include <iostream>
#include <cstdlib>
#include <ctime>
#include <fstream>
#include <limits>

// 函数原型声明
int getRandomNumber(int min, int max);

int main() {
    int n;
    std::cout << "请输入题目的数量: " << std::endl;
    std::cin >> n;

    // 初始化随机数生成器
    srand(static_cast<unsigned int>(time(0)));

    // 创建一个ofstream对象用于写入问题和答案
    std::ofstream outQuestionFile("question.txt");
    std::ofstream outAnswerFile("answer.txt");
    if (!outQuestionFile || !outAnswerFile) {
        // 如果文件打开失败,输出错误信息
        std::cerr << "Unable to open file for writing." << std::endl;
        return 1;
    }

    int cnt = 0;
    while (cnt < n) {
        int num1, num2;
        char op;
        double result;
        do {
            num1 = getRandomNumber(1, 100);
            num2 = getRandomNumber(1, 100);
            int opCode = rand() % 4;
            switch (opCode) {
                case 0:
                    op = '+';
                    result = num1 + num2;
                    break;
                case 1:
                    op = '-';
                    result = num1 - num2;
                    break;
                case 2:
                    op = '*';
                    result = num1 * num2;
                    break;
                case 3:
                    op = '/';
                    result = num1 != 0 ? static_cast<double>(num1) / num2 : std::numeric_limits<double>::max(); // 防止除以0
                    break;
                default:
                    op = '+';
                    result = num1 + num2;
            }
        } while (result >= 100 || (op == '/' && num1 % num2 != 0) || (op == '/' && num2 == 0));

        // 将问题和答案写入文件
        outQuestionFile << num1 << ' ' << op << ' ' << num2 << " = \n";
        outAnswerFile << num1 << ' ' << op << ' ' << num2 << " = " << result << std::endl;

        cnt++;
    }

    // 关闭文件
    outQuestionFile.close();
    outAnswerFile.close();

    std::cout << "题目和答案已分别写入 question.txt 和 answer.txt 文件中。" << std::endl;
    return 0;
}

// 生成指定范围内的随机数
int getRandomNumber(int min, int max) {
    return rand() % (max - min + 1) + min;
}




学号:2252427

标签:std,结对,ofstream,num1,num2,int,编程,include
From: https://www.cnblogs.com/Decoi/p/18156222

相关文章

  • 自学编程两个月,现在我月入 4 万元
    这个外国小哥叫Nico,他一开始是个编程小白,后来把自己关在房间里花了两个月时间学会了编程,如今正在开发一款名为Talknotes的应用,可以将语音备忘录转化为结构化的内容,月收入5000美元。Nico从高中毕业就开始创业,大学只上了一个月就退学了,他尝试了很多方向,最终坚持做跨境电商和......
  • 第八周-结对编程
    作业题目程序源代码点击查看代码importrandomimporttimeimportosimportjsondefquestion():a=random.randint(0,100)b=random.choice(["+","-","*","/"])c=random.randint(0,100)d=random.choice(["......
  • 我为什么学习Rust编程?
    2024-04-24下午,今下午感受到如果要睡觉就应该让音响在自己耳边程序轰炸.翻看gitee,又再次看到这个loop示例,这几天忙于工作,除了偶尔刷下rust视频,rust的电子书,其他的都看得比较少,主要还是感觉工作疲倦之余已经没有精力来继续回顾和延伸.其实后来感觉不是的,就像那会儿接......
  • 并发编程(Semaphore)
    Semaphore,信号量,它保存了一系列的许可(permits),每次调用acquire()都将消耗一个许可,每次调用release()都将归还一个许可特性Semaphore通常用于限制同一时间对共享资源的访问次数上,也就是常说的限流。下面我们一起来学习Java中Semaphore是如何实现的。类结构Semaphore中包含了一......
  • 并发编程(CyclicBarrier)
    CyclicBarrier是一个同步器,允许一组线程相互之间等待,直到到达某个公共屏障点(commonbarrierpoint),再继续执行CyclicBarrier与CountDownLatch异同都可以阻塞一组线程等待被唤醒CyclicBarrier是最后一个线程到达后会自动唤醒,而CountDownLatch需要显式调用countDown方法Cyc......
  • C#的基于.net framework的Dll模块编程(二) - 编程手把手系列文章
          今天继续这个系列博文的编写。接上次的篇幅,这次介绍关于C#的Dll类库的创建的内容。因为是手把手系列,所以对于需要入门的朋友来说还是挺好的,下面开始咯: 一、新建Dll类库;这里直接创建例子的Dll类库项目,至于项目文件目录的存放布局后面的例子中会介绍。......
  • Pyhton - 类元编程
    目录身为对象的类type:内置的类工厂函数类元编程是指在运行时创建或定制类的技艺。在Python中,类是一等对象,因此任何时候都可以使用函数新建类,无须使用class关键字。类装饰器也是函数,不过能够审查、修改,甚至把被装饰的类替换成另一个类。最后元类是类元编程最高级的工具:使用元类可......
  • 单向循环链表和双向链表程序编程
    链表学习记录设计单向循环链表的接口/***********************************************************************************************************设计单向循环链表的接口****Copyright(c)[email protected]*************......
  • Flink状态编程:为什么不建议在ValueState里面存Map?
    Flink状态编程:为什么不建议在ValueState里面存Map?文章目录先说结论性能:TTL:State需要存什么数据Heap模式ValueState和MapState如何存储StateBackend模式如何存储和读写State数据1.RocksDB模式ValueState和MapState如何存储1.1ValueState如何映射为RocksDB......
  • 前端编程另一种数据传输方法,window.postMessage 技术
    window.postMessage是一项非常实用的浏览器技术,它允许不同窗口或框架之间进行安全的消息传递。一、技术介绍window.postMessage可以在不同的源之间传递消息,包括跨域的情况。这为跨文档通信提供了一种强大而灵活的方式。二、使用方法举例假设有两个页面,一个是发送方页面send......