实验任务五
info.hpp
#pragma once #include<bits/stdc++.h> using namespace std; class Info{ public: Info(string nick0,string contact0,string city0,int num0); void print()const; private: string nickname,contact,city; int n; }; Info::Info(string nick0,string contact0,string city0,int num0):nickname{nick0},contact{contact0},city{city0},n{num0}{}; void Info::print() const { cout << left << endl << setw(17) << "称呼:" << setw(17) << nickname << setw(17) << "\n联系方式:" << setw(17) << contact << setw(17) << "\n所在城市:" << setw(17) << city << setw(17) << "\n预定人数:" << setw(17) << n << endl; }
task5.cpp
#include"info.hpp" #include<bits/stdc++.h> using namespace std; int main(){ string nick0,contact0,city0; const int capacity = 50; char a; int num=0,num0,num1; cout << "录入信息:\n称呼/昵称 联系方式(邮箱/手机号) 所在城市 预定参加人数\n"; vector<Info> audience_info_list; while(cin>>nick0>>contact0>>city0>>num0){ Info x(nick0,contact0,city0,num0); audience_info_list.push_back(x); num+=num0; if(num<capacity) cout<<"还有"<<capacity-num<<"个位置\n"; if(num>capacity){ cout<<"参加人数已达上限,请输入q退出预定,或输入u更新预定信息:"; cin>>a; if(a=='q') break; else if(a=='u'){ num-=num0; top: cout<<"仅剩"<<capacity-num<<"个位置\n"; cout<<"请更新信息:\n\n称呼/昵称 联系方式(邮箱/手机号) 所在城市 预定参加人数\n"<<endl; cin>>nick0>>contact0>>city0>>num1; Info x1(nick0,contact0,city0,num1); audience_info_list.pop_back(); audience_info_list.push_back(x1); num+=num1; if(num>capacity){ cout<<"对不起,位置不足,请重新录入信息"<<endl; num-=num1; goto top; } cout<<"信息更新完毕,系统可继续录入信息。"<<endl; cout<<"还有"<<capacity-num<<"个位置\n"; cout<<"录入信息:\n\n称呼/昵称 联系方式(邮箱/手机号) 所在城市 预定参加人数\n"; } } else if(num==capacity){cout<<"还有0个位置"<<endl;break; } } cout<<"截至目前,共有"<<num<<"位听众预定参加。预定听众信息如下:"<<endl; for(auto &item:audience_info_list){ item.print(); } }
实验任务六
textcoder.hpp
#pragma once #include<bits/stdc++.h> using namespace std; class TextCoder{ public: TextCoder(string text1):text{text1}{}; string get_ciphertext(); string get_deciphertext(); private: void encoder(string &text); void decoder(string &text); string text; }; string TextCoder::get_ciphertext(){ encoder(text); return text; } string TextCoder::get_deciphertext(){ decoder(text); return text; } void TextCoder::encoder(string &text){ for(int i=0;i<text.length();i++){ if((text[i]>='a'&&text[i]<='u')||(text[i]>='A'&&text[i]<='U')){ text[i] = text[i] + 5;//每个英文字母用其后的第5个英文字母替换 } else if((text[i]>'u'&&text[i]<='z')||(text[i]>'U'&&text[i]<='z')){ text[i] = text[i] - 21; } } } void TextCoder::decoder(string &text){ for(int i=0;i<text.length();i++){ if((text[i]>='a'&&text[i]<'f')||(text[i]>='A'&&text[i]<'F')){ text[i] = text[i] + 21; //每个英文字母用其前的第5个英文字母替换 } else if((text[i]>='f'&&text[i]<='z')||(text[i]>='F'&&text[i]<='Z')){ text[i] = text[i] - 5; } } }
task6.cpp
#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(); }
textcoder.hpp中,void成员函数对text作形参使用引用类型 属于改bug能改出来 ,一个注意点
标签:num0,string,text,实验,&&,contact0,city0 From: https://www.cnblogs.com/nitendoblog/p/16811378.html