实验2
task5
hpp:
#ifndef INFO_HPP #define INFO_HPP #include<bits/stdc++.h> #include<vector> using namespace std; class Info { public: Info()=default; Info(string Nickname,string Contact,string City,int N): nickname(Nickname),contact(Contact),city(City),n(N){} ~Info()=default; int getN(){ return n; } string getNickname(){ return nickname; } string getContact(){ return contact; } string getCity(){ return city; } static int capacity; private: string nickname; string contact; string city; int n; }; int Info::capacity=0; void print(vector<Info>A){ cout<<"截至目前,一共有"<<Info::capacity<<"位听众预定参加。预定听众信息如下:\n"; for(auto &I:A){ cout<<"称呼: "<<I.getNickname()<<"\n"; cout<<"联系方式:"<<I.getContact()<<"\n"; cout<<"所在城市:"<<I.getCity()<<"\n"; cout<<"预定人数:"<<I.getN()<<"\n"; } } #endif
main:
#include"Info.hpp" #include<vector> #include<bits/stdc++.h> #include<iomanip> using namespace std; int main(){ cout<<"录入信息:\n"<<"称呼/昵称,联系方式(邮箱/手机号),所在城市,预定参加人数(输入信息时请用“Tab”进行分隔)\n"; vector<Info>audience_info_list; string nickname,contact,city; int n; while(getline(cin,nickname,'\t'),getline(cin,contact,'\t'),getline(cin,city,'\t'),cin>>n){ Info A(nickname,contact,city,n); Info::capacity+=A.getN(); if(Info::capacity>=100){ Info::capacity-=A.getN(); cout<<"对不起,只剩"<<100-Info::capacity<<"个位置\n"; cout<<"1.输入u,更新(update)预定信息\n"; cout<<"2.输入q,退出预定\n"; cout<<"你的选择:"; string a; cin>>a; if(a=="q"){ break; } } else{ audience_info_list.push_back(A); } getchar(); } print(audience_info_list); return 0; }


-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
task6
hpp:
#ifndef TEXTCODER_HPP #define TEXTCODER_HPP #include<bits/stdc++.h> using namespace std; class TextCoder { public: TextCoder(string a):text(a){} string encoder(); string decoder(); private: string text; }; string TextCoder::encoder(){ for(auto &i:text){ if(i>='a'&&i<='z'){ i='a'+(i-'a'+5)%26; } if(i>='A'&&i<='U'){ i='A'+(i-'A'+5)%26; } } return text; } string TextCoder::decoder(){ for(auto &i:text){ if(i>='a'&&i<='z'){ i='a'+(i-'a'+21)%26;; } if(i>='A'&&i<='Z'){ i='A'+(i-'A'+21)%26;; } } return text; } #endif
main:
#include<bits/stdc++.h> #include"textcoder.hpp" using namespace std; 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输入英文文本: "; } }

浙公网安备 33010602011771号