ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2021-10-30 10:34:13  阅读:141  来源: 互联网

标签:string int text hpp c++ 数组 include TextCoder 指针


实验结论:

实验任务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输入英文文本: ";
    }
}

运行截图:

 

标签:string,int,text,hpp,c++,数组,include,TextCoder,指针
来源: https://www.cnblogs.com/lgxx/p/15484440.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有