#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();
}
}
![]()
![]()
![]()
#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输入英文文本: ";
}
}
![]()