C/C++教程

实验二 数组、指针与c++标准库

本文主要是介绍实验二 数组、指针与c++标准库,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

实验结论:

实验任务5:

Info.hpp

#ifndef Info_hpp
#define Info_hpp

#include<iostream>
#include<string>
#include<vector>
#define capacity 100
using namespace std;

class Info
{
    public:
        Info(string x, string y,string z, int n0):nickname(x),contact(y),city(z),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

task5.cpp

#include "Info.hpp" 
#include<iostream>
#include<string>
#include<vector>
#define capacity 100
int main()
{
    string nickname,contact,city;
    int t=0;//记录容量变化 
    int k=0,n=0;
    int people=0;//记录已定预约 
    char s;
    vector <Info> audience_info_list;

    cout<<"录入信息:"<<endl;
    cout<<"称呼/昵称,   联系方式(邮箱/手机号),   所在城市,   预订参加人数"<<endl; 
    
    while(cin>>nickname>>contact>>city>>n)
    {
        t+=n;
        if(t<=capacity)
        {
        Info a(nickname,contact,city,n);
        people++;
        audience_info_list.push_back(a);//插入人员信息 
        }
        else
        {
            t-=n;
            cout<<"对不起,只剩"<<capacity-t<<"个位置"<<endl;
            cout<<"1.输入u,更新预订信息"<<endl;
            cout<<"2.输入q,退出预订"<<endl; 
            cout<<"你的选择:"; cin>>s;
            cout<<endl;
            
            if(s=='q')   break;//退出预订 
            else if(s=='u')    //更新预约信息 
            cout<<"截至目前,一共有"<<t<<"位听众预订参加。"<<endl;
        }
    }
    
    cout<<"截至目前,一共有"<<t<<"位听众预订参加。预订听众信息如下:"<<endl;
    
    for(int i=0;i<people;i++)
    {audience_info_list.at(i).print();}
}

运行截图:

 

 

实验任务6:

TextCoder.hpp

#ifndef TextCoder_hpp
#define TextCoder_hpp

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

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

string TextCoder::encoder()//加密 
{
    string temp=text;
    int i; 
    for(i=0;i<temp.length();i++)//若是英文字符,则英文字符变为它之后第五个英文 
    {
        if((temp[i]>='a'&&temp[i]<='z'))
        {
            temp[i]+=5;
            if (temp[i]>'z')    temp[i]-=26;
        }
        
        if ((temp[i]>='A'&&temp[i]<='Z'))
        {
            temp[i]+=5;
            if (temp[i]>'Z')    temp[i]-=26;
        }     
    }
    return temp;
}

string TextCoder::decoder()//解密 
{
    string retemp=text;
    int i; 
    for(i=0;i<retemp.length();i++)//若是英文字符,则英文字符变为它之前第五个英文 
    {
        if((retemp[i]>='a'&&retemp[i]<='z'))
        {
            retemp[i]-=5;
            if (retemp[i]<'a')    retemp[i]+=26;
        }
        
        if ((retemp[i]>='A'&&retemp[i]<='Z'))
        {
            retemp[i]-=5;
            if (retemp[i]<'A')    retemp[i]+=26;
        }
    }
    return retemp;
}
#endif 

task6.cpp

#include "TextCoder.hpp"
#include<iostream>
#include<string>
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输入英文文本: ";
    }
}

运行截图:

 

这篇关于实验二 数组、指针与c++标准库的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!