实验二 数组,指针和C++标准库
info.hpp
1 #include<iostream> 2 #include<string> 3 4 using namespace std; 5 6 class Info 7 { 8 public: 9 Info(string ni = "", string co = "", string ci = "", int nn = 0) : nickname(ni), contact(co), city(ci), n(nn) {} ; 10 Info(Info const &i) : nickname(i.nickname), contact(i.contact), city(i.city), n(i.n) {} ; 11 void print() const ; 12 private: 13 string nickname; 14 string contact; 15 string city; 16 int n; 17 }; 18 19 void Info::print() const 20 { 21 cout<<"nickname:\t"<<nickname<<endl; 22 cout<<"contact: \t"<<contact<<endl; 23 cout<<"city: \t"<<city<<endl; 24 cout<<"number: \t"<<n<<endl; 25 }
task5.cpp
1 #include<iostream> 2 #include<vector> 3 #include<string> 4 #include"info.hpp" 5 6 int main() 7 { 8 vector<Info> audience_info_list; 9 string ni, co, ci, x; 10 int nn; 11 const int capacity = 100; 12 int now = 0; 13 cout<<"录入信息:\n"<<endl; 14 cout<<"称呼/昵称,联系方式(邮箱/手机号), 所在城市, 预定参加人数;"<<endl; 15 while(cin>>ni) 16 { 17 cin>>co>>ci>>nn; 18 if(now + nn > capacity) 19 { 20 cout<<"对不起,只剩"<<capacity-now<<"个位置."<<endl; 21 cout<<"1、输入u,更新(update)预定信息"<<endl; 22 cout<<"2、输入q,退出预订"<<endl; 23 cout<<"你的选择:"; 24 cin>>x; 25 if(x == "u") 26 cout<<"请重新输入:"<<endl; 27 else 28 break; 29 } 30 else 31 { 32 now += nn; 33 audience_info_list.push_back(Info(ni, co, ci, nn)); // 创建临时无名对象 34 } 35 } 36 cout<<"\n截至目前,一共有"<<now<<"位听众预定参加,预定听众信息如下:"<<endl; 37 vector<Info>::const_iterator i; // 常量迭代器 38 for(i = audience_info_list.begin(); i != audience_info_list.end(); i++) 39 (*i).print(); 40 return 0; 41 }
textcoder.hpp
1 #include<iostream> 2 #include<string> 3 4 using namespace std; 5 6 class TextCoder 7 { 8 public: 9 TextCoder(string t = "") : text(t) {} ; 10 TextCoder(TextCoder &t) : text(t.text) {} ; 11 string encoder(); 12 string decoder(); 13 private: 14 string text; 15 }; 16 17 string TextCoder::encoder() 18 { 19 string TextEncoder; 20 for(auto &i : text) 21 { 22 if((i >= 'a' && i <= 'z') || (i >= 'A' && i <= 'Z')) 23 TextEncoder.push_back((i - 'a' + 5) % 26 + 'a'); 24 else 25 TextEncoder.push_back(i); 26 } 27 return TextEncoder; 28 } 29 30 string TextCoder::decoder() 31 { 32 string TextDecoder; 33 for(auto i: text) 34 { 35 if((i >= 'a' && i <= 'z') || (i >= 'A' && i <= 'Z')) 36 TextDecoder.push_back((i - 'a' + 21) % 26 + 'a'); 37 else 38 TextDecoder.push_back(i); 39 } 40 return TextDecoder; 41 }
task6.cpp
1 #include "textcoder.hpp" 2 #include <iostream> 3 #include <string> 4 5 int main() 6 { 7 using namespace std; 8 9 string text, encoded_text, decoded_text; 10 11 cout << "输入英文文本: "; 12 while (getline(cin, text)) 13 { 14 encoded_text = TextCoder(text).encoder(); // 这里使用的是临时无名对象 15 cout << "加密后英文文本:\t" << encoded_text << endl; 16 17 decoded_text = TextCoder(encoded_text).decoder(); // 这里使用的是临时无名对象 18 cout << "解密后英文文本:\t" << decoded_text << endl; 19 cout << "\n输入英文文本: "; 20 } 21 }