首页 > 其他分享 >实验4

实验4

时间:2023-11-29 21:44:24浏览次数:35  
标签:string int text void 实验 include Textcoder

Textcoder.hpp

#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;
}
void Textcoder::encoder() {
    for (auto& t : text) {
        if (t >= 'a' && t <= 'z') {
            t = (t - 'a' + 7) % 26 + 'a';
        }
        if (t >= 'A' && t <= 'Z') {
            t = (t - 'A' + 7) % 26 + 'A';
        }

    }

}
void Textcoder::decoder() {
    for (auto& m : text) {
        if (m >= 'a' && m <= 'z') {
            m = 'z' - ('z' - m + 7) % 26;
        }
        if (m >= 'A' && m <= 'Z') {
            m = 'Z' - ('Z' - m + 7) % 26;
        }
    }
}

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 << "加密后英文文本:\t" << encoded_text << endl;

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

int main() {
    test();
}

 5.hpp

#pragma once
#include<iostream>
#include<string>
#include<vector>
using namespace std;
class Info
{
public:
	Info(string nick, string con, string c, int m);
	void print();
private:
	string nickname, contact, city;
	int n;
};
Info::Info(string nick, string con, string c, int m) {
	nickname = nick;
	contact = con;
	city = c;
	n = m;

}
void Info::print() {
	cout << "昵称:" << nickname << endl;
	cout << "联系方式:" << contact << endl;
	cout << "城市:" << city << endl;
	cout << "预定人数:" << n << endl;
}

  cpp

 #include <iostream>
 #include <string>
 #include <vector>
 #include "info.hpp"
  using namespace std;
int main() {
    int const capacity = 100;
    int s = 0, n, i;
    char m;
    string nickname, contact, city;
    vector<Info>audience_info_list;
    vector<Info>& v = audience_info_list;
    cin >> i;
    while (i) {
        cin >> nickname >> contact >> city >> n;

        
        if (s + n <= capacity)
        {
            Info a(nickname, contact, city, n);
            v.push_back(a);
            s = s + n;
            a.print();
        }

        else {
            cout << "对不起,还剩" << capacity - s << endl;
            cout << "输入u, 更新预定信息" << endl;
            cout << "输入q,退出预定" << endl;
            cout << "你的选择" << endl;
            cin >> m;
            if (m == 'q') {
                break;
            }
            if (m == 'u') {
                continue;
            }
        }
    }
    for (int z = 0;z < v.size();z++) {
        v[i].print();
    }
}

 

标签:string,int,text,void,实验,include,Textcoder
From: https://www.cnblogs.com/32re/p/17865965.html

相关文章

  • 实验10:组合模式
    本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解组合模式的动机,掌握该模式的结构;2、能够利用组合模式解决实际问题。 [实验任务一]:组合模式用透明组合模式实现教材中的“文件夹浏览”这个例子。1.文件的执行不需真正实现,只需简单提示即可;2.提交源代码;3.......
  • 实验5
    实验任务1.1实验任务1.2实验任务2.1实验任务2.2实验任务3实验任务4.1 实验任务4.2 实验任务5.1实验任务5.2 实验任务6  实验任务7 ......
  • 实验八第二部分所需要的依赖
    <repositories><repository><id>alimaven</id><name>aliyunmaven</name><url>https://maven.aliyun.com/nexus/content/groups/public/</url></repository>......
  • 大型数据库实验八--Flink初级编程实践
    ......
  • 虚拟机进行实验八遇到的坑(一)
    idea依赖下载报错//引入阿里云镜像下载就ok啦~~~<repositories><repository><id>alimaven</id><name>aliyunmaven</name><url>https://maven.aliyun.com/nexus/content/groups/public/</url......
  • 算法实验报告1
    算法实验报告1发布地址(方便阅读):https://cmd.dayi.ink/3VqGmm4dRamR85T2ptXCsQhttps://blog.dayi.ink/?p=91<>P183习题-T1题目描述给定一个数字n和子集1,2,3,...,n-1,请用数组输出所有不同的划分方式。4有四种划分方式:1+1+1+11+1+2.1+3.2+2.5有六种划分方式:1+1+1+1+1.1+1+1+2,1+1+3,1+2+2,1+4,3+2......
  • 软件设计实验 20:备忘录模式
    实验 20:备忘录模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解备忘录模式的动机,掌握该模式的结构;2、能够利用备忘录模式解决实际问题。 [实验任务一]:多次撤销改进课堂上的“用户信息操作撤销”实例,使得系统可以实现多次撤销(可以使用HashMap、ArrayLis......
  • 软件设计实验19:中介者模式
    实验19:中介者模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解中介者模式的动机,掌握该模式的结构;2、能够利用中介者模式解决实际问题。 [实验任务一]:虚拟聊天室在“虚拟聊天室”实例中增加一个新的具体聊天室类和一个新的具体会员类,要求如下:1.新的具......
  • 软件设计实验 21:观察者模式
    实验21:观察者模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解观察者模式的动机,掌握该模式的结构;2、能够利用观察者模式解决实际问题。 [实验任务一]:股票提醒当股票的价格上涨或下降5%时,会通知持有该股票的股民,当股民听到价格上涨的消息时会买股票,当价......
  • 实验5
    #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,N);......