C/C++教程

实验二 数组 指针与C++标准库

本文主要是介绍实验二 数组 指针与C++标准库,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

四 实验结论

(1)实验任务5

1. 源代码如下

Info.hpp

#ifndef INFO_HPP
#define INFO_HPP

//Info 类的定义
#include <iostream>
#include <string>
#include <iomanip>

using namespace std;

class Info
{
    public:
        Info();
        Info(string nickname0, string contact0, string city0, int n0);
        ~Info(){};
        void print_n() const ;
    private:
        string nickname;
        string contact;
        string city;
        int n;
};
//默认构造函数
Info::Info(){};

//构造函数
Info::Info(string nickname0, string contact0, string city0, int n0):nickname(nickname0),contact(contact0),city(city0),n(n0)
{ };
 
//输出信息 
void Info::print_n() const
{
    cout << setiosflags(ios::left) << setw(12) <<"称呼:" << nickname << endl ;
    cout << setw(12) <<"联系方式:" << contact << endl ;
    cout << setw(12) <<"所在城市:" << city << endl ;
    cout << setw(12) <<"预定人数:" << n << endl ;    
}

#endif

task5.cpp

#include "Info.hpp"
#include <iostream>
#include <vector>

int main()
{
    using namespace std;
    
    vector<Info> audience_info_list;
    const int capacity=100;
    string nickname0,contact0,city0;
    int n0;
    int count=0;
    
    cout << "录入信息:" << endl ;
     
    while(cin >> nickname0 >> contact0 >> city0 >> n0)
    {
        if(count+n0>capacity)
        {
            cout << "对不起,只剩" <<  capacity-count << "个位置。" << endl ;
            cout << "1.输入u,更新(update)预定信息" << endl ; 
            cout << "2.输入p,退出预定" << endl ;
            string judgeinformation;
            cin >> judgeinformation ;
            
            if(judgeinformation=="p")
            break;
            else if(judgeinformation!="u")
            cout << "输入信息错误,自动退出预定" << endl ; 
        }
        else
        {
            Info test(nickname0,contact0,city0,n0);
            audience_info_list.push_back(test);
            count+=n0;
            if(count==capacity)
            {
                cout << "场馆人数已满,预定系统自动关闭" << endl ;
                break; 
            }
        }     
    }
    cout << "截至目前为止,一共有" << audience_info_list.size() << "位顾客预定参加,预定顾客信息如下:" << endl ;
    for(auto i :audience_info_list)
    i.print_n();

}

2.运行截图如下

 

 

 

 

 

 

 

 

 

(2)实验任务6

1. 源代码如下

textcoder.hpp

#ifndef TEXTCODER_HPP
#define TEXTCODER_HPP

#include <iostream>
#include <string>

using namespace std ;

class TextCoder
{
    public:
        TextCoder() ;
        TextCoder(string text0) ;
        ~TextCoder(){ } ;
        string encoder() const ;
        string decoder() const ;
    private:
        string text;    
};

//默认构造函数
TextCoder::TextCoder()
{ };

//构造函数
TextCoder::TextCoder(string text0):text(text0)
{ };

//加密函数
string TextCoder::encoder() const
{
    string entext=text;
    for(auto &i : entext)
    {
        if(i>='A'&&i<='U')
        i+=5;
        else if(i>='V'&&i<='Z')
        i-=21;
        else if(i>='a'&&i<='u')
        i+=5;
        else if(i>='v'&&i<='z')
        i-=21;
    }
    return entext;
};

//解密函数 
string TextCoder::decoder() const
{
    string detext=text;
    for(auto &i : detext)
    {
        if(i>='F'&&i<='Z')
        i-=5;
        else if(i>='A'&&i<='E')
        i+=21;
        else if(i>='f'&&i<='z')
        i-=5;
        else if(i>='a'&&i<='e')
        i+=21;
    }
    return detext;
};

#endif 

task6.cpp

#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输入英文文本: ";
    }
}

2. 运行截图如下

 

 

 

五 实验结论

(1)for (declaration : expression)这个循环在编写代码时,提供了非常方便的遍历手段,同时auto函数也是省略了很多判断过程。比如textcoder.hpp中加密函数遍历string类时,一开始我并不知道i是什么类型,想用迭代器的方式去访问,在编译时报错了,因此i只是一个字符类型。

(2)在实验五判断人数时,当人数达到了100,直接退出了循环,以免输入无效。同时,在选择继续输入预定信息或者退出时,我判断了u和p,实际上如果按照指示输入,只需要判断一个就可以了,但是,为了避免输入别的字符导致判断错误,还是判断了两次。

 

这篇关于实验二 数组 指针与C++标准库的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!