自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (1)
  • 收藏
  • 关注

原创 界面打飞机游戏,C语言

打飞机由来,游戏中心选择的游戏都是极度符合移动平台规律的休闲游戏。就以飞机大战为例吧,微博上有人说这货只是一个程序员一边啃面包一边突发奇想,用一周时间完成的小游戏。  游戏极为简约,就是漫画式的竖版弹幕作品,游戏也不分什么模式,就是不停的打飞机,看谁的分数高,有两种增益状态随机出现,蓝色的是可以限时增强飞机子弹威力的道具,红色的则是全屏清敌的炸弹。敌机也只有三种,由小到大。我方飞机被敌方飞

2017-08-26 18:44:24 10871 24

原创 马里奥吃金币游戏

id[20];        //编号char name[30];//姓名char num[20]; //手机号码char zhuzhi[100];//住址char tel[20]; //家庭电话

2017-08-25 11:20:03 2176

原创 栈和队列实现停车场(2)

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

2017-08-24 17:57:30 968

原创 栈和队列实现停车场两种方案(1)

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

2017-08-23 09:16:50 2903

原创 栈实现计算器四则运算+一个任意两个超大位数加法

前段时间利用栈写了一个实现了计算器功能的程序。觉得有意思的,因此今天在这了和大家分享一番。首先,要写出计算器,你要按照以下几点去写,才能保证运算的优先级不发生错误。v栈的应用举例n栈在表达式计算过程中的应用 :建立操作数栈和运算符栈。运算符有优先级。规则:n自左至右扫描表达式,凡是遇到操作数一律进操作数栈。n当遇到运算符时,如果它的优先级比运算符栈栈

2017-08-22 09:05:29 643

原创 任意长度字符串转化为16位定长的数(类似加密)

如一个数a,不足16位补0,a的ascii 97 转化为   9+7=16大于9   转化为1+6=7  0的ascii 48 转化为4+8=12大于9  转化为1+2=3其他数类似#include#include#includeint main(){ char s[100]="a"; //定义任意长度字符串 int s1[16]; int

2017-08-21 10:05:27 7198 2

原创 电子通讯录(数据库版存储)

需求制作一个电子通讯录,通过该通讯录能存入好友ID号、姓名(英文)、手机号码、家庭住址、公司电话。模块 主界面:主要显示软件功能。A) 添加好友信息。                                   //  id为唯一标识B) 列表好友信息。(包含排序功能)C) 搜索好友D) 删除好友//按姓名查找,如有重名全部列出,让用户选择E )修改好

2017-08-21 09:00:59 2429

原创 电子通讯录(文件保存版)

需求制作一个电子通讯录,通过该通讯录能存入好友ID号、姓名(英文)、手机号码、家庭住址、公司电话。模块 主界面:主要显示软件功能。A) 添加好友信息。                                   //  id为唯一标识B) 列表好友信息。(包含排序功能)C) 搜索好友D) 删除好友//按姓名查找,如有重名全部列出,让用户选择E )修改好

2017-08-20 10:36:04 690

原创 linux下自创网络编程聊天室(4)改进两点

总体设计本聊天室系统采用了c/s形式。服务器主要是处理客户输入信息。首先要存储客户的个人资料,相当于注册。再有,在客户的聊天信息时,也要记录下客户的聊天记录,已备查看聊天记录所用。当然,服务器还有自己的动态数据处理。客户状态分为链接客户和非连接客户,我采用结构体存储链接客户信息,以链表来记录链接客户。而链接客户又分为登陆客户和未登陆客户,这就通过修改链表上客户的名字。当客户一链接客户服务端

2017-08-19 20:50:47 2511 6

原创 linux下自创网络编程聊天室(3)

总体设计本聊天室系统采用了c/s形式。服务器主要是处理客户输入信息。首先要存储客户的个人资料,相当于注册。再有,在客户的聊天信息时,也要记录下客户的聊天记录,已备查看聊天记录所用。当然,服务器还有自己的动态数据处理。客户状态分为链接客户和非连接客户,我采用结构体存储链接客户信息,以链表来记录链接客户。而链接客户又分为登陆客户和未登陆客户,这就通过修改链表上客户的名字。当客户一链接客户服务端

2017-08-18 17:14:24 4716 5

原创 linux下自创网络编程聊天室(2)

总体设计本聊天室系统采用了c/s形式。服务器主要是处理客户输入信息。首先要存储客户的个人资料,相当于注册。再有,在客户的聊天信息时,也要记录下客户的聊天记录,已备查看聊天记录所用。当然,服务器还有自己的动态数据处理。客户状态分为链接客户和非连接客户,我采用结构体存储链接客户信息,以链表来记录链接客户。而链接客户又分为登陆客户和未登陆客户,这就通过修改链表上客户的名字。当客户一链接客户服务端时,

2017-08-18 15:54:47 8731 4

原创 linux下自创网络编程聊天室(1)

在线聊天室在线聊天室,通过网络建立的虚拟聊天室,分为文字聊天室,视频聊天室。网络聊天室是在一个网站中,供许多人通过文字与符号进行实时(您输入的内容马上就能被别人看见)交谈、聊天的场所,它是一个向整个因特网开放的地方。 E时代 “E时代”的到来,给人们提供了各种便利。然而,其中受非议最多、名声最差的莫过于网络聊天了。人们从新闻媒体中听说的、与网络聊天有关的事件,十有八九与诈骗、抢劫、杀人等社

2017-08-18 14:46:10 2291 1

原创 wait和waitpid

#include /* 提供类型pid_t的定义 */#include pid_t wait(int *status)进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已经变成僵尸的子进程,wait就会收集这个子进程的信息,并把它彻底销毁后返回;如果没有找到这样一个子进程,wait就会一直阻塞在这里,直到有一

2017-08-17 08:52:11 230

原创 管道,有名管道以及通信,共享内存

从Unix System V 开始,系统提供有名管道和无名管道两种数据通信方式。无名管道为建立管道的进程和子进程提供一种以比特流方式传送信息的通信管道。在逻辑上可以看作是管道文件,在物理上由文件系统的高速缓冲区构成,而很少起用外设。发送进程利用文件系统的系统调用write (fd[1],buf,size)把buf中长度为size的字符送入管道入口fd[1],接受进程则使用系统调用rea

2017-08-16 22:31:39 602

原创 管道,无名管道,管道间通信

管道通信管道通信(Communication Pipeline)即发送进程以字符流形式将大量数据送入管道,接收进程可从管道接收数据,二者利用管道进行通信。无论是SQL Server用户,还是PB用户,作为C/S结构开发环境,他们在网络通信的实现上,都有一种共同的方法——命名管道。由于当前操作系统的不惟一性,各个系统都有其独自的通信协议,导致了不同系统间通信的困难。尽管TCP/IP协议目前已

2017-08-15 08:41:22 240

原创 进程间通信

进程间通信为什么进程间要通信?实现数据传输,资源共享,通知事件,进程控制数据传输:一个进程需要将它的数据发送给另一个进程 资源共享:多个进程之间共享同样的资源通知事件:一个进程需要向另一个或一组进程发送消息,通知它们发生了某种事情。进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有操作,并能够

2017-08-15 08:40:28 163

原创 信号量和信号的处理

信号(Signal)信号的概念  信号是信息的载体,通常是以某种物理量表现出来的。通信技术不同,采用的传输信号形式就不同。信号的特性:信号必须是可变化、可观测和可实现的某种物理量。信号量卖票系统,几个机器运行同一段代码,但是票不会重复,信号有pv操作头文件#ifndef __SEMAPHORE_H__#define __SEMAPHORE_H__

2017-08-14 09:07:57 329

原创 消息队列

消息队列“消息队列”是在消息的传输过程中保存消息的容器。消息简介“消息”是在两台计算机间传送的数据单位。消息可以非常简单,例如只包含文本字符串;也可以更复杂,可能包含嵌入对象。消息被发送到队列中。“消息队列”是在消息的传输过程中保存消息的容器。消息队列管理器在将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递;如果

2017-08-14 09:00:01 204

原创 linux下多人聊天室

客户端一个在Linux下可以使用的聊天软件,要求至少实现如下功能:1. 采用Client/Server架构2. Client A 登陆聊天服务器前,需要注册自己的ID和密码3. 注册成功后,Client A 就可以通过自己的ID和密码登陆聊天服务器4. 多个Client X 可以同时登陆聊天服务器之后,与其他用户进行通讯聊天5. Client A成功登陆后可以查看当前聊天室内其他在线用户Clien

2017-08-12 19:23:46 5259 4

原创 Linux下数据库sqlite3

最近在Linux下用到数据库sqlite3,于是开始了该方面的学习。 0. 引言 我们这篇文章主要讲述了如何在C/C++语言中调用 sqlite 的函数接口来实现对数据库的管理, 包括创建数据库、创建表格、插入数据、查询数据、删除数据等。 1. 说明 这里我们假设你已经编译好了sqlite的库文件 : libsqlite3.a libsqlite3.la l

2017-08-11 09:01:18 765

原创 父进程子进程

(1)创建子进程,终止父进程由于守护进程是脱离控制终端的,因此首先创建子进程,终止父进程,使得程序在shell终端里造成一个已经运行完毕的假象。之后所有的工作都在子进程中完成,而用户在shell终端里则可以执行其他的命令,从而使得程序以僵尸进程形式运行,在形式上做到了与控制终端的脱离。(2)在子进程中创建新会话这个步骤是创建守护进程中最重要的一步,在这里使用的是系统函数sets

2017-08-09 19:43:59 742

原创 从链表中读取文件和写文件

#ifndef __1_H_#define __1_H_#define SIZE (sizeof(struct tongxun)/sizeof(char))typedef struct tongxun{char id[20];char name[30];long num;char zhuzhi[100];long tel;struct tongxun

2017-08-08 09:17:30 4909 1

原创 文件操作,标准IO,系统调用

系统调用(System Call)所有的操作系统都提供多种服务的入口点,程序由此向内核请求服务。这些可直接进入内核的入口点被称为系统调用。操作系统提供的服务l 进程控制l 文件系统控制l 内存管理l 网络管理l 用户管理l 进程间通信l ...

2017-08-07 09:11:57 569

原创 文本内容相加

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

2017-08-06 20:25:07 1371

转载 C网络编程

网络编程 编辑网络编程从大的方面说就是对信息的发送到接收,中间传输为物理线路的作用。网络编程最主要的工作就是在发送端把信息通过规定好的协议进行组装包,在接收端按照规定好的协议把包进行解析,从而提取出对应的信息,达到通信的目的。中间最主要的就是数据包的组装,数据包的过滤,数据包的捕获,数据包的分析,当然最后再做一些处理,代码、开发工具、数据库、服务器架设和网页

2017-08-06 09:01:01 2459

原创 二叉树非递归遍历

1、前序遍历的非递归实现   根据先序遍历的顺序,先访问根节点,再访问左子树,后访问右子树,而对于每个子树来说,又按照同样的访问顺序进行遍历,非递归的实现思路如下:对于任一节点P,1)输出节点P,然后将其入栈,再看P的左孩子是否为空;2)若P的左孩子不为空,则置P的左孩子为当前节点,重复1)的操作;3)若P的左孩子为空,则将栈顶节点出栈,但不输出,并将出栈节点的右孩子置

2017-08-05 22:03:28 152

原创 C语言几种常用排序

C语言几种常用排序[pái xù]  排序 编辑排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。分内部排序和外部排序。若整个排序过程不需要访问外存便能完成,则称此类排序问题为内部排序。反之,若参加排序的记录数量很大,整个序列的排序过程不可能在内存中完成,则称此类排序问题为外部排序。内部排序的过程是一个逐步扩大记录的有序序列

2017-08-04 09:12:57 306

转载 Linux下c语言多线程编程

微软亚洲研究院,腾讯研究院,迅雷面试时整理的,另外也加入一些其它IT公司如百度,阿里巴巴的笔试面试题目,因此具有很强的针对性。系列中不但会详细讲解多线程同步互斥的各种“招式”,而且会进一步的讲解多线程同步互斥的“内功心法”。有了“招式”和“内功心法”,相信你也能对多线程挥洒自如,在笔试面试中顺利的秒杀多线程试题。              ---------------------------

2017-08-03 08:58:04 1746

原创 C语言二叉树及遍历

二叉树的定义二叉树是由 n ( n ≥0 ) 个结点组成的有限集合,该集合或者为空,或者是由一个根结点加上两棵分别称为左子树和右子树的、互不相交 的二叉树组成。特殊二叉树v定义1:满二叉树 (Full Binary Tree)n如果二叉树中所有分支结点的度数都为2,且叶子结点都在同一层次上,

2017-08-02 09:10:41 1444

转载 c++运算符重载,string类重载详解,原理理解

c++运算符重载,string类重载详解,原理理解 C++中预定义的运算符的操作对象只能是基本数据类型。但实际上,对于许多用户自定义类型(例如类),也需要类似的运算操作。这时就必须在C++中重新定义这些运算符,赋予已有运算符新的功能,使它能够用于特定类型执行特定的操作。运算符重载的实质是函数重载,它提供了C++的可扩展性,也是C++最吸引人的特性之一。   运算符重载是通过创建运算符函数实现的,运算符函数定义了重载的运算符将要进行的操作。运算符函数的定义与其他函数的定义类似,惟一的区别是运算符函数的函

2017-08-01 09:10:04 2326 1

转载 c++函数重载,重定义,重写,区别详解理解原理

c++函数重载,重定义,重写,区别详解理解原理函数重载的重要性不言而明,但是你知道C++中函数重载是如何实现的呢(虽然本文谈的是C++中函数重载的实现,但我想其它语言也是类似的)?这个可以分解为下面两个问题1、声明/定义重载函数时,是如何解决命名冲突的?(抛开函数重载不谈,using就是一种解决命名冲突的方法,解决命名冲突还有很多其它的方法,这里就不论述了)2、当我们调用一个重载的函数时,又是如何去解析的?(即怎么知道调用的是哪个函数呢)这两个问题是任何支持函数重载的语言都必须要解决的问题!带着这两

2017-08-01 09:01:29 3662 1

c表达式与流程控制详细

c表达式与流程控制详细

2017-07-13

空空如也

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

TA关注的人

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