首页 > 其他分享 >实验三

实验三

时间:2022-10-25 23:00:08浏览次数:54  
标签:info string text add 实验 include cout

TASK 5:

info.hpp

#pragma once

#include<iostream>
#include<string>
#include<iomanip>
#include<vector>

using namespace std;

class info{
    
    public:
        info(string Name,string Contact,string City,int num):name{Name},contact{Contact},city{City},n{num}{}
        void print(){
            cout<<"昵称:        "<<name<<endl;
            cout<<"联系方式:    "<<contact<<endl;
            cout<<"所在城市:    "<<city<<endl;
            cout<<"预定人数:    "<<n<<endl;
        }        
    private:
        string name,contact,city;
        int n;
};

task5.cpp

#include"info.hpp" 

#include<iostream>
#include<string>
#include<iomanip>
#include<vector>

using namespace std;

int main(){
    
    const int capacity=100 ;
    vector<info>audience_info_list;
    
    cout<<"录入信息:"<<endl;
    cout<<setw(20)<<left<<"昵称";
    cout<<setw(20)<<left<<"联系方式(邮箱/手机号)";
    cout<<setw(20)<<left<<"所在城市";
    cout<<setw(20)<<left<<"预定参加人数"<<endl;
    string na,con,ci,choice="u";
    int cnt,add;
    while(choice=="u"&&cin>>na){
        cin>>con>>ci>>add;
        if(cnt+add>capacity){
            cout<<"对不起,只剩"<<capacity-cnt<<"个位置"<<endl;
            cout<<"1.输入u,更新(update)预定信息"<<endl<<"输入q,退出预定。"<<endl<<"你的选择:";
            cin>>choice;
            if(choice=="q"){
                break;
            }else{
                cin>>na>>con>>ci>>add;
                cnt+=add;
                info in=info(na,con,ci,add);
                audience_info_list.push_back(in);
                break;
            }        
        }
        cnt+=add;
        info in=info(na,con,ci,add);
        audience_info_list.push_back(in);
        if(cnt==capacity){
            break;
        }
    }
    cout << "截至目前,一共有" <<cnt<< "位听众预定参加。预定听众信息如下:" <<endl;
    for (int i=0;i<audience_info_list.size();i++){
        audience_info_list.at(i).print();
    }
    return 0;
}

测试样例:

 

TASK 6:

textcoder.hpp
#pragma once

#include<iostream>
#include<string>

using namespace std;

class TextCoder{
    public:
        TextCoder(string t):text{t}{}
        TextCoder(TextCoder &p):text{p.text}{}
        
        string get_ciphertext(){
            encoder();
            return text;
        }
        string get_deciphertext(){
            decoder();
            return text;
        };
    
    private:
        string text;
        void encoder(){
            for(int i=0;i<text.size();i++){
                if(isupper(text.at(i))){
                    text.at(i)=(text.at(i)-60)%26+65;
                }else{
                    if(islower(text.at(i))){
                        text.at(i)=(text.at(i)-92)%26+97;
                    }
                }
            }
        };
        void decoder(){
            for(int i=0;i<text.size();i++){
                if(isupper(text.at(i))){
                    text.at(i)=(text.at(i)-44)%26+65;
                }else{
                    if(islower(text.at(i))){
                        text.at(i)=(text.at(i)-76)%26+97;
                    }
                }
            }
        };
}; 

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

测试截图:

 

标签:info,string,text,add,实验,include,cout
From: https://www.cnblogs.com/MaskerQwQ/p/16826148.html

相关文章

  • 实验7:基于REST API的SDN北向应用实践
    一、基本要求1、编写Python程序,调用OpenDaylight的北向接口实现以下功能下发指令删除s1上的流表数据。delete.py#!/usr/bin/pythonimportrequestsfromrequests.a......
  • 实验2
    #include<stdio.h>#include<stdlib.h>#include<time.h>#defineN5intmain(){intnumber;inti;srand(time(0));for(i=0;i<N;++i){number=rand......
  • 实验7:基于REST API的SDN北向应用实践
    (一)基础要求1.编写Python程序,调用OpenDaylight的北向接口实现以下功能(1)利用Mininet平台搭建下图所示网络拓扑,并连接OpenDaylight;sudomn--topo=single,3--mac--cont......
  • 实验7:基于REST API的SDN北向应用实践
    一、实验目的1.能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;2.能够编写程序调用RyuRESTAPI实现特定网络功能。二、实验环境1.下载虚拟机软件OracleVisua......
  • 实验7:基于REST API的SDN北向应用实践
    (一)基本要求1.编写Python程序,调用OpenDaylight的北向接口实现以下功能(1) 利用Mininet平台搭建下图所示网络拓扑,并连接OpenDaylight(2) 下发指令删除s1上的流表数据。delet......
  • 实验7:基于REST API的SDN北向应用实践
    一、实验目的1.能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;2.能够编写程序调用RyuRESTAPI实现特定网络功能。二、实验环境1.下载虚拟机软件OracleVisua......
  • 实验2
    1#include<stdio.h>2#include<stdlib.h>3#include<time.h>4#defineN55intmain()6{7intnumber;8inti;9srand(time(0));10......
  • 实验7:基于REST API的SDN北向应用实践
    目录基础要求编写Python程序,调用OpenDaylight的北向接口实现以下功能:(1)利用Mininet平台搭建下图所示网络拓扑,并连接OpenDaylight;(2)下发指令删除s1上的流表数据。(3)下发硬......
  • 实验7:基于REST API的SDN北向应用实践
    一、实验目的1.能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;2.能够编写程序调用RyuRESTAPI实现特定网络功能。二、实验环境1.下载虚拟机软件OracleVisua......
  • 实验2
    #include<stdio.h>#include<stdlib.h>#include<time.h>#defineN5intmain(){intnumber;inti;srand(time(0));for(......