C++程序设计实验二 数组、指针与C++标准库

Info.hpp文件源码
#include<iostream>
#include<string>
#include<iomanip> using namespace std; class Info {
public:
Info(){ }
Info(string name, string number, string w, int num) : nickname{ name }, contact{ number }, city{ w }, n{ num } { } void print() const
{
cout << left << setw(10) << "称呼:" << nickname << endl;
cout << setw(10) << "联系方式:" << contact << endl;
cout << setw(10) << "所在城市:" << city << endl;
cout << setw(10) << "预定人数:" << n << endl;
} private:
string nickname;
string contact;
string city;
int n;
};
task5.cpp源码
#include"Info.hpp"
#include<iostream>
#include<vector>
#include<string>
#include<limits> using namespace std; static int num = 0; int main()
{
vector<Info> audience_info_list;
string n_nickname, n_contact, n_city;
int n = 0;
const int capacity = 100; cout << "录入信息:\n" << endl;
cout << "称呼/昵称,联系方式(邮箱/手机号),所在城市,预定参加人数" << endl;
while (cin >> n_nickname)
{
cin >> n_contact >> n_city >> n; if (n + num <= capacity)
{
Info audience(n_nickname, n_contact, n_city, n);
audience_info_list.push_back(audience);
num += n;
}
else
{
char input;
cout << "对不起,只剩" << capacity - num << "个位置。" << endl;
cout << "1.输出u,更新(update)预定信息" << endl;
cout << "2.输出q,退出预定" << endl;
cout << "你的选择: ";
cin >> input;
if (input == 'q')
{
break;
}
}
} cout << "截至目前,一共有" << num << "位听众预定参加。预定听众信息如下:" << endl; for (auto item : audience_info_list)
item.print();
}
运行测试结果截图




TextCoder.hpp文件源码
#include <iostream>
#include <string> using namespace std; class TextCoder
{
public:
TextCoder(string tex = NULL) : text{ tex } { }
string encoder()
{
for (auto& item : text)
{
if (item >= 'a' && item <= 'z')
item = 'a' + (item - 'a' + 5) % 26;
else if (item >= 'A' && item <= 'Z')
item = 'A' + (item - 'A' + 5) % 26;
}
return text;
} string decoder()
{
for (auto& item : text)
{
if (item >= 'a' && item <= 'z')
item = 'a' + (item - 'a' + (26 - 5)) % 26;
else if (item >= 'A' && item <= 'Z')
item = 'A' + (item - 'A' + (26 - 5)) % 26;
}
return text;
} private:
string text;
};
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输入英文文本: ";
}
}
运行测试结果截图

C++程序设计实验二 数组、指针与C++标准库的更多相关文章
- Java程序设计 实验二 Java面向对象程序设计
北京电子科技学院(BESTI) 实 验 报 告 课程:Java程序设计 班级:1353 姓名:李海空 学号:20135329 成绩: 指导教师:娄嘉鹏 ...
- .NET程序设计实验二
实验二 面向对象程序设计 一.实验目的 1. 理解类的定义.继承等面向对象的的基本概念: 2. 掌握C#语言定义类及其各种成员(字段,属性,方法)的方法: 3. 掌握方法覆盖的应用: 4. 掌握接口 ...
- C++程序设计--实验二
第二次实验主要内容是函数重载,快速排序及其模板实现,简单的user类实现. 实验结论: 一.函数重载编程练习 /*编写重载函数add(),实现对int型,double型和Complex型数据的加法.在 ...
- #20175201 实验二:Java面向对象程序设计
20175201 实验二:Java面向对象程序设计 实验二 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L ...
- 2017-2018-2 20165215 实验二 Java面向对象程序设计
20165215 实验二 Java面向对象程序设计 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:张家佳 学号:20165215 指导教师:娄嘉鹏 实验日期:2018年4月16日 ...
- 20165308 实验二 Java面向对象程序设计
20165308 实验二 Java面向对象程序设计 实验二 Java面向对象程序设计 一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:张士洋 学号:20165308 指导教师:娄嘉鹏 ...
- 20165230 《Java程序设计》实验二(Java面向对象程序设计)实验报告
20165230 <Java程序设计>实验二(Java面向对象程序设计)实验报告 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:田坤烨 学号:20165230 成绩: ...
- 2016-2017-2 20155227实验二《Java面向对象程序设计》实验报告
2016-2017-2 20155227实验二<Java面向对象程序设计>实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉 ...
- 2017-2018-2 20165330实验二《Java面向对象程序设计》实验报告
实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验步骤 (一)单元测试 三种代码 伪代码:从意图层面来解 ...
- (C/C++学习)6.数组指针和指针数组
说明:int (*p)[4] 和 int *p[4](数组指针和指针数组),如果你是一个初学者,也许当你看到这两个名词的时候,已经懵了.其实,只要你理解了其中的含义.这两个名词对你来说会相当简单并且很 ...
随机推荐
- 10、RestTemplate方式实现远程调用Client
一.JSONObject类详解: JSONobject是FastJson提供的对象,在API中是用一个私有的常量map进行封装的,实际就是一个map,只不过 FastJson对其进行了封装,添加了很多 ...
- 1+X Web初级笔记查漏补缺+练习题
学习笔记: position:relative是相对定位,是相对于自身位置移动,但是占据原有空间 absolute是绝对定位,原有空间不保留会被其他元素挤占 绝对定位 absolute不占位置完全浮动 ...
- UOJ33 [UR#2] 树上 GCD
UOJ33 [UR#2] 树上 GCD 简要题意: 给定一棵有根树,对于每个 \(i \in [1,n)\),求出下式的值: \[Ans[i] = \sum_{u<v} \gcd({\rm{di ...
- JUC源码学习笔记5——1.5w字和你一起刨析线程池ThreadPoolExecutor源码,全网最细doge
源码基于JDK8 文章1.5w字,非常硬核 系列文章目录和关于我 一丶从多鱼外卖开始 话说,王多鱼给好友胖子钱让其投资,希望亏得血本无归.胖子开了一个外卖店卖国宴,主打高端,外卖小哥都是自己雇佣,并且 ...
- ABC238E Range Sums
简要题意 有一个长度为 \(N\) 的序列 \(a\),你知道 \(Q\) 个区间的和.求是否可以知道 \([1,n]\) 的和. \(1 \leq N,Q \leq 2 \times 10^5\) ...
- 动力节点—day06
常用类 String String表示字符串类型,属于引用数据类型,不属于基本数据类型 在Java中随便使用双引号括起来的都是String对象,例如"abc"."def& ...
- 读Java8函数式编程笔记08_测试、调试和重构
1. Lambda表达式的单元测试 1.1. 单元测试是测试一段代码的行为是否符合预期的方式 1.2. Lambda表达式没有名字,无法直接在测试代码中调用 1.2.1. 将Lambda表达式放入一个 ...
- .Net 7 高端玩法,自定义一个CLR运行时
前言: 曾几何时,一直想自己定制一个CLR运行时玩玩.满足下技术控的虚荣心,本篇带你一步一步打造一个属于自己的.Net 7运行时. 概括 假设你的电脑已经安装了.Net,并且运行正常.在进行自定义运行 ...
- React组件渲染触发的条件-归纳总结
一.React组件何时发生渲染--何时会生成React元素? React组件的渲染发生在两个阶段. 1. 组件挂载. 2. 组件更新. 二.React组件更新的触发条件是什么? 对没有实现should ...
- Docker命令的自动补齐
Docker命令的自动补齐 背景 在linux下输入命令或文件都是可以自动补齐的,这个特性极大的提高了我们的效率,多数情况下我们很少用命令参数的自动补齐. 但对docker git这类参数特别多的命令 ...