自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 QT C++ TCP Socket 请求心知天气

【代码】QT C++ TCP Socket 请求心知天气。

2023-12-27 18:52:30 642

原创 QT C++ WIFI扫描连接 IP打印 百分百有效

还是有许多不懂的问题,大佬看了如果愿意教我的话,我会非常乐意求教的。

2023-12-26 11:47:44 576

原创 Linux C 基于tcp和epoll在线聊天室

服务端:实现了验证用户是否已经存在(支持最大64用户连接)支持广播用户进入退出聊天室以及用户聊天内容。这里只提供里服务端代码,如果想要看客户端代码。

2023-11-22 20:21:02 705

原创 Linux C IO复用

什么是IO复用呢?I/O复用(I/O multiplexing),指的是通过一个支持同时感知多个描述符的函数系统调用,阻塞在这个系统调用上,等待某一个或者几个描述符准备就绪,就返回可读条件。IO多路复用解决了什么问题呢?当多个客户端与服务器通信时,若服务器阻塞在其中一个客户的read(sockfd1,…),当另一个客户数据到达sockfd2时,服务器无法及时处理,此时需要用到IO多路复用。

2023-11-22 20:14:14 414

原创 Linux C 基于tcp多线程在线聊天室

客户端实现了判单用户登录结果、防止单回车字符发送、保存和显示历史聊天记录(仅自己)、退出聊天室功能。服务端实现了验证用户是否已经存在(支持最大64用户连接)支持广播用户进入退出聊天室以及用户聊天内容。

2023-11-20 19:40:04 376

原创 Linux C 网络编程概述

计算机网络是指将不同地理位置,具有独立功能的多台计算机及网络设备通过通信线路(包括传输介质和网络设备连接起来),在网络操作系统、网络管理软件及网络通信协议的共同管理和协调下实现资源共享和信息传递的计算机系统。网络地址转换(NAT)是一种用于访问 Internet 访问模式广域网(WAN)的技术,用于将私有(保留)地址转换为合法 IP 地址。NAT 不仅能够有效地额抵抗外部网络攻击(防火墙:外来连接),还能够在 IP 地址分配不理想,不足的时候有效,合理化的分配 IP 地址,从而能够进行互联网访问。

2023-11-20 19:30:43 309

原创 Linux C 线程间同步机制

同进程内的所有线程共同使用进程的内存空间,并且线程可以在直接应用层完成,因此线程和线程之间的通信使用“全局变量”即可完成通信。但是由于 Linux 系统没有数据保护方式,所在在线程通信的时候需要进行数据的“同步保护”。在同进程中的多个线程都要操作的数据进行保护时,只允许一个线程操作要保护的内容。Linux 系统使用“信号量”、“互斥锁”以及“条件变量”来实现数据同步保护。实现数据保护的流程为:①创建一种使用的保护机制(信号量、互斥锁或条件变量)。

2023-11-16 20:17:11 230

原创 Linux C 线程

线程(英语:thread)是操作系统能够进行运算调度的最小单位(程序执行流的最小单元)。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程。

2023-11-16 19:48:21 320

原创 基于消息队列+多进程编写的银行模拟系统

该案例大体过程为,服务器先启动,初始化消息队列和信号,用多线程技术启动开户、存钱、转账、取钱模块,并且可以控制结束。客户端启动后会自动链接服务器,会将用户的请求发送到请求队列,从响应消息队列读取处理结果,并提示给用户。其他模块轮询检测请求消息队列中是否有自己应该去做事情的消息,如果读取到就开始任务,并且将任务结果发送到响应消息队列。目前用户信息存取是通过txt文件实现的,每个用户单独一个文件。

2023-11-15 19:51:27 69

原创 Linux C 进程间通信

为什么进程间需要通信?为了传输数据、共享资源、通知事件、控制进程等。那么进程间通信的原理是什么呢?进程在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信机制。无名管道只能用于父子进程或兄弟进程之间的通信,而有名管道可用于任意两进程之间通信。在Linux中使用 kill -l 命令可以查看到x 系统中有下 62 个信号,每一个信号都有自己独特的含义。

2023-11-15 19:15:16 481

原创 Linux C 进程编程

官方的来说,进程是程序在某个数据集合上的一次运行活动,也是操作系统进行资源分配和保护的基本单位。通俗的讲,进程就是在程序编译之后,运行起来的二进制文件。

2023-11-13 20:57:01 473

原创 Linux 之 MakeFile

初学者在Linux中编写代码的时候,都会了解到需要使用 gcc 1.c -o app 把 .c源文件 变成可执行文件。但是如果是一个由上百个.c文件构成的项目,我们还得一个个去变成可执行文件么?因此工程管理器应运而生。工程管理器是一个能够管理较多的文件,并且能根据文件时间自动检测出更新过的文件而减少编译的工作量,同时通过读入 Makefile 文件来执行大量的编译工作。Makefile是一种用于自动化构建和编译软件项目的工具。它通常用于管理大型项目中的源代码文件,以及定义项目的编译、链接和其他构建过程。

2023-11-13 00:16:19 397

原创 Linux C 时间编程

3)date -s “20231111 11:11:11”:修改系统时间为2023年11月11日11点11分11秒。返回值:返回一个指向字符串的指针,它代表了结构 struct timeptr 的日期和时间。返回值:该函数返回指向 tm 结构的指针,该结构带有被填充的时间信息。返回值:该函数返回指向 tm 结构的指针,该结构带有被填充的时间信息。timep:指向表示日历时间的 time_t 值的指针。指向表示日历时间的 time_t 值的指针。timeptr:指向 tm 结构的指针。

2023-11-11 15:39:54 138

原创 Linux C 目录编程

相较于文件编程,目录编程也有一套自己的函数,可以进行创建、打开、读取等目录操作。在日常中使用较多的是遍历目录,比如音乐播放器检测本地音乐、视频播放器打开指定目录下的视频等等。

2023-11-11 11:46:37 650

原创 文件IO编程

文件 IO 是不带缓存的 IO。每个 read,write 都调用内核中的一个系统调用。也就是一般所说的低级 I/O——操作系统提供的基本 IO 服务,与 os 绑定,特定于*nix 平台。文件 IO 在 windows 是无法运行的。

2023-11-10 16:47:53 50

原创 标准IO编程

标准IO(标准输入输出)是指在程序中使用的输入输出函数库,它提供了一套标准的文件操作函数,如打开文件、读写文件、关闭文件等。这些函数库包括了stdio.h、stdlib.h等头文件中的函数,如fopen、fclose、fread、fwrite等。标准IO还包括了对标准输入stdin、标准输出stdout、标准错误输出stderr的操作。标准 IO 库处理很多细节。例如缓存分配,以优化长度执行 IO 等。

2023-11-10 16:01:03 175

原创 Linux命令基础介绍

命令行格式命令行输入格式帮助命令Shell中的特殊字符Shell命令Vim命令文件打开方式vim命令行模式vim插入模式vim底行模式vim可视模式。

2023-11-07 20:31:28 71

原创 Linux介绍

说到操作系统大家第一时间想到的是windows和macos,可能是这两大操作系统占据了主流市场。但是作为IT相关人员,我们还应该想到Linux。在70年代,Unix体系的源程序大多可以任意流传。那段时间,人们在创作自己的"程序作品"的同时享受着从事科学探索、创新活动所特有的那种激情和成就感。程序员们如同作家一样,急于"发表"自己的程序作品,并不专注于保守"机密"。1979年,AT&T(美国电报电话公司)宣布了Unix的商业化计划,随之出现了各种二进制的商业Unix版本。

2023-11-06 20:36:58 36

原创 SDUT ACM PTA 数据结构 图论

程序有错误请私信我,以及时改正。10.邻接矩阵表示法创建无向图。不懂得可以私信我,随时解答。12.Dijkstra算法。11.邻接表创建无向图。2.哈利·波特的考试。5.任务调度的合理性。

2023-09-25 09:56:07 247

原创 SDUT ACM PTA 数据结构 树和二叉树

6.交换二叉树中每个结点的左孩子和右孩子。程序有错误请私信我,以及时改正。不懂得可以私信我,随时解答。9.完全二叉树的层序遍历。8.建立与遍历二叉树。

2023-09-25 09:47:35 282

原创 SDUT ACM PTA 数据结构 串、数组、广义表

程序有错误请私信我,以及时改正

2023-09-25 09:41:48 150

原创 SDUT ACM PTA 数据结构 排序

程序有错误请私信我,以及时改正。不懂得可以私信我,随时解答。

2022-11-03 20:13:36 294 1

原创 SDUT ACM OJ PTA 数据结构 查找

程序有错误请私信我,以及时改正。

2022-11-03 19:48:04 256

原创 SDUT ACM OJ PTA 数据结构 栈和队列

栈和队列

2022-09-22 00:43:21 875

原创 SDUT ACM PTA 数据结构 实验二 链表

链表

2022-09-04 09:55:16 636

原创 SDUT ACM OJ PTA 数据结构与算法实验一顺序表

数据结构

2022-08-28 10:38:28 1234

原创 SDUT ACM PTA 数据结构

数据结构实验三 递推实验四 递归实验五 贪心实验六 动态规划

2022-03-09 19:13:01 1218

原创 SDUT ACM OJ PTA 实验六 动态规划

A-数字三角形问题#include<stdio.h>#include<stdlib.h>int max(int a,int b){ if(a>=b) return a; else return b;}int main(){ int n,i,j,a[105][105]; scanf("%d",&n); for(i=1;i<=n;i++) { for(j=1;j<=i;j++) { scanf("%d",&a[

2022-03-09 19:08:54 872

原创 SDUT ACM OJ PTA 实验五 贪心

A-活动选择#include<stdio.h>#include<stdlib.h>struct sk{ int h; int k; int j;}a[105],t;int main(){ int n,i,j; scanf("%d",&n); for(i=1;i<=n;i++) { a[i].h=i; scanf("%d %d",&a[i].k,&a[i].j); } for(i=n;i>1;i--) {

2022-03-09 19:04:38 819

原创 SDUT ACM OJ PTA 实验四 递归

A-计算组合数#include <stdio.h>int f(int n,int m){ int t; if(m==0||n==1||m==n) t=1; else { t=f(n-1,m-1)+f(n-1,m); } return t;}int main(){ int k,i,n,m; scanf("%d",&k); for(i=0;i<k;i++) { scanf("%d %d",&n,&amp

2022-03-09 19:00:44 946

原创 SDUT ACM OJ PTA 实验三 递推

A-马拦过河卒#include <stdio.h>int main(){ int i,j,n,m,g[20][20],f[20][20],x,y; scanf("%d %d %d %d",&n,&m,&x,&y); for(i=0;i<=n;i++) for(j=0;j<=m;j++) { g[i][j]=0; f[i][j]=0;

2022-03-09 18:55:10 686 2

原创 SDUT ACM OJ PTA 实验二链表

A :顺序建立链表#include<stdio.h>#include<stdlib.h>struct node{ int data; struct node *next;}*head,*tail,*p,*q;int main (){ head=(struct node *)malloc(sizeof(struct node)); head->next=NULL; tail=head; int n,i;

2022-02-07 20:57:49 1192 2

原创 SDUT ACM OJ PTA 实验一 结构体、共用体和枚举

A - 检查宿舍卫生#include<stdio.h>struct dormitory_scores{ int a,b,c,d,e,sum;}ds;int main(){ int n,max=-1,k=0; scanf("%d",&n); while(n--) { scanf("%d %d %d %d %d",&ds.a,&ds.b,&ds.c,&ds.d,&ds.e); ds.sum=ds.a+ds.b+ds.c+

2022-01-25 01:43:09 1355

原创 SDUT ACM OJ C语言实验大一

link.实验一link. 实验二link. 实验三link. 实验四link. 实验五link. 实验六link. 实验七link. 实验八link. 实验九

2021-08-30 00:18:46 1202

原创 SDUT ACM OJ 实验九 字符串应用

提交题目记得选择c不然gets函数会报ceA - C语言实验——字符编码#include<stdio.h>int main(){ int i; char a[5]; gets(a); printf("password is "); for(i=0;a[i]!='\0';i++) { printf("%c",a[i]+4); }}B - C语言实验——保留字母#include<stdio.h>int main(){ int i,j; c

2021-08-30 00:09:38 1361 2

原创 SDUT ACM OJ 实验八 指针应用

A - 小泉的难题#include<stdio.h>void f(int *q,int n){ int i,j,t; for(i=0;i<n-1;i++) { for(j=i+1;j<n;j++) { if(*(q+i)>*(q+j)) { t=*(q+i); *(q+i)=*(q+j);

2021-08-29 23:43:08 559 4

原创 SDUT ACM OJ 实验七 函数应用

A - C语言实验——计算表达式#include <stdio.h>#include<math.h>float f(double x,int n){ double i,t=0; for(i=1;i<=n;i++) {x=sqrt(x+i);t+=x;} return x; }int main(){ double x,i; int n; scanf("%lf%d",&x,&amp

2021-08-26 22:20:38 837

原创 SDUT ACM OJ 实验六 二维数组

A - C语言实验——求一个3*3矩阵对角线元素之和#include<stdio.h>int main(){ int z[3][3],i,j,n; for(i=0;i<3;i++) { for(j=0;j<3;j++) { scanf("%d",&z[i][j]); } } n=z[0][2]+z[1][1]+z[2][0]; printf("%d",

2021-08-26 22:00:31 652

原创 SDUT ACM OJ 实验五 一维数组

A - C语言实验——最值#include<stdio.h>#define N 10int main(){ int i,a[N],n,t1,t2,x,y,max=-1,min=1000000; scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d",&a[i]); if(a[i]>max) {max=a[i];x=i;} else if(a[i]<min)

2021-08-23 00:13:21 1742 3

原创 SDUT ACM OJ 实验四 for循环

A - A+B for Input-Output Practice (II)#include<stdio.h>int main(){ int a,c,d; scanf("%d",&a); for(int b=0;b<a;b++) { scanf("%d%d",&c,&d); printf("%d\n",c+d); } return 0;}B - C语言实验——两个数比较#include

2021-08-22 23:40:10 1174 2

空空如也

空空如也

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

TA关注的人

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