实验2

task5

hpp:

#ifndef INFO_HPP
#define INFO_HPP
#include<bits/stdc++.h>
#include<vector>
using namespace std;
class Info
{
    public:
        Info()=default;
        Info(string Nickname,string Contact,string City,int N):
        nickname(Nickname),contact(Contact),city(City),n(N){}
        ~Info()=default;
        int getN(){
            return n;
        }
        string getNickname(){
            return nickname;
        }
        string getContact(){
            return contact;
        }
        string getCity(){
            return city;
        }
        static int capacity; 
    private:
        string nickname;
        string contact;
        string city;
        int n;

};
int Info::capacity=0;
void print(vector<Info>A){
    cout<<"截至目前,一共有"<<Info::capacity<<"位听众预定参加。预定听众信息如下:\n";
    for(auto &I:A){
        cout<<"称呼:    "<<I.getNickname()<<"\n";
        cout<<"联系方式:"<<I.getContact()<<"\n";
        cout<<"所在城市:"<<I.getCity()<<"\n";
        cout<<"预定人数:"<<I.getN()<<"\n";
    }
    
}

#endif

main:

#include"Info.hpp"
#include<vector>
#include<bits/stdc++.h>
#include<iomanip>
using namespace std;
int main(){
    cout<<"录入信息:\n"<<"称呼/昵称,联系方式(邮箱/手机号),所在城市,预定参加人数(输入信息时请用“Tab”进行分隔)\n";
    vector<Info>audience_info_list;
    string nickname,contact,city;
    int n;
    while(getline(cin,nickname,'\t'),getline(cin,contact,'\t'),getline(cin,city,'\t'),cin>>n){
        Info A(nickname,contact,city,n);
        Info::capacity+=A.getN();
        if(Info::capacity>=100){
            Info::capacity-=A.getN();
            cout<<"对不起,只剩"<<100-Info::capacity<<"个位置\n";
            cout<<"1.输入u,更新(update)预定信息\n";
            cout<<"2.输入q,退出预定\n";
            cout<<"你的选择:";
            string a;
            cin>>a;
            if(a=="q"){
                break;
            }
            
        }
        else{
            audience_info_list.push_back(A); 
            
        }    
        getchar();
    
        
    }
    print(audience_info_list);
    return 0;
}

 

 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

task6

hpp:

#ifndef TEXTCODER_HPP
#define TEXTCODER_HPP
#include<bits/stdc++.h> 
using namespace std;
class TextCoder
{
    public:
        TextCoder(string a):text(a){}
        string encoder();
        string decoder();
    private:
        string text;
};
string TextCoder::encoder(){
    for(auto &i:text){
        if(i>='a'&&i<='z'){
            i='a'+(i-'a'+5)%26;
        }
        if(i>='A'&&i<='U'){
            i='A'+(i-'A'+5)%26;
        }
    }
    return text;
}
string TextCoder::decoder(){
    for(auto &i:text){
        if(i>='a'&&i<='z'){
            i='a'+(i-'a'+21)%26;;
        }
        if(i>='A'&&i<='Z'){
            i='A'+(i-'A'+21)%26;;
        }
    }
    return text;
}    

#endif

main:

#include<bits/stdc++.h>
#include"textcoder.hpp"
using namespace std;
int main() {
    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输入英文文本: ";
    }
}

 

posted @ 2021-11-03 15:04  黄金派大星  阅读(23)  评论(3)    收藏  举报