实验3

任务5

#pragma once
#include<iostream>
#include<string>
#include<iomanip>
using namespace std;
class Info{
    public:
        Info(string name,string cot,string cty,int i):nickname{name},contact{cot},city{cty},n{i}{}
        ~Info(){}
        void print(){
            cout<<left<<setw(16)<<"昵称:"<<nickname<<endl;
            cout<<left<<setw(16)<<"联系方式:"<<contact<<endl;
            cout<<left<<setw(16)<<"所在城市:"<<city<<endl;
            cout<<left<<setw(16)<<"预定人数:"<<n<<endl;
            cout<<endl; 
        }
    private:
        string nickname,contact,city;
        int n;
};
#include"info.hpp"
#include<iostream>
#include<vector>
#include<iomanip>
#include<string>
using namespace std;
const int capacity=100;
vector<Info>audience_info_list;
void test()
{
    int s=0,n,i=0,count=0;
    string str,s1,s2,s3,s4,cho;
    cout<<"录入信息:"<<endl;
    cout<<endl;
    cout<<left<<setw(16)<<"昵称"; 
    cout<<left<<setw(32)<<"联系方式(邮箱/手机号)";
    cout<<left<<setw(16)<<"所在城市";
    cout<<left<<setw(16)<<"预定参加人数"<<endl;
    while(getline(cin,str))
    {
        for(i=0;i<str.size();i++)
        {
            if(str[i]==' ')
            {
                if(str[i-1]!=' ')count++;
                continue;
            }
            switch(count){
                case 0:s1.push_back(str[i]);break;
                case 1:s2.push_back(str[i]);break;
                case 2:s3.push_back(str[i]);break;
                case 3:s4.push_back(str[i]);break;
            }
        }
        n=stoi(s4);
        if(n>capacity-s)
        {
            cout<<"对不起,只剩"<<(capacity-s)<<"个位置."<<endl;
            cout<<"1.输入u,更新(update)预定信息"<<endl;
            cout<<"2.输入q,退出预定"<<endl;
            getline(cin,cho);
            cout<<"你的选择:"<<cho<<endl;
            if(cho=="u")
            {
                count=0;
                s1="";
                s2="";
                s3="";
                s4="";
                continue;
            }
            else break;
        }
        audience_info_list.push_back(Info(s1, s2, s3, n));
        s+=n;
        count=0;
        s1="";
        s2="";
        s3="";
        s4="";
    } 
    cout<<"截至目前,一共有"<<s<<"位听众预定参加。预定听众信息如下:"<<endl; 
    for(i=0;i<audience_info_list.size();i++)
    {
        audience_info_list[i].print();
        cout<<endl;
    }  
}
int main()
{
    test();
    return 0;
}

任务6

#pragma once
#include<iostream>
#include<iomanip>
#include<string>
using namespace std;
class TextCoder{
    public:
        TextCoder(string t):text{t}{}
        TextCoder(const TextCoder &T){
            text=T.text;
        }
        string get_ciphertext(){
            encoder();
            return text;
        }
        string get_deciphertext(){
            decoder();
            return text;
        }
    private:
        string text;
    private:
        void encoder(){
            for(auto &i:text)
            {
                if(i>='a'&&i<='z')
                {
                    if(i<='u')i+=5;
                    else i='a'+4-('z'-i);
                }
                else if(i>='A'&&i<='Z')
                {
                    if(i<='U')i+=5;
                    else i='A'+5-('Z'-i);
                }
            }
        }
        void decoder(){
            for(auto &i:text)
            {
                if(i>='a'&&i<='z')
                {
                    if(i>='f')i-=5;
                    else i='z'-4+(i-'a');
                }
                else if(i>='A'&&i<='Z')
                {
                    if(i>='F')i-=5;
                    else i='A'-4+(i-'Z');
                }
            }
            
        }
    
};
#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();
}

 

posted @ 2022-10-24 10:55  小樊_1973  阅读(12)  评论(0编辑  收藏  举报