实验二 数组、指针和C++标准库



 

#ifndef Info_hpp
#define Info_hpp
#include<iostream>
#include<string>
using namespace std;
//Info类的定义
class Info {
private:
    string nickname;//昵称
    string contact;//联系方式
    string city;//城市
    int n;//人数
public:
    Info(){}//默认构造函数
    Info(string name,string tel,string where ,int t):nickname(name),contact(tel),city(where),n(t){}//带参构造函数
    Info( Info &s)//复制构造函数
    {
        nickname=s.nickname;
        contact=s.contact;
        city=s.city;
        n=s.n;
    }
    ~Info(){}//析构函数
    void print () const;
};
//输出预定信息
void Info::print() const
{
    cout<<"称呼:     "<<nickname<<endl<<"联系方式:     "<<contact<<endl<<"所在城市:     "<<city<<endl<<"预定人数:     "<<n<<endl;
}

#endif /* Info_hpp */
#include "Info.hpp"
#include<iostream>
#include<vector>
const int capacity=100;
using namespace std;
int main()
{
    vector<Info> audience_info_list(100);//构建Info类数组
    string name,tel,city; int num;
    int i=0,sum=0;bool over=0;
    cout<<"录入信息:"<<endl<<"称呼/昵称,联系方式(邮箱/手机号),所在城市,预定参加人数"<<endl;
    while(cin>>name&&name!="over"&&cin>>tel>>city>>num)//以over为结束标志
    {       //当位置不够时
        if(sum+num>capacity)
        {
         cout<<"对不起,只剩"<<capacity-sum<<"个位置。"<<endl<<"1.输入u,更新(update)预定信息。"<<endl<<"2.输入q,退出预定。"<<endl;
            char ch;
                  cin>>ch;
            //如果退出预定程序
                  if(ch=='q')
                  {   cout<<"截至目前为止,一共有"<<sum<<"位观众参加预定。预定听众信息如下:"<<endl;
                      for(int k=0;k<i;k++)
                          audience_info_list[k].print();
                      over=1;
                      break;
                  }
            //如果更新预定信息
                  if(ch=='u')
                  { continue;}
         }
        //读入数据
       Info s(name,tel,city,num);
        audience_info_list[i]=s;
        sum=sum+num;i++;
        //当人数正好满时
        if(sum==capacity) break;
    }
  //人不满退出程序或正好满时,输出预定信息。
  if(!over)
  {
      cout<<"截至目前,一共有"<<sum<<"位听众预定参加。预定听众信息如下:"<<endl;
      for(int k=0;k<i;k++)
          audience_info_list[k].print();
  }
    
}

实验二 数组、指针和C++标准库

 

实验二 数组、指针和C++标准库

 

实验二 数组、指针和C++标准库

 

#ifndef textcoder_hpp
#define textcoder_hpp
#include <iostream>
#include<string>
using namespace std;
//类的创建
class TextCoder {
public:
    TextCoder(){}
    TextCoder(string s):text(s){}//构造函数
    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]-'a'+5)%26;
        if(text[i]>='A'&&text[i]<='Z')
            text[i]='A'+(text[i]-'A'+5)%26;
    }
    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]-'a'+21)%26;
        if(text[i]>='A'&&text[i]<='Z')
            text[i]='A'+(text[i]-'A'+21)%26;
    }
    return text;
}
#endif /* textcoder_hpp */
#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输入英文文本: ";
    }
}

实验二 数组、指针和C++标准库

 

上一篇:实验二 数组、指针与C++标准库


下一篇:mysql服务器cpu爆满解决办法