首页 > 其他分享 >实验4

实验4

时间:2023-11-28 17:11:33浏览次数:17  
标签:std info string int text 实验 include

 1 #include <iostream>
 2 #include <string>
 3 
 4 class TextCoder {
 5 private:
 6     std::string text;
 7 
 8     void encoder() {
 9         for (auto& c : text) {
10             if (c >= 'a' && c <= 'z') {
11                 c = (c - 'a' + 7) % 26 + 'a';
12             } else if (c >= 'A' && c <= 'Z') {
13                 c = (c - 'A' + 7) % 26 + 'A';
14             }
15         }
16     }
17 
18     void decoder() {
19         for (auto& c : text) {
20             if (c >= 'a' && c <= 'z') {
21                 c = (c - 'a' + 19) % 26 + 'a';
22             } else if (c >= 'A' && c <= 'Z') {
23                 c = (c - 'A' + 19) % 26 + 'A';
24             }
25         }
26     }
27 
28 public:
29     TextCoder() {}
30     TextCoder(std::string str) : text(str) {}
31 
32     std::string get_ciphertext() {
33         encoder();
34         return text;
35     }
36 
37     std::string get_deciphertext() {
38         decoder();
39         return text;
40     }
41 };
textcoder.hpp
 1 #include "textcoder.hpp"
 2 #include <iostream>
 3 #include <string>
 4 void test() {
 5 using namespace std;
 6 string text, encoded_text, decoded_text;
 7 cout << "输入英文文本: ";
 8 while (getline(cin, text)) {
 9 encoded_text = TextCoder(text).get_ciphertext(); // 这里使用的是临时无名对象
10 cout << "加密后英文文本:\t" << encoded_text << endl;
11 decoded_text = TextCoder(encoded_text).get_deciphertext(); // 这里使用的是临时无名对象
12 cout << "解密后英文文本:\t" << decoded_text << endl;
13 cout << "\n输入英文文本: ";
14 }
15 }
16 int main() {
17     test();
18 }
task5.cpp

任务5

 

 

 

 

 1 #ifndef INFO_HPP
 2 #define INFO_HPP
 3 
 4 #include <iostream>
 5 #include <string>
 6 
 7 class Info {
 8 private:
 9     std::string nickname;
10     std::string contact;
11     std::string city;
12     int n;
13 
14 public:
15     Info() {}
16     Info(std::string nickname, std::string contact, std::string city, int n)
17         : nickname(nickname), contact(contact), city(city), n(n) {}
18 
19     void print() const {
20         std::cout << "昵称: " << nickname << std::endl;
21         std::cout << "联系方式: " << contact << std::endl;
22         std::cout << "所在城市: " << city << std::endl;
23         std::cout << "预定参加人数: " << n << std::endl;
24     }
25 };
26 
27 #endif
info.hpp
 1 #include <iostream>
 2 #include <vector>
 3 #include "info.hpp"
 4 
 5 const int capacity = 100;
 6 
 7 int main() {
 8     std::vector<Info> audience_info_list;
 9     std::string nickname, contact, city;
10     int n;
11 
12     while (audience_info_list.size() < capacity) {
13         std::cout << "请输入昵称:";
14         std::getline(std::cin, nickname);
15 
16         std::cout << "请输入联系方式:";
17         std::getline(std::cin, contact);
18 
19         std::cout << "请输入所在城市:";
20         std::getline(std::cin, city);
21 
22         std::cout << "请输入预定参加人数:";
23         std::cin >> n;
24         std::cin.ignore(); // 忽略输入缓冲区中的换行符
25 
26         if (n > capacity - audience_info_list.size()) {
27             std::string choice;
28             std::cout << "预定参加人数超过场地容量剩余限制,输入 q 退出预定,输入 u 更新预定信息:";
29             std::getline(std::cin, choice);
30 
31             if (choice == "q") {
32                 break;
33             } else if (choice == "u") {
34                 continue;
35             }
36         }
37 
38         Info info(nickname, contact, city, n);
39         audience_info_list.push_back(info);
40     }
41 
42     for (const auto& info : audience_info_list) {
43         info.print();
44         std::cout << std::endl;
45     }
46 
47     return 0;
48 }
task6.cpp

任务6

 

标签:std,info,string,int,text,实验,include
From: https://www.cnblogs.com/shaoshuai-nuist/p/17862432.html

相关文章

  • 人工智能-产生式系统实验(动物识别)
    1.实验目的1.熟悉知识的表示方法2.掌握产生式系统的运行机制3.产生式系统推理的基本方法。 2.实验内容运用所学知识,设计并编程实现一个小型动物识别系统,能识别虎、金钱豹、斑马、长颈鹿、鸵鸟、企鹅、信天翁等七种动物的产生式系统。规则库:r1:IF该动物有毛发THEN该动物是......
  • 实验五。
    实验一找到最大最小的数;都指向x(a)数组首元素;找出数组中最大值;不可以,作用域结束,函数内的数组所占内存空间释放,指针变为野指针;实验二:s1的大小是24;sizeof是数组所占字节数;strlen统计字符个数不算‘\0’;不可以,s1的地址是const类型,而后面的字符串返回的是他的地址,s1不可改变无法......
  • 【2023CANN训练营第二季】——Ascend C自定义算子工程介绍及实验
    一、自定义算子工程介绍与创建自定义算子工程是一个包含用户编写的host侧和kerne|侧算子实现文件的,用于编译和安装自定义算子run包的工程框架。CANN软件包中提供了工程创建工具msopgen,开发者可以输入算子原型定义文件生成AscendC算子开发工程。需要编写AddCustom算子的原型定义......
  • 实验4 现代C++标准库与类模板
    实验任务5:1.代码:textcoder.hpp:1#pragmaonce23#include<iostream>4#include<vector>5#include<array>6#include<string>7usingnamespacestd;89classTextCoder10{11private:12stringtext;13......
  • 实验5
    一、1-1、①使最大值、最小值赋值到对应指针变量        ②全部指向X首元素地址    1-2、①最大值地址        ②可以二、2-1、①24   数组s1占用字节数  数组s1长度        ②不能 数组s1没有初值和大......
  • 实验5
    任务1#include<stdio.h>#defineN5voidinput(intx[],intn);voidoutput(intx[],intn);voidfind_min_max(intx[],intn,int*pmin,int*pmax);intmain(){inta[N];intmin,max;printf("录入%d个数据:\n",N);input(a......
  • 实验五
    实验一找到最大最小的数;都指向x(a)数组首元素;找出数组中最大值;不可以,作用域结束,函数内的数组所占内存空间释放,指针变为野指针;实验二:s1的大小是24;sizeof是数组所占字节数;strlen统计字符个数不算‘\0’;不可以,s1的地址是const类型,而后面的字符串返回的是他的地址,s1不可改变无法......
  • 实验4 现代C++标准库与类模板
    实验任务5TextCoder.hpp#pragmaonce#include<iostream>#include<string>usingnamespacestd;classTextCoder{public:TextCoder(stringtext0):text{text0}{};stringget_ciphertext();stringget_deciphertext();private:s......
  • 实验4 现代C++标准库与类模板
    实验任务5#pragmaonce#include<iostream>#include<string>usingnamespacestd;classTextCoder{public:TextCoder()=default;TextCoder(stringstr);stringget_ciphertext();stringget_deciphertext();~TextCoder()=de......
  • 实验4 现代C++标准库与类模板
    实验任务5TextCoder.hpp源码1#include<iostream>2#include<string>34usingstd::string;56classTextCoder{7private:8stringtext;9voidencoder();10voiddecoder();11public:12TextCod......