首页 > 其他分享 >实验三

实验三

时间:2022-10-26 10:01:52浏览次数:38  
标签:string int text 实验 && include TextCoder

info.hpp
#pragma once #include<iostream> #include<string> using namespace std; class Info { public: Info(string nn, string cont, string ct,int x); void print(); private: string nickname; string contact; string city; int n; }; Info::Info(string nn, string cont, string ct, int x) :nickname{ nn }, contact{ cont }, city{ ct }, n{ x } {} void Info::print() { cout << setw(16) << "昵称:" << nickname << endl << setw(16) << "联系方式:" << contact << endl << setw(16) << "所在城市:" << city << endl << setw(16) << "预定人数:" << n << endl<<endl; }
task.5cpp
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
#include<iomanip>
#include<limits>
#include"info.hpp"
#define MAX 100;

using namespace std;

int main() {
    const int capacity = MAX;
    vector<Info> audience_info_list;
    string nn,cont,ct; //具体信息
    int num=0,sum=0;

    //录入信息
    cout << "录入信息:\n\n";
    cout << left
        << setw(16) << "昵称"
        << setw(30) << "联系方式(邮箱/手机号)"
        << setw(16) << "所在城市"
        << setw(12) << "预定参加人数"
        << endl;
    while (cin>>nn>>cont>>ct>>num) { //每输入一组信息,就尝试放到Info类数组中
        sum += num;
        if (sum > capacity) {
            cout << "对不起,只剩" << capacity-sum + num << "个位置.\n";
            sum -= num;
            cout << "1.输入u,更新(update)预定信息\n2.输入q,退出预定\n你的选择:";
            char choice;
            cin >> choice;
            if (choice == 'u') {
                cout << "请输入更新预定信息:\n";
                continue;
            }
            else if (choice == 'q')
                break;
        }
        else
            audience_info_list.push_back( Info (nn, cont, ct, num));
    }
    //打印信息
    cout <<endl<< "截至目前,一共有" << sum << "位听众参加。预定听众信息如下:\n";
    for (auto& item : audience_info_list)
        item.print();
}

texthoder.hpp

#pragma once
#include<iostream>
#include<string>

using namespace std;

class TextCoder {
public:
    TextCoder(string t);
    string get_ciphertext();
    string get_deciphertext();

private:
    string text;
    void encoder();
    void decoder();
};

TextCoder::TextCoder(string t) :text{ t } {}
string TextCoder::get_ciphertext() {
    encoder();
    return text;
}
string TextCoder::get_deciphertext() {
    decoder();
    return text;
}
string text;
void TextCoder::encoder() {
    for (int i = 0; i < text.size(); ++i) {
        if ((text.at(i) >= 'a' && text.at(i) <= 'u') || (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) >= 'V' && text.at(i) <= 'Z'))
            text.at(i) -= 21;
    }
}
void TextCoder::decoder(){
    for (int i = 0; i < text.size(); ++i) {
        if ((text.at(i) >= 'f' && text.at(i) <= 'z') || (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) >= 'A' && text.at(i) <= 'E'))
            text.at(i) += 21;
    }
}

task6.cpp

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

void test() {
    using namespace std;

    string text, encoded_text, decoded_text;

    cout << "输入英文文本:";
    while (getline(cin, text)) {
        encoded_text = TextCoder(text).get_ciphertext();  // 使用临时无名对象
        cout << "加密后英文文本:" << encoded_text << endl;

        decoded_text = TextCoder(encoded_text).get_deciphertext(); // 使用临时无名对象
        cout << "解密后英文文本:" << decoded_text << endl;
        cout << "输入英文文本:";
    }
}

int main() {
    test();
}

 



 

标签:string,int,text,实验,&&,include,TextCoder
From: https://www.cnblogs.com/qazmlp10/p/16827256.html

相关文章

  • 实验三
    Task5info.hpp1#pragmaonce2#include<iostream>3#include<string>45usingnamespacestd;67classInfo{8public:9Info(stringnn,str......
  • 实验7:基于REST API的SDN北向应用实践
    实验要求(一)基本要求编写Python程序,调用OpenDaylight的北向接口实现以下功能构建拓扑Beryllium版本连接OpenDaylight./distribution-karaf-0.4.4-Beryllium-SR4/......
  • 实验7:基于REST API的SDN北向应用实践
    (一)基本要求编写Python程序,调用OpenDaylight的北向接口实现以下功能(1)利用Mininet平台搭建下图所示网络拓扑,并连接OpenDaylight;(2)下发指令删除s1上的流表数据。python......
  • 实验三
      #include<iostream>usingstd::cout;usingstd::endl;//类A的定义classA{public:A(intx0,inty0):x{x0},y{y0}{}voidshow()const{cout<<......
  • 实验(3)
    实验5task_5.cpp1#include"info.hpp"2#include<vector>3//#include<iomanip>45intmain(){6usingnamespacestd;7constintcapacity=1......
  • 实验7:基于REST API的SDN北向应用实践
    三、实验要求(一)基本要求编写Python程序,调用OpenDaylight的北向接口实现以下功能(1)利用Mininet平台搭建下图所示网络拓扑,并连接OpenDaylight;(2)下发指令删除s1上的流表......
  • 实验7:基于REST API的SDN北向应用实践
    一、实验目的1.能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;2.能够编写程序调用RyuRESTAPI实现特定网络功能。二、实验要求1.编写Python程序,调用OpenDayl......
  • 实验7:基于REST API的SDN北向应用实践
    基本要求1、编写Python程序,调用OpenDaylight的北向接口实现以下功能:(1)利用Mininet平台搭建拓扑,并连接OpenDaylight(2)下发指令删除s1上的流表数据代码delete.py#!/u......
  • 实验7:基于REST API的SDN北向应用实践
    一、实验目的能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;能够编写程序调用RyuRESTAPI实现特定网络功能。二、实验环境下载虚拟机软件OracleVisualBo......
  • 实验7:基于REST API的SDN北向应用实践
    一、实验目的能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;能够编写程序调用RyuRESTAPI实现特定网络功能。二、实验环境下载虚拟机软件OracleVisualBox或......