实验二 数组,指针与c++标准库

实验任务5

info.h

#ifndef INFO_H
#define INFO_H
#include<iostream>
#include<vector>
#include<array>
using namespace std;

class info
{
public:
    info(string a, string b, string c, int d) :name{ a }, contact{ b }, city{ c }, n{ d }{; }
    info(info const& p)
    {
        name = p.name;
        contact = p.contact;
        city = p.city;
        n = p.n;
    }
    void print() const;
private:
    string name;
    string contact;
    string city;
    int n;
};
void info::print() const
{
    cout << "称呼:" << name << endl;
    cout << "联系方式:" << contact << endl;
    cout << "所在城市:" << city << endl;
    cout << "预订参加人数:" << n << endl;
}

#endif

main.cpp

#include <iostream>
#include"info.h"
#include<vector>

const int capacity = 10;
using namespace std;
int main()
{
    vector<info> audience_info_list;
    cout << "录入信息:" << endl;
    cout << "称呼/昵称,联系方式(邮箱/手机号),所在城市,预订参加人数" << endl;
    string a, b, c;
    int d, cnt = 0;
    while (cin >> a >> b >> c >> d)
    {
        cnt += d;
        if (cnt <= capacity)
            audience_info_list.push_back({ a,b,c,d });
        else
        {
            cnt -= d;
            cout << "对不起,只剩" << capacity - cnt << "个位置" << endl;
            cout << "1.输入u,更新预订信息" << endl;
            cout << "2.输入q,退出预订" << endl;
            char p;
            cin >> p;
            if (p == 'u')
            {
                continue;
            }
            else
            {
                cout << "截至目前,一共有" << cnt << "位听众参加。预订听众信息如下:" << endl;
                for (auto const& i : audience_info_list)
                    i.print();
            }
        }
    }
    cout << "截至目前,一共有" << cnt << "位听众参加。预订听众信息如下:" << endl;
    for (auto const& i : audience_info_list)
        i.print();
    return 0;
}

实验截图

 

实验任务6 

textcoder.hpp

 

#ifndef TEXTCODER_HPP
#define TEXTCODER_HPP
#include<iostream>
#include<string>
using namespace std;
class TextCoder
{
public:
    TextCoder(string s):text{s}{;}
    string encoder();
    string decoder();
private:
    string text;
};
string TextCoder::decoder()
{
    for(auto &i:text)
    {
        if(i>='a'&&i<='z')
        {
            if(i-5<'a') i=i-5+26;
            else i=i-5; 
        }
        else if(i>='A'&&i<='Z')
        {
            if(i-5<'A') i=i-5+26;
            else i=i-5;
        }
        else continue;
    }
    return text;
}
string TextCoder::encoder()
{
    for(auto &i:text)
    {
        if(i>='a'&&i<='z')
        {
            if(i+5>'z') i=i+5-26;
            else i=i+5;
        }
        else if(i>='A'&&i<='Z')
        {
            if(i+5>'Z') i=i+5-26;
            else i=i+5;
        }
        else continue;
    }
    return text;
}
#endif

 

main.cpp

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

int main()
{
    using namespace std;

    string text, encoded_text, decoded_text;

    cout << "输入英文文本: ";
    while (getline(cin, text))
    {
        encoded_text = TextCoder(text).encoder();  // 杩欓噷浣跨敤鐨勬槸涓存椂鏃犲悕瀵硅薄
        cout << "加密后的英文文本:\t" << encoded_text << endl;
        decoded_text = TextCoder(encoded_text).decoder(); // 杩欓噷浣跨敤鐨勬槸涓存椂鏃犲悕瀵硅薄
        cout << "解密后的英文文本:\t" << decoded_text << endl;
        cout << "\n输入英文文本: ";
    }
    return 0;
}

实验截图

 

 

posted @ 2021-10-30 22:30  HJ5623  阅读(52)  评论(3)    收藏  举报