實驗二 數組、指針與C++標准庫


實驗任務5

#ifndef INFO_HPP
#define INFO_HPP

#include<iostream>
#include<string>
using namespace std;
struct Info{
    public:
        Info(string nn0="a",string c0="b",string ct0="c",int n0=0):nickname(nn0),contact(c0),city(ct0),n(n0){}
        void print();
    private:
        string nickname;
        string contact;
        string city;
        int n;    
};
void Info::print(){
    cout<<"稱呼:"<<nickname<<endl;
    cout<<"聯系方式:"<<contact<<endl;
    cout<<"所在城市:"<<city<<endl;
    cout<<"預訂人數:"<<n<<endl;
     
}
#endif
#include"info.hpp"
#include<iostream>
#include<string>
#include<vector>
using namespace std;

int main(){
    cout<<"錄入信息:"<<endl<<endl;
    cout<<"稱呼/昵稱,聯系方式(郵箱/手機號),所在城市,預定參加人數"<<endl;
    vector<Info>audience_info_list;
    const int capacity=100;
    string s,t,d;
    int i=0,n;
    int cn=0;int p;char o;
    while(cin>>s){
        cin>>t;
        cin>>d;
        cin>>n;
        audience_info_list.push_back(Info(s,t,d,n));
        p=capacity-cn-n;
        if(p<0){
            cout<<"對不起,只剩"<<capacity-cn<<"個位置";
            cout<<endl<<"1.輸入u,更新(update)預定信息"<<endl;
            cout<<"2.輸入q,退出預定"<<endl;
            cout<<"你的選擇:";
            cin>>o;
            cout<<endl; 
            if(o=='q'){
                break;
            } 
            if(o=='u'){
                audience_info_list.pop_back();
                continue;
            }
        }
        cn=n+cn;
        i++;
    }
    cout<<"截至目前,一共有"<<cn<<"位聽眾預定參加。預定聽眾消息如下:"<<endl; 
    for(int k=0;k<i;k++){
        audience_info_list[k].print();
    }
    return 0;
}

 

 

 

實驗任務6

#ifndef TEXTCODER_hpp
#define TEXTCODER_hpp
#include<iostream>

using namespace std;
class TextCoder{
    public:
        TextCoder(string x):text(x){}
        string encoder();
        string decoder();
    private:
        string text;    
};
string TextCoder::encoder() 
{
    for(int i=0;i<text.length();i++)
    {
        if((text[i]>='A'&&text[i]<='U')||(text[i]>='a'&&text[i]<='u'))
        text[i]=text[i]+5;
        else if((text[i]>='V'&&text[i]<='Z')||(text[i]>='v'&&text[i]<='z'))
        text[i]=text[i]-21; 
    }
    return text; 
}
string TextCoder::decoder() 
{
    for(int i=0;i<text.length();i++)
    {
        if((text[i]>='f'&&text[i]<='z')||(text[i]>='F'&&text[i]<='Z'))
        text[i]=text[i]-5;
        else if((text[i]>='a'&&text[i]<='e')||(text[i]>='A'&&text[i]<='E')) 
        text[i]=text[i]+21;
    }
    return text; 
}
#endif
#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輸入英文文本: ";
    }
}

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM