自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CSFramework之会话层,服务器与客户端(源码)

Communicationpublic abstract class Communication implements Runnable{ public static final Gson gson = new GsonBuilder().create(); protected Socket socket; protected DataInputStream dis; protected DataOutputStream dos; protected volatile boolean goo

2022-02-19 19:51:44 849 1

原创 CSFramework之会话层,服务器与客户端(2)

2022-02-19 19:37:59 617 3

原创 CSFramework之会话层,服务器与客户端(1)

在上一篇文章中我们完成了Communication(会话层)的编写,但是Communication毕竟只是一个抽象类,这篇文章中我们一起来看看它的两个实现类以及我们的服务器和客户端是如何组织起来的。小声bb一下,这篇文章没有办法将这些全部写完,因为工程量实在太庞大了,怕大家看不下去,所以我会分成几篇文章来详细说明这些到底该如何编写。那么话不多说,我就开搞了!...

2022-02-15 20:18:25 601 2

原创 CSFramework之通信层Communication

从这篇文章开始我就要给大家开一个新坑了,有关java中网络编程的一些东西,当然我不会在这里面讲一些特别基础的东西,像socket,serversocket这种大家在很多网站上都能查到的东西,我想讲的是一个框架,基于这个框架我们可以开发一个类似于聊天室的东西,通过这个框架的编写可以极大的提升大家对java的理解以及大家撸代码的能力。1. 什么是C/S模式?服务器-客户机,即Client-Server(C/S)结构。C/S结构通常采取两层结构。服务器负责数据的管理,客户机负责完成与用户的交互任务。2.如何

2022-02-12 13:28:18 784 2

原创 二分法查找(C语言)

查找这个工作是我们经常要对一堆数据进行的操作,我们所熟知的顺序查找在数据较多的时候时间复杂度会大幅提升严重影响我们程序的运行速度,那么有没有一种时间复杂度比较优秀的算法来解决这个问题呢——二分查找我们先来说一下什么是二分查找,再来看看它的手工过程是如何实现的。二分查找就是将原本线性的时间提升到了对数的时间...

2021-09-26 17:55:41 541

原创 浅谈二叉树(C语言)

二叉树作为树这种数据结构的中非常经典的一种非线性不连续的数据结构,因其优良的时间复杂度而被广泛使用,在这篇文章中我们就来讲述一下二叉树的生成以及遍历。例如下图中的二叉树我们如何解决它们的存储问题?这里我们可以在输入时控制一下输入格式,就是我们可以在输入时先输入左子树在一个支路的左子树输入完成后设置一个结束标志再继续输入右子树,上图中我们就可以在输入是按照下面的格式进行输入:ABC##DE###FG###下面我们就直接看代码吧,代码中有些递归思想,如果有啥不懂的可以进行一下变量跟踪,这样看着也会更清

2021-09-05 22:55:55 158 1

原创 数据结构之队列(C语言)

队列是一个非常经典的数据结构,是一种线性连续的存储方式,与它相类似的数据结构还有堆栈,线性表,数组这些数据结构,剩下的数据结构我会在后面的文章中一一介绍到。那我们先来介绍一下队列中数据结构的特点:FIFO-先入先出何为先入先出呢?就是最先入队列(存储在队列中)的元素最先出去,我们可以用一个图来说明:因为队列是用来实现某些存储功能的我们当然要设计一些对队列操作方式:首先是对队列的初始化:我们首先应该知道一个队列应该有啥东西就可以方便我们操作队列,第一个就是数据的存储空间,在一个就是队列可以存储数据

2021-09-04 19:16:39 137

原创 快速排序(C语言)

排序分为很多种,例如希尔排序,冒泡排序,堆排序… …很多种,今天我要讲的是这里面时间复杂度最低的快速排序。首先我们先了解一下快速排序的手工过程:有了这个手工过程的了解,代码呼之欲出了,我们可以先编写一个交换函数:void swapOnce(int *array, int start, int end) { int i = start; int j = end; int temp = array[i]; if (i >= j) { return; } while (i &lt

2021-08-28 22:59:39 113

原创 递归方法实现全排列(C语言)

全排列呢就是我们在数学中学的将一组数字或者是字母的所有排列方式计算出来的数学工具。比如,ABCD这四个字母随机取三个字母的全排列就有24种之多。那么,我们如何用程序来实现他呢?我们来探讨一下这个问题的手工过程:无非就是在取当前字母时看当前字母是否可取,如果不可取则看下一个,如果可取就将该字母取出。这就很符合递归的特性,我们每次只关心当前字母是否可取即可。我们可以给一个下标数组,下标数组的初值全部赋值为0,下标数组的长度与输入的字符串的长度相同。当字符串中的某一个字符被选中,则该字符在下标数组中对应

2021-08-24 17:58:25 2594

原创 巨大数乘法(C语言)

上一篇博客我们实现了巨大数的加减法,现在我来填一下我上个博客结尾留下的坑——巨大数的乘法。相较于加减法乘法的实现更加容易实现,我们可以类比十进制下的乘法来进行手工过程的实现。既然十进制的乘法是如此那么在万进制下的乘法也应是如此的,但是如何解决每次计算结果的存储问题呢,这个问题在我编程的时候困扰我了好久。其实很简单,就是我们把每一轮(或者说每一次)的计算结果按万进制直接存入我们的结果巨大数的数组中就好了。对了,最终结果巨大数的位数应该是两个相乘巨大数位数之和(在万进制下)。下来我们看一下核心代码:

2021-08-23 19:33:54 155

原创 巨大数(C语言)

何为巨大数呢?顾名思义,巨大数就是数值特别大的数字,大到C语言已经无法识别,例如几千万亿的加减乘除,C语言的int, 与long int显然已经无法表示,因为他们都是四字节的补码,可以表示的整型数字范围为-2,147,483,648 ~ 2,147,483,647, 即-2^32 ~ 2^32-1。那么该如何解决这个问题呢?首先,根据int的特性我们可以使用万进制,类似于十进制,只不过万进制是4位一组,十进制是一位一组。说到这可能就会有人疑惑了,为啥是万进制,不是十万进制,或者千进制呢,偏偏选一个万进制

2021-08-18 12:00:43 3840

原创 贪吃蛇(C语言)

贪吃蛇项目核心算法:循环数组,发牌算法,二维坐标一维化编译环境:TC 2.0准备工作:学习gotoxy()函数,了解bioskey()函数使用,知道bioskey(1)与bioskey(0)的区别,了解键盘扫描码,并且知道如何使用。核心工作:1.了解循环数组的下标循环规律2.理解发牌算法的核心代码3.掌握如何对二位坐标进行一维化的处理,以及二者之间的转换那么,首先我们先来了解一下gotoxy()这个函数:gotoxy (int x, int y)是 Borland C 扩充函数库 con.

2021-07-23 16:46:22 202

原创 学生成绩管理系统(C语言)

此代码及供参考,可以用来应付学校的C语言课设,用了结构体数组和文件,没有链表,只是一个比较简单的版本。需要修改或者使用的的话源码自行拿走,写的比较垃圾,大家最好看看就行了。注释写的比较少,仅供参考!#include <stdio.h>#include <string.h>#include <windows.h>#include <stdlib.h>typedef struct stuInformation { char name[20];

2021-03-12 15:01:53 459 2

空空如也

空空如也

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

TA关注的人

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