首页 > 编程语言 >实验3 数组、指针与现代C++标准库

实验3 数组、指针与现代C++标准库

时间:2022-10-24 22:55:31浏览次数:42  
标签:info ni string int text C++ 数组 include 指针

实验任务5: info.hpp:

#include<iostream>
#include<string>
using namespace std;
class info{
public:
    info(string ni,string co,string ci,int n);
    void print();
private:
    string nickname,contact,city;
    int n_people;
};
info::info(string ni,string co,string ci,int n):nickname{ni},contact{co},city{ci},n_people{n}{}
void info::print(){
    cout<<"昵称:\t"<<nickname<<endl;
    cout<<"联系方式\t"<<contact<<endl;
    cout<<"所在城市\t"<<city<<endl;
    cout<<"预定人数\t"<<n_people<<endl;
}

task5.cpp:

#include"info.hpp"
#include<iostream>
#include<vector>
#include<string>
using namespace std; 
const int capacity = 100;
int n;string ni,co,ci,ch;
int main(){
    int capacityplus=0,j=0;
    vector<info>audience_info_list;
    cout<<"录入信息:\n\n"<<"昵称      "
    <<"联系方式(邮箱/手机号码)      "<<"所在城市      "
    <<"预定参加人数      \n";
    while(cin>>ni&&ni!="end"){
        cin>>co>>ci>>n;
        capacityplus+=n;
        if(capacity>capacityplus)
            audience_info_list.push_back(info(ni,co,ci,n));
        else{
            capacityplus-=n;
            cout<<"对不起,只剩"<<capacity-capacityplus<<"个位置。\n";
            cout<<"1.输入u,更新(update)预定信息\n";
            cout<<"2.输入q,退出预定\n"<<"你的选择:";
            cin>>ch;
            if(ch=="q")
                return 0;
            if(ch=="u"){
                cout<<"录入信息:\n\n"<<"昵称      "
                <<"联系方式(邮箱/手机号码)      "<<"所在城市      "
                <<"预定参加人数      \n";
            }                    
        }
    }
    cout << "截至目前,一共有" <<capacityplus<< "位听众预定参加。预定听众信息如下:\n";
        while(j<audience_info_list.size()){
            audience_info_list[j].print();
            cout<<"\n";
            j++;
        }    
}

运行结果:

实验任务6 textcoder.hpp:
#include<iostream>
#include<string>
#include <cctype>
using namespace std;
class  TextCoder{
public:
    TextCoder(string t);
    string get_ciphertext();
    string get_deciphertext();
private:
    string text;
    void encoder();
    void decoder();
};

TextCoder::TextCoder(string t):text{t}{}

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

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

void TextCoder::encoder(){
    for(auto &obj:text){
        if(obj>='a'&&obj<='u'||obj>='A'&&obj<='U')
            obj+=5;
        else if('u'<obj&&obj<='z'||'U'<obj&&obj<='Z')
            obj-=21;
    }
}

void TextCoder::decoder(){
    for(auto &obj:text){
        if('f'<=obj&&obj<='z'||'F'<=obj&&obj<='Z')
            obj-=5;
        else if(obj>='a'&&obj<'f'||obj>='A'&&obj<'F')
            obj+=21;
    }
}

task 6:

#include "textcoder.hpp"
#include <iostream>
#include <string>
void test() {
    using namespace std;

    string text, encoded_text, decoded_text;

    cout << "输入英文文本: ";
    while (getline(cin, text)&&text!="^z") {
        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,ni,string,int,text,C++,数组,include,指针
From: https://www.cnblogs.com/laver-8/p/16823356.html

相关文章

  • 《Programming Abstractions in C++》总结目录
     1.C++基础 C++程序结构变量数据类型表达式语句 2.C++抽象函数库接口字符串类流类集合类类的设计 3.算法递归回溯排序时间复杂度 4......
  • JAVA-数组元素动态初始化
    packagecom.itheima;publicclassshuzu02{publicstaticvoidmain(String[]args){//格式:数据类型[]变量名=new数据类型[数组长度]int[......
  • C语言学习--指针和数组、const修饰指针
    数组名:【数组名是地址常量】--不可以被修改#include<stdio.h>intmain(void){inta[3]={1,2,3};//a是数组名,数组名是地址常量,不能被修改intb[3];......
  • c++执行期语义
    obejctconstructionanddestruction​ 一般而言,constructor和destructor的安插都如预期那样:{Pointpoint;//point.Point::Point()安插于此...//p......
  • C++ 模板LNK2019报错的问题
    在自定义类的头文件中使用了模板。在模板实例化时,编译器无法找到模板的实现。【法一】在使用了模板类或模板函数的文件中#include与放入了类定义的.h文件同名的.cpp......
  • C++算法之旅、01 入门篇
    使用胡凡主编的《算法笔记》教材。题目均为第三章题目。TEST//ProblemAddress#define_CRT_SECURE_NO_WARNINGS#include<cstdio>intmain(){return0;}PAT......
  • C语言入门-1-编译器的基本使用(Dev c++和visual studio)
    一、Devc++打开软件点击文件,新建,项目 选择Console点击helloworld,勾选c项目,名称自行输入点击确定后出现文件位置,自行安放在文件夹里保存后即可进行编译运......
  • 利用一个字符数组作函数参数,实现字符串(最大长度为80个字符 )的逆序存放。
    利用一个字符数组作函数参数,实现字符串(最大长度为80个字符)的逆序存放。要求如下:(1)在子函数Inverse中实现字符串的逆序存放。函数原型为:voidInverse(charstr[]);(2......
  • 915. 分割数组
    题目描述给一个数组nums,需要把他换分为两个连续的子数组,要求是两个子数组非空,且左边的每个元素都小于等于右边每个元素,左边数组长度尽可能小求left的长度f1-模拟+2次遍......
  • Leetcode第915题:分割数组(Partrition Array Into Disjoint Intervals)
    解题思路最终的是将一个数组分为两个数组:左数组和右数组。这两个数组满足:左数组的最大值小于右数组的任何值。需要一个变量left_max来记录左数组的最大值。左数组长度......