- 博客(82)
- 资源 (9)
- 收藏
- 关注
原创 C++基础学习第五课(类和对象)
第五课1,面向过程步骤化:是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用;2,面向对象行为化:面向对象是吧整个需求按照特点、功能划分,将这些存在共性的部分封装成对象,创建了对象不是为了完成某一个步骤,而是描述某个事物在解决问题的步骤中的行为;3,类类:是具有相似属性和行为的一组实例集合;4,对象对象,即类的实例,各种各样的事物;5,面向对象四大特征抽象:指对具体问题(对象)进行概括,抽出一类对象的公共属性和行为并加以描述的过程;封装:是把每个
2021-02-24 22:08:44
244
原创 C++基础学习第四课
第四课1,进制表示方法例子: //十进制 int dec1 = 520; //八进制 int oct1 = 01010; //二进制 int bin1 = 0b1000001000; //十六进制 int hex1 = 0x208;2,单引号隔开数字int bin = 0b10'0000'1000;3,auto自动类型推导1,C++中使用auto自动类型推导注意事项: 1,auto仅仅是一个占位符,编译时会被真正的类型替代; 2,auto不能在函数的参数中使
2021-02-10 18:45:24
157
原创 C++基础学习第三课(枚举类型)
第三课案例:enum WEEK {MON,TUE,WED,THI,FIR,SAT,SUN};enum SHAPE {CIRCLE,RECT,LINE,POINT};1,C语言中的enum·允许非枚举值赋值给枚举类型,允许其他枚举类型的值赋值给另一个枚举类型;enum WEEK today=1;//truetoday=CIRCLE;//true·枚举具有外层这作用域,容易造成名字冲突(在不同作用域不会冲突,但是会遵循就近原则,访问不到外层作用域的枚举);enum OTHER {RECT}
2021-02-10 11:46:58
219
1
原创 数据结构学习第十一课(顺序栈)
2,顺序栈2.1链表基本框架typedef int Data;#define INIT_STACK_SIZE 8typedef struct _SeqStack{ Data* base; int capacity; int top;//指向栈顶}SeqStack;2.2创建一个链表//创建一个链表SeqStack* createSeqStack(){ SeqStack* s = calloc(1, sizeof(SeqStack)); assert(s != NULL);
2021-02-07 19:53:47
108
原创 数据结构学习第十课(链式栈)
1,链式栈1.1链表基本框架typedef int Data;typedef struct _Node{ Data data; struct _Node* next;}Node;typedef struct _LinkStack{ int size; Node* front;}LinkStack;1.2创建一个链表//创建一个链表LinkStack* createLinkStack(){ LinkStack* s = calloc(1, sizeof(LinkStack)
2021-02-07 19:52:45
135
原创 数据结构学习第九课(顺序队列)
2,顺序队列2.1链表基本框架#define INIT_QUE_SIZE 8typedef int Data;typedef struct _SeqQueue{ Data* base; int capacity; int size; int front;//队头 int rear;//队尾}SeqQueue;2.2创建一个队列//创建一个队列SeqQueue* createSeqQueue(){ SeqQueue* que = calloc(1, sizeof(SeqQue
2021-02-07 19:50:34
109
原创 数据结构学习第八课(链式队列)
1,链式队列规则:先进先出;1.1链表基本框架typedef int Data;typedef struct _Node{ Data data; struct _Node* next;}Node;typedef struct _LinkQueue{ int size; Node* front; Node* tail;}LinkQueue;1.2创建一个队列LinkQueue* createLinkQueue(){ LinkQueue* que = calloc(1
2021-02-07 19:49:14
123
原创 数据结构学习第七课(链表和函数指针结合)
4,链表和函数指针结合4,1输出(可以转换输出任意类型的数据)typedef int Data;//可以改数据类型typedef void (*PFUNC)(Node*);//函数指针void transfrom(DuList* list,PFUNC func)//回调函数{ if (empty(list)) { return; } Node* curNode = list->front->next; while (curNode!=list->front) {
2021-02-07 13:15:34
193
原创 数据结构学习第六课(循环链表)
3,循环链表3.1创建一个循环链表DuList* createDuList(){ DuList* list = calloc(1, sizeof(DuList)); assert(list != NULL); //创建头结点 list->front = calloc(1, sizeof(Node)); assert(list->front != NULL); list->tail = list->front;//让头指针和尾指针都指向头结点 list->
2021-02-07 12:44:39
128
原创 数据结构学习第五课(双向链表)
2,双向链表2.1双向链表基本框架typedef int Data;typedef struct _Node{ Data data;//数据域 struct _Node* next;//后继指针--指向下一个结点 struct _Node* prev;//前驱指针--指向上一个结点}Node;//结点typedef struct DoubleList{ int size;//当前结点数量 Node* front;//指向头结点的指针 Node* tail;//指向尾结点的指针}D
2021-02-07 12:42:30
117
原创 数据结构学习第四课(线性表之单链表(升级版(再封装)))
线性表之单链表(升级版(再封装))typedef int Data;typedef struct _Node{ Data data; //数据域 struct _Node* next;//指向后继节点的指针}Node;typedef struct _List{ int size;//记录当前节点数量 Node* front;//指向头结点的指针; Node* tail;//指向尾结点的指针;}List;//创建一个链表List* createList(){ List* li
2021-02-06 20:20:13
110
原创 数据结构学习第三课(线性表之链表)
第三课1,有头单链表1.1链表的概念链表和顺序表都是线性表的一种,但是链表的每个数据的存储是不连续的;每个元素如何连接,需明白,在基本单位结构体中分为两种数据,分别是数据域和指针域,是由每个基本单位结构体的指针域指向下一个位置的地址,从而将它们连接起来,链表在内存空间中数据存储的位置的特点是分布离散的、随机的;它们就像串珠子一样一个接一个的线性结构;基本框架事例:typedef int Data;typedef struct _Node{ Data dara; //数据域 struct
2021-02-06 20:17:12
180
原创 数据结构学习第二课(线性表之顺序表)
第二课1,线性结构1.1线性结构的特点前提:在数据元素的非空有限集合中·存在唯一的一个被称为“第一个”的数据元素;·存在唯一的一个被称为“最后一个”的数据元素;·除了第一个之外,集合中每个数据元素均只有一个前驱;·除了最后一个之外,集合中每个数据元素均只有一个后继;1.2线性结构功能线性是一个灵活的数据结构,它的长度可以根据需要增长或缩短,即对线性表的数据元素不仅可以进行访问,还可以进行插入和删除;2,顺序表2.1定义顺序表是指用一组地址连续的内存单元依次存储线性表的数据元素;2.
2021-02-06 11:27:40
118
原创 数据结构学习第一课(数据结构概述)
第一课1,概念:数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的学科;(数据结构就是把数据元素按照一定的关系组织起来的集合,用来组织和存储数据);2,数据结构分类:数据结构分为逻辑结构和物理结构;3,逻辑结构:3.1定义:逻辑结构是从具体问题中,抽象出来的模型,是抽象意义上的结构,按照对象中数据元素之间的相互关系分类;3.2分类:3.2.1集合结构:集合结构中数据元素除了属于同一集合外,它们之间没有其他关系;3.2.2线性结构:线性结构中的
2021-02-06 11:25:42
383
原创 C语言学习第十六课(预编译指令)
第十六课1,预定义符号符号含义__ FILE __进行预编译的文件名__ LINE ____ LINE __所在的行号__ DATA __文件被编译的日期__ TIME __文件被编译的时间__ FUNCTION __所在函数的函数名2,#define宏定义1,定义方式:#define 标识符 替换数值3,带参宏1,定义方式:#define name(参数列表) stuff例子: #define Fun(x) x*x F
2021-02-05 15:26:14
444
原创 C++基础学习第二课(变量的初始化)
第二课1,背景1,在c++中,初始化与赋值并不是同一个概念;2,初始化:创建变量时赋予其一个初始值;3,赋值:把对象(已经创建)的当前值删除,而用一个新值代替;2,列表初始化作为C++11新标准的一部分,用花括号来初始化变量得到了全面的应用,(在此之前,只是在初始化数组的时候用到);形式:int a={0};int a{0};//这两种方式都可以将变量a初始化为0局限性:当对内置类型使用列表初始化时,若初始值存在丢失的风险,编译会报错;例子: int a=3.123;//w
2021-02-04 17:34:09
392
原创 C++基础学习第一课(从C语言到C++)
第一课1,头文件C++为了兼容C,支持所有C头文件,但为了符合C++标准,所有的C头文件都有一个C++版本,主要的改变是【去掉 .h ,并在名字的前面加c】。如图:C语言C++stdio.hiostream(C++标准输入输出流头文件)math.hcmathstring.hcstringstdlib.hcstdlib……2,命名空间为了解决命名问题(如同名),引入了命名空间,它可作为附加信息来区分不同库中,相同名称的函数、类、变量等,本质
2021-02-04 14:47:03
371
原创 C语言学习第十五课(文件操作)
第十五课1,文件的概念文件一般指存储在外部介质(如磁盘磁带)上的集合;2,流的概念·操作系统是以文件为单位对数据进行管理的,输入输出是数据传送的过程,数据如流水一般从一处流向另一处,因此将输入输出形象地称为流,即输入输出流;·C语言把文件看作是一个字符(字节)的序列,即由一个一个字符(字节)的数据顺序组成。·一个输入输出流就是一个字节流或者二进制流;3,文件名1,概念:一个文件要有一个唯一的文件标识,以便用户识别和引用;2,组成: (1)文件路径//表示文件在外部存储设备中的位置;
2021-02-03 16:06:33
322
原创 C语言学习第十四课(共用体、枚举)
第十四课1,共用体(联合)1,使几个不同的变量占用同一段内存空间的结构称为联合;2,定义: union 联合类型名{ 成员列表; };3,共用体特点:系统采用覆盖技术,实现共用变量各成员的内存共享,在某一时刻,存放的和起作用的是最后一次存入的成员值;//由于所有成员共享同一内存空间,故共用变量与其各成员的地址相同;//在共用体变量定义的同时,只能用第一个成员的类型值进行初始化;//共用类型可以出现在结构类型定义中,反之亦然;//共用体所占内存大小,为占内存最大的
2021-02-02 12:26:09
205
原创 C语言学习第十三课(结构体)
第十三课1,结构体定义结构体类型:不同数据类型的集合;1,方式: struct 结构体名{ 数据类型 成员名; 数据类型 成员名; ...}结构体变量名;2,使用方法: ·如果是普通类型,使用'.'表示访问 ·如果是指针类型,使用'->'表示访问 3,指针型结构体变量的使用: ·结构体指针->成员名; ·(*结构体指针).成员名3,定义结构体变量 ·1,例子: struct Nn{
2021-02-02 10:47:11
209
原创 C语言学习第十二课(复杂指针)
第十二课1,右左法则右左法则用于解决如何辨识一个声明;方法:1,首先从最里面的圆括号(应该是未定义的标识符)看起; 2,然后往右看,再往左看。 3,每当遇到右圆括号时,就应该调转阅读方向。 4,一旦解析完圆括号里面所有的东西,就跳出圆括号。 5,重复这一过程,直到整个声明解析完毕。2,int(*p[5])(int *);分析: 1,在中间看到*p,明白是一个指针; 2,向右,看见一个数组 3,明白数组里存的是指针 4,跳出中
2021-02-01 20:30:59
227
原创 C语言学习第十一课(指针高级)
第十一课1,函数指针定义:函数返回值类型 (*指针变量名)(函数参数列表); //函数返回类型:表示该指针变量可以指向具有什么返回值类型的函数 //函数参数列表:只需要写函数的参数类型;判断指针变量是指向变量,还是指向函数? 1,看变量名后面有无代形参类型的圆括号; //有则是指向函数的指针变量,即函数指针 //无则是指向变量的指针变量例子: #include<stdio.h> typedef int(*pFun)(int ,int
2021-02-01 17:09:18
135
原创 C语言学习第十课(指针中级)
第十课1,指针运算算术运算:指针是一个用数值表示的地址。可以进行四种算术运算:++ -- + -//指针的每一次递增,它就会指向下一个元素的存储单元//指针的每一次递减,它就会指向前一个元素的存储单元//指针在递增和递减时,跳跃的字节数(步长),取决于指针所指向变量数据类型长度。关系运算:指针可以用关系运算符进行比较,如:== < >【注意:如果p1和p2指向两个相关的变量,比如在同一个数组,则可对p1和p2比较大小】 //对相关变量的指针进行比较,才有意义 //大于小于常用于
2021-02-01 15:48:01
155
原创 C语言学习第九课(指针初级)
第九课1,地址内存单元的编号注意://地址是不变的 //地址是唯一的 //地址是连续的2,首地址变量的第一个最大存储单元(地址其实就是一个整数)3,指针//指针:指针类型 大小始终为4个字节(在32位机器上)//大小始终为8个字节(在64位机器上)//指针变量:是一个变量,用来保存地址//例子:int a=3;int *p=&a;指针变量p保存了a的地址,也称指针p指向了a;//指针指向的内存空间比如: 整数:int 字符型:char
2021-02-01 00:47:31
132
原创 C语言学习第八课(EasyX图形库)
第八课【注意:该图形库只能在c++文件下运行】1,窗口函数·initgraph(int width,int height,int flag =NULL);//创建窗口//width 指定窗口宽度//height 指定窗口高度//flag 窗口样式,默认为NULL//注意:若想要同时看到控制台和图形窗口,可将flag设置为SHOWCONSOLE,若想要多种功能,可用'|'连接·closegraph();//关闭窗口·cleardevice();//清空绘图设备2,坐标与设备1,坐标默认
2021-01-31 15:11:51
3693
原创 C语言学习第七课(函数)
第七课1,函数定义语法返回类型 函数名(参数列表){ 函数体; return 与返回类型相同类型的值//若为void类型,则无} 2,形参和实参1,形参:函数'定义'时()内的变量,类似定义变量的语句;如:int a(int s,int d);//s和d就是形参2,实参:函数'调用'时()内的传入的参数;3,变量的作用域和生命周期1,作用域:变量的作用范围(在何处能够访问到变量)【采用就近原则】2,全局变量:定义在所有函数之外的变量,定义之后,都可以访问,且数
2021-01-31 01:46:40
166
原创 (C语言)模拟密码登录
#include<stdio.h>#include<string.h>#include<conio.h> void cypher() { char* userName = "hallo";//原用户名 char* password = "666666";//原密码 char Name[50] = ""; char pswd[50] = ""; int index=0; printf("输入用户名:"); gets(Name); pr
2021-01-31 01:43:58
1387
原创 (C语言)逆序输出字符串
#include<stdio.h>#include<string.h>void reverse()//逆序输出字符串{char str[] = “I love China”;int len = strlen(str);for (int i = 0; i < len/2; i++){char t = str[i];str[i] = str[len - 1 - i];str[len - 1 - i] = t;}puts(str);}int main()
2021-01-31 01:09:46
1082
2
原创 斐波拉契数列求第n项的值
【斐波拉契数列求第n项的值】:1 1 2 3 5 8 13 …公式:f(n)=f(n-1)+f(n-2);#include<stdio.h>int fobonacci(int n){//确定出口if(n1||n2){return 1;}else{return fobonacci(n-1)+fobonacci(n-2);}}int main(){int n;scanf("%d",&n);printf("%d ",fobonacci(n));return
2021-01-31 00:47:54
267
原创 C语言学习第六课(字符和字符串)
第六课1,字符:用单引号【‘’】括起来;【字符串一定是字符数组,字符数组不一定是字符串】2,字符串:由字符组成用双引号【“”】括起来;【注意:由‘\0’结尾】1 字符串都是用字符数组存储的;【】2 字符数组初始化的两种方式:{ 1,直接使用逐个字符进行初始化,但不会自动加上'\0'; 2,使用""的方式初始化数组,会自动添加'\0';【注意:数组存储大小足够】}3,用指针给字符串赋值和用数组赋值的区别#include<stdio.h>int main(){
2021-01-30 17:19:32
255
原创 C语言冒泡排序(基本实现)
#include<stdio.h>int main(){int num[10] = { 5,3,1,4,7,8,6,9,0,2 };for (int i = 0; i < 10-1; i++)//i为排序的轮数//若有n个数据则需要 n-1 轮{for (int k = 0; k < 10-1-i; k++)//k为每一轮比较的次数{if (num[k]>num[k+1]){int t = num[k];num[k] = num[k + 1];num[k
2021-01-30 17:13:05
166
原创 C语言学习第五课(C语言循环结构)
第五课1,循环的基本概念:可以反复执行的代码块;2,while循环结构:#include<stdio.h>int main(){ while(条件表达式) { 代码块; } return 0;}3,do…while循环结构#include<stdio.h>int main(){ do//先执行一次在判断 { 代码块; }while(条件表达式); return 0;}4,for循环#include<
2021-01-30 15:01:45
195
原创 C语言学习第四课(C语言选择结构)
第四课1,清空缓冲区的方法【1,fflush(stdin); 2,setbuf(stdin,NULL);]2,下拉快捷键:【Alt+选中的区域】3,if选择结构#include<stdio.h>int main(){ if(表达式) { 执行语句; ... } else { 执行语句; ... } return 0;}4,switch选择结构#include<stdio.h>
2021-01-30 12:32:29
114
原创 C语言学习第三课(C语言运算符和表达式)
第三课1,隐实类型转换【占内存较小的类型会向占内存较大的方向转换】{float->double<-long<-unsigned<-int<-short/char}2,强制类型转换:形式:(类型名)(表达式)【注意:从小类型转到大类型,,可以确保精度不会丢失】3,操作数:参与运算的数据4,运算符:表示数据如何运算5,表达式:求值规则6,算术运算符:【注意:1,整数的‘/’会截尾 2,取模运算只用于整数】7,画图快捷键(1,win+r打开运行 2,输入mspaint
2021-01-30 01:55:29
197
原创 C语言学习第二课(C语言基础数据类型)
第二课1,程序员节(10.24)2,计算机最小表示单位:1b=1bit(位)【有n位则能表示的数据为2^n)3,计算机最小信息表示单位:1B=1Byte(字节)【1B=8b]4,二进制:逢二进一(0,1)5,十六进制:逢十六进一(0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)6,进制英文简写:【HEX(16) DEC(10) OCT(8) BIN(2)】7,计算器快捷键(1,win+r打开运行 2,输入calc)8,八进制转二进制:每一个数对应三个二进制9,十六进
2021-01-30 00:27:19
139
原创 C语言学习第一课(认识C语言及编程工具)
第一课1,Debug是调试模式2,release是发行模式(发exe文件等)3,截图快捷键(1,使用QQ的Ctrl+Alt+A2,使用Windows10的shift+win+s)
2021-01-29 23:58:39
243
原创 PTA 7-3 【循环】【--打印图形B--】
PTA 7-3 【循环】【–打印图形B–】 (15分)输入一个数字 d 以及一个正整数n , 然后使用给定数字d作为基本有元素打印2n-1行的图形,图形第一行n个d,第二行n-1个d,第三行n-2个。。。以此类推到第n行只有1个d;然后从第n+1行开始,每一行比上一行多一个,直到第2n-1行只有n个d。#include <stdio.h>int main(void){int d,n;scanf("%d %d",&d,&n);for(int i=0;i<n;i+
2021-01-03 20:11:50
1433
原创 C语言简单求n阶层的方法
//简单求n阶层的方法#include<stdio.h>int main(){int n ,sum= 1;scanf_s("%d", &n);for (;n!=0; n–){sum *= n;}printf("%d", sum);return 0;}
2021-01-03 19:58:58
4166
原创 系统地学习打字(个人见解)
系统地学习打字:打字是一项重要的技能,对于程序员来说,快速、准确打字的能力是必不可少的基本功。在学习高级语言之前,我对打字并不重视,平时打字也多是不合章法的,但现在重新学习也不晚。一、键盘分各个部分,每根手指控制的范围有所不同。二、总结了一些初学者可以参考的技巧:1,刚学时我把四根手指当成整体,因此左手的初始位置是a(小指)-s(无名指)-d(中指)-f(食指)【右手为j(食指)-k(中指)-l(无名指)-;(小指) 】。2,既然把四指当做整体,于是无论是按哪个键四指都保持同一水平线。3,这样
2020-12-19 23:21:43
373
2
原创 关于VMware的安装个人经历
关于VMware的安装:这几天我为了安装VMware可是忙得焦头烂额,经过查找网上各种资料,我才终于把VMware安装并配置成功,在此总结一下我的经验。一、VMware的安装包:直接在百度搜索即可应用商城就有并且是最新版,不用专门上官网,那样太麻烦。二、关于注册码:下载VMware后会跳出一个输入注册码的提示,不输入就只能用三十天,刚看到这个窗口时我就有点慌,想到今后可能会一直用,但又不想充钱,于是头脑发热把刚安装好的软件又给删了,从此开始了我的苦逼之旅。。。(后来才知道注册码可以多次使用,因此可以上
2020-12-18 15:11:41
385
1
以编译好的OpenCV文件,含msvc和MinGW两种编译的版本,都是OpenCV3.x
2023-09-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅