实验结论:
实验任务5:
Info.hpp
#ifndef Info_hpp #define Info_hpp #include<iostream> #include<string> #include<vector> #define capacity 100 using namespace std; class Info { public: Info(string x, string y,string z, int n0):nickname(x),contact(y),city(z),n(n0){} void print(); private: string nickname; string contact; string city; int n; }; void Info::print() { cout<<"称呼:"<<" "<<nickname<<endl; cout<<"联系方式:"<<" "<<contact<<endl; cout<<"所在城市:"<<" "<<city<<endl; cout<<"预订人数:"<<" "<<n<<endl; } #endif
task5.cpp
#include "Info.hpp" #include<iostream> #include<string> #include<vector> #define capacity 100 int main() { string nickname,contact,city; int t=0;//记录容量变化 int k=0,n=0; int people=0;//记录已定预约 char s; vector <Info> audience_info_list; cout<<"录入信息:"<<endl; cout<<"称呼/昵称, 联系方式(邮箱/手机号), 所在城市, 预订参加人数"<<endl; while(cin>>nickname>>contact>>city>>n) { t+=n; if(t<=capacity) { Info a(nickname,contact,city,n); people++; audience_info_list.push_back(a);//插入人员信息 } else { t-=n; cout<<"对不起,只剩"<<capacity-t<<"个位置"<<endl; cout<<"1.输入u,更新预订信息"<<endl; cout<<"2.输入q,退出预订"<<endl; cout<<"你的选择:"; cin>>s; cout<<endl; if(s=='q') break;//退出预订 else if(s=='u') //更新预约信息 cout<<"截至目前,一共有"<<t<<"位听众预订参加。"<<endl; } } cout<<"截至目前,一共有"<<t<<"位听众预订参加。预订听众信息如下:"<<endl; for(int i=0;i<people;i++) {audience_info_list.at(i).print();} }
运行截图:
实验任务6:
TextCoder.hpp
#ifndef TextCoder_hpp #define TextCoder_hpp #include<iostream> #include<string> using namespace std; class TextCoder { public: TextCoder(){} TextCoder(string t):text(t){} ~TextCoder(){} string encoder(); string decoder(); private: string text; }; string TextCoder::encoder()//加密 { string temp=text; int i; for(i=0;i<temp.length();i++)//若是英文字符,则英文字符变为它之后第五个英文 { if((temp[i]>='a'&&temp[i]<='z')) { temp[i]+=5; if (temp[i]>'z') temp[i]-=26; } if ((temp[i]>='A'&&temp[i]<='Z')) { temp[i]+=5; if (temp[i]>'Z') temp[i]-=26; } } return temp; } string TextCoder::decoder()//解密 { string retemp=text; int i; for(i=0;i<retemp.length();i++)//若是英文字符,则英文字符变为它之前第五个英文 { if((retemp[i]>='a'&&retemp[i]<='z')) { retemp[i]-=5; if (retemp[i]<'a') retemp[i]+=26; } if ((retemp[i]>='A'&&retemp[i]<='Z')) { retemp[i]-=5; if (retemp[i]<'A') retemp[i]+=26; } } return retemp; } #endif
task6.cpp
#include "TextCoder.hpp" #include<iostream> #include<string> int main() { 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输入英文文本: "; } }
运行截图: