<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[CZDCCXY的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/CZDCCXY</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; CZDCCXY]]></copyright><item><title><![CDATA[Java—图书管理系统]]></title><link>https://blog.youkuaiyun.com/CZDCCXY/article/details/124855814</link><guid>https://blog.youkuaiyun.com/CZDCCXY/article/details/124855814</guid><author>CZDCCXY</author><pubDate>Thu, 19 May 2022 09:25:05 +0800</pubDate><description><![CDATA[本文对使用Java语言实现图书管理系统做解析与总结。]]></description><category></category></item><item><title><![CDATA[Java—抽象类与接口]]></title><link>https://blog.youkuaiyun.com/CZDCCXY/article/details/124841958</link><guid>https://blog.youkuaiyun.com/CZDCCXY/article/details/124841958</guid><author>CZDCCXY</author><pubDate>Wed, 18 May 2022 15:54:22 +0800</pubDate><description><![CDATA[本文对Java中抽象类与接口相关知识做解析与总结。]]></description><category></category></item><item><title><![CDATA[Java—类与对象解析]]></title><link>https://blog.youkuaiyun.com/CZDCCXY/article/details/124779847</link><guid>https://blog.youkuaiyun.com/CZDCCXY/article/details/124779847</guid><author>CZDCCXY</author><pubDate>Sun, 15 May 2022 15:41:10 +0800</pubDate><description><![CDATA[本文对Java中的类与对象相关知识进行解析与总结。

类与对象的关系：类是相同类型对象的集合，对象是类的实例化。

类是一种自定义的数据类型，其中包括数据的属性（成员变量）以及能完成的行为（成员方法）。

定义类：[权限修饰符] class 类名{

[成员变量;]

[成员方法;]

[构造方法;]

}

如：





类中成员变量与成员方法

成员变量：在类中定义的变量，该变量用于描述该类对象的属性。

成员方法：在类中定义的方法，该方法用于在main中被调用 以此完成该类对象能完成的行为。

注意]]></description><category></category></item><item><title><![CDATA[Java—继承与多态解析]]></title><link>https://blog.youkuaiyun.com/CZDCCXY/article/details/124782898</link><guid>https://blog.youkuaiyun.com/CZDCCXY/article/details/124782898</guid><author>CZDCCXY</author><pubDate>Sun, 15 May 2022 15:35:18 +0800</pubDate><description><![CDATA[本文对Java中继承与多态相关知识点进行解析与总结。

继承与多态

面向对象思想中提出了继承的概念，专门用来进行共性抽取，实现代码复用。

子类又称为派生类，父类又称为基类，超类。

Java中有单继承，多层继承和不同子类继承同一父类，不支持多继承。

继承格式：修饰符 class 子类 extends 父类 {}

在new子类对象的时候，堆区中申请一块空间存放对象，而这块空间中有一部分专门用来储存子类从父类那边继承过来的成员，另一部分则储存子类特有的成员。



在子类中访问父类成员变量：
子类与父类]]></description><category></category></item><item><title><![CDATA[Java—数组解析]]></title><link>https://blog.youkuaiyun.com/CZDCCXY/article/details/124778990</link><guid>https://blog.youkuaiyun.com/CZDCCXY/article/details/124778990</guid><author>CZDCCXY</author><pubDate>Sun, 15 May 2022 11:04:40 +0800</pubDate><description><![CDATA[本文对Java中数组部分知识解析与总结。

数组概念：多个相同类型元素的集合。

数组定义方式（三种）如：

int[] arr={1,2,3,4,5};

int[] arr=new int[]{1,2,3,4,5};

int[] arr=new int[5];

第一种写法是第二种写法的简写。

第三种写法没有对元素赋值，int类型元素默认值为0。

其他类型元素默认值：byte-0 short-0 long-0 float-0.0f double-0.0 char-/u0000 bolean-fal]]></description><category></category></item><item><title><![CDATA[Java—方法解析]]></title><link>https://blog.youkuaiyun.com/CZDCCXY/article/details/124778624</link><guid>https://blog.youkuaiyun.com/CZDCCXY/article/details/124778624</guid><author>CZDCCXY</author><pubDate>Sun, 15 May 2022 10:13:06 +0800</pubDate><description><![CDATA[本文目的为对Java中方法的使用做解析与总结。

方法的概念：方法是一个代码片段，将某个特定功能的实现代码封装成为一个方法，由此实现代码的模块化。

方法的优点：

1.能够模块化的组织代码

2.能够使一份代码在多个位置被重复使用

3.使某功能的实现变简单

方法定义：

修饰符 返回值类型 方法名(参数列表){

方法体代码;

[return 返回值;]

}

调用方法时传参应注意：

1.参数的个数必须匹配

2.参数的类型必须匹配

3.参数的顺序必须匹配

方法名称使用小驼峰命名法(即若为单]]></description><category></category></item><item><title><![CDATA[java-初识]]></title><link>https://blog.youkuaiyun.com/CZDCCXY/article/details/124353462</link><guid>https://blog.youkuaiyun.com/CZDCCXY/article/details/124353462</guid><author>CZDCCXY</author><pubDate>Fri, 22 Apr 2022 20:49:10 +0800</pubDate><description><![CDATA[本文主要介绍java相关的工具概念，基本程序写法，常见注意事项以及对数据类型与操作符解析。

JDK：java的开发工具集合。

JRE：java程序的运行环境。

JVM：java虚拟机，虚拟机是用底层代码实现的软件，该软件可模拟机器的硬件。

三者关系：JDK包含JRE,JRE包含JVM。

第一个java程序：

public class HelloWorld{

public static void main(String [] args){

System.out.println("hello")]]></description><category></category></item><item><title><![CDATA[C语言-程序环境与预处理]]></title><link>https://blog.youkuaiyun.com/CZDCCXY/article/details/124120959</link><guid>https://blog.youkuaiyun.com/CZDCCXY/article/details/124120959</guid><author>CZDCCXY</author><pubDate>Tue, 12 Apr 2022 17:07:04 +0800</pubDate><description><![CDATA[本文主要对源代码经编译链接形成结果的过程中各时段处理的指令与形成结果进行解析。




]]></description><category></category></item><item><title><![CDATA[C语言-文件操作]]></title><link>https://blog.youkuaiyun.com/CZDCCXY/article/details/124080714</link><guid>https://blog.youkuaiyun.com/CZDCCXY/article/details/124080714</guid><author>CZDCCXY</author><pubDate>Sun, 10 Apr 2022 17:29:46 +0800</pubDate><description><![CDATA[当程序的生命周期结束，在内存中存放的数据就会随着内存的释放而清除，这并不满足我们日常生活中的记录需求，所以C语言开发了文件操作模式，通过将数据存放在硬盘，数据库等方式，实现数据的持久化。

文件存在于磁盘中，按照文件功能的角度来看一般分为两类：程序文件与数据文件。

程序文件：包括源文件(.c)，目标文件(windows环境下.obj)与可执行文件(windows环境下.exe)。

数据文件：文件的内容不一定是程序，而是程序运行时读写的数据，数据文件的职能为提供给程序文件数据或者报存程序文件运行所产生的数]]></description><category></category></item><item><title><![CDATA[C语言-通讯录文件]]></title><link>https://blog.youkuaiyun.com/CZDCCXY/article/details/124065639</link><guid>https://blog.youkuaiyun.com/CZDCCXY/article/details/124065639</guid><author>CZDCCXY</author><pubDate>Sat, 09 Apr 2022 18:43:48 +0800</pubDate><description><![CDATA[此文提供C语言实现通讯录源代码与注释并在源代码相同储存路径下对相应文件的创建或修改。

源代码使用vs2022编译，若有需要请在适当处删改。

源代码创建了两个.c文件与一个.c文件，分模块使用。

contact.h:

#pragma once//避免同一文件被包含两次
#define _CRT_SECURE_NO_WARNINGS 1//避免scanf函数与编译器不兼容

#include&lt;stdio.h&gt;
#include&lt;string.h&gt;
#include&lt;stdl]]></description><category></category></item><item><title><![CDATA[C语言-动态内存管理]]></title><link>https://blog.youkuaiyun.com/CZDCCXY/article/details/123918482</link><guid>https://blog.youkuaiyun.com/CZDCCXY/article/details/123918482</guid><author>CZDCCXY</author><pubDate>Sat, 02 Apr 2022 15:03:40 +0800</pubDate><description><![CDATA[C语言中的动态内存管理主要依靠四个动态内存函数实现。

四个函数：malloc，calloc，realloc，free。使用这四个函数均需要#inlude&lt;stdlib.h&gt;。

1.为什么存在动态内存管理方式呢？

若使用平常的创建数组，变量等方法申请空间，这些空间大小是固定的。若遇到需要增加/减少空间的实际需求时往往不能达到要求。所以衍生出更方便的，高效的(空间与时间使用率)动态内存管理方式。

2.内存中的区域

内存被划分为很多区域，每个区域的空间都存在不同的特性。

这里主要解析 栈区]]></description><category></category></item><item><title><![CDATA[C语言-动态通讯录]]></title><link>https://blog.youkuaiyun.com/CZDCCXY/article/details/123855222</link><guid>https://blog.youkuaiyun.com/CZDCCXY/article/details/123855222</guid><author>CZDCCXY</author><pubDate>Wed, 30 Mar 2022 20:00:24 +0800</pubDate><description><![CDATA[相较于普通通讯录做的改变：

1.将通讯录中的结构体数组变为结构体指针

2.通讯录中创建整型变量capacity作为通讯录当前最大容量

3.初始化函数-给capa(最大容量变量)赋值，给结构体指针申请空间(最好再检查一下开辟是否成功)

4.在add中把满员的情况去掉，改为扩容函数(realloc申请，最大容量改变)

5.动态申请的空间需要在某条件下用free释放，比如此题选择0时不再进行通讯录的使用，就可以释放空间了。

代码如下：

contact.h:

#pragma once//避免同一文件]]></description><category></category></item><item><title><![CDATA[C语言-自定义类型]]></title><link>https://blog.youkuaiyun.com/CZDCCXY/article/details/123775761</link><guid>https://blog.youkuaiyun.com/CZDCCXY/article/details/123775761</guid><author>CZDCCXY</author><pubDate>Sun, 27 Mar 2022 18:01:09 +0800</pubDate><description><![CDATA[自定义类型分为结构体，枚举与联合体类型。

结构体：

结构体是一些数据的集合，这些数据可以是不同或相同类型的数据，这些数据被称为成员变量。

结构体的声明：

struct tag{

member-list;（成员列表）

}variable-list;（定义的变量列表）

如：struct stu{

int age;

char sex[2];

}s1;

特殊的声明：

如匿名结构体类型

struct{

int a;

int b;

}x;

因为匿名结构体无法表示，所以只能在声明时创建变]]></description><category></category></item><item><title><![CDATA[C语言-内存操作函数]]></title><link>https://blog.youkuaiyun.com/CZDCCXY/article/details/123775045</link><guid>https://blog.youkuaiyun.com/CZDCCXY/article/details/123775045</guid><author>CZDCCXY</author><pubDate>Sun, 27 Mar 2022 16:08:43 +0800</pubDate><description><![CDATA[memcpy，memmove，memcmp，memset

void * memcpy (void * dest,const void * src,size_t count);

将src所指地址之后的count个字节的内容复制到dest所指地址之后的count个字节中。

模拟实现：



使用assert函数保证a与b不为NULL，需要#include&lt;assert.h&gt;使用。

地址加减，赋值时要进行强制类型转换，一个字节一个字节的访问。

此时的实现使用了最小单位(char代表1个字节)]]></description><category></category></item><item><title><![CDATA[C语言-字符与字符串函数]]></title><link>https://blog.youkuaiyun.com/CZDCCXY/article/details/123770403</link><guid>https://blog.youkuaiyun.com/CZDCCXY/article/details/123770403</guid><author>CZDCCXY</author><pubDate>Sun, 27 Mar 2022 15:20:22 +0800</pubDate><description><![CDATA[内容前声明：可以将char*类型变量看成一个字符串(字符数组)，其具有有限空间。

strlen计算大小函数：strlen(char* s);

从当前地址开始向后(以字节为单位)检索直到碰见'\0'停止，返回值为当前地址到'\0'间的字符个数（'\0'不算），返回值为size_t类型，为无符号数。strlen需要搭配#include&lt;string.h&gt;使用。



strcpy字符串拷贝函数：strcpy(char* str1,const char* str2);

将"字符串"str2中'\]]></description><category></category></item><item><title><![CDATA[C-数据在内存中的储存]]></title><link>https://blog.youkuaiyun.com/CZDCCXY/article/details/123331479</link><guid>https://blog.youkuaiyun.com/CZDCCXY/article/details/123331479</guid><author>CZDCCXY</author><pubDate>Mon, 07 Mar 2022 19:40:53 +0800</pubDate><description><![CDATA[C语言中有很多的内置数据类型，不同的数据类型在内存中的存储方式也是不一样的，同一类型在不同环境下的存储方式也是不一样的。
本文主要讲述不同类型在内存中的储存方式。]]></description><category></category></item><item><title><![CDATA[C语言实现扫雷（重置）]]></title><link>https://blog.youkuaiyun.com/CZDCCXY/article/details/122814095</link><guid>https://blog.youkuaiyun.com/CZDCCXY/article/details/122814095</guid><author>CZDCCXY</author><pubDate>Mon, 07 Feb 2022 20:35:27 +0800</pubDate><description><![CDATA[实现思路：当需要写游戏时，在初始主体里面的game函数中改变该游戏函数的实现就行。

在扫雷中，我们优先创建一个比目标游戏模式（如easy：9*9雷格,10个雷）规格大一点的数组（简称mine）和一个与目标游戏模式规格相同的数组（简称show）（为了方便模式更改一般会使用全局变量创建二维数组），mine以防在检查目标坐标的周围元素的时候出现数组越界检查现象。两个数组，一个用来布置雷（mine），一个用来显示当前排雷情况给玩家（show）。然后将mine与show初始化（赋‘0’，‘*’），利用时间戳与随机函]]></description><category></category></item><item><title><![CDATA[C语言实现“三”子棋(重置)]]></title><link>https://blog.youkuaiyun.com/CZDCCXY/article/details/122813177</link><guid>https://blog.youkuaiyun.com/CZDCCXY/article/details/122813177</guid><author>CZDCCXY</author><pubDate>Mon, 07 Feb 2022 19:29:16 +0800</pubDate><description><![CDATA[实现思路：将整个实现编写到一个函数中，比将实现中部分代码直接写在main中的可移植性更好。开始创建一个名为初始主体的函数，此函数可用于多数游戏的实现。在此函数中，运用游戏菜单函数与选择，循环语句达到让用户选择是否游戏的功能。而三子棋游戏真正的实现，需要编写游戏函数，并将其置于初始主体中，这样方便随时更换游戏，而不动初始主体。

在游戏函数中首先创建“n*n”的二维字符数组，方便在三子棋盘中填入内容，考虑到更换游戏内容的原因，创建二维字符数组时使用全局变量ROW与COL。创建后首要任务是将此字符数组（棋盘）“]]></description><category></category></item><item><title><![CDATA[C语言实现扫雷]]></title><link>https://blog.youkuaiyun.com/CZDCCXY/article/details/122732637</link><guid>https://blog.youkuaiyun.com/CZDCCXY/article/details/122732637</guid><author>CZDCCXY</author><pubDate>Fri, 28 Jan 2022 16:57:41 +0800</pubDate><description><![CDATA[一般游戏都需要选择主体（可以包括到一个大函数中），不同游戏其内容不同都在选择主体中的game函数里面实现。在扫雷中，我们优先创建两个比目标游戏模式（如easy：9*9,10个雷）规格大一点的数组（规模较大一般会使用全局变量），以防在检查周围元素的时候出现越界检查的现象。两个数组，一个用来布置雷（mine），一个用来显示当前排雷情况给用户（show）。然后将mine与show初始化（赋‘0’，‘*’），利用时间戳与随机函数给mine中“埋雷”，之后写一个排查函数（fine），提示用户输入坐标，并检查mine中]]></description><category></category></item><item><title><![CDATA[C语言实现“三”子棋]]></title><link>https://blog.youkuaiyun.com/CZDCCXY/article/details/122699825</link><guid>https://blog.youkuaiyun.com/CZDCCXY/article/details/122699825</guid><author>CZDCCXY</author><pubDate>Wed, 26 Jan 2022 15:23:28 +0800</pubDate><description><![CDATA[实现思路：游戏首先需要菜单（菜单函数），让用户选择（选择语句）玩与结束。当选择玩的时候，我们就能进入游戏（游戏函数）。进入游戏，首先需要创建n*n规格的二维数组（并且需要一个数组清空函数（清空棋格）），然后打印一个棋盘（打印当前棋盘函数），然后提示玩家下棋（玩家下棋函数），玩家下棋之后需要打印当前棋盘并判断（判断当前情况函数）是否有一方胜利。如果继续，则轮到电脑随机下棋（电脑下棋函数），电脑下完棋打印当前棋盘并判断是否有一方胜利。判断当前情况函数中有四种情况（玩家胜，电脑胜，平局或者继续），并且平局的情况需]]></description><category></category></item></channel></rss>