自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于C/S架构的网络聊天室

服务器端#include #include #include #include #include #include #include #include #include #include #include #include "LinkList.h"#define PORT 9999typedef struct _msg{ int cmd; int flag;

2017-10-09 19:41:11 2155

原创 项目一——电子通讯录

需求制作一个电子通讯录,通过该通讯录能存入好友ID号、姓名(英文)、手机号码、家庭住址、公司电话。模块 主界面:主要显示软件功能。A) 添加好友信息。B) 列表好友信息。(包含排序功能)C) 搜索好友D) 删除好友 添加好友:用户输入INSERT命令后,让用户输入好友信息。添加成功或失败都需要提示用户 列表好友:用户输入DISPLAY命令后,好友信

2017-10-09 19:35:58 658

原创 C++运算符重载

一、概念1、什么是运算符重载所谓重载,就是重新赋予新的含义。2、运算符重载的限制二、运算符重载的基础1、运算符重载本质是一个函数,函数名字组成:operator+要重载的运算符2、运算符重载的步骤:(1)写函数名:operator+要重载的函数名(2)根据运算需求写函数的参数列表(3)根据需求写出函数返回值的类型#include cl

2017-09-20 14:12:49 189

原创 C到C++的扩展

一、C++对C的加强1、C++中所有变量和函数都必须有类型C语言中函数的一些不好的使用方式:(1)函数可以没有返回参数类型(2)函数参数可以没有数据类型(3)无参函数可以接收任意个参数C++中的加强:(1)int f()与int f(void)具有相同的意义,都表示返回值为int类型的无参函数,并且调用时不能给函数传参(2)函数参数必须要有数据类型

2017-09-16 14:20:14 272

原创 多线程编程

多线程编程

2017-08-17 20:15:15 163

原创 字符串加密小程序

字符串加密小程序

2017-08-14 14:46:45 640

原创 系统编程之进程控制编程(二)

系统编程之进程控制编程(二)

2017-08-10 15:03:04 199

原创 系统编程之进程控制编程(一)

系统编程之进程控制编程(一)

2017-08-09 20:07:27 278

原创 文件编程(二)

标准I/O库C标准库提供了操作文件的标准I/O函数库,与系统调用相比,主要差别是实现了一个跨平台的用户态缓冲的解决方案。一个I/O缓冲的例子如下:1、fopen():#include int main(){ FILE *fp = fopen("test3","ab+"); if(fp == NULL) { perror("fopen"); return

2017-08-08 15:45:45 304

原创 fgetc()和fputc()小练习

手动创建两个文本文件text1.txt,text2.txt,要求编程创建text3.txt,实现text1.txt和text2.txt文件中除去首行和末尾对应的数据相加,三个文本的内容如下:#include int main(){ FILE *fp1 = fopen("text1.txt", "ab+"); if(fp1 == NULL) { perror("fopen

2017-08-07 09:59:42 285

原创 随机分组

将数字1—40以四个为一组随机分成10组并打印#include #include #define SIZE 40int main(){ srand((unsigned int)time(NULL)); int a[SIZE]; int i; for(i = 0;i < SIZE;i++) { a[i] = i + 1; } int len = size

2017-08-06 19:57:35 1030

原创 文件编程(一)

1、系统调用所有的操作系统都提供多种服务的入口点,程序由此向内核请求服务。这些可直接进入内核的入口点被称为系统调用。2、Linux下文件操作的系统调用(1)open():#include #include #include #include int main(){ int fd = open("test1", O_RDWR|O_CREAT, 0777);

2017-08-06 19:14:27 450

原创 项目二——停车场

停车场管理问题描述:停车场是一个能放n辆车的狭长通道,只有一个大门,汽车按到达的先后次序停放。若车场满了,车要停在门外的便道上等候,一旦有车走,则便道上第一辆车进入。当停车场中的车离开时,由于通道窄,在它后面的车要先退出,待它走后在依次进入。汽车离开时按停放时间收费。基本功能要求:(1) 建立三个数据结构分别是:停放队列、让路栈、等候队列。(2) 输入数据模拟管理过程,数据(入

2017-08-05 22:02:23 302

原创 数据结构二叉树

在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2^{i-1}个结点;深度为k的二叉树至多有2^k-1个结点;对任何一棵二叉树T,如果

2017-08-05 21:33:15 221

原创 数据结构树

树(tree)是包含n(n>0)个结点的有穷集,其中:(1)每个元素称为结点(node);(2)有一个特定的结点被称为根结点或树根(root)。(3)除根结点之外的其余数据元素被分为m(m≥0)个互不相交的集合T1,T2,……Tm-1,其中每一个集合Ti(1树也可以这样定义:树是由根结点和若干颗子树构成的。树是由一个集合以及在该集合上定义的一种关系构成的。集合中的元

2017-08-05 15:50:37 144

原创 数据结构链式队列

队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。链式队列:#ifndef __LINKQUEUE_H__#define __LINKQUEUE_H__#include "error.h"#define TRUE 1#

2017-08-04 19:51:04 227

原创 数据结构顺序队列

队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。顺序队列:#ifndef __SQQUEUE_H__#define __SQQUEUE_H__#include "error.h"#define TRUE 1#defi

2017-08-04 19:32:26 201

原创 数据结构链式栈

栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。链式栈:#ifndef __LINKSTACK_H__#defin

2017-08-04 19:12:56 227

原创 数据结构顺序栈

栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。顺序栈:#ifndef __SQSTACK_H__#defin

2017-08-04 19:09:27 180

原创 数据结构头结点循环链表

头结点循环链表#ifndef __LINKLIST_H__#define __LINKLIST_H__#define FALSE 0#define TRUE 1typedef int LinkData;typedef struct _node{ LinkData data; struct _node * next;}Node;// 创建链表Node * Creat

2017-08-04 17:55:10 352

原创 数据结构头指针链表

头指针链表头指针链表相较于头结点链表操作起来更繁琐。以下是头指针链表的基本操作:#include #include #define TRUE 1#define FALSE 0typedef int LinkData; // 链表的数据类型typedef struct _node{ LinkData data; // 链表的数据 struct

2017-08-04 17:38:36 381

原创 数据结构头结点链表

头结点链表以下是头结点链表的常规操作:#ifndef __LINKLIST_H__#define __LINKLIST_H__#define FALSE 0#define TRUE 1typedef int LinkData;typedef struct _node{ LinkData data; struct _node * next;}Node;// 创建链

2017-08-04 17:27:18 292

原创 数据结构顺序表

顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。线性表采用顺序存储的方式存储就称之为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。以下是顺序表的简要操作:#ifndef __SEQLIST_H__#define __SEQLIST_H__#define FALSE  -1#defi

2017-08-04 17:18:24 240

原创 数据结构排序2

void swap(int a[],int i,int j){ int tmp = a[i]; a[i] = a[j]; a[j] = tmp;}void printfA(int a[],int len){ int i; for(i = 0;i < len;i++) { printf("%4d",a[i]); } printf("\n");}1、堆排序/

2017-08-04 17:14:29 198

原创 数据结构排序1

void swap(int a[],int i,int j){ int tmp = a[i]; a[i] = a[j]; a[j] = tmp;}void printfA(int a[],int len){ int i; for(i = 0;i < len;i++) { printf("%4d",a[i]); } printf("\n");}1、冒泡排序冒泡

2017-08-04 17:07:45 146

原创 LinuxC小练习——计算器

n栈在表达式计算过程中的应用 :建立操作数栈和运算符栈。运算符有优先级。规则: n自左至右扫描表达式,凡是遇到操作数一律进操作数栈。n当遇到运算符时,如果它的优先级比运算符栈栈顶元素的优先级高就进栈。反之,取出栈顶运算符和操作数栈栈顶的连续两个操作数进行运算,并将结果存入操作数栈,然后继续比较该运算符与栈顶运算符的优先级。n左括号一律进运算符栈,右括号一律不进运算符栈,取出运算符栈

2017-07-27 19:44:24 248

原创 LinuxC学习日常——复合类型及关键字

1、结构体(struct)结构体类型声明、定义结构体类型变量以及结构体变量的使用#include #include // struct 是一个C语言的一个关键字,用来声明一个结构体类型// 声明了一个名字叫 student 的结构体类型// 有两个成员,分别是整型的 id(学号) 字符数组 name(名字)// struct 只是声明了这样一种数据类型,和普通的数据类型比如int

2017-07-21 14:06:40 338

原创 LinuxC学习日常——函数

1、概述函数(Function)是一段可以重复使用的代码,这是从整体上对函数的认识。函数包括三个要素:返回值(由关键字 return 进行返回)、函数名(数字、字母、下划线,不能以数字开头)、函数参数(放在括号里面,每个参数之间用逗号隔开,在括号中标明参数的数据类型)。{}大括号内部叫函数定义,函数功能的实现。函数的返回值类型必须与函数类型一致,若无返回值则在函数名前加 void。

2017-07-19 16:25:36 218

原创 LinuxC学习日常——指针

1、指针变量的定义int a;int *p = &a;* 表示这个变量是一个指针,int代表这个指针所指向的地址中保存的数据的类型,也可以是char、double等类型,但必须和指针所指向的地址中保存的数据类型一致。指针变量中保存的是地址,所以必须将a的地址赋值给指针变量p。2、指针变量的大小指针变量的大小只与编译器的位数有关,由于指针内部存的是地址,32为情况下地

2017-07-17 14:27:50 244

原创 LinuxC学习日常——自习(1)

1、break和continue的用法和区别(1)break:break语句的功能是:在switch语句中使流程跳出switch结构。在循环语句中使流程跳出当前循环。/*将从键盘上输入的若干个正整数求和,遇到负数则终止程序,并且输入的数不超过10个。 输入:正整数计算:求累加和输出:和*/#include #define MAX 10int main(){

2017-07-13 15:52:48 214

原创 LinuxC学习日常——语句

今天学习了C语言的一系列运算符表达式,语句中的顺序结构、选择结构和循环结构一、运算符1、基本算术运算符+ (加)、 - (减) 、 * (乘) 、 / (除) 和 % (求余数)这五个运算符的优先级为:*、/ 和%同级,但比+和-高。即先乘除后加减。两个整数相除,结果为一整数;分子小于分母,结果为零。这五个运算符的结合性为:自左至右。对于取余运算符%结果的符号与%左边的

2017-07-12 19:01:01 371

原创 Linux下C语言程序设计基本知识及基本数据类型

一、C语言程序设计基础1、程序设计语言发展(1)机器语言:计算机唯一能够执行的语言(0、1序列)不具备移植性;(2)汇编语言:把机器指令符号化,要转化成机器语言才能执行,无法移植;(3)高级语言:执行的单位不是指令而是语句,移植性好;(4)第四代语言:如SQL语言等查询语句;(5)自然语言:人工智能如语音,还不成熟。2、计算机数据表示(1)数值型数据

2017-07-11 14:08:26 721

空空如也

空空如也

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

TA关注的人

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