实验1现代C++编程初体验

news/2024/10/9 8:45:11/文章来源:https://www.cnblogs.com/nusit/p/18453432

任务1

 1 #include<iostream>
 2 #include<string>
 3 #include<vector>
 4 #include<algorithm>
 5 using namespace std;
 6 template<typename T>
 7 void output(const T &c) {
 8     for (auto &i : c)
 9         cout << i << " ";
10     cout << endl;
11 }
12 void test1() {
13     string s0{ "0123456789" };
14     cout << "s0=" << s0 << endl;
15     string s1{ s0 };
16     reverse(s1.begin(), s1.end());
17     cout << "s1=" << s1 << endl;
18     string s2{ s0 };
19     reverse_copy(s0.begin(), s0.end(), s2.begin());
20     cout << "s2=" << s2 << endl;
21 }
22 void test2() {
23     vector<int> v0{ 2,0,4,9 };
24     cout << "v0:";
25     output(v0);
26     vector<int> v1{ v0 };
27     reverse(v1.begin(), v1.end());
28     cout << "v1:";
29     output(v1);
30     vector<int> v2{ v0 };
31     reverse_copy(v0.begin(), v0.end(), v2.begin());
32     cout << "v2:";
33     output(v2);
34 }
35 void test3() {
36     vector<int> v0{ 0,1,2,3,4,5,6,7,8,9 };
37     cout << "v0:";
38     output(v0);
39     vector<int> v1{ v0 };
40     rotate(v1.begin(), v1.begin() + 1, v1.end());
41     cout << "v1:";
42     output(v1);
43     vector<int> v2{ v0 };
44     rotate(v2.begin(), v2.begin() + 2, v2.end());
45     cout << "v2:";
46     output(v2);
47     vector<int> v3{ v0 };
48     rotate(v3.begin(), v3.end() - 1, v3.end());
49     cout << "v3:";
50     output(v3);
51     vector<int> v4{ v0 };
52     rotate(v4.begin(), v4.end() - 2, v4.end());
53     cout << "v4:";
54     output(v4);
55 }
56 int main() {
57     cout << "测试1:\n";
58     test1();
59     cout << "\n测试2:\n";
60     test2();
61     cout << "\n测试3:\n";
62     test3();
63 }
View Code

 


}

任务2

 1 #include<iostream>
 2 #include<vector>
 3 #include<string>
 4 #include<algorithm>
 5 #include<numeric>
 6 #include<iomanip>
 7 using namespace std;
 8 template<typename T>
 9 void output(const T& c) {
10     for (auto& i : c)
11         cout << i << " ";
12     cout << endl;
13 }
14 int rand_int_100() {
15     return rand() % 101;
16 }
17 void test1() {
18     vector<int> v0(10);
19     generate(v0.begin(), v0.end(), rand_int_100);
20     cout << "v0:";
21     output(v0);
22     vector<int> v1{ v0 };
23     sort(v1.begin(), v1.end());
24     cout << "v1:";
25     output(v1);
26     vector<int> v2{ v0 };
27     sort(v2.begin() + 1, v2.end() - 1);
28     cout << "v2:";
29     output(v2);
30 }
31 void test2() {
32     vector<int> v0(10);
33     generate(v0.begin(), v0.end(), rand_int_100);
34     cout << "v0:";
35     output(v0);
36     auto iter1 = min_element(v0.begin(), v0.end());
37     cout << "最小值:" << *iter1 << endl;
38     auto iter2 = max_element(v0.begin(), v0.end());
39     cout << "最大值:" << *iter2 << endl;
40     auto ans = minmax_element(v0.begin(), v0.end());
41     cout << "最小值:" << *(ans.first) << endl;
42     cout << "最大值:" << *(ans.second) << endl;
43     double avg1 = accumulate(v0.begin(), v0.end(), 0) / v0.size();
44     cout << "均值:" << fixed << setprecision(2) << avg1 << endl;
45     cout << endl;
46     vector<int> v1{ v0 };
47     cout << "v0:";
48     output(v0);
49     sort(v1.begin(), v1.end());
50     double avg2 = accumulate(v1.begin() + 1, v1.end() - 1, 0) / (v1.size() - 2);
51     cout << "去掉最大值、最小值之后,均值:" << avg2 << endl;
52 
53 }
54 int main() {
55     cout << "测试1:\n";
56     test1();
57     cout << "测试2:\n";
58     test2();
59 }
View Code

 

 任务3

 1 #include<iostream>
 2 #include<string>
 3 #include<algorithm>
 4 using namespace std;
 5 bool is_palindrome(string s) {
 6     string s1{ s };
 7     reverse(s1.begin(), s1.end());
 8     if (s1 == s)
 9         return true;
10     return false;
11 }
12 int main() {
13     string s;
14     while (cin >> s)
15         cout << boolalpha << is_palindrome(s) << endl;
16 
17 }
View Code

 

 任务4

 1 #include<iostream>
 2 #include<string>
 3 #include<algorithm>
 4 using namespace std;
 5 string dec2n(int x, int n = 2) {
 6     string ans;
 7     while (x) {
 8         if (x % n >= 10) {
 9             ans += char(x % n - 10 + 'A');
10             x /= n;
11         }
12         else
13         {
14             ans += char(x % n + '0');
15             x /= n;
16         }
17 
18     }
19     reverse(ans.begin(), ans.end());
20     return ans;
21 }
22 int main() {
23     int x;
24     while (cin >> x) {
25         cout << "十进制:" << x << endl;
26         cout << "二进制:" << dec2n(x) << endl;
27         cout << "八进制:" << dec2n(x, 8) << endl;
28         cout << "十六进制:" << dec2n(x, 16) << endl << endl;
29     }
30     return 0;
31 }
View Code

 



 任务5

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<iomanip>
 4 using namespace std;
 5 void output(string& s) {
 6     for (auto& i : s)
 7         cout << setw(2)<<char(i-32);
 8     cout << endl;
 9 }
10 int main() {
11     string s{ 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','s','y','z' };
12     cout << setw(4);
13     for (auto& i : s)
14         cout <<i<<setw(2);
15     cout << endl;
16     for (int i = 1; i <= 26; i++) {
17         string s1{ s };
18         cout << setw(2) << i;
19         rotate(s1.begin(), s1.begin() + i, s1.end());
20         output(s1);
21     }
22     return 0;
23 }
View Code

 

 任务6

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<iomanip>
 4 using namespace std;
 5 int main() {
 6     int cnts = 10;
 7     int ans = 0;
 8     int answer = 0;
 9     int correct = 0;
10     while (cnts--) {
11         int k = rand() % 4;
12         int num1 = rand() % 11;
13         int num2 = rand() % 11;
14         switch (k)
15         {
16         case 1:
17             cout << num1 << "+" << num2 << "=";
18             ans = num1 + num2;
19             break;
20         case 2:
21             if (num1 <= num2)
22                 swap(num1, num2);
23             cout << num1 << "-" << num2 << "=";
24             ans = num1 - num2;
25             break;
26                 
27         case 3:
28             cout << num1 << "*" << num2<<"=";
29             ans = num1 * num2;
30             break;
31         case 0:
32             num1 = num2 * (rand() % (10 / num2 + 1));
33             cout << num1 << "/" << num2 << "=";
34             ans = num1 / num2;
35             break;
36         }
37         cin >> answer;
38         if (ans == answer)
39             correct++;
40     }
41     cout << fixed << setprecision(2);
42     cout << correct * 100.0 / 10 << "%";
43     return 0;
44 }
View Code

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站首页出现504错误

遇到网站首页出现504错误,通常意味着网关超时(Gateway Timeout)。这表示前端服务器在尝试与后端服务器(如数据库服务器或应用服务器)通信时没有得到及时响应。以下是一些排查和解决504错误的方法:检查网络连接确保你的网络连接正常。 尝试刷新页面或者重新加载网站。查看…

实验1 C++

任务1: task1.cpp1 // 现代C++标准库、算法库体验2 // 本例用到以下内容:3 // 1. 字符串string, 动态数组容器类vector、迭代器4 // 2. 算法库:反转元素次序、旋转元素5 // 3. 函数模板、const引用作为形参6 7 #include <iostream>8 #include <string>9 #include…

【解决方案】基于数据库驱动的自定义 TypeHandler 处理器

笔者在最近的项目开发中,频繁地遇到了 Java 类型与 JDBC 类型之间的转换问题: 1、数据库的 varchar 类型字段,需要存储 Java 实体中的 JSON 字符串; 2、数据库的 int 类型字段,需要存储 Java 实体中的 Enum 枚举。目录前言一、TypeHandler 简介1.1转换步骤1.2转换规则二、…

VMware ESXi 8.0U3 xFusion (超聚变) 定制版更新 OEM BIOS 2.7 支持 Windows Server 2025

VMware ESXi 8.0U3 xFusion (超聚变) 定制版更新 OEM BIOS 2.7 支持 Windows Server 2025VMware ESXi 8.0U3 xFusion (超聚变) 定制版更新 OEM BIOS 2.7 支持 Windows Server 2025 VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS xFusion (超聚变) 定制版 ESXi 8.0U3 标准版…

VMware ESXi 8.0U3 Huawei (华为) 定制版更新 OEM BIOS 2.7 支持 Windows Server 2025

VMware ESXi 8.0U3 Huawei (华为) 定制版更新 OEM BIOS 2.7 支持 Windows Server 2025VMware ESXi 8.0U3 Huawei (华为) 定制版更新 OEM BIOS 2.7 支持 Windows Server 2025 VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS Huawei (华为) 定制版 ESXi 8.0U3 标准版,Dell (戴…

VMware ESXi 8.0U3 HPE (慧与) 定制版更新 OEM BIOS 2.7 支持 Windows Server 2025

VMware ESXi 8.0U3 HPE (慧与) 定制版更新 OEM BIOS 2.7 支持 Windows Server 2025VMware ESXi 8.0U3 HPE (慧与) 定制版更新 OEM BIOS 2.7 支持 Windows Server 2025 VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS HPE (慧与) 定制版 ESXi 8.0U3 标准版,Dell (戴尔)、HPE…

ASP.NET Core OData 9的发布,放弃 .NET Framework

Microsoft 于 2024 年 8 月 30 日宣布推出 ASP.NET Core OData 9 包。 这个新包将ASP.NET Core与.NET 8 OData库保持一致,改变了OData格式中数据编码的内部细节,使其更符合OData 规范。在2024年8月早些时候,Microsoft 将 OData .NET 库更新到版本 8.0.0。其中最重要的更改是…

读数据工程之道:设计和构建健壮的数据系统03数据工程生命周期(上)

数据工程生命周期(上)1. 数据工程生命周期 1.1. 数据领域正在经历新数据技术和实践的爆炸式增长,抽象程度和易用性不断提高 1.2. 由于技术抽象程度的增加,数据工程师将越来越多地成为数据生命周期工程师,根据数据生命周期管理的原则来进行思考和操作 1.3. 数据工程生命周期…

2024年9月学习月报

一、学习目标学习 VLM 的基本原理和架构,理解视觉和语言信息的融合方式,掌握 VLM 的训练方式与评估方法。 学习 VLM 在遥感领域的应用(RemoteCLIP、ChangeCLIP),并尝试本地复现。二、学习内容 文献 An Introduction to Vision-Language Modeling VLM 按照训练方式可以分为…

31. 数据库基础

1. 数据库基础知识 1.1 关系型数据库与非关系型数据库1.2 关系型数据库的结构 库 Database 库,也称数据库,用于组织、存储和管理数据 类比于文件夹 表 Table 表,是数据库中基本的数据存储单位,由行(Row)和列(Column)组成 类比于excel文件 记录 Record 记录,是表中的一…

KeyShot基础操作2 - 材质篇

介绍了KeyShot的材质相关的内容:上材质、材质参数、贴图类型、映射类型、材质节点图等。​这部分基础操作,只是介绍KeyShot的操作方法,望知晓。 后续也会再更新材质、打光的案例,同时也会提供对应的工程文件。上材质基础操作 材质的通用参数 材质类型 纹理类型 多层材质 贴…

创建进程,设计信号量同步机制,实现多线程同步 - C语言版

环境:Windows11 编译器:Visual Studio 2019相关头文件: #include <windows.h> #include <stdio.h>相关函数:睡眠等待函数:Sleep(int millisecond); 睡眠等待一定时间,会造成OS重新调度其它的线程运行Sleep(10); //当前线程睡眠10毫秒后重新执行创建进程Cre…