实验2 数组、指针与c++标准库
info.hpp
#ifndef INFO_HPP #define INFO_HPP #include<iostream> #include<string> #include<vector> using namespace std; class info { public: info(string m,string x,string p,int q):nickname(m),contact(x),city(p),n(q){} ~info(){} void print() { cout<<"称呼: "<<nickname<<endl; cout<<"联系方式: "<<contact<<endl; cout<<"所在城市: "<<city<<endl; cout<<"预约人数: "<<n<<endl; } private: string nickname,contact,city; int n; }; #endif
task5.cpp
#include"info.hpp" #include<iostream> #include<string> #include<vector> #include<iomanip> int main() { using namespace std; vector<info>audience_info_list; const int capacity=100; int count=0,n; //count用于计数和capacity比较 string nickname,city,contact,choose; cout<<"录入信息: "<<endl<<endl; cout<<"称呼/昵称,联系方式(邮箱/手机号),所在城市,预定参加人数"<<endl; while(cin>>nickname>>contact>>city>>n&&count<=capacity) { if(count+n<=capacity) //之前的加现在的小于等于capacity { count+=n; info x(nickname,contact,city,n); audience_info_list.push_back(x); //录入信息 } else { cout<<"对不起,只剩"<<100-count<<"个位置." <<endl; cout<<"1.输入u,更新(update)预定信息"<<endl; cout<<"2.输入q,退出预定"<<endl; cout<<"你的选择:"; cin>>choose; if(choose=="u") { cout<<"称呼/昵称,联系方式(邮箱/手机号),所在城市,预定参加人数"<<endl; //更新预定信息 } else if(choose=="q") { cout<<endl; break; } } } cout<<"截至目前,一共有"<<count<<"位预定参加,预定听众信息如下:"<<endl; for(auto it=audience_info_list.begin();it!=audience_info_list.end();it++) (*it).print(); }
运行测试结果截图:


textcoder.hpp
#ifndef TEXTCODER_HPP #define TEXTCODER_HPP #include<iostream> #include<string> #include<cmath> using namespace std; class TextCoder { public: TextCoder(string m):text(m){} ~TextCoder(){} //加密 string encoder() { for(int i=0;i<text.length();i++) { if(text[i]>='A'&&text[i]<='Z') text[i]='A'+(text[i]-'A'+5)%26; else if(text[i]>='a'&&text[i]<='z')text[i]='a'+(text[i]-'a'+5)%26; } return text; } //解密 string decoder() { for(int i=0;i<text.length();i++) { if(text[i]>='A'&&text[i]<='Z') text[i]='A'+(text[i]-'A'+21)%26; else if(text[i]>='a'&&text[i]<='z') text[i]='a'+(text[i]-'a'+21)%26; } return text; } private: string 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号