C++
文章平均质量分 73
不断进步的咸鱼
秃头女孩,不服输!
展开
-
【C++】最终案例——机房预约系统
机房预约系统1 机房预约系统需求1.1 身份简介1.2 机房简介1.3 申请简介1.4 系统具体需求2 创建项目2.1 创建项目2.2 添加文件1 机房预约系统需求1.1 身份简介 分别有三种身份使用该程序: (1)学生代表:申请使用机房 (2)教师:审核学生的预约申请 (3)管理员:给学生、教师创建账号1.2 机房简介 分机房公有3间房间 (1)1号机房——最大容量为20人 (2)2号机房——最大容量为50人 (3)3号机房——最大容量为100人1.原创 2021-03-11 16:41:53 · 2183 阅读 · 0 评论 -
【C++】提高编程——演讲比赛流程管理系统
演讲比赛流程管理系统1 演讲比赛程序需求1.1 比赛规则1.2 程序功能2 项目创建2.1 创建项目2.2 添加文件3 创建管理类3.1 创建头文件3.2 创建源文件4 菜单功能4.1 添加菜单功能成员函数4.2 菜单功能成员函数实现4.3 功能测试5 退出功能5.1 添加退出功能成员函数5.2 退出功能成员函数实现5.3 退出功能测试6 演讲比赛功能6.1 功能分析6.2 创建选手类6.3 比赛6.3.1 添加属性6.3.2 初始化属性6.3.3 创建选手6.3.4 添加比赛流程函数6.3.5 添加抽签原创 2021-03-09 16:37:48 · 959 阅读 · 0 评论 -
【C++】提高编程——05STL常用算法——常用集合算法
常用算法6 常用集合算法6.1 set_intersection6.2 set_union6.3 set_difference6 常用集合算法 学习目标: 掌握常用集合算法 算法简介: set_intersection;——求两个容器中的交集 set_union;——求两个容器中的并集 set_difference;——求两个容器中的差集6.1 set_intersection 功能描述: 求两个容器中的交集,放入目标容器(注意;两个容器必须是有序序列),返回目标容器最后原创 2021-03-07 17:14:57 · 222 阅读 · 0 评论 -
【C++】提高编程——05STL常用算法——常用算数生成算法
常用算法5 常用算数生成算法5.1 accumulate5.2 fill5 常用算数生成算法 学习目标: 掌握常用算数生成算法 注意: 算数生成算法属于小型算法,使用时包含的头文件为#include< numeric > 算法简介: accumulate;——计算容器元素累加和 fill;——向容器中添加元素5.1 accumulate 功能描述: 计算区间内 容器元素累积总和 函数原型: accumulate(iterator beg ,iter原创 2021-03-07 16:40:28 · 161 阅读 · 0 评论 -
【C++】提高编程——05STL常用算法——常用拷贝和替换算法
常用算法4 常用拷贝和替换算法4.1 copy4.2 replace4.3 replace4.4 swap4 常用拷贝和替换算法 学习目标: 掌握常用拷贝和替换算法 算法简介: copy;——容器内指定范围的元素拷贝到另一个容器中 repalce;——将容器内指定范围的旧元素修改为新元素 repalce_if;——容器内指定范围满足条件的元素替换为新元素 swap;——互换两个容器内的元素4.1 copy 功能描述: 容器内指定范围的元素拷贝到另一个容器中 函数原原创 2021-03-07 16:25:40 · 179 阅读 · 0 评论 -
【C++】提高编程——05STL常用算法——常用排序算法
常用算法3 常用排序算法3.1 find3.2 random_shuffle3.3 merge3.4 reverse3 常用排序算法 学习目标: 掌握常用排序算法 算法简介: sort;——对容器内元素进行排序 random_shuffle——x洗牌 指定范围内的元素随机调整次序 merge;——容器元素合并,并存储到另一个容器中 reverse——翻转指定范围的元素3.1 find 功能描述: 对容器内的元素进行排序 函数原型: sort(iterator原创 2021-03-07 15:44:40 · 122 阅读 · 0 评论 -
【C++】提高编程——05STL常用算法——常用遍历、查找算法
常用算法1 常用遍历算法3.1 内建函数对象意义1 常用遍历算法3.1 内建函数对象意义 概念: STL内建了一些函数对象原创 2021-03-07 13:50:39 · 348 阅读 · 0 评论 -
【C++】提高编程——04STL函数对象——内建函数对象
函数对象3 内建函数对象3.1 内建函数对象意义3.2 算数仿函数3 内建函数对象3.1 内建函数对象意义 概念: STL内建了一些函数对象 分类: (1)算数仿函数 (2)关系仿函数 (3)逻辑仿函数 用法: (1)这些仿函数所产生的对象,用法和一般函数完全相同 (2)使用内建函数对象,需要引入头文件#include< functional >3.2 算数仿函数 功能描述: (1)实现四则运算 (2)其中negate是一则运算,其他都是二元原创 2021-03-05 16:38:26 · 217 阅读 · 0 评论 -
【C++】提高编程——04STL函数对象——谓词
函数对象2 谓词2.1 谓词概念2.2 一元谓词2.2 二元谓词2 谓词2.1 谓词概念 概念: **返回bool类型的仿函数称为谓词。**仿函数为类中重载()运算符。 如果operator()接受一个参数,那么叫做一元谓词 如果operator()接受两个参数,那么叫做二元谓词2.2 一元谓词 概念: 返回bool类型的仿函数称为谓词 如果operator()接受一个参数,那么叫做一元谓词# include<iostream>using namespace原创 2021-03-05 11:57:36 · 101 阅读 · 1 评论 -
【C++】提高编程——04STL函数对象——函数对象
函数对象1 函数对象1.1 函数对象概念1.2 函数对象使用1 函数对象1.1 函数对象概念 概念: 调用函数调用操作符的类。其对象成为函数对象 函数对象使用重载的()时,行为类似函数调用,也成为仿函数 本质: 函数对象(仿函数)是一个类,不是一个函数1.2 函数对象使用 特点: (1)函数对象在使用时,可以向普通函数那样调用,可以有参数,可以有返回值 (2)函数对象超出普通函数的概念,函数对象可以有自己的状态 (3)函数对象可以作为参数进行传递# i原创 2021-03-05 10:44:55 · 130 阅读 · 1 评论 -
【C++】提高编程——03STL常用容器——员工分组案例
常用容器10 评委打分案例10.1 案例描述10.2 实现步骤10 评委打分案例10.1 案例描述 公司招聘了10名员工(ABCDEF),10名员工进入公司后,需要指派员工在哪个部门工作 员工信息有:姓名,工资组成 部门分为:策划、美术、研发 随机给10名员工分配部门和工资 通过multimap进行信息的插入,key(部门编号)vlaue(员工) 分部门显示员工信息10.2 实现步骤 1.创建10名员工,放到vector中 2.遍历vector容器,取出来每个员原创 2021-03-04 13:17:46 · 133 阅读 · 1 评论 -
【C++】提高编程——03STL常用容器——map/multimap容器
9 map/multimap容器9.1 map 容器基本概念 简介: map中所有元素都是pair,pair中第一个元素为key(键值),起到索引作用,第二个元素为value(值)。所有元素都会根据元素的键值自动排序 本质: map/multimap属于关联式容器,底层结构是使用二叉树实现 优点: 可以根据key值快速找到value值 map和multimap的区别: map不允许容器中有重复的key元素 multimap允许容器中有重复的key值元素9.2 map原创 2021-03-04 10:52:21 · 139 阅读 · 1 评论 -
【C++】提高编程——03STL常用容器——set/multset容器
常用容器8 set/multiset 容器8.1 set 基本概念8.2 set构造和赋值8.3 set 大小和交换8.4 set插入和删除8.5 set查找和统计8.6 set和multiset的区别8.7 set容器排序8 set/multiset 容器8.1 set 基本概念 简介:所有元素都会在插入时自动排序 本质:set/multiset属于关联式容器,底层结构是用二叉树实现 set和multiset区别: (1)set不允许容器中有重复元素 (2)multiset允原创 2021-03-03 15:33:07 · 182 阅读 · 0 评论 -
【C++】提高编程——03STL常用容器——list容器
常用容器7 list容器7.1 list 容器基本概念7.2 list 构造函数7 list容器7.1 list 容器基本概念 功能:将数据进行链式存储 定义: list(链表)是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的 链表的组成: 链表由一系列节点组成。 节点的组成: 一个是存储数据元素的数据域,另一个是存储下一个阶段地址的指针域 STL中的列表是一个双向循环列表 链表优点: (1)采用动态存储分配,不会造成内存浪费和原创 2021-03-03 11:13:28 · 121 阅读 · 0 评论 -
【C++】提高编程——03STL常用容器——stack、queue容器
常用容器5 stack容器5.1 stack 容器基本概念5.2 stack 常用接口6 queue容器6.1 queue基本概念6.2 queue 常用接口5 stack容器5.1 stack 容器基本概念 概念:stack(栈)是一种先进后出的数据结构,它只有一个出口 特点: (1)栈容器符合先进后出的原则 (2)栈不允许有遍历行为,因为只有栈顶的元素才有机会被外界访问。 (3)可以判断栈是否为空 (4)栈可以发返回元素个数 (5)入栈:push 出站 pop5.2原创 2021-03-02 13:42:04 · 255 阅读 · 0 评论 -
【C++】提高编程——03STL常用容器——评委打分案例
常用容器3.4 评委打分案例3.4.1 案例描述3.4 评委打分案例3.4.1 案例描述 功能:双端数组,可以对头端进行插入删除操作原创 2021-03-02 10:50:22 · 134 阅读 · 0 评论 -
【C++】提高编程——03STL常用容器——deque容器
常用容器3.3 deque 容器3.3.1 deque 基本概念3.3 deque 容器3.3.1 deque 基本概念 功能:双端数组,可以对头端进行插入删除操作 ...原创 2021-03-01 20:12:53 · 275 阅读 · 0 评论 -
【C++】提高编程——03STL常用容器——vector容器
常用容器3.2 vector 容器3.2.1 vector 基本概念3.2.2 vector 构造函数3.2.3 vector赋值操作3.2.4 vector容量和大小3.2.5 vector插入和删除3.2.6 vector数据存储3.2.7 vector互换容器3.2.8 vector预留空间3.2 vector 容器3.2.1 vector 基本概念 功能: vector数据结构和数组非常相似,也称为单端数组 vector与普通数组的区别: 不同之处在于数组是静态空间,而vector可原创 2021-03-01 13:04:49 · 262 阅读 · 2 评论 -
【C++】提高编程——03STL常用容器——string容器
常用容器3.1 string 容器3.1 string 容器 ...原创 2021-02-28 12:58:46 · 322 阅读 · 0 评论 -
【C++】提高编程——02STL初识
STL初识2.1 STL诞生2.2 STL基本概念2.3 STL六大组件2.4 STL中的容器、算法、迭代器2.4.1 容器2.4.2 算法2.4.3 迭代器2.1 STL诞生 长久以来,软件界一直希望建立一种可重复利用的东西 C++的面向对象(封装、继承、多态)和泛型编程(主要是模板)思想,目的就是复用性的提升。 大多数情况下,数据结构和算法都未能有一套标准,导致被迫从事大量重复工作。 为了建立数据结构和算法的一套标准,诞生了STL——更提高代码的复用性2.2 STL基本概念 ST原创 2021-02-25 11:15:12 · 128 阅读 · 0 评论 -
【C++】提高编程——01模板
1 模板概念 模板就是建立通用的磨具,大大提高复用性 模板特点: (1)模板不可以直接使用,他只是一个框架 (2)模板的通用性不是万能的2 函数模板 C++另一种编程思想为泛型编程,主要利用的技术就是模板。 C++提供两种模板机制:函数模板和类模板2.1 函数模板语法 函数模板作用:建立一种通用函数,其函数返回值类型和形参类型可以不具体制定,用一个虚拟的类型来代表。 ...原创 2021-02-24 22:15:14 · 99 阅读 · 0 评论 -
【C++】核心编程——1-5练习职工管理系统
职工管理系统1 管理系统需求2 创建管理类3 菜单功能3.1 添加成员函数3.2 菜单功能实现3.3 测试菜单功能4 退出功能4.1 提供功能接口4.2 实现退出功能1 管理系统需求 公司中职工分为3类:普通员工、经理、老板,显示信息时,需要显示职工编号、职工姓名、职工岗位、以及职责 普通员工职责:完成经理交给的任务 经理职责:完成老板交给的任务 老板职责:管理公司所有事物 管理系统中需要实现的功能如下: (1)退出管理程序:退出当前管理系统 (2)增加职工信息:实现批量原创 2021-02-22 16:24:13 · 714 阅读 · 0 评论 -
【C++】核心编程——05文件操作
文件操作1 文本文件1.1 写文件1.2 读文件2 二进制文件2.1 写文件2.2 读文件 程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放,通过文件可以将数据持久化。 C++中对文件操作需要包含头文件 文件类型: (1)文本文件:以文本的ASCII码形式存储在计算机中 (2)二进制文件:以文本的二进制形式存储在计算机中,用户一般不能直接读懂 操作文件的三大类: (1)ofstream:写操作output (2)ifstream:读操作input (3)fs原创 2021-01-30 13:14:45 · 179 阅读 · 0 评论 -
【C++】核心编程——04类和对象【多态】
多态1 多态的基本概念2 多态案例——计算机类3 纯虚函数和抽象类4 多态案例——制作饮品1 多态的基本概念 多态是面向对象三大特性之一 多态分为两类: (1)静态多态:函数重载和运算符重载属于静态多态——复用函数名 (2)动态多态:派生类和虚函数——运行时多态 静态多态和动态多态区别: (1)静态多态的函数地址早绑定——编译阶段确定函数地址 (2)动态多态的函数地址晚绑定——运行阶段确定函数地址 动态多态的满足条件: 1.有继承关系 2.子类重写父类的虚函数原创 2021-01-29 15:52:03 · 180 阅读 · 0 评论 -
【C++】核心编程——04类和对象【继承】
继承1 继承基本语法2 继承方式3 继承中的对象模型4 继承中构造和析构顺序5 继承同名成员处理方式6 继承同名静态成员处理方式6 多继承语法7 菱形继承 继承是面向对象3大特性之一 利用继承技术可以减少重复代码1 继承基本语法 语法:class 子类:继承方式 父类 继承的好处: 减少重复代码。 子类(派生类)的成员: (1)从父类(基类)继承而来:表现共性 (2)子类(派生类)增加的成员:表现个性#include <iostream>#include <原创 2021-01-25 17:18:31 · 245 阅读 · 0 评论 -
【C++】核心编程——04类和对象【运算符重载】
运算符重载一级目录一级目录原创 2021-01-24 11:34:56 · 169 阅读 · 0 评论 -
【C++】核心编程——04类和对象【友元】
友元1 全局函数做友元2 类做友元3 成员函数做友元 在程序里,有些私有属性,也想让类外特殊的一些函数或者类进行访问,就需要用到友元的技术——友元的目的是让一个函数或者类访问另一个类中私有成员 友元的关键字:friend 友元的三种实现: (1)全局函数做友元 (2)类做友元 (3)成员函数做友元1 全局函数做友元 friend 全局函数名();放入类内,告诉编译器该全局函数为该类的友元函数可以访问该类的私有成员。#include <iostream>#incl原创 2021-01-22 12:17:52 · 233 阅读 · 0 评论 -
【C++】核心编程——04类和对象【对象模型和this指针】
对象模型和this指针1 成员变量和成员函数分开存储2 this指针概念3 空指针访问成员函数4 const修饰成员函数1 成员变量和成员函数分开存储 在C++中,类内的成员变量和成员函数分开存储。 只有非静态成员变量才属于类的对象:静态成员变量,静态、非静态成员函数都不属于类的对象 **空类创建的对象(空对象)所占的内存空间大小为1:**为了区分空对象占内存的位置,既每个空对象也应该有一个独一无二的内存地址。#include <iostream>#include <st原创 2021-01-21 14:15:10 · 177 阅读 · 0 评论 -
【C++】核心编程——04类和对象【对象的初始化和清理】
构造函数、析构函数、静态成员2 对象的初始化和清理2.1 构造函数和析构函数2.2 构造函数的分类和调用2.3 拷贝构造函数调用时机2.4 构造函数调用规则2.5 深拷贝与浅拷贝2.6 初始化列表2.7 类对象作为类成员2.8 静态成员2 对象的初始化和清理2.1 构造函数和析构函数 对象的初始化和清理是非常重要的安全问题,C++利用构造函数和析构函数解决上述问题,这两个函数将会被编译器自动调用,完成对象初始化和清理工作。对象的初始化和清理工作是编译器强制要我们做的事情,因此 如果我们不提供构造和析原创 2021-01-20 15:31:14 · 116 阅读 · 0 评论 -
【C++】核心编程——04类和对象【封装】
C++面向对象编程的三大特征为:封装、继承、多态 C++认为万事万物皆为对象,对象上有其属性和行为1 封装1.1 封装的意义 封装是C++面向对象三大特性之一 封装的意义: (1)将属性和行为作为一个整体,表现生活中的事物 (2)将属性和行为加以权限控制 封装意义一: 在设计类的时候,属性和行为写在一起,表现事物 语法:class 类名 {访问权限:属性 / 行为}#include <iostream>using namespace std;con原创 2021-01-19 21:03:50 · 237 阅读 · 0 评论 -
【C++】核心编程——03函数高级
3.1 函数默认参数 定义:在C++中,函数的形参列表中的形参是可以有默认值的。 语法:返回值类型 函数名 (参数=默认值){} 注意: (1)如果某个位置已经有了默认参数,那么从这个位置往后,必须要有默认参数 (2)如果函数声明有默认参数,函数实现就不能有默认参数,声明和实现只能有一个有默认参数#include <iostream>using namespace std;//在C++中,函数的形参列表中的形参是可以有默认值的。//语法:返回值类型 函数名 (参数=默原创 2021-01-16 11:26:25 · 83 阅读 · 0 评论 -
【C++】核心编程——02引用
引用1 引用基本使用2 引用注意事项3 引用做函数参数4 引用做函数返回值5 引用的本质6 常量引用1 引用基本使用 作用:给变量起别名 语法:数据类型 &别名=原名#include <iostream>using namespace std;int main(){ //引用基本语法 //数据类型 &别名=原名 int a = 10; int& b = a; cout << "a=" << a << endl原创 2021-01-15 14:43:25 · 223 阅读 · 0 评论 -
【C++】核心编程——01内存分区模型
1 内存分区模型 C++程序在执行时,将内存划分为4个区域: (1)代码区:存放函数体的二进制代码,由操作系统进行管理 (2)全局区:存放全局变量、静态变量以及常量(字符串常量和全局常量) (3)栈区:由编译器自动分配释放,存放函数的参数值.,局部变量等 (4)堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收 内存分区的意义: 不同区域存放的数据,赋予不同的生命周期,给我们更灵活的编程1.1 程序运行前划分的区域 在程序编译后,生成了exe可执行程序,未执原创 2021-01-14 15:20:46 · 167 阅读 · 0 评论 -
【C++】基础编程——1-8练习通讯录管理系统
1 系统需求 系统中需要实现的功能如下: (1)添加联系人:向通信录添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多纪录1000人 (2)显示联系人:显示通信录中所有联系人信息 (3)删除联系人:按照姓名进行删除指定联系人信息 (4)查找联系人:按照姓名查看指定联系人信息 (5)修改联系人:按照姓名重新修改指定联系人 (6)清空联系人:清空通讯录中所有信息 (7)退出通信录:退出当前使用的通信录2 创建项目3 菜单功能 功能描述:用户选择功能的界面原创 2021-01-13 21:13:07 · 185 阅读 · 4 评论 -
【C++】基础编程——08 结构体
8 结构体8.1 结构体基本概念8.2 结构体定义和使用8.3 结构体数组8.4 结构体指针8.5 结构体嵌套结构体8.6 结构体做函数参数8.7 结构体中const使用场景8.8 结构体案例8.8.1 案例 18.8.2 案例 28.1 结构体基本概念 结构体属于用户自定义的数据类型,允许用户存储不同的数据类型。8.2 结构体定义和使用 语法:struct 结构体名 {结构体成员列表}; 通过结构体创建变量的方式: (1)struct 结构体名 变量名 (2)struct 结构体名原创 2021-01-12 19:39:42 · 421 阅读 · 0 评论 -
【C++】基础编程——07 指针
7 指针7.1 指针基本概念7.2 指针变量定义和引用7.3 指针所占内存空间7.4 空指针和野指针7.4.1 空指针7.4.2 野指针7.5 const修饰指针7.6 指针和数组7.7 指针和函数7.8 指针、数组、函数7.1 指针基本概念 作用:可以通过指针间接访问内存。(简单来书指针就是一个地址) 内存编号是从0开始记录的,一般用十六进制数字表示。 可以利用指针变量保存地址。7.2 指针变量定义和引用 指针变量定义:数据类型 * 指针变量名; 指针变量,存放的是地址。&原创 2021-01-09 19:28:29 · 204 阅读 · 0 评论 -
【C++】基础编程——06 函数
6 函数6.1 函数概述6.2 函数定义6.3 函数调用6.4 值传递6.5 函数的常见样式6.6 函数的声明6.7 函数的分文件编写6.1 函数概述 作用:将一段经常使用的代码封装起来,减少重复代码。一个较大的程序,一般分为若干个程序块,每个模块实现特定的功能。6.2 函数定义 函数定义一般主要有5个步骤: (1)返回值类型:一个函数可以返回一个值 (2)函数名:函数的名称 (3)参数列表:使用该函数时,传入的数据 (4)函数体语句:花括号内的代码,函数内需要执行的语句 (原创 2021-01-08 16:28:42 · 394 阅读 · 0 评论 -
【C++】基础编程——05 数组
5 数组5.1 概述5.2 一维数组5.2.1 一维数组定义方式5.2.2 一维数组数组名5.2.3 一维数组案例5.2.4 冒泡排序5.3 二维数组5.3.1 二维数组定义方式5.3.2 二维数组数组名5.3.3 二维数组应用案例5.1 概述 概念:数组就是一个集合,里面存放了相同类型的数据元素 特点: (1)数组中每个数据元素都是相同的数据类型。 (2)数组是由连续的内存位置组成的。 (3)可以通过下标访问数组中的元素5.2 一维数组5.2.1 一维数组定义方式 (1)数据原创 2021-01-07 18:50:37 · 301 阅读 · 0 评论 -
【C++】基础编程——04 程序流程结构——跳转语句
程序流程结构4 程序流程结构4.3 跳转语句4.3.1 break语句4.3.2 continue语句4.3.3 goto语句4 程序流程结构 C/C++支持基本的三种流程结构: (1)顺序结构:程序顺序执行,不发生跳转。 (2)选择结构:依据条件是否满足,有选择的执行相应功能。 (3)循环结构:依据条件是否满足,循环多次执行某段代码。4.3 跳转语句4.3.1 break语句 作用:用于跳出选择结构或者循环结构 break使用的时机: (1)出现在switch条件语句中,原创 2021-01-07 13:06:25 · 310 阅读 · 0 评论 -
【C++】基础编程——04 程序流程结构——循环结构
程序流程结构4 程序流程结构4.2 循环结构4.2.1 while循环语句4.2.2 do-while循环语句4.2.3 for循环语句4 程序流程结构 C/C++支持基本的三种流程结构: (1)顺序结构:程序顺序执行,不发生跳转。 (2)选择结构:依据条件是否满足,有选择的执行相应功能。 (3)循环结构:依据条件是否满足,循环多次执行某段代码。4.2 循环结构4.2.1 while循环语句 作用:满足循环条件,执行循环语句 语法:while(循环条件){循环语句} 解释:原创 2021-01-07 12:28:41 · 293 阅读 · 0 评论