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

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

时间:2022-10-25 23:22:32浏览次数:43  
标签:info && string text void C++ 数组 include 指针

实验五

代码:

info.hpp:

#pragma once
#include<iostream>
using namespace std;

class info{
    
    public:
        info(string ni="",string co="",string ci="",int n0=0):nickname{ni},contact{co},city{ci},n{n0} {}
        ~info()=default;
        
        void set_nickname(string n1){ nickname=n1; }
        void set_contact(string c1) { contact=c1; }
        void set_city(string c2) { city=c2; }
        void set_n(int n1) { n=n1; }
        void print();
        
    private:
        string nickname,contact,city;
        int n;
};

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

main:

 

#include<iostream>
#include<vector>
#include "info.hpp"
using namespace std;

const int capacity=100;

int main()
{
    int i,n0,sum=0;
    string    name,contact0,city0;
    vector<info> audience_info_list;
    cout << "录入信息:" << endl << endl;
    cout << "昵称      " << "联系方式(邮箱/手机号)      " << "所在城市      " << "预定参加人数      " << endl;
    while(cin >> name)
    {
        cin >> contact0 >> city0 >> n0;
        sum+=n0;
        if(capacity>=sum)
        {
            info p=info(name,contact0,city0,n0);
            audience_info_list.push_back(p);
        }
        else
        {
            char choice;
            sum-=n0;
            cout << "对不起,只剩" << (capacity-sum) << "个位置." << endl;
            cout << "1. 输入u,更新(update)预定信息" << endl;
            cout << "2. 输入q,退出预定" << endl;
            cout << "你的选择: ";
            cin >> choice;
            if(choice='q')
            {
                cout << endl;
                break;
            }    
            else if(choice='u')
            {
                cout << "录入信息: " << endl;
                continue;
            }
        } 
        if(sum==capacity)
            break;
    }
    cout << "截至目前,一共有" << sum << "位听众参加预定,预定信息如下:" << endl;
    for(i=0;i<audience_info_list.size();i++)
    {
        audience_info_list.at(i).print();
        cout << endl;
    } 
}

 

 

运行结果截图:

 

 

实验六

代码:

TextCoder.hpp:

#pragma once
#include<iostream>
#include<string>
using namespace std;

class TextCoder{
    
    public:
        TextCoder(string text0=""):text{text0} {}
        
        string get_ciphertext() {encoder();return text;}
        string get_deciphertext() {decoder();return text;}
        
    private:
        string text;
        void encoder();
        void decoder();
}; 
void TextCoder::encoder()
{
    int i;
    for(i=0;i<text.length();i++)
    {
        if(text.at(i)>='a' && text.at(i)<='u')
            text.at(i)+=5;
        else if(text.at(i)>='v' && text.at(i)<='z')
            text.at(i)-=21;
        else if(text.at(i)>='A' && text.at(i)<='U')
            text.at(i)+=5;
        else if(text.at(i)>='V' && text.at(i)<='Z')
            text.at(i)-=21;
    }
}
void TextCoder::decoder() 
{
    int i;
    for(i=0;i<text.length();i++)
    {
        if(text.at(i)>='f' && text.at(i)<='z')
            text.at(i)-=5;
        else if(text.at(i)>='a' && text.at(i)<='e')
            text.at(i)+=21;
        else if(text.at(i)>='F' && text.at(i)<='Z')
            text.at(i)-=5;
        else if(text.at(i)>='A' && text.at(i)<='E')
            text.at(i)+=21;
    }
}

main:

#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,void,C++,数组,include,指针
From: https://www.cnblogs.com/whwssr/p/16826793.html

相关文章

  • C++ std::numeric_limits用法
    转自:https://blog.csdn.net/fengbingchun/article/details/779225581.介绍 std::numeric_limits为模板类,在库编译平台提供基础算术类型的极值等属性信息,需包含<limits>......
  • Demo47_稀疏数组
    //稀疏数组,将原始的稀疏数组转换为稀疏数组packagecom.HuanXin.array_6;publicclassDemo09{publicstaticvoidmain(String[]args){System.out.println......
  • Dev-C++调试过程
    代码如下:#include<stdio.h>intmain(){inta=5;intb=6;intt;t=a;a=b;b=t;printf("a=%d,b=%d\n",a,b);return0;}步骤如下:1. 新建文件并输入上述代码保......
  • Dev-C++调试过程
    代码如下:#include<stdio.h>intmain(){inta=5;intb=6;intt;t=a;a=b;b=t;printf("a=%d,b=%d\n",a,b);return0;}步骤如下:1. 新建文件并输入上述代码保......
  • C++:运算符重载
    前言  重载我们又称之为多态,重载在编程中的用法非常之多,比如最熟悉的函数重载(基于C++开发的capl语言同样支持函数重载)。当然在C++中仍然支持将多态引用到运算符中,例如*......
  • 数组元素排序——选择排序
    1.选择排序:使用数组中的元素跟其他元素逐个进行比较,根据规则交换位置.  ......
  • P7911 网络连接评论及c++题解
    P7911网络连接1.原题链接root2.评论下位黄的水平前置知识:sscanf()函数,sprintf()函数,map<>当然,不会sscanf()和sprintf()也有解法,详见解法13.解法解法1#inclu......
  • 实验3 数组、指针与现代c++标准库
    实验任务5#include"Info.hpp"#include<iostream>#include<string>#include<vector>intmain(){strings1,s2="continue";inti=0,n=0;intcon......
  • vue2- style 和class - 条件渲染 - 列表渲染 - v-for 循环,数组,循环字符串,数字,对象 -
    style和class条件渲染列表渲染v-for循环,数组,循环字符串,数字,对象数组的检测与更新双向数据绑定事件处理过滤案例事件修饰符按键修饰符1.style和class<!DOCT......
  • C++ 面向对象高级开发 基础篇(二)
    操作符重载C2就是this传递者不用知道是否returnbyreference 非成员函数(全局函数)的操作符重载(有几种用法就写几种重载)不能使用returnbyreference因为他们得......