实验3
实验任务5
Info.hpp
#include<iostream> using namespace std; class Info{ public: Info()=default; Info(string name0,string email0,string city0,int n0):nickname(name0),contact(email0),city(city0),n(n0){ } void print(){cout<<"昵称:"<<nickname<<endl; cout<<"联系方式:"<<contact<<endl; cout<<"所在城市:"<<city<<endl; cout<<"预定人数:"<<n<<endl; cout<<endl;} static int num; private: string nickname,contact,city; int n; }; int Info:: num =0;
cpp
#include"info.hpp" #include<iostream> #include<vector> #include<string> #include<iomanip> using namespace std; int main(){ string s1,s2,s3; const int n=100; char a; int n1=0,n2,n3; vector <Info> audience_info_list; cout<<"录入信息:"<<endl<<endl; cout<<"昵称 "<<"联系方式(邮箱/手机号) "<<"城市 "<<"参加人数 "<<endl; while(Info::num<=n){ cin>>s1>>s2>>s3>>n1; Info f1(s1,s2,s3,n1); audience_info_list.push_back(f1); Info::num=Info::num+n1; if(Info::num>n){ n2=n-(Info::num-n1); cout<<"对不起,只剩"<<n2<<"个位置"<<endl; cout<<"1.输入u,更新(update)预定信息"<<endl; cout<<"2.输入q,推出预定"<<endl; cout<<"你的选择:"; cin>>a; if(a=='q'){ Info::num=Info::num-n1; break; } else if(a=='u'){ Info::num=Info::num-n1; continue; } else cout<<"输入错误,请重新输入"<<endl; } } cout<<"截至目前,一共有"<<Info::num<<"位听众预定参加。预定听众信息如下:"<<endl; for(n3=0;n3<audience_info_list.size();n3++) audience_info_list[n3].print(); }
实验任务6
textcoder.hpp
#include<iostream> #include<string> using namespace std; class TextCoder{ public: TextCoder(string text); ~TextCoder()=default; string get_ciphertext(); string get_deciphertext(); private: string text; void encoder(); void decoder(); }; TextCoder::TextCoder(string text):text{text}{} void TextCoder::encoder(){ for(int i=0;i<text.length();i++) { if((text[i]>='f'&&text[i]<='z')||(text[i]>='F'&&text[i]<='Z')) { text[i]-=5; } else if((text[i]>='a'&&text[i]<='e')||(text[i]>='A'&&text[i]<='E')) { text[i]+=21; } } } void TextCoder::decoder() { for(int i=0;i<text.length();i++) { if((text[i]>='a'&&text[i]<='u')||(text[i]>='A'&&text[i]<='U')) { text[i]+=5; } else if((text[i]>='V'&&text[i]<='Z')||(text[i]>='v'&&text[i]<='z')) { text[i]-=21; } } } string TextCoder::get_ciphertext(){ encoder(); return text; } string TextCoder::get_deciphertext(){ decoder(); return text; }
cpp
#include "textcoder.hpp" #include <iostream> #include <string> void test() { using namespace std; string text, encoded_text, decoded_text; cout << "输入英文文本: "; while (getline(cin, text)) { encoded_text = TextCoder(text).get_ciphertext(); // 这里使用的是临时无名对象 cout << "加密后英文文本:\t" << encoded_text << endl; decoded_text = TextCoder(encoded_text).get_deciphertext(); // 这里使用的是临时无名对象 cout << "解密后英文文本:\t" << decoded_text << endl; cout << "\n输入英文文本: "; } } int main() { test(); }