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

news/2024/10/9 8:48:32

任务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.ryyt.cn/news/69258.html

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

相关文章

网站首页出现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. 数据工程生命周期…