实验2 数组、指针与C++标准库
实验任务5
"info.hpp"
#include <iostream> #include <string> using namespace std; class Info { public: Info (string nina, string con, string ci, int num = 0): nickname(nina), contact(con), city(ci), n(num) {}; void print(); private: string nickname, contact, city; int n; }; void Info::print() { cout << "称呼: " << nickname << endl; cout << "联系方式: " << contact << endl; cout << "所在城市: " << city << endl; cout << "预定人数: " << n << endl; }
"task5.cpp"
#include <iostream> #include <vector> #include <string> #include "info.hpp" using namespace std; int main() { vector <Info> audience_info_list; const int capacity = 100; string nina, con, ci, choice; int total_num = 0, cin_num = 0, i = 0; cout << "录入信息:" << endl; cout << endl; cout << "称呼/昵称,联系方式(邮箱/手机号),所在城市,预定参加人数" << endl; while (cin >> nina >> con >> ci >> cin_num) { if (total_num + cin_num <= capacity) { audience_info_list.push_back(Info(nina, con, ci, cin_num)); total_num += cin_num; i++; } else { cout << "对不起,只剩" << capacity - total_num << "个位置." << endl; cout << "1. 输入u, 更新(update)预定信息" << endl; cout << "2. 输入q, 退出预定" << endl; cout << "你的选择: "; cin >> choice; if (choice == "u") audience_info_list.pop_back(); else if (choice == "q") break; } } cout << endl; cout << "截至目前,一共有" << total_num << "位听众预定参加。预定听众信息如下:" << endl; for (int j = 0; j < i; j++) audience_info_list[j].print(); return 0; }
运行结果


实验任务6
"textcoder.hpp"
#include <iostream> #include <string> using namespace std; class TextCoder { public: TextCoder (string tc): text(tc) {}; 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] <='Z')) { if ((text[i] >= 'v' && text[i] <= 'z') || (text[i] >= 'V' && text[i] <= 'Z')) text[i] -= 21; else text[i] += 5; } 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] <= 'Z')) { if ((text[i] >= 'a' && text[i] <= 'e') || (text[i] >= 'A' && text[i] <= 'E')) text[i] += 21; else text[i] -= 5; } return text; }
"task6.cpp"
#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输入英文文本: "; } }
运行结果

浙公网安备 33010602011771号