首页 > 其他分享 >实验4

实验4

时间:2023-11-30 22:00:14浏览次数:28  
标签:Info string int text 实验 include TextCoder

#include<iostream>
#include<string>

using std::string;

class TextCoder {
    private:
        string text;
        void encoder();
        void decoder();
    public:
        TextCoder(string &str);
        TextCoder(const TextCoder &t);
        string get_ciphertext();
        string get_deciphertext();
};
TextCoder::TextCoder(string &str)
    : text{str} {
}
TextCoder::TextCoder(const TextCoder &t)
    : text{t.text} {
}
void TextCoder::encoder() {
    for (auto &i : text) {
        if (i >= 'a' && i <= 'z')
            i = 'a' + ((i - 'a') + 7) % 26;
        else if (i >= 'A' && i <= 'Z')
            i = 'A' + ((i - 'A') + 7) % 26;
    }
}
void TextCoder::decoder() {
    for (auto &i : text) {
        if (i >= 'a' && i <= 'z')
            i = 'a' + ((i - 'a') + 26 - 7) % 26;
        else if (i >= 'A' && i <= 'Z')
            i = 'A' + ((i - 'A') + 26 - 7) % 26;
    }

}
string TextCoder::get_ciphertext() {
    encoder();
    return text;
}
string TextCoder::get_deciphertext() {
    decoder();
    return text;
}
#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 << "加密后英文文本:\t" << encoded_text << endl;

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

int main() {
    test();
}

#include<iostream>

using std::string;

class Info {
    private:
        string nickname;
        string contact;
        string city;
        int n;
    public:
        Info(string&,string&,string&,int&);
        void print();
};
Info::Info(string &nickname,string &contact,string &city,int &n) {
    this->nickname = nickname;
    this->contact = contact;
    this->city = city;
    this->n = n;
}
void Info::print() {
    std::cout<<"昵称:\t\t"<<nickname<<std::endl;
    std::cout<<"联系方式:\t"<<contact<<std::endl;
    std::cout<<"所在城市:\t"<<city<<std::endl;
    std::cout<<"预定人数:\t"<<n<<std::endl;
}
#include <iostream>
#include <string>
#include <vector>
#include"Info.hpp"
using namespace std;

int main() {
    const int capacity = 100;
    vector<Info> audience_info_list;
    vector<Info> &v = audience_info_list;
    int sum = 0;

    cout << "录入信息:\n\n";
    cout << "昵称\t\t";
    cout << "联系方式(邮箱/手机号)\t\t";
    cout << "所在城市\t";
    cout << "预定人数" << endl;
    string nickname, contact, city;
    int n;
    while (cin >> nickname >> contact >> city >> n) {
        if (sum + n <= capacity) {
            Info a(nickname, contact, city, n);
            v.push_back(a);
            sum += n;
        }
        else {
            cout << "对不起,只剩" << capacity - sum << "个位置。\n";
            cout << "1.输入u,更新(updata)预定信息" << endl;
            cout << "2.输入q,退出预定" << endl;
            cout << "你的选择:";

            char c;
            cin >> c;
            if (c == 'q') break;
            else if (c == 'u') continue;
            else break;
        }
        if (sum == capacity) break;
    }
    cout << endl;

    cout << "截至目前,一共有" << sum << "位听众预定参加。";
    if (sum != 0) {
        cout << "预定听众信息如下:" << endl;
        for (int i = 0; i < v.size(); i++) {
            v[i].print();
            cout << endl;
        }
    }
}

 

标签:Info,string,int,text,实验,include,TextCoder
From: https://www.cnblogs.com/wgj123/p/17868472.html

相关文章

  • 实验4 现代C++标准库与类模板
    实验任务5task5.cpp#include"Textcoder.hpp"#include<iostream>#include<string>voidtest(){ usingnamespacestd; stringtext,encoded_text,decoded_text; cout<<"输入英文文本:"; while(getline(cin,text)) { encoded_t......
  • 实验四
    实验任务5实验代码:textcoder.hpp#pragmaonce#include<iostream>#include<vector>#include<array>#include<string>usingnamespacestd;classTextCoder{private:stringtext;voidencoder(){for(autoi=......
  • 实验4 现代C++标准库与类模板
    四、实验内容1.实验任务1//在C++中定义和使用类模板task1_1.cpp#include<iostream>usingnamespacestd;//类A的定义classA{public:A(intx0,inty0):x{x0},y{y0}{}voidshow()const{cout<<x<<","<<y<<endl;}p......
  • 实验4 现代C++标准库与类模板
    实验任务1task1task1_1.cpp#include<iostream>usingstd::cout;usingstd::endl;classA{public:A(intx0,inty0):x{x0},y{y0}{}voidshow()const{cout<<x<<","<<y<<endl;}private:in......
  • 第三方实验室LIMS管理系统源码
    LIMS实验室信息管理系统源码LIMS系统的功能根据实验室的规模和任务而有所不同,其系统主要功能包括:系统维护、基础数据编码管理,样品管理、数据管理、报告管理、报表打印、实验材料管理、设备管理等。它可以取代传统的手工管理模式而给检测实验室带来巨大的变化,提高检测实验室的整体......
  • SSL——ASA防火墙——Cisco实验(详解)
    SSLVPN一、理论部分定义:SSLVPN,操作在OSI模型的会话层,可以使用户通过浏览器对VPN进行连接,但是没有隧道。使用https加密的范式进行数据传输,跨平台性强,只要终端设备有浏览器,能够上网,就可以进行VPN连接,并访问资源。扩展:可以通过DNS进行访问,或者使用花生壳注册免费域名进行访问ssl(......
  • LIMS实验室信息管理系统源码,支持二次开发
    LIMS实验室信息管理系统源码,支持二次开发LIMS实验室信息管理系统是一种软件类型,旨在通过跟踪与样品、实验、实验室工作流程和仪器相关的数据,提高实验室产能和效率。覆盖实验室从合同审批、委托下单、样品管理、生产调度、检测记录、报告管理、财务开票结算等全业务的过程管理。1、......
  • 实验四
    实验五TextCoder.hpp点击查看代码#include<string>classTextCoder{private:std::stringtext;voidencoder(){for(char&c:text){if(c>='a'&&c<='z'){c=((c......
  • 实验四-现代C++标准库与类模板
    TextCoder.hpp1#include<string>23classTextCoder{4private:5std::stringtext;67voidencoder(){8for(char&c:text){9if(c>='a'&&c<='z'){10......
  • 11.29实验21
    实验21:观察者模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解观察者模式的动机,掌握该模式的结构;2、能够利用观察者模式解决实际问题。[实验任务一]:股票提醒当股票的价格上涨或下降5%时,会通知持有该股票的股民,当股民听到价格上涨的消息时会买股票,当价格下降时......