聊天室(c/s架构)

项目要求: (1)采用 Client/Server 架构 。  (2) Client A 登陆聊天服务器前,需要注册自己的 ID 和密码。  (3)注册成功后,ClientA 就可以通过自己的 ID 和密码登陆聊天服务器 。  (4). 多个 Client X 可以同时登陆聊天服务器之后,...

2017-10-08 18:10:25

阅读数 842

评论数 0

c++多继承

1、  多继承 (1)概念:一个类有多个直接基类的继承关系称为多继承   (2)多继承声明语法 class 派生类名 : 访问控制 基类名1 ,  访问控制  基类名2 ,  … , 访问控制  基类名n     {         数据成员和成员函数声明     };   类 C 可以根据访问控...

2017-09-22 15:47:26

阅读数 215

评论数 0

c++之运算符重载基础

1、  定义:所谓重载,就是重新赋予新的含义。函数重载就是对一个已有的函数赋予新的含义,使之实现新功能,因此,一个函数名就可以用来代表不同功能的函数,也就是”一名多用”。 2、为什么会用运算符重载机制: 用复数类举例:Complex c3 = c1 + c2; 原因 Complex是用户自定...

2017-09-20 20:03:32

阅读数 166

评论数 0

c++之构造函数和析构函数

1、  构造函数: (1)定义: 1)C++中的类可以定义与类名相同的特殊成员函数,这种与类名相同的成员函数叫做构造函数; 2)构造函数在定义时可以有参数; 3)没有任何返回类型的声明。 (2)调用: 自动调用:一般情况下C++编译器会自动调用构造函数 手动调用:在一些情况下则需要手...

2017-09-18 20:41:26

阅读数 359

评论数 0

c++引用

C++的引用 (1)      概念:在c++中,引用的意思就是引用可以看作一个已定义变量的别名。 (2)      语法:int a = 10; int &b = a; (意思是b引用a,这个时候a和b代表同一块地址,并且有一样的数据) (3)      例子:(普通引用) #i...

2017-09-16 20:28:29

阅读数 201

评论数 0

c++之命名空间和结构体

(1)C++的命名空间 关键字:namespace  用来定义命名空间 一个中大型软件往往由多名程序员共同开发,会使用大量的变量和函数,不可避免地会出现变量或函数的命名冲突。当所有人的代码都测试通过,没有问题时,将它们结合到一起就有可能会出现命名冲突。   例如很多人都参与了一个文件管理系...

2017-09-13 20:16:52

阅读数 846

评论数 1

C语言之网络编程(服务器和客户端)

Linux网络编程 1、 套接字:源IP地址和目的IP地址以及源端口号和目的端口号的组合称为套接字。其用于标识客户端请求的服务器和服务。 常用的TCP/IP协议的3种套接字类型如下所示。 (1)流套接字(SOCK_STREAM): 流套接字用于提供面向连接、可靠的数据传输服务。该服务将保证数据能...

2017-08-18 20:27:36

阅读数 24586

评论数 5

C语言之生产者与消费者模型

多线程并发应用程序有一个经典的模型,即生产者/消费者模型。系统中,产生消息的是生产者,处理消息的是消费者,消费者和生产者通过一个缓冲区进行消息传递。生产者产生消息后提交到缓冲区,然后通知消费者可以从中取出消息进行处理。消费者处理完信息后,通知生产者可以继续提供消息。 要实现这个模型,关键在于消费...

2017-08-17 15:01:55

阅读数 7567

评论数 0

C语言之模拟卖票

用共享内存和信号量去模拟一个卖火车票的程序。   首先建立一个共享内存和一个信号量,并初始化信号量,然后用一个指针指向共享内存。然后调用一个卖票的函数,去模拟卖票的功能。 头文件 #ifndef __SEMAPHORE_H__ #define __SEMAPHORE_H__ union s...

2017-08-14 19:03:18

阅读数 247

评论数 0

C语言之文件编程标志I/O库(2)

标志I/O库:C标准库提供了操作文件的标准I/O函数库,与系统调用相比,主要差别是实现了一个跨平台的用户态缓冲的解决方案。简单来说就是标准I/O的移植性更好。 (1) 函数fopen(): #include   // 头文件 FILE *fopen(const char *path, c...

2017-08-10 19:53:29

阅读数 302

评论数 0

C语言之进程控制(僵尸进程和守护进程)

进程控制编程   1、子进程先父进程先结束:如果子进程结束的时候,父进程不做任何处理,那么这个子进程的一些信息会被保留,比如子进程的文件描述符,此时的子进程会被称为僵尸进程。这种僵尸进程会给程序带来不可想象的伤害,所以我们要尽量避免僵尸进程的产生。 僵尸进程产生的过程: (1)父进程调用f...

2017-08-09 20:41:17

阅读数 1641

评论数 0

C语言判断二叉树的子树

题目:输入两颗二叉树A和B,判断B是不是A的子结构。比如: 思路:第一步在树A中找到和B的根结点的值一样的点假设为R,第二部再判断A中以R为根结点的子树是不是包含和树B一样的结构。 代码: #include #include typedef struct _bt...

2017-08-08 20:08:25

阅读数 241

评论数 0

C语言之文件编程(文件1加文件2)

手动创建两个文本文件text1.txt,text2.txt,要求编程创建text3.txt,实现text1.txt和text2.txt文件中除去首行和末尾对应的数据相加,三个文本的内容如下

2017-08-07 20:23:22

阅读数 287

评论数 0

C语言之文件系统编程(1)

在Linux中,为了更好地保护内核空间,程序的运行空间分为内核空间和用户空间(也就是常称的内核态和用户态),它们分别运行在不同的级别上,在逻辑上是相互隔离的。因此,用户进程在通常情况下不允许访问内核数据,也无法使用内核函数,它们只能在用户空间操作用户数据,调用用户空间的函数。 1、 文件打开:Op...

2017-08-06 20:14:45

阅读数 1010

评论数 0

C语言之简单计算器

简易计算器//头函数#ifndef __1JISUANQI_H__ #define __1JISUANQI_H__ #define TRUE 1 #define FLASE 0 #define SIZE 100 typedef struct _numstack { float data; ...

2017-08-04 17:34:03

阅读数 322

评论数 0

C语言之停车场

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

2017-08-04 17:21:21

阅读数 1460

评论数 0

C语言之各种排序法及核心思想(冒泡、鸡尾酒、选择、插入、二分法、希尔、堆、归并、快速)

#include void swap(int num[],int a, int b) { int tmp; tmp = num[a]; num[a] = num[b]; num[b] = tmp; } void printfA(int *num,int len) { int ...

2017-08-03 19:28:45

阅读数 694

评论数 0

C语言之从尾到头打印链表

从尾到头打印链表: 看完这题以后,很多人的第一反应就是从头到尾输出比较简单,于是我们很自然地想到把链表中链接结点的指针反转过来,改变链表的方向,就可以从头到尾输出了。但是该方法会改变原来链表的结构。那如果我们不该表链表的结构又怎样打印呢。 #include #include typede...

2017-08-02 19:54:25

阅读数 473

评论数 2

C语言之递归(李白打酒)

#include int count = 0; void libai(int store, int flower,int alco, int pre, char *ch, int index) { if(store == 0 && flower == 0) { if(...

2017-08-01 20:55:17

阅读数 458

评论数 0

C语言之树

//头函数#ifndef __1TREE_H__ #define __1TREE_H__ #define FLASE 0 #define TRUE 1 struct _treenode; typedef struct _childnode { struct _treenode *par...

2017-07-31 19:48:10

阅读数 173

评论数 0

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