实验3
任务5
#pragma once #include<iostream> #include<string> #include<iomanip> using namespace std; class Info{ public: Info(string name,string cot,string cty,int i):nickname{name},contact{cot},city{cty},n{i}{} ~Info(){} void print(){ cout<<left<<setw(16)<<"昵称:"<<nickname<<endl; cout<<left<<setw(16)<<"联系方式:"<<contact<<endl; cout<<left<<setw(16)<<"所在城市:"<<city<<endl; cout<<left<<setw(16)<<"预定人数:"<<n<<endl; cout<<endl; } private: string nickname,contact,city; int n; };
#include"info.hpp" #include<iostream> #include<vector> #include<iomanip> #include<string> using namespace std; const int capacity=100; vector<Info>audience_info_list; void test() { int s=0,n,i=0,count=0; string str,s1,s2,s3,s4,cho; cout<<"录入信息:"<<endl; cout<<endl; cout<<left<<setw(16)<<"昵称"; cout<<left<<setw(32)<<"联系方式(邮箱/手机号)"; cout<<left<<setw(16)<<"所在城市"; cout<<left<<setw(16)<<"预定参加人数"<<endl; while(getline(cin,str)) { for(i=0;i<str.size();i++) { if(str[i]==' ') { if(str[i-1]!=' ')count++; continue; } switch(count){ case 0:s1.push_back(str[i]);break; case 1:s2.push_back(str[i]);break; case 2:s3.push_back(str[i]);break; case 3:s4.push_back(str[i]);break; } } n=stoi(s4); if(n>capacity-s) { cout<<"对不起,只剩"<<(capacity-s)<<"个位置."<<endl; cout<<"1.输入u,更新(update)预定信息"<<endl; cout<<"2.输入q,退出预定"<<endl; getline(cin,cho); cout<<"你的选择:"<<cho<<endl; if(cho=="u") { count=0; s1=""; s2=""; s3=""; s4=""; continue; } else break; } audience_info_list.push_back(Info(s1, s2, s3, n)); s+=n; count=0; s1=""; s2=""; s3=""; s4=""; } cout<<"截至目前,一共有"<<s<<"位听众预定参加。预定听众信息如下:"<<endl; for(i=0;i<audience_info_list.size();i++) { audience_info_list[i].print(); cout<<endl; } } int main() { test(); return 0; }
任务6
#pragma once #include<iostream> #include<iomanip> #include<string> using namespace std; class TextCoder{ public: TextCoder(string t):text{t}{} TextCoder(const TextCoder &T){ text=T.text; } string get_ciphertext(){ encoder(); return text; } string get_deciphertext(){ decoder(); return text; } private: string text; private: void encoder(){ for(auto &i:text) { if(i>='a'&&i<='z') { if(i<='u')i+=5; else i='a'+4-('z'-i); } else if(i>='A'&&i<='Z') { if(i<='U')i+=5; else i='A'+5-('Z'-i); } } } void decoder(){ for(auto &i:text) { if(i>='a'&&i<='z') { if(i>='f')i-=5; else i='z'-4+(i-'a'); } else if(i>='A'&&i<='Z') { if(i>='F')i-=5; else i='A'-4+(i-'Z'); } } } };
#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(); }