实验三
1 #include"Info.hpp" 2 #include<iostream> 3 #include<vector> 4 #include<iomanip> 5 using namespace std; 6 const int capacity = 100; 7 int main(){ 8 vector<Info> audience_info_list; 9 string s1,s2,s3; 10 int num,sum = 0; 11 cout << "录入信息:" << endl << endl; 12 cout << left << setw(20) << "昵称" 13 << left << setw(50) << "联系方式(邮箱/手机号)" 14 << left << setw(30) << "所在城市" 15 << left << setw(30) << "预定参加人数" << endl; 16 while(cin >> s1 >> s2 >> s3 >> num){ 17 sum += num; 18 if(sum > capacity){ 19 char choice; 20 sum -= num; 21 cout << "对不起,只剩" << capacity-sum << "个位置." <<endl; 22 cout << "1.输入u,更新(update)预定信息" <<endl 23 << "2.输入q,退出预定" << endl 24 << "你的选择:"; 25 cin >> choice; 26 if (choice == 'u') continue; 27 if (choice == 'q') break; 28 } 29 30 else audience_info_list.push_back(Info(s1, s2, s3, num)); 31 32 } 33 cout << "截至目前,一共有" << sum << "位听众预定参加。预定听众信息如下:" << endl; 34 for(auto &item : audience_info_list) item.print(); 35 return 0; 36 }
1 #pragma once 2 #include<iostream> 3 #include<iomanip> 4 using namespace std; 5 class Info{ 6 public: 7 Info(string nickname0 = " ",string contact0 = " ",string city0 = " ",int n0 = 0): 8 nickname{nickname0},contact{contact0},city{city0},n{n0} { } 9 void print(){ 10 cout << left << setw(8) << "昵称:" << nickname <<endl; 11 cout << left << setw(8) << "联系方式:" << contact <<endl; 12 cout << left << setw(8) << "所在城市:" << city <<endl; 13 cout << left << setw(8) << "预定人数:" << n <<endl << endl; 14 } 15 16 private: 17 string nickname,contact,city; 18 int n; 19 20 };
1 #include "textcoder.hpp" 2 #include <iostream> 3 #include <string> 4 5 void test() { 6 using namespace std; 7 8 string text, encoded_text, decoded_text; 9 10 cout << "输入英文文本: "; 11 while (getline(cin, text)) { 12 encoded_text = TextCoder(text).get_ciphertext(); // 这里使用的是临时无名对象 13 cout << "加密后英文文本:\t" << encoded_text << endl; 14 15 decoded_text = TextCoder(encoded_text).get_deciphertext(); // 这里使用的是临时无名对象 16 cout << "解密后英文文本:\t" << decoded_text << endl; 17 cout << "\n输入英文文本: "; 18 } 19 } 20 21 int main() { 22 test(); 23 }
1 #pragma once 2 #include<iostream> 3 #include<string> 4 using namespace std; 5 class TextCoder{ 6 public: 7 TextCoder(string text0):text{text0} { } 8 string get_ciphertext(){encoder(); return text;} 9 string get_deciphertext(){decoder(); return text;} 10 private: 11 string text; 12 void encoder(); 13 void decoder(); 14 }; 15 16 void TextCoder::encoder(){ 17 for(int i = 0; i < text.length(); i++){ 18 if(text.at(i) >= 'a' && text.at(i) <= 'u') text.at(i) += 5; 19 else if(text.at(i) >= 'v' && text.at(i) <= 'z') text.at(i) -= 21; 20 else if(text.at(i) >= 'A' && text.at(i) <= 'U') text.at(i) += 5; 21 else if(text.at(i) >= 'V' && text.at(i) <= 'Z') text.at(i) -= 21; 22 } 23 } 24 25 void TextCoder::decoder(){ 26 for(int i = 0; i < text.length(); i++){ 27 if(text.at(i) >= 'f' && text.at(i) <= 'z') text.at(i) -= 5; 28 else if(text.at(i) >= 'a' && text.at(i) <= 'e') text.at(i) += 21; 29 else if(text.at(i) >= 'F' && text.at(i) <= 'Z') text.at(i) -= 5; 30 else if(text.at(i) >= 'A' && text.at(i) <= 'E') text.at(i) += 21; 31 } 32 }