实验二 数组、指针与c++标准库
task 5
info.hpp
#ifndef INFO_HPP #define INFO_HPP #include<iostream> #include<string> using namespace std; class Info { public: Info(string x,string y,string z,int a):nickname(x),contact(y),city(z),n(a){} void print(); ~Info(){} 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> using namespace std; int main() { cout<<"录入信息:" <<endl; cout<<"\n"; cout<<"称呼/昵称,联系方式(邮箱/手机号),所在城市,预订参加人数"<<endl; const int capacity=100; vector<Info> audience_info_list; string a,b,c; int d,k=0,sum=0; while(cin>>a>>b>>c>>d) { Info A(a,b,c,d); audience_info_list.push_back(A); sum+=d; if(sum>capacity) { sum-=d; audience_info_list.pop_back(); cout<<"对不起,只剩"<<capacity-sum<<"个位置"<<endl; cout<<"1.输入u,更新预定信息"<<endl; cout<<"2.输入q,退出预定"<<endl; char x; cin>>x; cout<<"你的选择:"<<x<<endl; if(x=='u') continue; if(x=='q') break; } k++; } cout<<"截止目前,一共有"<<sum<<"位听众预定参加。预定观众听众信息如下:"<<endl; for(int it=0;it<k;it++) { audience_info_list[it].print(); cout<<endl; } return 0; }
运行结果:
task 6
textcoder.hpp
#ifndef TEXTCODER_HPP #define TEXTCODER_HPP #include<iostream> #include<string> using namespace std; class TextCoder { public: TextCoder(string x):text(x){} ~TextCoder(){} string encoder(); string decoder(); private: string text; }; string TextCoder::encoder() { 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; } return text; } string TextCoder::decoder() { 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; } return text; } #endif
task 6.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输入英文文本: "; } }
运行结果: