#ifndef Info_hpp #define Info_hpp #include<iostream> #include<string> using namespace std; //Info类的定义 class Info { private: string nickname;//昵称 string contact;//联系方式 string city;//城市 int n;//人数 public: Info(){}//默认构造函数 Info(string name,string tel,string where ,int t):nickname(name),contact(tel),city(where),n(t){}//带参构造函数 Info( Info &s)//复制构造函数 { nickname=s.nickname; contact=s.contact; city=s.city; n=s.n; } ~Info(){}//析构函数 void print () const; }; //输出预定信息 void Info::print() const { cout<<"称呼: "<<nickname<<endl<<"联系方式: "<<contact<<endl<<"所在城市: "<<city<<endl<<"预定人数: "<<n<<endl; } #endif /* Info_hpp */
#include "Info.hpp" #include<iostream> #include<vector> const int capacity=100; using namespace std; int main() { vector<Info> audience_info_list(100);//构建Info类数组 string name,tel,city; int num; int i=0,sum=0;bool over=0; cout<<"录入信息:"<<endl<<"称呼/昵称,联系方式(邮箱/手机号),所在城市,预定参加人数"<<endl; while(cin>>name&&name!="over"&&cin>>tel>>city>>num)//以over为结束标志 { //当位置不够时 if(sum+num>capacity) { cout<<"对不起,只剩"<<capacity-sum<<"个位置。"<<endl<<"1.输入u,更新(update)预定信息。"<<endl<<"2.输入q,退出预定。"<<endl; char ch; cin>>ch; //如果退出预定程序 if(ch=='q') { cout<<"截至目前为止,一共有"<<sum<<"位观众参加预定。预定听众信息如下:"<<endl; for(int k=0;k<i;k++) audience_info_list[k].print(); over=1; break; } //如果更新预定信息 if(ch=='u') { continue;} } //读入数据 Info s(name,tel,city,num); audience_info_list[i]=s; sum=sum+num;i++; //当人数正好满时 if(sum==capacity) break; } //人不满退出程序或正好满时,输出预定信息。 if(!over) { cout<<"截至目前,一共有"<<sum<<"位听众预定参加。预定听众信息如下:"<<endl; for(int k=0;k<i;k++) audience_info_list[k].print(); } }
#ifndef textcoder_hpp #define textcoder_hpp #include <iostream> #include<string> using namespace std; //类的创建 class TextCoder { public: TextCoder(){} TextCoder(string s):text(s){}//构造函数 string encoder(); string decoder(); private: string text; }; //加密函数 string TextCoder::encoder() { for(int i=0;i<text.length();i++) { if(text[i]>='a'&&text[i]<='z') text[i]='a'+(text[i]-'a'+5)%26; if(text[i]>='A'&&text[i]<='Z') text[i]='A'+(text[i]-'A'+5)%26; } return text; } //解密函数 string TextCoder::decoder() { for(int i=0;i<text.length();i++) { if(text[i]>='a'&&text[i]<='z') text[i]='a'+(text[i]-'a'+21)%26; if(text[i]>='A'&&text[i]<='Z') text[i]='A'+(text[i]-'A'+21)%26; } return text; } #endif /* textcoder_hpp */
#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输入英文文本: "; } }