实验二 数组,指针和C++标准库

info.hpp

 1 #include<iostream>
 2 #include<string>
 3 
 4 using namespace std;
 5 
 6 class Info
 7 {
 8     public:
 9         Info(string ni = "", string co = "", string ci = "", int nn = 0) : nickname(ni), contact(co), city(ci), n(nn) {} ;
10         Info(Info const &i) : nickname(i.nickname), contact(i.contact), city(i.city), n(i.n) {} ;
11         void print() const ;
12     private:
13         string nickname;
14         string contact;
15         string city;
16         int n;
17 };
18 
19 void Info::print() const
20 {
21     cout<<"nickname:\t"<<nickname<<endl;
22     cout<<"contact: \t"<<contact<<endl;
23     cout<<"city:    \t"<<city<<endl;
24     cout<<"number:  \t"<<n<<endl;
25 }

task5.cpp

 1 #include<iostream>
 2 #include<vector>
 3 #include<string>
 4 #include"info.hpp"
 5 
 6 int main()
 7 {
 8     vector<Info> audience_info_list;
 9     string ni, co, ci, x;
10     int nn;
11     const int capacity = 100;
12     int now = 0;
13     cout<<"录入信息:\n"<<endl;
14     cout<<"称呼/昵称,联系方式(邮箱/手机号), 所在城市, 预定参加人数;"<<endl;
15     while(cin>>ni)
16     { 
17         cin>>co>>ci>>nn;
18         if(now + nn > capacity)
19         {
20             cout<<"对不起,只剩"<<capacity-now<<"个位置."<<endl;
21             cout<<"1、输入u,更新(update)预定信息"<<endl;
22             cout<<"2、输入q,退出预订"<<endl;
23             cout<<"你的选择:"; 
24             cin>>x;
25             if(x == "u")
26                 cout<<"请重新输入:"<<endl;
27             else
28                 break;
29         }
30         else
31         {
32             now += nn;
33             audience_info_list.push_back(Info(ni, co, ci, nn));    // 创建临时无名对象 
34         }
35     }
36     cout<<"\n截至目前,一共有"<<now<<"位听众预定参加,预定听众信息如下:"<<endl;
37     vector<Info>::const_iterator i;        // 常量迭代器 
38     for(i = audience_info_list.begin(); i != audience_info_list.end(); i++)
39         (*i).print();
40     return 0;
41 }

 

 

 

 

 

 

 

textcoder.hpp

 1 #include<iostream>
 2 #include<string>
 3 
 4 using namespace std;
 5 
 6 class TextCoder
 7 {
 8     public:
 9         TextCoder(string t = "") : text(t) {} ;
10         TextCoder(TextCoder &t) : text(t.text) {} ;
11         string encoder();
12         string decoder();
13     private:
14         string text;
15 };
16 
17 string TextCoder::encoder()
18 {
19     string TextEncoder;
20     for(auto &i : text)
21     {
22         if((i >= 'a' && i <= 'z') || (i >= 'A' && i <= 'Z'))
23             TextEncoder.push_back((i - 'a' + 5) % 26 + 'a');
24         else
25             TextEncoder.push_back(i);
26     }
27     return TextEncoder;
28 }
29 
30 string TextCoder::decoder()
31 {
32     string TextDecoder;
33     for(auto i: text)
34     {
35         if((i >= 'a' && i <= 'z') || (i >= 'A' && i <= 'Z'))
36             TextDecoder.push_back((i - 'a' + 21) % 26 + 'a');
37         else
38             TextDecoder.push_back(i);
39     }
40     return TextDecoder;
41 }

task6.cpp

 1 #include "textcoder.hpp"
 2 #include <iostream>
 3 #include <string>
 4 
 5 int main()
 6 {
 7     using namespace std;
 8 
 9     string text, encoded_text, decoded_text;
10 
11     cout << "输入英文文本: ";
12     while (getline(cin, text))
13     {
14         encoded_text = TextCoder(text).encoder();  // 这里使用的是临时无名对象
15         cout << "加密后英文文本:\t" << encoded_text << endl;
16 
17         decoded_text = TextCoder(encoded_text).decoder(); // 这里使用的是临时无名对象
18         cout << "解密后英文文本:\t" << decoded_text << endl;
19         cout << "\n输入英文文本: ";
20     }
21 }

 

 

posted @ 2021-10-25 20:47  颜嘉震  阅读(49)  评论(3编辑  收藏  举报