hznu.dodo C++ 实验A 文件

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.xdnf.cn/news/1557599.html

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

相关文章

CISP vs CISSP | 不知道选哪个?这篇告诉你答案

CISP与CISSP有什么区别&#xff1f;我到底考哪个呢&#xff1f;哪个难一点&#xff1f;哪个含金量高&#xff1f; 这些问题一篇为你全部解答&#xff01; 01 概念和发证机构的差异 CISP&#xff0c;“Certified Information Security Professional”&#xff0c;即注册信息安…

postman自动化实战总结

Postman实战总结 简介 本次实战内容主要包括如下几点&#xff1a; l 背景介绍 l Postman使用&#xff0c;侧重于自动化实现&#xff0c;基础使用不做介绍 l 可视化Newman介绍 l 框架特色 l 实战中的坑 背景 随着国内软件技术的高速发展&#xff0c;越来越多的手工测试…

【JavaScript】JS核心语法及函数

文章目录 一、初识 JS二、JS 核心语法2-1 变量2-2 数据类型typeofString 对象 2-3 数组创建数组常用属性方法 2-4 运算符号加号运算符 减号运算符 -比较运算符逻辑运算符 2-5 控制语句for-inbreakcontinue 三、函数3-1 常用系统函数3-2 自定义函数函数声明函数调用 3-3 创建对象…

Spring WebFlux 响应式概述(1)

1、响应式编程概述 1.1、响应式编程介绍 1.1.1、为什么需要响应式 传统的命令式编程在面对当前的需求时的一些限制。在应用负载较高时&#xff0c;要求应用需要有更高的可用性&#xff0c;并提供低的延迟时间。 1、Thread per Request 模型 比如使用Servlet开发的单体应用&a…

MatrixVT: Efficient Multi-Camera to BEV Transformation for 3D Perception

本文提出了一种高效的多摄像头到鸟瞰图 (BEV) 视图转换方法&#xff0c;用于 3D 感知&#xff0c;称为 MatrixVT。现有的视图转换器要么转换效率低下&#xff0c;要么依赖于特定于设备的操作符&#xff0c;阻碍了 BEV 模型的广泛应用。相比之下&#xff0c;我们的方法仅使用卷积…

达梦8-主备集群故障之故障备库剔除与重新加入

实验环境 操作系统版本 银河麒麟Linux kylin10 4.19.90-24.4.v2101.ky10.x86_64 数据库版本 DM Database Server 64 V8 ##主库信息 内网IP-[MAL_HOST 192.168.50.100]外网IP-[MAL_INST_HOST 192.168.101.11] 主库实例名-[DM01] OGUID45335 ##备库信息 内网IP-[MAL_HOST …

这些都伦敦银结算时间 第二个尤其值得关注

伦敦银结算时间是什么时候呢&#xff1f;伦敦银虽说号称是24小时交易的品种&#xff0c;实际上每个平台都会在一个交易日中选定一定的时间停盘进行结算&#xff0c;在这些时间投资者没法交易&#xff0c;市场也不会波动。那么&#xff0c;伦敦银结算时间是什么时候&#xff1f;…

京东云主机和云服务器有啥区别?轻量云主机就是轻量应用服务器吗?

京东云主机和云服务器有啥区别&#xff1f;轻量云主机就是轻量应用服务器吗&#xff1f;云主机就是云服务器的意思&#xff0c;是京东云给自家云服务器取的名字&#xff0c;阿里云叫云服务器ECS&#xff0c;腾讯云叫云服务器CVM&#xff0c;京东云服务器叫云主机&#xff0c;京…

人数识别 人员超员识别系统 作业区域超员预警系统 ai#YOLO视觉

在当今复杂的生产作业与社会管理场景中&#xff0c;人员管理的精准性和高效性变得愈发重要。人数识别、人员超员识别系统、作业区域超员预警系统以及特殊岗位人员达标监测等&#xff0c;都是保障安全生产、提高运营效率和维护社会秩序的关键要素。随着人工智能(AI)技术的飞速发…

客户案例 | Airbus Helicopters借助仿真技术实现节能安全的驾驶舱设计

大家都知道&#xff0c;太阳眩光、驶近的车辆照射的灯光或雨水的反射会分散注意力。对于驾驶员来说光学失真更具挑战性&#xff0c;因为这关乎驾驶安全。除了外部照明条件外&#xff0c;驾驶员通常还会面临‌内部照明‌挑战&#xff0c;比如车辆指示灯面板上的重要信息无法清晰…

Ambari 你想知道的都在这里

&#x1f468;‍&#x1f4bb; 关于我 大家好&#xff0c;我叫小饕。一位末流系统架构师&#xff0c;深耕大数据技术多年&#xff0c;对前端、后端、中间件和运维有着丰富的经验和深刻的理解。在过去的几年里&#xff0c;我主要专注于Ambari的研究和探索&#xff0c;通过不断的…

证件照片一键生成软件有哪些?这里看5个

想要一张完美的证件照&#xff0c;却不想花大价钱去照相馆&#xff1f; 别担心&#xff0c;现在有多种免费应用可以帮助你在家轻松制作证件照片。 从调整尺寸到修改背景&#xff0c;这些应用功能齐全&#xff0c;让你的证件照看起来既专业又符合要求。 下面就来看看这5个不花…

C#将部分Controls数据导入对象并存入ini中

目录 1.遍历控件和属性得到控件的值 2.利用FieldInfo的getSet函数设置类对象数据 3.Ini简易类库编写 4.存入对象转换为json存入ini 5.效果展示 在日常的Winform设计工作中&#xff0c;将控件中的数据导出到对应属性或者字段中&#xff0c;再进行保存是经常会用到的技巧&#x…

【HTML并不简单】笔记3-你不知道的列表元素和html、body

文章目录 无序列表menuol的其他属性typestart和valuereversed 定义列表dl、dt、ddhtml与body关联性overflow 桌面端和移动端的滚动条 《HTML并不简单&#xff1a;Web前端开发精进秘籍》张鑫旭 笔记 无序列表menu <menu>元素可以看成是<ul>元素的平行替代&#xff…

网源高科产品总监郎磊受邀为第四届中国项目经理大会演讲嘉宾

全国项目经理专业人士年度盛会 北京网源高科软件有限公司产品交付部门产品总监、行业解决方案首席咨询顾问郎磊先生受邀为PMO评论主办的全国项目经理专业人士年度盛会——2024第四届中国项目经理大会演讲嘉宾&#xff0c;演讲议题为“什么样的AI工具&#xff0c;才是项目经理的…

【韩顺平Java笔记】第8章:面向对象编程(中级部分)【285-296】

文章目录 285. 为什么需要继承286. 继承原理图287. 继承快速入门288. 289. 290. 291. 292. 继承使用细节1,2,3,4,5288.1 继承给编程带来的便利288.2 继承的深入讨论/细节问题 293. 继承本质详解294. 继承课堂练习1295. 继承课堂练习2296. 继承课堂练习3 285. 为什么需要继承 28…

相亲交友系统的商业模式探讨

在撰写关于相亲交友系统的商业模式探讨时&#xff0c;附带示例代码可能不太合适&#xff0c;因为软文通常是面向非技术读者&#xff0c;讲述商业模式、用户体验等方面的内容。不过&#xff0c;为了满足您的需求&#xff0c;我可以尝试结合一些简单的伪代码&#xff08;模拟代码…

织物缺陷分割系统源码&数据集分享

织物缺陷分割系统源码&#xff06;数据集分享 [yolov8-seg-C2f-Faster-EMA&#xff06;yolov8-seg-act等50全套改进创新点发刊_一键训练教程_Web前端展示] 1.研究背景与意义 项目参考ILSVRC ImageNet Large Scale Visual Recognition Challenge 项目来源AAAI Global Al lnn…

UE5安卓,多指点击时会调出控制台

参考文章&#xff1a; How to turn off "console window" on swipe (my Lemurs keep opening it!) - Platform & Builds / Mobile - Epic Developer Community Forums (unrealengine.com) 准确来说是4只手指同时在屏幕中按下。这个控制台能像编辑器那样&#xf…

vue项目刷新后h5样式失效

vue项目刷新后h5样式失效 今天遇到一个bug&#xff0c;有一个Element的message组件&#xff0c;用它做的一个进度条&#xff0c;它是写在一个页面上&#xff0c;并且是用js控制dom元素的 web端一切正常&#xff0c;h5如果从别的页面跳过来也正常&#xff0c;但是&#xff0c;H…