#ifndef INFO_HPP
#define INFO_HPP
#include <iostream>
#include <string>
#include <vector>
#include <iomanip>
using namespace std;
class Info
{
public:
Info() {}
Info(string n, string num, string p, int man);
void print();
static int get_now();
private:
string nickname;
string contact;
string city;
int n; //预定人数
static int now; //当前共有的人数
};
int Info::now = 0;
int Info :: get_now()
{
return now;
}
Info::Info(string name, string num, string p, int man)
{
nickname = name;
contact = num;
city = p;
n = man;
now += man;
}
void Info::print()
{
cout << left << setw(8) << "称呼:" << nickname << endl;
cout << setw(8) << "联系方式:" << contact << endl;
cout << setw(8) << "所在城市:" << city << endl;
cout << setw(8) << "预定人数:" << n << endl;
}
#endif
#include "Info.hpp"
using namespace std;
int main()
{
const int capacity = 100;
vector<Info> audience_info_list;
string name, num, city;
int man;
cout << "录入信息:" << endl
<< endl;
cout << left << setw(8) << "称呼/昵称,"
<< "联系方式(手机号/邮箱),"
<< "所在城市,"
<< "预定参加人员." << endl;
while (cin >> name >> num >> city >> man)
{
if (man + Info::get_now() > capacity)
{
cout << endl;
cout << "对不起,只剩" << capacity - Info::get_now() << "个位子!" << endl
<< endl;
cout << "输入u,更新(update)预定信息" << endl;
cout << "输入q,退出预定" << endl;
cout << "你的选择:";
char choice;
cin >> choice;
while (choice != 'q' && choice != 'u')
{
cout << "你输入的字符不对;请重新输入:";
cin >> choice;
}
if (choice == 'q')
cout << endl;
break;
if (choice == 'u')
cout << endl;
continue;
}
Info audience(name, num, city, man);
audience_info_list.push_back(audience);
}
cout << "截至目前,一共有" << Info::get_now() << "位听众预定参加。预定听众信息如下:" << endl
<< endl;
for (Info audience : audience_info_list)
{
audience.print();
cout << endl;
}
}
![]()
![]()
#ifndef TEXTCODER_HPP
#define TEXTCODER_HPP
#include <iostream>
#include <string>
using namespace std;
class TextCoder
{
public:
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] <= 'u') || (text[i] >= 'A' && text[i] <= 'U'))
{
text[i] = text[i] + 5;
}
else if ((text[i] > 'u' && text[i] <= 'z') || (text[i] > 'U' && 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] < 'f') || (text[i] >= 'A' && text[i] < 'F'))
{
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输入英文文本: ";
}
}
![]()