首页 > 编程语言 >实验四 现代C++标准库与类模板

实验四 现代C++标准库与类模板

时间:2023-11-29 21:57:07浏览次数:35  
标签:info string int text C++ 实验 include TextCoder 模板

task5

textcoder.hpp

#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) {
        i=i+7;
    }
}
void TextCoder::decoder() {
    for (auto &i : text) {
        i=i-7;
    }

}
string TextCoder::get_ciphertext() {
    encoder();
    return text;
}
string TextCoder::get_deciphertext() {
    decoder();
    return text;
}
View Code

task5.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(); 
}
View Code

实验结果

task6

info.hpp

#include<iostream>
#include<string>
#include<vector>
using namespace std;

class info{
private:
    string nickname;
    string contact;
    string city;
    int n;
public:
    info(string n1,string c,string city1,int n2){
        nickname=n1;
        contact=c;
        city=city1;
        n=n2;
        
    }
    void print(){
    cout<<"昵称:\t\t"<<nickname<<endl;
    cout<<"联系方式:\t"<<contact<<endl;
    cout<<"所在城市:\t"<<city<<endl;
    cout<<"预定人数:\t"<<n<<endl;
    }
};
 
View Code

task6.cpp

#include <iostream>
#include <string>
#include <vector>
#include"info.hpp"

using namespace std;

int main(){
    const int capacity=100;
    vector<info> audience_info_list;
    string nickname, contact, city;     
    int n;
    vector<info> &i = audience_info_list;
    int sum=0;
    cout << "录入信息:\n\n";
       cout << "昵称\t\t";
    cout << "联系方式(邮箱/手机号)\t\t";
       cout << "所在城市\t";
      cout << "预定人数" << endl;
    while(cin>>nickname >> contact >> city >> n){
        
        if(sum+n<=capacity){
            info a(nickname,contact,city,n);
            i.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 k= 0; k< i.size(); k++) {
         i[k].print();
            cout << endl;
        }
}
}
View Code

实验结果

 

标签:info,string,int,text,C++,实验,include,TextCoder,模板
From: https://www.cnblogs.com/PerfectAllKill/p/17865983.html

相关文章

  • 实验6:原型模式
    2.提交源代码(用C++完成);3.注意编程规范。#include<iostream> classVector{private:    int*data;//指向向量数据的指针    intsize;//向量的长度 public:    //构造函数    Vector(intsize){        this->size=size;   ......
  • 实验7:单例模式
     本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解单例模式的动机,掌握该模式的结构;2、能够利用单列模式解决实际问题。 [实验任务一]:学号的单一仿照课堂的身份证的例子,实现每个同学仅有一个学号这一问题。实验要求:1. 画出对应的类图;2.提交源代码;3.注......
  • 实验8:适配器模式
    本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解适配器模式的动机,掌握该模式的结构;2、能够利用适配器模式解决实际问题。 [实验任务一]:双向适配器实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。实验要求:1. 画出对应的类图;2.提交源代码;3.注意编......
  • 实验9:桥接模式
    本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解桥接模式的动机,掌握该模式的结构;2、能够利用桥接模式解决实际问题。 [实验任务一]:两个维度的桥接模式用桥接模式实现在路上开车这个问题,其中,车可以是car或bus,路可以是水泥路或沥青路。#include<iostream>......
  • 实验4
    Textcoder.hpp#include<iostream>#include<string>usingnamespacestd;classTextcoder{public:Textcoder(stringt);stringget_ciphertext();stringget_deciphertext();private:stringtext;voidencoder();voiddeco......
  • 实验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 ......
  • c++跨文件修改成员变量
    如果在一个文件中有一个成员变量,需要在另外一个文件中修改这个成员变量。把这个成员变量加一个static变成静态成员变量即可。如下所示:在A.cpp中有student类classstudent{public:student();public://声明静态成员函数staticintgetTotal();staticfloat......
  • pageoffice6 实现在线模板套红
    在Web项目中处理Word文档,经常会用到Word模板,只不过这里的“模板”概念,都是指在Web项目中预先放置的doc、docx等扩展名的、真正的Word文档,对于Excel和PPT就是指xls、xlsx、ppt、pptx等扩展名的文件,而不是指微软Office的dot、dotx、xlt、xltx等扩展名的文件。对于模板的使用,有两种方......
  • 实验八第二部分所需要的依赖
    <repositories><repository><id>alimaven</id><name>aliyunmaven</name><url>https://maven.aliyun.com/nexus/content/groups/public/</url></repository>......