实验二 数组、指针和c++标准库
实验任务5
Info.hpp
#ifndef INFO_HPP #define INFO_hpp #include<iostream> #include<string> #include<iomanip> using namespace std; class Info{ private: string nickname; string contack; string city; int n; public: Info(string nickname0,string contack0,string city0,int n0); void print(); }; Info::Info(string nickname0,string contack0,string city0,int n0): nickname{nickname0},contack{contack0},city{city0},n{n0}{} void Info::print(){ cout<<left<<setw(10)<<"称呼:"<<nickname<<endl; cout<<left<<setw(10)<<"联系方式:"<<contack<<endl; cout<<left<<setw(10)<<"所在城市:"<<city<<endl; cout<<left<<setw(10)<<"预订人数:"<<n<<endl; } #endif
task5.cpp
#include"Info.hpp" #include<iostream> #include<vector> int main(){ vector<Info>audience_info_list; const int capacity=100; string nickname0,contack0,city0; int n0,k=0; cout<<"录入信息"<<endl<<endl; cout<<"称呼/昵称,联系方式(邮箱/手机号),所在城市,预定参加人数"<<endl; while(cin>>nickname0,cin>>contack0,cin>>city0,cin>>n0){ k+=n0; Info c1(nickname0,contack0,city0,n0); audience_info_list.push_back(c1); if(k==capacity) break; else if(k>capacity){ cout<<"对不起,只剩"<<capacity-k+n0<<"个位置."<<endl; cout<<"1.输入u,更新(update)预定信息"<<endl; cout<<"2.输入q,退出预定" <<endl; cout<<"你的选择:"; k-=n0; char z; cin>>z; int t=0; if(z=='q'){ audience_info_list.pop_back(); break; } else if(z=='u'){ audience_info_list.pop_back(); continue; } } } cout<<endl<<"截至目前,一共有"<<k<<"位听众预定参加。预定听众信息如下:"<<endl; for(auto it=audience_info_list.begin();it!=audience_info_list.end();++it){ it->print(); } }
运行测试结果截图:


实验任务6
Textcoder.hpp
#ifndef TEXCODER_HPP #define TEXTCODER_HPP #include<iostream> #include<string> using namespace std; class TextCoder{ private: string text; public: TextCoder(string text0):text{text0}{} string encoder(); string decoder(); }; string TextCoder::encoder(){ for(auto &ch:text){ if(ch>='a'&&ch<='u'||ch>='A'&&ch<='U') ch+=5; else if(ch>='v'&&ch<='z'||ch>='V'&&ch<='Z') ch-=21; } return text; } string TextCoder::decoder(){ for(auto &ch:text){ if(ch>='f'&&ch<='z'||ch>='F'&&ch<='Z') ch-=5; else if(ch>='a'&&ch<='e'||ch>='A'&&ch<='F') ch+=21; } return text; }
#endif
task6.cpp
#include "Textcoder.hpp" #include <iostream> #include <string> int main() { using namespace std; 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号