2 镜花寒

尚未进行身份认证

风轻云淡

等级
博文 38
排名 6w+

聊天室(c/s架构)

项目要求:(1)采用Client/Server架构。 (2)ClientA登陆聊天服务器前,需要注册自己的ID和密码。 (3)注册成功后,ClientA就可以通过自己的ID和密码登陆聊天服务器。 (4).多个ClientX可以同时登陆聊天服务器之后,与其他用户进行通讯聊天。 (5).ClientA成功登陆后可以查看当前聊天室内其他在线用户C

2017-10-08 18:10:25

c++多继承

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

2017-09-22 15:47:26

c++之运算符重载基础

1、 定义:所谓重载,就是重新赋予新的含义。函数重载就是对一个已有的函数赋予新的含义,使之实现新功能,因此,一个函数名就可以用来代表不同功能的函数,也就是”一名多用”。2、为什么会用运算符重载机制:用复数类举例:Complexc3=c1+c2;原因Complex是用户自定义类型,编译器根本不知道如何进行加减编译器给提供了一种机制,让用户自己去完成,自定义类型的加减操作,这

2017-09-20 20:03:32

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

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

2017-09-18 20:41:26

c++引用

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

2017-09-16 20:28:29

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

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

2017-09-13 20:16:52

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

Linux网络编程1、 套接字:源IP地址和目的IP地址以及源端口号和目的端口号的组合称为套接字。其用于标识客户端请求的服务器和服务。常用的TCP/IP协议的3种套接字类型如下所示。(1)流套接字(SOCK_STREAM):流套接字用于提供面向连接、可靠的数据传输服务。该服务将保证数据能够实现无差错、无重复发送,并按顺序接收。流套接字之所以能够实现可靠的数据服务,原因在于其使用

2017-08-18 20:27:36

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

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

2017-08-17 15:01:55

C语言之模拟卖票

用共享内存和信号量去模拟一个卖火车票的程序。 首先建立一个共享内存和一个信号量,并初始化信号量,然后用一个指针指向共享内存。然后调用一个卖票的函数,去模拟卖票的功能。头文件#ifndef__SEMAPHORE_H__#define__SEMAPHORE_H__unionsemun//定义的共同体{ intval;/*Valu

2017-08-14 19:03:18

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

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

2017-08-10 19:53:29

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

进程控制编程 1、子进程先父进程先结束:如果子进程结束的时候,父进程不做任何处理,那么这个子进程的一些信息会被保留,比如子进程的文件描述符,此时的子进程会被称为僵尸进程。这种僵尸进程会给程序带来不可想象的伤害,所以我们要尽量避免僵尸进程的产生。僵尸进程产生的过程:(1)父进程调用fork创建子进程后,子进程运行直至其终止,它立即从内存中移除,但进程描述符仍然保留在内存中(进程描述符

2017-08-09 20:41:17

C语言判断二叉树的子树

题目:输入两颗二叉树A和B,判断B是不是A的子结构。比如:思路:第一步在树A中找到和B的根结点的值一样的点假设为R,第二部再判断A中以R为根结点的子树是不是包含和树B一样的结构。代码:#include#includetypedefstruct_btreenode{ struct_btreenode*lchild;//树的左孩子 st

2017-08-08 20:08:25

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

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

2017-08-07 20:23:22

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

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

2017-08-06 20:14:45

C语言之简单计算器

简易计算器//头函数#ifndef__1JISUANQI_H__#define__1JISUANQI_H__#defineTRUE1#defineFLASE0#defineSIZE100typedefstruct_numstack{ floatdata; struct_numstack*next;}NumNode;typedefstruct_

2017-08-04 17:34:03

C语言之停车场

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

2017-08-04 17:21:21

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

#includevoidswap(intnum[],inta,intb){ inttmp; tmp=num[a]; num[a]=num[b]; num[b]=tmp;}voidprintfA(int*num,intlen){ inti; for(i=0;i<len;i++) { printf("%4d",num[i

2017-08-03 19:28:45

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

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

2017-08-02 19:54:25

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

#includeintcount=0;voidlibai(intstore,intflower,intalco,intpre,char*ch,intindex){ if(store==0&&flower==0) { if(alco==0&&pre==0) { inti; for(i=0;i<15;i

2017-08-01 20:55:17

C语言之树

//头函数#ifndef__1TREE_H__#define__1TREE_H__#defineFLASE0#defineTRUE1struct_treenode;typedefstruct_childnode{ struct_treenode*parentnode; struct_childnode*childnext;}ChildNode;

2017-07-31 19:48:10
奖章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!