实验二

task5

Info.hpp

 1 #ifndef INFO_HPP
 2 #define INFO_HPP
 3 #include<iostream>
 4 #include<string>
 5 using namespace std;
 6 
 7 class Info{
 8     public:
 9         Info(string a,string b,string c,int d);
10         int get_n() {return n;}
11         void print() const;
12     private:
13         string nickname;
14         string contact;
15         string city;
16         int n;
17 };
18 
19 Info::Info(string a,string b,string c,int d){
20     nickname=a;
21     contact=b;
22     city=c;
23     n=d;
24 }
25 
26 void Info::print() const{
27     cout<<"称呼:      "<<nickname<<endl;
28     cout<<"联系方式:  "<<contact<<endl;
29     cout<<"所在城市:  "<<city<<endl;
30     cout<<"预订人数:  "<<n<<endl;
31 }
32 
33 #endif
View Code

task.cpp

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

int main(){
    vector<Info> audience_info_list;
    const int capacity=100;
    static int sum=0;
    cout<<"录入信息:"<<endl;
    cout<<"昵称     ,联系方式     ,所在城市     ,预订人数    \n";
    while(getchar()!='#'){
        string a,b,c;
        int d;
        cin>>a>>b>>c>>d;
        Info A(a,b,c,d);
        int tem=sum+A.get_n();
        if(tem<capacity){
            sum+=A.get_n();
            audience_info_list.push_back(A);
        }
        else{
            int la=capacity-sum;
            cout<<"对不起,只剩"<<la<<"个位置."<<endl;
            cout<<"1.输入u,更新预订信息"<<endl;
            cout<<"2.输入q,退出预订"<<endl;
            cout<<"你的选择:";
            char ch;
            cin>>ch;
            if(ch=='u') continue;
            else if(ch=='q') break;
        }
    }
    cout<<"截至目前,一共有"<<sum<<"位听众预订参加。预订听众信息如下:"<<endl;
    vector<Info>::iterator it;
    for(it=audience_info_list.begin();it!=audience_info_list.end();++it) (*it).print();
    return 0;
}
View Code

 

 

 

 task6

textcoder.hpp

#ifndef TEXTCODER_HPP
#define TEXTCODER_HPP

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

class TextCoder{
    public:
        TextCoder(string t):text(t){};
        string encoder();
        string decoder();
    private:
        string text;
};

string TextCoder::encoder(){
    for(auto it=text.begin();it!=text.end();++it){
        if(((*it)>='a'&&(*it)<='u')||((*it)>='A'&&(*it)<='U')) (*it)+=5;
        else (*it)-=21;
    }
    return text;
}

string TextCoder::decoder(){
    for(auto it=text.begin();it!=text.end();++it){
        if(((*it)>='f'&&(*it)<='z')||((*it)>='F'&&(*it)<='Z')) (*it)-=5;
        else (*it)+=21;
    }
    return text;
}

#endif
View Code

task6.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输入英文文本: ";
    }
}
View Code

 

 

posted @ 2021-10-28 15:36  不愿再有早八  阅读(53)  评论(3)    收藏  举报