实验2 数组、指针与C++标准库

task5

#include "Info.hpp"
#include <iostream>
#include <string>
#include "vector"
using namespace std;
int main(){
    vector<Info>audience_info_list;
    const int capacity=100;
    string r,s,t;
    char a; 
    int n,p,m=0;
    cout<<"录入信息:"<<endl; 
    cout<<"称呼/昵称,联系方式(邮箱/手机号),所在城市,预定参加人数"<<endl; 
    while(cin>>r){
        cin>>s;
        cin>>t;
        cin>>n;
        p=capacity-n-m;
        if(p<0){
            cout<<"对不起,只有"<<capacity-m<<"个位置了"<<endl;
            cout<<"输入u,更新预定信息"<<endl;
            cout<<"输入q,退出预定"<<endl;
            cout<<"你的选择是"<<endl;
            cin>>a;
            if(a=='u'){
                continue;
            }
            if(a=='q')
                break;
        }
        audience_info_list.push_back(Info(r,s,t,n));
        m+=n;
    
    }
    cout<<"截至目前,一共有"<<m<<"位听众预定参加,预定听众信息如下"<<endl;
    for(auto it=audience_info_list.begin();it!=audience_info_list.end();++it){
        it->print();
    }
    
}
#ifndef INFO_HPP
#define INFO_HPP
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
class Info {
    public:
        Info(string a,string b,string c,int d):nickname(a),contact(b),city(c),n(d) {
        };
        void print() {
            cout << "称呼:      "<< nickname << endl;
            cout << "联系方式:  "<< contact << endl;
            cout << "所在城市:  "<< city << endl;
            cout << "预定人数:  "<< n <<endl;
        }
    private:
        string nickname;
        string contact;
        string city;
        int n;
};
#endif

 task6

#ifndef TEXTCODER_HPP
#define TEXTCODER_HPP
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
class TextCoder {
    public:
        TextCoder(string t):text(t) {}
        ~TextCoder()=default;
        string encoder();
        string decoder();
    private:
        string text;
};

string TextCoder::encoder() 
{
    for(int i=0; i<text.length(); i++) {
        if(text[i]>='a'&&text[i]<='z'||text[i]>='A'&&text[i]<='Z') {
            if(text[i]>'u'&&text[i]<='z'||text[i]>'U'&&text[i]<='Z')
                text[i]=text[i]-26+5;
            else
                text[i]=text[i]+5;
        }
    }
    return text;
}
string TextCoder::decoder() 
{
    for(int i=0; i<text.length(); i++) 
    {
        if(text[i]>='a'&&text[i]<='z'||text[i]>='A'&&text[i]<='Z') {
            if(text[i]>='f'&&text[i]<='z'||text[i]>='F'&&text[i]<='Z')
                text[i]=text[i]-5;
            else
                text[i]=text[i]+21;
        }
    }
    return text;
}
#endif

 

posted @ 2021-10-28 13:11  hyh&&tyq  阅读(39)  评论(3)    收藏  举报