自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 单向链表交换节点

TNode *NodeExchange(TNode *pHead, int pExcN1, int pExcN2){ TNode * pTemp = pHead; //1.节点位置传入相同 if(pExcN1 == pExcN2) return pHead; TNode *p1 = nullptr,*p1Pre = nullptr,*p1Cur = nullptr, *p2 = nullptr, *p2Pre = nullptr,*p2Cur = nullptr.

2021-09-18 15:14:12 452

原创 学生通讯录管理系统(链表实现)

第一章 设计要求1.1 问题描述使用C或C++实现一个通讯录管理系统,具有实现通讯录的建立和输出、通讯者的插入、 删除和查询等几种操作功能。1.2 需求分析1.2.1 需求概述通讯录管理系统是一个比较实用的小型管理系统。随着生活节奏的加快,人们追求丰富便捷的电子产品体验,因此也提高对便捷方式的喜爱。当今社会下人们的交际范围越来越广泛,通讯录系统的出现,方便了人们存储通讯录,便于人们日常的交际。为方便广大人们对通讯管理系统的使用,本设计采用控制语句来改变程序各项功能的实现。主菜单部分主要解决的问

2021-08-22 23:38:23 12323 9

原创 C++入门Step20【类的派生与继承】

类的派生与继承:复用开发好的功能,这使得我们可以站在巨人的肩膀上,节省时间,提高效率。比如,之前定义的CStudent学生类,含有姓名,性别,年龄,学号,年龄等基本信息,当需要特定使用时,例如小学生,中学生,大学生,有需要定义三个类,代码冗余,而且麻烦,所以使用C++中的继承机制是不二的选择。举个(继承)栗子:class CStudent{public: char* p_name; char sex; int no; int age;};/*class &

2021-08-03 20:14:05 246 1

原创 C++入门Step19【运算符重载】

运算符重载:引出和目的函数的重载,表现形式就是一名多用,同一个名字实现多个相近功能的函数。+-*/=这些基本的加减乘除对于C++中的基本类型是够用了,也不用我们在自定义的去重载。但是,在使用的类类型时,就有必要了。因为我们要重载这些运算符使之能达到我们自定义的功能。运算符重载举例:在对象的赋值与复制及拷贝构造函数中:说明了,在其中的第③个知识点:对象赋值的注意事项中,当跳出test函数的作用域之后程序就崩溃了。原因就是 stud_1 和 stud_2 两个对象公用 p_name 指针指向的

2021-07-22 19:10:38 178

原创 C++入门Step18【类的静态成员】

类的静态成员:类的静态成员变量:引出:比如Student类中,姓名,学号,性别等属于个体成员,但是要表达学生的校长,或学校等信息时,不能说每个学生都有一个校长和学校,这个信息应该属于学生这个Student类,并非个体,所以这类信息不便于作为普通成员变量;这时就需要用到静态成员变量了。作用与特点:①. 所有对象都可以直接访问这个静态成员变量,而且值相同;②. 静态成员变量在内存中只占用一份存储空间;③. 静态成员变量的值对于所有对象来说都是一样的。如果其中一个对象调用函数将其改变了,那

2021-07-22 19:00:31 70

原创 C++入门Step17【 对象的赋值与复制及拷贝函数】

对象的赋值与复制及拷贝函数:对象的赋值:例如:int a = 5;int b = a;这样的都称之为赋值操作,而对象的的赋值与之类似,也是用=等号,不过赋值的目标不是int类型的整型数了,而是用一个对象给同类的另外一个对象赋值。此过程是通过成员复制来完成的,换句话说,就是将一个对象的成员的值一个一个的复制给另外一个对象的对应成员。举个栗子:class CMyRect{public: CMyRect(int w = 0, int h = 0):width(w), height(h){}

2021-07-20 20:51:21 356

原创 C++入门Step16【类的构造与析构函数】

类的构造函数与析构函数:类的构造函数的重载:在上一节中,函数的重载与默认参数,都是用的普通的函数,实际上在类的构造函数和成员函数上面一样适用。带参数的构造函数,其中就有多个带参数的构造函数,实际上就是实现了构造函数的重载。构造函数中的参数初始化表:用这种方式实现的构造函数体积小,代码显得更简洁,显得比较,举个栗子:class CStudent{public: char name[50]; char sex; int num; int age;

2021-07-19 20:37:13 158

原创 C++入门Step15【函数重载与默认参数】

函数的重载与默认参数:函数的重载:由来:在编程中,总会出现许多功能差异很小的函数,但却需要多次定义多个函数:例如,要求2个数中比较大的数,这两个数的类型有时候是int类型,有时候是float类型,很是麻烦,按照之前的写法应该是这样封装函数:int max_int(int a, int b);float max_float(float a, float b);这样好吗?这样不好。用户在调用的时候就要根据不同的参数类型,调用不同名字的函数,如果要求两个int类型的数中的比较大的就要调用

2021-07-19 20:28:27 104

原创 C++入门Step14【构造函数】

类的构造函数:对象的初始化:变量的初始化int a = 0;,那么类对象是如何初始化的呢?本身类是自从结构体发展过来的,所以结构体的初始化操作,类都支持,可以这样在定义的时候直接初始化,也可以先定义后初始化int main(){ Student stu1 = {"zhang_san", 1101, 21}; Student stu2; strcpy(stu2.name, "li_shi"); stu2.num = 1102; stu2.age

2021-07-17 00:26:28 134 1

原创 C++入门Step13【this指针和内存对齐】

this指针和内存对齐:当成员变量与成员函数形参名相同时,需要使用this指针,来区分是形参传递的值还是类对象成员。class Student{public: char name[50]; int num; int age;public: /* void set_age(int age) { age = age; //Error }; //此处的成员函数会报错 */ //修改正确如下 v

2021-07-17 00:19:57 102

原创 数据结构【双向循环链表】

双向循环链表:数据结构示意图1.1.1如下:图1.1.1 链表节点结构示意图让代码来讲话吧:Structure.h#ifndef DATA_STRUCTURE_DCNLIST_STRUCTURE_H#define DATA_STRUCTURE_DCNLIST_STRUCTURE_H#include <iostream>using namespace std;/*-------------------1.链表----------------------*/#define

2021-07-13 18:18:05 257

原创 C++入门Step12【 类的成员函数】

类的成员函数:普通成员函数:类的普通成员函数跟普通的函数没有太大的区别,也都是有参数的类型和形参,还有返回值之类的,唯一的区别就是 必须由该类的实例化对象去调用;既然有类的普通成员函数,那么就有不普通的函数,那就是 类的静态成员函数。inline 内联函数: It is derived from the C language macro definition.实际上inline内联函数是由C语言的宏发展而来作用说明:首先,需要明确:主函数调用其他函数时开销大,调用过程中需要将参

2021-07-13 10:28:20 253

原创 C++入门Step11【类 类型】

类 类型:类类型是什么?首先说明一下,这个名字看着很怪异,其实第一个‘类’字,和“结构体类型”中的“结构体”是一样的,这个类型就叫类。可以把世间万物都看成是对象。既然是对象,那么就应该有对象的类型,也就是说可以把把世间万物抽象成类型,然后归类。在C++中对象的类型称为类(class),用来表示一类具有共同属性和行为的类型。例如:人类,狗类,动物类,哺乳动物类等等。在C++中一般是先声明一个类类型,然后用这个类类型去定义多个对象,所以,对象就是类类型的一个实例,或者说是类类型的一个实例化的

2021-07-13 10:20:16 2166

原创 数据结构【双向链表】

单向循环链表:数据结构示意图1.1.1如下:图1.1.1 链表节点结构示意图让代码来讲话吧:Structure.h#ifndef DATA_STRUCTURE_DNLIST_STRUCTURE_H#define DATA_STRUCTURE_DNLIST_STRUCTURE_H#include <iostream>using namespace std;/*-------------------1.链表----------------------*/#define M

2021-07-13 00:09:33 187 2

原创 C++入门Step10【步入面向对象(理论基础)】

面向对象的程序设计:(理论基础)面向过程:​ C语言就是面向过程的语言,C++兼容C语言,所以C++有一部分就是面向过程的。面向过程的程序中【函数】是构成程序的基本单位,我要实现个功能我就新写一个函数,我要实现另外一个功能我就再新写一个函数,之后调用就行了,这就是面向过程的程序开发的基本流程。面向对象:面向对象就不单单是为了实现功能而写个函数这么简单了。既然是面向对象的,也就是说我把任何东西都看做是一个对象。这里所说的对象不是北方老百姓眼中的男女朋友的对象,大家可以这么理解,这个对象

2021-07-12 14:06:39 118

原创 C++入门Step09【引用、new和delete】

引用、new和delete引用:是C++对C语言的扩充,故C语言不含 引用什么是引用:变量的引用就是该变量的别名,变量和变量的的引用代表同一个变量,引用可多层嵌套int a = 5; //定义整型变量a,并赋值为5int& b = a; //定义整型引用b,来引用aint* p = &a; //定义整型指针p,存储a的地址/*区分取地址符与引用引用: 紧跟在数据类型后;取地址符: 除上*/引用的注意事项:不可单独存在,只有声明,没有定义,其必须依靠变

2021-07-12 13:49:24 121

原创 C++入门Step08【enum&typedef】

枚举类型及定义新的类型名字(enum&typedef)枚举类型也是一种自定义类型,一个变量只有几种可能的值声明:enum ESex{ ESex_Male, //男性 ESex_FMale //女性};//以上就是定义了一个枚举类型 ESex,大括号内部的 ESex_Male、ESex_FMale 称为枚举元素或枚举常量,表示这个枚举类型可能的值。#if1注意事项:枚举元素是常量,故又称枚举常量,不可被赋值默认第一个枚举常量值为 0 ,之后的元

2021-07-12 13:36:13 239

原创 数据结构【单向循环链表】

单向循环链表:数据结构示意图1.1.1如下: 图1.1.1 链表节点结构示意图让代码来讲话吧:Structure.h//// Created by Today me on 2021/7/11.//#ifndef DATA_STRUCTURE_SCNLIST_STRUCTURE_H#define DATA_STRUCTURE_SCNLIST_STRUCTURE_H#include <iostream>using namespace

2021-07-12 00:16:15 197

原创 C++入门Step07【结构体数组与指针】

结构体数组与指针:结构体既然从属变量,那么便可以定义对应的数组与指针,方便对结构体的操作;作为函数参数,也是完全没有问题。结构体数组:struct Student{ string name; int num; char sex; int age;};Student stu[100];//如此便定义出了100个学生的信息//具体使用:(实现两个学生信息的录入与打印输出)#include<iostream>using namespace s

2021-07-11 13:07:00 442

原创 C++入门Step06【数组与指针IMPT】

数组与指针:(Important)数组元素的地址:(如何使用指针来存储数组元素的地址呢?)int num[100] = {0};int* p_num[100] = {0};for(int idx = 0; idx < 100; ++idx){ p_num[idx] = &num[idx];}这样的操作没有任何语法或者逻辑错误,但是我们Duck不必如此麻烦。数组名就是数组首地址:①为了避免上面说的情况,C/C++中规定数组名字就是数组的首地址。注意,是数组的首

2021-07-11 12:56:53 174

原创 C++入门Step05【结构体】

结构体类型:定义:在一个组合项中包含若干个类型的数据项,这样的类型就称作结构体(隶属自定义变量)结构体类型声明:struct 结构体类型名{ //成员表;};//举个栗子(Student)struct Student{ string name; int num; char sex; int age;};备注:​ C语言中结构体的成员只能是数据,C++对此进行了扩充,结构体的成员既可以包含数据,也可以包含函数,其实在C++中 stru

2021-07-11 11:24:35 105

原创 C++入门Step04【字符串与指针】

常用字符串处理函数:字符串连接函数:(strcat)char * strcat (char destination[], const char source[]);//功能:将参数2的字符串连接到第1个参数字符串的末尾//返回值:第一个字符串的首地址//注意:要保证参数1的空间开辟长度足够参数1和2的字符串长度存储,否则内存溢出//举个栗子:char des[50] = "hello "; //保证des的空间足够大char src[] = "cctry.com";strcat(de

2021-07-11 11:13:29 269

原创 C++入门Step03【数组】

数组与一维数组:数组:为方便定义同类型一群数组定义:存储相同类型数据的多个数据的一种线性表数据结构使用:命名规则与变量相同int stu_no[60]; //类型名 数组名[常量表达式]一维数组的初始化:在定义数组的时候就对数组的全部元素初始化:int stu_no[5] = {101, 102, 103, 104, 105};在定义数组的时候对部分元素进行初始化:int stu_no[5] = {101, 102};后面未初始化的默认赋初值0在定义数组的时候就

2021-07-11 11:06:28 104

原创 数据结构【单向链表】

单向链表:数据结构示意图1.1.1如下:图1.1.1 链表节点结构示意图让代码来讲话吧:Structure.h#ifndef DATA_STRUCTURE_STRUCTURE_H#define DATA_STRUCTURE_STRUCTURE_H#include <iostream>using namespace std;/*-------------------1.链表----------------------*/#define HeadM pHead->m

2021-07-10 23:40:39 161 3

原创 C++入门Step02【函数与变量】

函数简介:定义:function,翻译过来就是功能的意思,所以函数也就是功能。分类:系统函数,用户自定义函数系统函数是编译器提供好的C/C++的标准库函数,例如:printf、malloc、free、sqrt 等等;用户自定义函数是指在实际的软件开发过程中,用户根据自己的情况,将部分功能封装成一个函数,供其他地方调用;结构与调用:#include <iostream>using namespace std;/*返回类型 函数名(形式参数表列){ 声明部

2021-07-10 23:06:30 683

原创 C++入门Step01

初探C++语言:(Hello,world!)Hello,world解析#include<iostream>//头文件库包含using namespace std;//命名空间int main()//主函数入口{ cout<<"Hello,world"<<endl;//在终端上打印出“Hello,world!”并换行 return 0;//返回函数返回值0}数据类型:基本类型:(1) 整型:short int; int ;lo

2021-07-10 22:51:19 237

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除