C++实验2
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用法要注意
3vector要注意 ,默认初始化,熟悉函数
4注意模板类的使用
5, 正则/b是光标位置前移,会被\n \'0'截断
浙公网安备 33010602011771号