首页 > 其他分享 >实验三

实验三

时间:2022-10-23 15:00:28浏览次数:35  
标签:info string text void 实验 && include

任务五

info.hpp

#include <iostream>
#include <string>
using namespace std;
class info {
private:
    string nickname, contact, city;
    int n;
public:
    info(string name, string contact0, string city0, int n0 = 0) :nickname{ name }, contact{ contact0 }, city{ city0 }, n{ n0 }{};
    void print();
};
void info::print() {
    cout << "昵称:    \t" << nickname << endl;
    cout << "联系方式:\t" << contact << endl;
    cout << "所在城市:\t" << city << endl;
    cout << "预定人数:\t" << n << endl;
}

task.cpp

#include "info.hpp"
#include <iostream>
#include <vector>
#include <string>
int main()
{
    using namespace std;
    const int capacity=100;
    vector<info> audience_info_list;
    cout << "录入信息:"<<endl;
    cout << "昵称\t" << "联系方式\t" << "所在城市\t" << "预定参加人数\t" << endl;
    string nickname, contact, city;
    int n,x=0;
    char mychoice;
    while (cin >> nickname >> contact >> city >> n)
    {
        x+=n;
        if (x<=capacity)
        {
            info p(nickname, contact, city, n);
            audience_info_list.push_back(p);
        }
        else
        {
            cout << "对不起,只剩" << capacity-x+n << "个位置"<< endl;
            cout << "1.输入u,更新预定信息" << endl << "2.输入q,退出预定" << endl;
            cout << "你的选择:";
            cin >> mychoice;
            if (mychoice == 'q')
                break;
            else
            {
                x -= n;
                continue;
            }
        }
    }
    if(x<=capacity)
        cout << "截至目前,一共有" << x << "位听众参加。预约听众信息如下:"<<endl;
    else
        cout << "截至目前,一共有" << x-n << "位听众参加。预约听众信息如下:" << endl;
    for (int i = 0; i < audience_info_list.size(); i++) 
    {
        audience_info_list.at(i).print();
        cout << endl;
    }

}

 

 

 

 实验六

textcoder.hpp

class textcoder {
private:
    string text;
    void encoder();
    void decoder();
public:
    textcoder(string text0):text{text0}{}
    string get_ciphertext();
    string get_deciphertext();
};
void textcoder::encoder() {
    for (auto i = 0;i < size(text);i++)
        if (text.at(i) >= 'a' && text.at(i) <= 'u')
            text.at(i) += 5;
        else if (text.at(i) >= 'v' && text.at(i) <= 'z')
            text.at(i) -= 21;
        else if (text.at(i) >= 'A' && text.at(i) <= 'U')
            text.at(i) += 5;
        else if (text.at(i) >= 'V' && text.at(i) <= 'Z')
            text.at(i) -= 21;
}
void textcoder::decoder() {
    for (auto i = 0;i < size(text);i++)
        if (text.at(i) >= 'f' && text.at(i) <= 'z')
            text.at(i) -= 5;
        else if (text.at(i) >= 'a' && text.at(i) <= 'e')
            text.at(i) += 21;
        else if (text.at(i) >= 'F' && text.at(i) <= 'Z')
            text.at(i) -= 5;
        else if (text.at(i) >= 'A' && text.at(i) <= 'E')
            text.at(i) += 21;
}
string textcoder::get_ciphertext() {
    encoder();
    return text;
}
string textcoder::get_deciphertext() {
    decoder();
    return text;
}

task.cpp

#include <iostream>
#include <string>
#include "textcoder.hpp"

void test() {
    using namespace std;

    string text, encoded_text, decoded_text;
    cout << "输入英文文本: ";
    while (getline(cin, text)) {
        encoded_text = textcoder(text).get_ciphertext();
        cout << "加密后英文文本:\t" << encoded_text << endl;
        decoded_text = textcoder(encoded_text).get_deciphertext();
        cout << "解密后英文文本\t" << decoded_text << endl;
        cout << "\n输入英文文本:";
        
    
    }

}
int main() {
    test();
}

 

 

 

 

标签:info,string,text,void,实验,&&,include
From: https://www.cnblogs.com/shmily-cwh/p/16818569.html

相关文章

  • 实验6:开源控制器实践——RYU
    一、基础要求 1、使用OpenFlow1.0搭建SDN拓扑。连接Ryu控制器,并图形界面查看网络拓扑topo=single,3时Ryu的图行界面 2、阅读Ryu文档,验证并分析Ryu的L2Switch和Pox......
  • 实验5:开源控制器实践 _POX
    一、实验目的1.能够理解POX控制器的工作原理;2.通过验证POX的forwarding.hub和forwarding.l2_learning模块,初步掌握POX控制器的使用方法;3.能够运用POX控制器编写自定义网......
  • 实验3 数组、指针与现代C++标准库
    5.实验任务5info.hpp#pragmaonce#include<iostream>#include<string>#include<iomanip>usingstd::string;usingstd::cout;usingstd::endl;classinfo{......
  • 实验6:开源控制器实践——RYU
    一、实验目的1.能够独立部署RYU控制器;2.能够理解RYU控制器实现软件定义的集线器原理;3.能够理解RYU控制器实现软件定义的交换机原理。二、实验环境Ubuntu20.04Deskto......
  • 实验2
    #include<stdio.h>#include<stdlib.h>#include<time.h>#defineN5intmain(){ intnumber,i; srand(time(0)); for(i=0;i<N;++i) { number=rand()%500+1......
  • 实验三 数组、指针与现代c++标准库
    task5#pragmaonce#include<iostream>#include<string>#include<vector>#include<iomanip>usingnamespacestd;classInfo{public:Info(string......
  • 实验三 类和对象(3)
    task1_1.cpp1#include<iostream>23usingstd::cout;4usingstd::endl;56//类A的定义7classA{8public:9A(intx0,inty0):x{x0},......
  • 实验2
    实验任务1#include<stdio.h>#include<stdlib.h>#include<time.h>#defineN5intmain(){intnumber;inti;srand(time(0));for(i=0;i<N;++i);{......
  • 实验2
    task1#include<stdio.h>#include<stdlib.h>#include<time.h>#defineN5intmain(){intnumber;inti;srand(time(0));for(i=0;i<N;++i){......
  • 基于ssm的实验报告管理系统的设计与实现-计算机毕业设计源码+LW文档
    摘要:BS的实验报告管理系统是针对目前大学推广与交流的实际需求,从实际工作出发,对过去的大学推广与交流平台存在的问题进行分析,完善用户的使用体会。采用计算机系统来管理信息......