首页 > 其他分享 >实验四

实验四

时间:2023-11-30 12:35:10浏览次数:29  
标签:Info city const string contact 实验 include

实验五
TextCoder.hpp

点击查看代码
#include <string>

class TextCoder {
private:
    std::string text;

    void encoder() {
        for (char& c : text) {
            if (c >= 'a' && c <= 'z') {
                c = ((c - 'a' + 7) % 26) + 'a';
            } else if (c >= 'A' && c <= 'Z') {
                c = ((c - 'A' + 7) % 26) + 'A';
            }
        }
    }

    void decoder() {
        for (char& c : text) {
            if (c >= 'a' && c <= 'z') {
                c = ((c - 'a' + 19) % 26) + 'a';
            } else if (c >= 'A' && c <= 'Z') {
                c = ((c - 'A' + 19) % 26) + 'A';
            }
        }
    }

public:
    TextCoder() = default;
    TextCoder(const std::string& t) : text(t) {}

    std::string get_ciphertext() {
        encoder();
        return text;
    }

    std::string get_deciphertext() {
        decoder();
        return text;
    }
};

task5.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();
}

实验六
info.hpp

点击查看代码
#pragma once

#include <iostream>
#include <string>

using namespace std;

class Info {
    private:
        string nickname;
        string contact;
        string city;
        int n;
    public:
        Info(const string& nickname, const string& contact, const string& city, const int& n);
        void print() const;
};

Info::Info(const string& nickname, const string& contact, const string& city, const int& n): nickname{nickname}, contact{contact}, city{city}, n{n} {
}

void Info::print() const {
    cout << "昵称:\t\t" << nickname << endl;
    cout << "联系方式:\t" << contact << endl;
    cout << "所在城市:\t" << city << endl;
    cout << "预定人数:\t" << n << endl;
}

task6.cpp

点击查看代码
#include<iostream>
#include<string>
#include<vector>
#include "info.hpp"

const int capacity = 100;


int main()
{
    vector<Info> audience_info_list;

    cout << "录入信息:" << endl;
    cout << endl;
    cout << "昵称     联系方式(邮箱/手机号)     所在城市     预定参加人数     " << endl;
    char choice;
    int sum=0;
    string name, contact, city;
    int n;
    while(cin >> name >> contact >> city >> n)
    {
        sum+=n;

        if(sum > capacity)
        {
            sum-=n;
            cout << "对不起,只剩" << capacity-sum << "个位置" << endl;
            cout << "1.输入u,更新(update)预定信息" << endl
                 << "2.输入q, 退出预定" << endl
                 <<"你的选择: ";
            cin >> choice;

            if(choice=='u')
            {
                cin >> name >> contact >> city >> n;
                Info a(name,contact,city,n);
                audience_info_list.push_back(a);
                sum+=n;
            }
            else
             break;
        }
        else audience_info_list.push_back(Info(name, contact, city, n));
    }
    cout << "截至目前,一共有" << sum << "位听众预定参加。预定听众信息如下:" << endl;
    for(auto &Info:audience_info_list)
    {
        Info.print();
    }
}

标签:Info,city,const,string,contact,实验,include
From: https://www.cnblogs.com/liujiandong66da/p/17867038.html

相关文章

  • 实验四-现代C++标准库与类模板
    TextCoder.hpp1#include<string>23classTextCoder{4private:5std::stringtext;67voidencoder(){8for(char&c:text){9if(c>='a'&&c<='z'){10......
  • 11.29实验21
    实验21:观察者模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解观察者模式的动机,掌握该模式的结构;2、能够利用观察者模式解决实际问题。[实验任务一]:股票提醒当股票的价格上涨或下降5%时,会通知持有该股票的股民,当股民听到价格上涨的消息时会买股票,当价格下降时......
  • 11.29实验22
    实验22:状态模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解状态模式的动机,掌握该模式的结构;2、能够利用状态模式解决实际问题。[实验任务一]:银行账户用Java代码模拟实现课堂上的“银行账户”的实例,要求编写客户端测试代码模拟用户存款和取款,注意账户对象状态......
  • 11.29实验23
    实验23:策略模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解策略模式的动机,掌握该模式的结构;2、能够利用策略模式解决实际问题。[实验任务一]:旅行方式的选择旅游的出行方式有乘坐飞机旅行、乘火车旅行和自行车游,不同的旅游方式有不同的实现过程,客户可以根据自......
  • 触发器实验
    1.登录到PDB数据库,使用SCOTT/TIGER用户。 2.创建表Student和StudentBak,结构相同,字段信息如下:    名称     是否为空?  类型   SNO      NOTNULL NUMBER(4)   SNAME        空    VARCHAR2(10)   AGE          ......
  • 实验5—C语言指针应用编程
    1、实验任务1task1_1源代码1#include<stdio.h>2#defineN534voidinput(intx[],intn);5voidoutput(intx[],intn);6voidfind_min_max(intx[],intn,int*pmin,int*pmax);78intmain(){9inta[N];10intmin,max;1112......
  • 实验四 现代C++标准库与类模板
    task5textcoder.hpp#include<iostream>#include<string>usingstd::string;classTextCoder{private:stringtext;voidencoder();voiddecoder();public:TextCoder(string&str);TextCode......
  • 实验6:原型模式
    2.提交源代码(用C++完成);3.注意编程规范。#include<iostream> classVector{private:    int*data;//指向向量数据的指针    intsize;//向量的长度 public:    //构造函数    Vector(intsize){        this->size=size;   ......
  • 实验7:单例模式
     本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解单例模式的动机,掌握该模式的结构;2、能够利用单列模式解决实际问题。 [实验任务一]:学号的单一仿照课堂的身份证的例子,实现每个同学仅有一个学号这一问题。实验要求:1. 画出对应的类图;2.提交源代码;3.注......
  • 实验8:适配器模式
    本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解适配器模式的动机,掌握该模式的结构;2、能够利用适配器模式解决实际问题。 [实验任务一]:双向适配器实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。实验要求:1. 画出对应的类图;2.提交源代码;3.注意编......