首页 > 编程语言 >实验3 数组、指针与现代C++标准库

实验3 数组、指针与现代C++标准库

时间:2022-10-25 13:26:30浏览次数:41  
标签:string text 数组 item C++ && include TextCoder 指针

实验任务5:

info.hpp文件源码

 

 1 #pragma once
 2 #include <string>
 3 #include <iostream>
 4 #include <iomanip>
 5 using namespace std;
 6 class info {
 7 public:
 8     info(string nickname , string contact, string city, int n) : nickname(nickname), contact(contact),
 9     city(city),n(n) {}
10     void print() {
11         cout << setw(15) << "昵称" << nickname << setw(15) << "联系方式(邮箱/手机号)" << contact
12             << setw(15) << "所在城市" << city  << setw(15) << "预定参加人数" << n << endl;
13 
14     }
15     ~info() {}
16 private:
17     string nickname;
18     string contact;
19     string city;
20     int n;
21 };

 

task5.cpp源码

 1 #define _CRT_SECURE_NO_WARNINGS 1
 2 #include <iostream>
 3 #include <vector>
 4 #include "info.h"
 5 #include <string>
 6 static int people = 0;
 7 int main() {
 8     const int capacity = 100;
 9     vector<info> audience_info_list;
10     cout << "录入信息:" << endl;
11     cout << endl;
12     cout  << "昵称" << setw(30) << "联系方式(邮箱/手机号)" << setw(15) << "所在城市"
13         << setw(15) << "预定参加人数" << endl;
14     string nickname, contact, city;
15     int n;
16     while (cin >> nickname && cin >> contact && cin >> city && cin >> n) {
17         if (people + n <= capacity) {
18             info x(nickname, contact, city, n);
19             audience_info_list.push_back(x);
20             people += n;
21             /*if (people >= capacity)
22                 break;*/
23         }
24         else {
25             char choice;
26             cout << "预定参加人数超过livehouse场地剩余容量,输入q退出预定,或,输入u更新预定信息" << endl;
27             getchar();
28             choice = getchar();
29             if (choice == 'q')
30                 break;
31             else if (choice == 'u') {
32                 cout << "信息更新" << endl;
33             }
34             else
35                 cout << "输入错误,请重新输入" << endl;
36         
37         }
38         
39         
40     }
41     cout << "截止目前,一共有" << people << "位听众,预定听众信息如下:" << endl;
42     for (auto& item : audience_info_list)
43         item.print();
44 
45     return 0;
46 }

运行截图 

 实验任务6:

TextCoder.hpp源码:

 1 #pragma once
 2 #include <iostream>
 3 using namespace std;
 4 
 5 class TextCoder {
 6 private:
 7     string text;
 8     void encoder();
 9     void decoder();
10 public:
11     TextCoder(string text) : text(text) {}
12     ~TextCoder() {}
13     string get_ciphertext();
14     string get_deciphertext();
15 
16 };
17 string TextCoder::get_ciphertext() {
18     encoder();
19     return text;
20 }
21 string TextCoder::get_deciphertext() {
22     decoder();
23     return text;
24 }
25 
26 void TextCoder::encoder() {
27     for (auto& item : text) {
28         if ((item >= 'a' && item <= 'u') || (item >= 'A' && item <= 'U')) {
29             item += 5;    
30         }
31         else if ((item > 'u' && item <= 'z') || (item > 'U' && item <= 'Z')) {
32             item -= 21;
33         }
34     }
35 
36 }
37 void TextCoder::decoder() {
38     for (auto& item : text) {
39         if ((item >= 'f' && item <= 'z') || (item >= 'F' && item <= 'Z')) {
40             item -= 5;
41         }
42         else if ((item >= 'a' && item <= 'f') && (item >= 'A' && item <= 'F')) {
43             item += 21;
44         }
45     }
46 
47 }

task6.cpp程序源码:

 1 #define _CRT_SECURE_NO_WARNINGS 1
 2 #include "TextCoder.h"
 3 #include <iostream>
 4 #include <string>
 5 using namespace std;
 6 void test() {
 7     string text;
 8     string encoded_text, decoded_text;
 9     cout << "输入:";
10     while (getline(cin, text)) {
11         encoded_text = TextCoder(text).get_ciphertext();
12         cout << "加密:" << encoded_text << endl;
13         decoded_text = TextCoder(text).get_deciphertext();
14         cout << "解密:" << decoded_text << endl;
15         cout << endl;
16         cout << "输入:";
17     }
18     return ;
19 }
20 int main() {
21     test();
22 }

程序运行截图:

 

  

标签:string,text,数组,item,C++,&&,include,TextCoder,指针
From: https://www.cnblogs.com/abcdefg-gaoyuan/p/16823596.html

相关文章

  • 原生数组转包装类(基本类型数组、包装类数组、集合之间的相互转换(以及遍历方法))
    importjava.util.*;importjava.util.stream.Collectors;importstaticjava.util.Arrays.*;publicclassZhuanHuan{publicstaticvoidmain(String[]args){......
  • C++ 不知树系列之初识树(树的邻接矩阵、双亲孩子表示法……)
    1.前言树是一种很重要的数据结构,最初对数据结构的定义就是指对树和图的研究,后来才广义化了数据结构这个概念。从而可看出树和图在数结构这一研究领域的重要性。树和图重......
  • Java数组定义和内存原理
    数组定义和访问容器概念容器:是将多个数据存储到一起,每个数据称为该容器的元素。数组概念数组概念:数组就是存储数据长度固定的容器,保证多个数据的数据类型要一致。数组......
  • POJ 2184(01背包+滚动数组)
    01背包模板题Programdd;constmaxn=1000;maxv=100000;minv=-100000;NULL=-2139062144;varn,i,j,ans,p,np:longint;ts,tf:array[1..maxn]oflongint;......
  • POJ 3748(C++的16进制读法 %x)
    P党写几小时的程序C++才几行……首先P的位运算有上限2^30此时即便是int64也会因为补码坑死人的到1shl31时 int64是负数故这个时候不能shr为多出好多位造成以......
  • C++ visit
    C++visit#include<iostream>structOutput{intm_i{8};template<typenameF>voidvisit(F&f){f(this->m_i);}template<typename......
  • 求和式 (C++ 坑爹的<<,>>,%lld)
    求和式(x3)题目描述作为本场考试的第一题,你的任务十分简单:给定长度为n的序列A[i],求所有A[i]xorA[j](i<j)的值之和 输入第一行一个整数N接下来N行,第i行为A[i]输出所需的值......
  • JS 中为什么要有 Iterator,JS 中数组,对象,Map,Set遍历的推荐方法
    JavaScript原有的表示“集合”的数据结构主要是数组(Array)和对象(Object),ES6又添加了Map和Set。这样就有了4种数据集合,用户还可以组合使用它们,定义自己的数据......
  • 旋转数组
    给你一个数组,将数组中的元素向右轮转k 个位置,其中 k 是非负数。 示例1:输入:nums=[1,2,3,4,5,6,7],k=3输出:[5,6,7,1,2,3,4]解释:向右轮转1步:[7,1,2,3......
  • c++ accumulate
    用于累加数组元素普通用法:accumulate(首指针,末指针,累加初始值)除了对数字求和还可以连接字符串#include<bits/stdc++.h>usingnamespacestd;vector<string>v;vector<i......