1 #include<iostream>
2 #include<string>
3 #include<vector>
4 #include<iomanip>
5 using namespace std;
6
7 class info {
8 private:
9 string nickname, contact, city;
10 int n;
11
12 public:
13 info() {}
14 info(string name, string con, string city, int n) :nickname(name), contact(con), city(city), n(n) { }
15 info(const info& obj) :nickname(obj.nickname), contact(obj.contact), city(obj.city), n(obj.n) { count++; }
16 ~info() { count--; }
17 void print()const;
18 static int count;
19 };
20
21 int info::count = 0;
22
23 void info::print()const{
24
25
26 cout <<left<< setw(15) << "称呼:" << nickname << endl;
27 cout <<left<< setw(15) << "联系方式:" << contact << endl;
28 cout << left << setw(15) << "城市:" <<city<< endl;
29 cout << left << setw(15)<<"预定人数:" <<n<< endl;
30
31 }
32
33 int main01() {
34 vector<info> audience_info_list(100);
35 const int capacity = 100;
36 string name, city, contact;
37 int num,i=0,people_num=0;
38
39 cout << "称呼/昵称, " << "联系方式(邮箱/手机号), " << "城市, " << "预定人数" << endl;
40 while (cin >> name >> contact >> city >> num) {
41 people_num += num;
42 if (people_num >capacity ) {
43 people_num -= num;
44 cout << "对不起,只剩" << capacity - people_num << "个位置" << endl;
45 cout << "1. 输入u,update信息" << endl << "2. 输入q,退出" << endl << "你的选择:"; getchar();
46 char ch = getchar();
47 if (ch == 'q')break;
48 else if (ch == 'u')continue;
49 else cout << "wrong input!";
50 }
51 audience_info_list[i++] = { name,contact,city,num };
52 }
53 cout << "截至目前,一共有" << people_num << "名观众预定参加。观众信息为:" << endl;
54 for (int t = 0; t <i ; t++)
55 audience_info_list[t].print();
56
57 return 0;
58 }
#ifndef _TEXTCODERHPP_
#define _TEXTCODERHPP_
#include<iostream>
#include<string>
using namespace std;
class TextCoder {
private:
string text;
public:
TextCoder() {};
TextCoder(string text):text(text){}
string encoder();
string decoder();
};
string TextCoder::encoder() {
for (auto &i:text){
if (i >= 'a' && i <= 'z')i = (int(i + 5 - 'a')) % (26) + 'a';
else if (i >= 'A' && i <= 'Z')i = (int(i + 5 - 'A')) % (26) + 'A';
}
return text;
}
string TextCoder::decoder() {
for (auto&i:text){
if (i >= 'a' && i <= 'z') {
if (i >= 'f')i = i - 5;
else i = 'z' - (4 - (i-'a'));
}
else if (i >= 'A' && i <= 'Z') {
if (i >= 'F')i = i - 5;
else i = 'Z' - (4 - (i - 'A'));
}
}
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输入英文文本: ";
}
}
总结:
1string 是std命名空间的,熟悉函数
2getline用法要注意