
程序
文章平均质量分 94
qq_1061856980華仔
这个作者很懒,什么都没留下…
展开
-
随机排座
之前写过一个随机发牌的小程序,但是这次不同的是要随机分组的是人名,而不是数字。 要求:将一个班级的23个人随机分成3组(人数可以自行调整)。#include <stdio.h>#include <time.h>int main(){ char *name[] = { "周星驰", "成 龙", "梁朝伟", "刘...原创 2018-01-05 20:55:12 · 988 阅读 · 0 评论 -
约瑟夫环
题目:有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位.#include void Josephus(){ int n; //n个人 int i = 0; //i代表第i个人,从0开始 int k = 0; //k代表数的数,1,2,3 int flag[1000] = {0};原创 2017-11-20 15:29:07 · 528 阅读 · 1 评论 -
Linux下基于UDP协议实现的聊天室项目(附源码)
好久没来更新了,这段时间一直在着手完成这个项目,由于之前没有接触过这种稍大型的项目,而且对于C/S架构以及UDP通信的了解也不是很深,所以前面很大的一段时间都被浪费掉了,做了很大无用功。 刚开始弄的时候,也是在网上搜了很多资料,找了很多版本,发现大都有一个问题,就是旁人看起来不易理解 ,代码注释行有限,导致看起来一头雾水。所以,本文将会花点篇幅来理清思路(本文使用的是UDP协议进行...原创 2018-01-02 15:58:24 · 8318 阅读 · 6 评论 -
进程同步实例
有时候父进程要求子进程的运算结果进行下一步的运算,或者子进程的功能是为父进程提供下一步执行的先决条件,此时父进程就必须在某个位置停下来,等待子进程运行结束,而如果父进程不等待且直接执行下去,就会出现极大的混乱。可以用wait或waitpid函数来解决这个问题。 下面就是父子进程同步的一个实例,子进程进行写操作,父进程读出子进程写的内容#include <stdio.h>#include原创 2017-12-07 11:30:24 · 1668 阅读 · 0 评论 -
模拟QQ聊天——采用TCP协议的C/S架构实现
模拟QQ聊天,一个服务器处理多个客户端的连接,同时要求各个客户端之间能够自由通信。 本程序采用C/S架构,利用多线程完成。服务器端:a#include <stdio.h>#include <sys/socket.h> #include <sys/types.h>#include <sys/socket.h>#include <stdlib.h>#include <string.原创 2017-12-11 20:16:47 · 3537 阅读 · 0 评论 -
栈的应用--计算器实现四则运算
学习一个知识点并不是那么难,而要运用所学的知识点去实现一个功能或者做一个项目却总不是那么简单。就像这个标题,如何用栈来做出一个计算器呢?我们先来思考一番,比如有个式子:9 + (3 - 1) * 3 + 10 / 2 , 遇到这个式子我们可能一气呵成就能写出答案是20,因为我们从小学就开始学习数学然后计算,我们太习惯了去做这件事而忘记了去思考为什么要这么做。我们先放慢100倍我们的脑速原创 2017-12-03 23:01:53 · 1583 阅读 · 0 评论 -
利用多线程与消息队列实现聊天
在是一个简易聊天中提到,一个进程只能做一件事,其实不然,只是当时没有涉及到线程的概念。所以今天在用多线程来实现一次。 依旧是两个程序,每个程序包含两个线程。#include <sys/types.h>#include <sys/ipc.h>#include <sys/msg.h>#include <stdio.h>#include <stdlib.h>#include <string.h原创 2017-12-10 00:11:02 · 2550 阅读 · 0 评论 -
卖票——多线程模拟卖票系统
网上抢票,方便又高效,很舒服。应用多线程的同步运行可以模拟很多人抢票,而且不会发生冲突。下面,我们就来利用多线程来模拟一把。#include <stdio.h>#include <stdlib.h>#include <pthread.h>int Tickets = 100; //定义票数为全局变量,所以线程都可访问pthread_mutex_t mutex; //定义互斥锁void原创 2017-12-09 23:56:13 · 3250 阅读 · 0 评论 -
简易聊天——消息队列实现进程间通信
为什么这个不是极简版聊天了呢?因为它加强了,不像管道实现的聊天,只能一个人说话,而另一个人只能静静地看着。而消息队列实现的可以两个人正常交流。 在此之前,我们先来了解一下消息队列: *unix早期通信机制之一的信号能够传送的信息量有限,管道则只能传送无格式的字节流,这无疑会给应用程序开发带来不便。消息队列(也叫做报文队列)则克服了这些缺点。 *消息队列就是一个消息的链表.可以把消息看作一个记录原创 2017-12-09 00:07:02 · 1460 阅读 · 0 评论 -
极简聊天——有名管道实现进程间通信
为什么说极简呢,因为下面这个程序只能从一端写另一端读。 注意:有名管道用于系统中任意两个进程间通信(不需要有亲缘关系)fifo_read.c#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#inclu原创 2017-12-08 19:58:48 · 1028 阅读 · 0 评论 -
通讯录系统设计(带文件保存)
语言:c语言格式: 编号 姓 名 住址 电话 住宅电话 201701 * xxxx 183****5668要求:使用结构体形式对数据存储功能:使用链表实现增加(在增加人员的过程中有一个自动排序功能,比如按姓名排序)、删除、修改、查找(比如:工号查找、电话查找)的功能; (1)添加用户信...原创 2017-12-08 20:36:52 · 1150 阅读 · 0 评论 -
通讯录
语言:c语言格式: 编号 姓 名 住址 电话 住宅电话 201701 *** xxxx 183****5668要求:使用结构体形式对数据存储功能:使用链表实现增加(在增加人员的过程中有一个自动排序功能,比如按姓名排序)、删除、修改、查找(比如:工号查找、电话查找)的功能;(1)添加用户信息(号码长度 ...原创 2017-11-30 10:31:09 · 228 阅读 · 0 评论 -
学生管理系统
题目:设计一个学生管理系统,要求:1)可以输入学生的姓名,学号,语文和数学成绩2)通过学生的姓名查找该生的其他信息3)各科成绩排序4)修改功能5)显示全部6)退出功能#include #include #include int i = 0;struct student { int ID;char name[10];int原创 2017-11-20 15:34:48 · 551 阅读 · 0 评论 -
题目:设计一个洗牌发牌的程序
#include int main(){int n,i;int flag[52]= {0};srand((unsigned int)time(NULL));for(i = 0; i {n = rand()%52;while(flag[n] == 1){n = rand()%52;}flag[n] = 1;if(n >= 0 &&原创 2017-11-20 15:21:40 · 1956 阅读 · 0 评论 -
const在C和C++中的区别
C语言中 const修饰的变量是一个 常变量,本质还是变量,有自己的地址空间; C++中 const 变量声明的是一个真正的常量,不是变量,所以编译器不会为该常量分配空间,const 修饰的常量会被放到 符号表 中。看个栗子就明白了: test.c#include <stdio.h>int main(){ const int a = 10; int *p = (int *)原创 2018-03-05 15:32:49 · 174 阅读 · 0 评论