天天看点

C++实验2

1 #include<iostream>
 2 #include<string>
 3 #include<vector>
 4 #include<iomanip>
 5 using namespace std;
 6 
 7 class info {
 8 private:
 9     string nickname, contact, city;
10     int n;
11     
12 public:
13     info() {}
14     info(string name, string con, string city, int n) :nickname(name), contact(con), city(city), n(n) {  }
15     info(const info& obj) :nickname(obj.nickname), contact(obj.contact), city(obj.city), n(obj.n) { count++; }
16     ~info() { count--; }
17      void print()const;
18     static int count;
19 };
20 
21 int info::count = 0;
22 
23 void info::print()const{
24     
25     
26         cout <<left<< setw(15) << "称呼:" << nickname << endl;
27         cout <<left<< setw(15) << "联系方式:" << contact << endl;
28         cout << left << setw(15) << "城市:" <<city<< endl;
29         cout << left << setw(15)<<"预定人数:" <<n<< endl;
30     
31 }
32 
33 int main01() {
34     vector<info> audience_info_list(100);
35     const int capacity = 100;
36     string name, city, contact;
37     int num,i=0,people_num=0;
38     
39     cout << "称呼/昵称,  " << "联系方式(邮箱/手机号),   " << "城市,   " << "预定人数" << endl;
40     while (cin >> name >> contact >> city >> num) {
41         people_num += num;
42         if (people_num >capacity ) {
43             people_num -= num;
44             cout << "对不起,只剩" << capacity - people_num << "个位置" << endl;
45             cout << "1. 输入u,update信息" << endl << "2. 输入q,退出" << endl << "你的选择:"; getchar();
46             char ch = getchar();
47             if (ch == 'q')break;
48             else if (ch == 'u')continue;
49             else cout << "wrong input!";
50         }
51         audience_info_list[i++] = { name,contact,city,num };
52     }
53     cout << "截至目前,一共有" << people_num << "名观众预定参加。观众信息为:" << endl;
54     for (int t = 0; t <i ; t++)    
55         audience_info_list[t].print();
56     
57     return 0;
58 }      
C++实验2
C++实验2
#ifndef _TEXTCODERHPP_
#define _TEXTCODERHPP_
#include<iostream>
#include<string>
using namespace std;
class TextCoder {
private:
    string text;

public:
    TextCoder() {};
    TextCoder(string text):text(text){}
    string encoder();
    string decoder();
};

string TextCoder::encoder() {
    for (auto &i:text){
        if (i >= 'a' && i <= 'z')i = (int(i + 5 - 'a')) % (26) + 'a';
        else if (i >= 'A' && i <= 'Z')i = (int(i + 5 - 'A')) % (26) + 'A';
        
    }
    return text;
}

string TextCoder::decoder() {
    for (auto&i:text){
        if (i >= 'a' && i <= 'z') {
            if (i >= 'f')i = i - 5;
            else i = 'z' - (4 - (i-'a'));
        }
        else if (i >= 'A' && i <= 'Z') {
            if (i >= 'F')i = i - 5;
            else i = 'Z' - (4 - (i - 'A'));
        }
        
    }
    return text;
}
#endif      
#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输入英文文本: ";
    }
}      
C++实验2

总结:

1string 是std命名空间的,熟悉函数

2getline用法要注意