hznu.dodo C++ 实验A 文件

news2024/12/27 12:34:36

1.【描述】
输入10个整数存入文本文件example.txt中,文件每行存放5个整数,每行整数之间用一个空格间隔。行末不能有多余的空格。
【输入】
输入10个整数。
【输出】
生成文件example.txt,里面存放输入的10个整数。
不需要在屏幕上显示整数。
【输入示例】
1 2 3 4 5 6 7 8 9 10
【输出示例】
生成文件example.txt,其中内容:
1 2 3 4
6 7 8 9 10

#include<iostream>
#include<cmath>
#include<string>
#include<cstring>
#include<sstream>
#include<vector>
#include<array>
#include<algorithm>
#include<iomanip>
#include<map>
#include<cstdlib>
#include<stdexcept>
#include<numeric>
#include<fstream>
#include<random>
#include<set>
#include<sstream>

using namespace std;
int main() {  
    vector<int> numbers(10); 
 
    for (int i = 0; i < 10; ++i) {  
        cin >> numbers[i];  
    }  

    ofstream outputFile("example.txt");  

    for (int i = 0; i < 10; ++i) {  
        outputFile << numbers[i];    
        if (i % 5 == 4 && i != 9) {   
            outputFile << endl;  
        } else if (i != 9) {   
            outputFile << " ";
        }  
    }  

    outputFile.close();  

    return 0;  
}

2.【描述】
将一个明文文件plaintext.txt中的内容,按照一定的方法,对每个字符加密后存放到另一个密文文件ciphertext.txt中。
【输入】
文件plaintext.txt。(该文件已经存在,无需自己创建)
注意:本地调试程序时,则要求自己预先建立好plaintext.txt文件。在Windows下,可以使用记事本。
【输出】
生成文件ciphertext.txt,里面存放加密后的信息。
不需要在屏幕上显示信息。
【输入示例】
文件plaintext.txt,假定其中内容如下:
Welcome to C++!
【输出示例】
生成文件ciphertext.txt,加密后的内容如下:
Ygneqog"vq"E--#

#include<iostream>
#include<cmath>
#include<string>
#include<cstring>
#include<sstream>
#include<vector>
#include<array>
#include<algorithm>
#include<iomanip>
#include<map>
#include<cstdlib>
#include<stdexcept>
#include<numeric>
#include<fstream>

using namespace std;

int main() {  
    ifstream inputFile("plaintext.txt");
    ofstream outputFile("ciphertext.txt");
    char ch;
    while(inputFile.get(ch)){
        ch += 2;
        outputFile.put(ch);
    }
    inputFile.close();
    outputFile.close();
    return 0;
}  

3.【描述】
声明并实现了一个Rectangle类,表示矩形。Rectangle类包括:
double类型的私有数据成员width和height,表示矩形的宽和高。
带默认参数的构造函数,将矩形的宽和高设置为给定的参数。宽和高的默认参数值为1。
更改器函数setWidth和setHeight,分别用于修改矩形的宽和高。
访问器函数getWidth和getHeight,分别用于访问矩形的宽和高。
成员函数computeArea,返回矩形的面积。
成员函数computePerimeter,返回矩形的周长。
创建5个Rectangle对象(每个Rectangle对象的宽和高分别为1、2、3、4、5)并将它们写入二进制文件object.dat中。修改第3个对象的宽为10、高为3.5,再把修改后的该对象写回文件原位置。
【输入】
没有输入。
【输出】
生成文件object.dat
不需要在屏幕上显示信息。

#include<iostream>
#include<cmath>
#include<string>
#include<cstring>
#include<sstream>
#include<vector>
#include<array>
#include<algorithm>
#include<iomanip>
#include<map>
#include<cstdlib>
#include<stdexcept>
#include<numeric>
#include<fstream>

using namespace std;

class Rectangle {  
private:  
    double width;  
    double height;  

public:  

    Rectangle(double w = 1.0, double h = 1.0) : width(w), height(h) {}  

 
    void setWidth(double w) {  
        width = w;  
    }  

    void setHeight(double h) {  
        height = h;  
    }  

 
    double getWidth() const {  
        return width;  
    }  

    double getHeight() const {  
        return height;  
    }  


    double computeArea() const {  
        return width * height;  
    }  

    double computePerimeter() const {  
        return 2 * (width + height);  
    }  
 
    void writeToStream(std::ostream &os) const {  
        os.write(reinterpret_cast<const char*>(&width), sizeof(width));  
        os.write(reinterpret_cast<const char*>(&height), sizeof(height));  
    }  

    void readFromStream(std::istream &is) {  
        is.read(reinterpret_cast<char*>(&width), sizeof(width));  
        is.read(reinterpret_cast<char*>(&height), sizeof(height));  
    }  
};  

int main() {  
    Rectangle rectangles[5] = {  
        Rectangle(1, 1),  
        Rectangle(2, 2),  
        Rectangle(3, 3),  
        Rectangle(4, 4),  
        Rectangle(5, 5)  
    };  

    std::ofstream outputFile("object.dat", std::ios::binary);  
    for (const auto &rect : rectangles) {  
        rect.writeToStream(outputFile);  
    }  
    outputFile.close();  

    rectangles[2].setWidth(10);  
    rectangles[2].setHeight(3.5);  

    std::fstream file("object.dat", std::ios::in | std::ios::out | std::ios::binary);  
    file.seekp(2 * sizeof(Rectangle));  
    rectangles[2].writeToStream(file);  
    file.close();  

    return 0;  
}  

4.

描述
处理日志文件,日志文件的储存格式为“年/月/日 时:分:秒 用户名 操作”。
日志文件有多条记录:
2015/4/218:00:33 37c3b6b58c6ac3 LOGIN
2015/4/218:15:35 11734e186f24fe4c LOGIN
2015/4/218:34:57 9f3cf331d19a9f LOGIN
2015/4/219:00:29 389bcca2159f5de7 LOGIN
2015/4/219:08:29 c3bde693fdb3c3d LOGIN
……

可以下载日志文件:

https://dodo.hznu.edu.cn/Upload/lab/3084b8184a6f9802/face/6946dcda8d1cdb3/log.txt

【输入】
日志文件log.txt。(该文件已经存在,无需自己创建)
【输出】
日志文件中活跃用户的数量。
【输入示例】

【输出示例】
123
【提示】
活跃用户指的是在日志文件中有过操作的用户,记得把重复出现的用户去掉。
输出示例只是格式说明,并非正确答案。

#include <iostream>  
#include <fstream>  
#include <string>  
#include <unordered_set>  

using namespace std;  

int main() {  
    ifstream logFile("log.txt"); // 打开日志文件  
    if (!logFile) { // 检查文件是否成功打开  
        cerr << "无法打开日志文件 log.txt" << endl;  
        return 1;  
    }  

    unordered_set<string> activeUsers; // 存储活跃用户的集合  
    string line;  

    // 逐行读取日志文件  
    while (getline(logFile, line)) {  
        // 找到操作字段的位置  
        size_t lastSpace = line.rfind(' '); // 找到最后一个空格的位置  
        if (lastSpace != string::npos) { // 确保找到了空格  
            // 提取用户名  
            string username = line.substr(lastSpace + 1); // 从最后一个空格后开始到行尾  
            // 存储用户名到集合  
            activeUsers.insert(username);  
        }  
    }  

    logFile.close(); // 关闭文件  

    // 输出活跃用户的数量  
    cout << activeUsers.size() << endl;  

    return 0;  
}

5.

【描述】
以二进制方式打开图片文件并读取该文件中的第 13(从1开始计数,后同),49, 80 个字节处的值,求这3个二进制数按位异或的结果(16进制表示)。

【输入】
图片文件image.jpg。(该文件已经存在,无需自己创建)
【输出】
第 13(从1开始计数,后同),49, 80个字节处3个二进制数按位异或的结果(16进制表示)。
【输入示例】
图片文件image.jpg。
【输出示例】
a9
【提示】
输出示例只是格式说明,并非正确答案。

#include<iostream>
#include<cmath>
#include<string>
#include<cstring>
#include<sstream>
#include<vector>
#include<array>
#include<algorithm>
#include<iomanip>
#include<map>
#include<cstdlib>
#include<stdexcept>
#include<numeric>
#include<fstream>
#include<random>
#include<set>
#include<sstream>

using namespace std;


int main() {
    ifstream imageFile("image.jpg", ios::binary); // 以二进制方式打开图片文件
    if (!imageFile.is_open()) {
        cerr << "无法打开文件 image.jpg" << endl;
        return 1;
    }

    // 读取指定字节的位置
    char byte13, byte49, byte80;

    // 移动到第12个字节(13 - 1),并读取
    imageFile.seekg(12);
    imageFile.get(byte13);

    // 移动到第48个字节(49 - 1),并读取
    imageFile.seekg(48);
    imageFile.get(byte49);

    // 移动到第79个字节(80 - 1),并读取
    imageFile.seekg(79);
    imageFile.get(byte80);

    imageFile.close(); // 关闭文件

    // 计算按位异或的结果
    unsigned char result = (static_cast<unsigned char>(byte13) ^
                            static_cast<unsigned char>(byte49) ^
                            static_cast<unsigned char>(byte80));

    // 输出结果(16进制表示)
    cout << hex << static_cast<int>(result) << endl;

    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2197133.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FineReport批量处理列宽

1、选定多列 2、右击 3、设置列宽

Library介绍(四)

标准单元描述 标准单元主要由以下几个部分构成&#xff0c;分别是引脚电容、power、timing组成。其中引脚电容主要包含input/output pin的电容值。 power主要包含每个pin的leakage power和internal power。 timing主要包括cell的input pin到output pin的rise delay和fall del…

变换器(Transformer)在医学成像中的应用(上)

在自然语言任务上取得前所未有的成功之后&#xff0c;Transformer已被成功应用于多个计算机视觉问题&#xff0c;取得了最先进的结果&#xff0c;并促使研究人员重新考虑卷积神经网络(CNNs)作为事实上标准操作符的优势地位。利用计算机视觉领域的这些进展&#xff0c;医学影像领…

异业联盟,新名词 助力企业生态共存体!

在当今这个快速变化的市场环境中&#xff0c;单一企业的力量往往难以独自应对激烈的竞争和不断变化的消费者需求。 异业联盟模式应运而生&#xff0c;它像一座桥梁&#xff0c;连接起不同行业、不同领域的商家或企业&#xff0c;通过资源共享、优势互补和互利共赢的合作方式&am…

Xinstall带你解锁App下载归因新姿势,轻松搞定推广难题

在移动互联网时代&#xff0c;App的推广和运营对于产品的成功至关重要。然而&#xff0c;推广者在App推广过程中面临着诸多痛点&#xff0c;其中最关键的问题之一就是如何准确追踪和分析App的下载归因。这时候&#xff0c;Xinstall作为专业的App下载归因工具&#xff0c;成为了…

介绍一下SAP 函数 NUMBER_GET_NEXT的妙用——获取SAP编码OBJECT

NUMBER_GET_NEXT 是 SAP 中用于获取下一个可用编号的函数模块&#xff0c;通常用于生成唯一的编号或序列号。这个函数模块的妙用在于它能够确保编号的唯一性和连续性&#xff0c;适用于需要生成订单号、发票号或其他业务对象编号的场景。 我在写ABAP程序时经常要调用这个函数来…

对序列化反序列化在项目中的使用优化

文章目录 序列化是什么&#xff1f;常见的序列化协议使用序列化反序列化序列化List反序列化List 查看源码&#xff0c;分析不足进行改善 序列化是什么&#xff1f; 如果我们需要持久化 Java 对象比如将 Java 对象保存在文件中&#xff0c;或者在网络传输 Java 对象&#xff0c…

Unity3d动画插件DoTween使用指南

1、DoTween是什么&#xff1f; DoTween是一款对象动画类插件&#xff0c;它是一款针对Unity 3D编辑器的、快速高效的、安全的、面向对象的补间动画引擎&#xff0c;并且对C#语言开发做出了很多的优化。另外&#xff0c;它使得开发者无需通过Unity内置的Animator或Coroutines即可…

vue3 对 vue2 有什么优势

1、diff算法的优化--静态标记&#xff08;PatchFlag&#xff09; vue2中的虚拟dom是全量的对比&#xff08;每个节点不论写死的还是动态的都会一层一层比较&#xff0c;这就浪费了大部分事件在对比静态节点上&#xff09; vue3编译模板时&#xff0c;动态节点做标记 标记分为不…

给新手学ComfyUI的建议,以及几个免费工作流的分享!

前言 这是我学ComfyUI的经历&#xff0c;分享给你们&#xff0c;也许你们可以少走一些弯路。 给新手建议 刚开始学ComfyUI的时候&#xff0c;是想做AI写真的&#xff0c;但是SD一次AI写真都没做过&#xff0c;所以相当于SD零基础。然后我就去哔哩哔哩找教程看&#xff0c;跟…

日常记账:解锁生活财务管理的秘密钥匙

在日常生活的纷繁复杂中&#xff0c;我们往往容易忽视那些细微却重要的财务流动。每一笔支出&#xff0c;无论大小&#xff0c;都是生活乐章中的一个音符。而日常记账&#xff0c;就是那把能够解锁生活财务管理秘密的钥匙。它不仅仅是一种简单的记录行为&#xff0c;更是一种对…

【大学学习-大学之路-回顾-电子计算机相关专业-学习方案-自我学习-大一新生(1)】

【大学学习-大学之路-回顾-电子&计算机相关专业-学习方案-自我学习-大一新生&#xff08;1&#xff09;】 1-前言2-整体说明&#xff08;1&#xff09;打字训练&#xff08;1&#xff09;字母区分大小写&#xff1a;&#xff08;2&#xff09;自动换行&不自动换行&…

Vue3中提到的Tree-shaking

我们知道&#xff0c;Vue3中提到一个叫Tree-shaking的东西&#xff0c;其实也并不是一个新的东西&#xff0c;有人称之为"摇树优化"&#xff0c;什么意思&#xff1f; 按照作者的原话解释&#xff0c;Tree-shaking其实就是&#xff1a;把无用的模块进行“剪枝”&…

小程序配置文件

Author&#xff1a;Dawn_T17&#x1f965; 目录 官方开发文档 配置文件 全局配置文件—app.json pages字段 window字段 tabBar字段 页面配置文件—*.json 项目配置文件 project.config.json 和 project.private.config.json 配置sass以及不同的*SS区别 预处理器…

学习Flask框架

Flask简介 Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug &#xff0c;模板引擎则使用 Jinja2 。Flask使用 BSD 授权。 Flask也被称为 “microframework” &#xff0c;因为它使用简单的核心&#xff0c;用 extension 增加其他功能。Flask没…

ssm淘乐乐员工购物商城

系统包含&#xff1a;源码论文 所用技术&#xff1a;SpringBootVueSSMMybatisMysql 免费提供给大家参考或者学习&#xff0c;获取源码请私聊我 需要定制请私聊 目 录 目 录 III 第1章 绪论 1 1.1 课题背景 1 1.2 课题意义 1 1.3 研究内容 2 第2章 开发环境与技术 3 …

函数编程:让开发完全专注于代码

作为一名开发者&#xff0c;我过去常常被各种环境配置和部署问题困扰&#xff0c;特别是当项目依赖复杂时&#xff0c;总要花费大量时间在配置服务器、调试环境上。最近&#xff0c;我在使用 TitanIDE 后有了一些全新的开发体验&#xff0c;尤其是它的 函数编程 功能&#xff0…

七、安全运营—概念

控制特权帐号&#xff1a; 账号类型&#xff1a;

众数信科AI智能体智慧文旅解决方案——智能旅行助手

智慧文旅解决方案 智能旅行助手方案 利用先进的AI算法 提供个性化旅游体验的智能服务 众数信科AI智能体 产品亮点 旅游路线智能规划 旅游景点智能问答 旅行游记智能生成等 构建旅行实用指南 让旅游更加便捷、高效、智能化 关于我们 众数信科成立于2021年&#xff0c;由…

操作系统 | 学习笔记 | 王道 | 4.1 文件系统基础

4.文件管理 4.1 文件系统基础 4.1.1 文件的基本概念 定义 文件是以计算机硬盘为载体的存储在计算机上的信息集合&#xff0c;在用户进行的输入、输出中&#xff0c;以文件位基本单位。 文件管理系统是实现的文件的访问、修改和保存&#xff0c;对文件维护管理的系统。 文件的…