自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【项目】自主实现HTTP服务器:从Socket到CGI全流程解析

本项目旨在通过从零实现一个多线程HTTP服务器,深入理解HTTP协议、网络套接字、线程管理、CGI通信等底层技术。项目首先介绍了网络协议栈的分层结构及HTTP协议的基本特点,包括其无连接、无状态的特性以及通过Cookie和Session维护用户状态的机制。接着,详细解析了HTTP请求和响应的格式,以及常见的HTTP方法和状态码。此外,项目还探讨了CGI机制,解释了服务器如何通过创建子进程调用CGI程序处理用户请求,并实现业务逻辑与服务器逻辑的解耦。最后,项目设计了统一的日志系统,用于记录服务器运行状态,帮助

2025-05-16 14:23:11 953 20

原创 【上海大学数据库原理实验报告】MySQL基础操作

​ 通过这次实验,我初步熟悉了MySQL的一些基础操作。从个人感觉上来说,SELECT语句似乎是关系代数表达式的一种更为直观的表达方式,因此上手也较快,相信自己在后续的实验中对MySQL语句的掌握更加熟练。

2025-04-30 20:07:16 799 18

原创 【上海大学数据库原理实验报告】MySQL数据库的C/S模式部署

​ 通过这次实验,我初步掌握了MySQL数据库的C/S模式部署。在此之前,我对数据库的使用还仅仅停留在单机访问的阶段,而现在学习了C/S模式部署,也让我意识到这才是数据库在大多数情况下的应用场景,所以我感觉应该进一步熟练部署过程。

2025-04-22 15:28:14 376 23

原创 【上海大学计算机系统结构实验报告】多机环境下MPI并行编程

​ 通过本次实验,我系统掌握了分布式MPI环境的搭建流程,也进一步巩固了SSH无密码登录以及NFS共享配置的方法。实验中通过多主机MPI程序运行验证了并行计算在大规模数据处理中的高效性。这让我联想到在数据库系统中也有通过部署大规模集群来实现高并发访问和海量数据处理的能力,不过我并不确定这两者之间的原理是否相同,希望以后有机会能进一步学习其中的原理。

2025-04-19 17:15:41 1046 18

原创 【项目】构建高性能多线程内存池:简化版 tcmalloc 实现指南

举个例子:申请 257KB,虽然只超出一点,但由于已经超过 256KB,因此要按页对齐,257KB 对应 32.125 页,就得向上取整,按 33 页来分配,总共是 264KB。最后,由于整个基数树的写入和读取逻辑在流程中是严格分离的,我们可以保证不会出现两个线程同时对同一个页号进行读写操作的情况,这就为彻底移除锁提供了基础条件,使得整体性能在数据量增长时也能保持良好表现。浪费最多的点通常是每个区间的起始,比如 1B、129B、1025B,这些对齐后会有一定冗余,但相对于分配效率,这点浪费可以接受。

2025-04-15 21:50:55 6147 18

原创 六、继承(三)

之前我们说过,初始化列表初始化的顺序跟出现的顺序无关,而跟声明的顺序有关,也就是说谁先声明谁先初始化,而对于继承也有类似的特性,谁先被继承谁就先声明。,此时数据冗余的影响并不大,而当继承的成员有很多时,通过存放一个指向虚基表的指针再通过偏移量来得到公有的对象就可以极大地节省空间了。实际上,这个地方空下来是为多态做准备,这里我们暂且不表,我们现在需要知道的是,这里不只是用来存偏移量,还会用来存别的数据。为了解决菱形继承的二义性和数据冗余的问题,C++又引入了虚拟继承的概念,而要使用虚拟继承,就要用到关键字。

2025-04-13 11:44:47 1084 16

原创 六、继承(二)

的地址都是一样的,而且不管是基类还是派生类都可以对它进行访问,也就是说当基类定义了。如果要让基类友元访问派生类的私有和保护成员,需要在派生类中也进行声明。这样一来,就可以实现一个不能被继承同时又不影响创建自己对象的类了。如果一个基类中有存在静态成员,那么在派生类中是怎么继承的呢?类的对象时,也将调用不到它的构造和析构函数,那该怎么办呢?,也就是说基类友元不能访问派生类的私有和保护成员。从运行结果可以看到,不管是基类还是派生类,静态成员。如果我们想实现一个不能被继承的类,该怎么做呢?从运行结果可以看到,

2025-04-09 15:45:44 477 11

原创 【上海大学计算机组成原理实验报告】七、程序转移机制

学习实现程序转移的硬件机制//掌握堆栈寄存器的使用//手动方式实现子程序调用转移过程//手动方式实现子程序返回转移过程//编程实现`OUT`寄存器交替显示`11`和`55`//若要求`11`和`55`各显示`50`次后停机,应该如何修改程序?//根据实验指导书的相关内容,实验箱系统的程序转移硬件机制在于,当`LDPC`有效时,如果此时`DUBS`上的值就是转移的目标地址,则此目标地址被打入`PC`,从而实现程序的转移;若`LDPC`为`0`是附带条件的,就形成“条件转移”。

2024-06-10 19:56:56 2148 50

原创 【上海大学计算机组成原理实验报告】六、内存系统实验

学习内存访问机制//理解代码和数据的分区存放原理和技术//手动方式把立即数`33H`写入内存`D1H`单元//手动方式把`D1H`单元的内容读出,再送入`ST`单元//在`CP226`汇编语言程序集成开发环境下编写程序//既然有`ORG`微指令,为什么集成开发环境下载到实验箱的目标程序的第一条执行语句最好存放在0号地址?//上海大学计算机组成原理实验//内存系统实验

2024-06-01 22:24:10 2755 64

原创 【上海大学计算机组成原理实验报告】五、机器语言程序实验

机器语言程序实验//理解计算机执行程序的实际过程//学习编制机器语言简单程序的方法//将R1中的数值左移n次送OUT,其中n是R2中的数值。(指令码从10开始)//完成R3=R0×R1,结果送OUT。(指令码从30开始)//建立“中文汇编指令”需要哪些条件?//上海大学计算机组成原理实验报告

2024-05-15 20:54:10 1892 50

原创 【上海大学计算机组成原理实验报告】四、指令系统实验

分析并验证指令功能//观察机器指令码为`66H`的各微指令信号,验证该指令的功能。假设`A=03H`,`R2=77H`,`77`地址单元存放`06H`数据。//设计指令,完成相应功能//修改机器指令码为`E8H`的功能,使其完成“输出`A+W`的结果右移一位的值送OUT输出”操作//在微指令结构的计算机中,一条指令从启动到产生功能经过哪些环节?//了解指令结构、PC寄存器的功能和指令系统的基本工作原理。

2024-04-24 21:19:48 2497 67

原创 【上海大学计算机组成原理实验报告】三、微指令系统实验

微指令系统实验//了解译码器、微指令结构的基本工作原理//学习设计微指令的方法//分析指令功能,并自行编制一条指令//观察微指令存储器地址为31H单元的内容,分析其控制功能,并编制一条微指令实现“A非”运算后右移一位的值送OUT,把这条微指令放入微程序存储器的32H单元,将31H和32H连续执行以验证其功能是否实现//如何给μPC置初值?

2024-04-11 15:36:59 2088 60

原创 【上海大学计算机组成原理实验报告】二、运算器实验

运算器实验//算术、逻辑运算单元的控制方法//机器语言程序的运行过程//人工译码//CP226实验仪//计算07H+6AH后左移一位的值送OUT输出//把39H取反后同64H相或的值送入R2寄存器//如何将R2中的数据送至A寄存器中?

2024-04-01 20:00:12 2713 56

原创 【上海大学计算机组成原理实验报告】一、数据传送实验

将58H写入A寄存器//将6BH写入W寄存器//将C3H写入R1寄存器//将C3H写入R1寄存器//了解实验仪器数据总线的控制方式//掌握数据传送的基本原理//掌握各寄存器的结构、工作原理及其控制方法//数据传送实验

2024-03-15 17:04:07 3180 66

原创 【C++】102.二叉树的层序遍历

只用一个队列实现二叉树的层序遍历//当前层的节点全部出队列的时候一定是下一层的节点全部进入队列//vector levelOrder(TreeNode* root)//给你二叉树的根节点 root,返回其节点值的层序遍历。 (即逐层地,从左到右访问所有节点)//只需要再增加一个变量`levelSize`,用来记录每一层的数据个数,然后再让这个队列一层一层的出去

2024-03-06 22:00:48 1425 57

原创 六、继承(一)

继承的引入//继承的概念及定义//继承的定义格式//继承关系和访问限定符//继承基类成员访问方式的变化//基类和派生类对象赋值转换//基类和派生类对象赋值转换引入//基类和派生类对象赋值转换的规则//继承中的作用域//派生类的默认成员函数

2024-03-04 10:53:53 1039 54

原创 五、模 板

泛型编程//函数模板//函数模板的定义//函数模板的原理//函数模板的实例化//隐式实例化//显式实例化//函数模板的特征//类模板//类模板的定义//类模板的特征//非类型模板参数//模板的特化//函数模板特化//类模板特化//全特化//偏特化//部分特化//参数更进一步的限制//类模板特化应用示例//模板的分离编译//总结

2024-01-20 10:20:37 1339 72

原创 四、C++内存管理

C/C++内存分布//C++动态内存管理//new和delete//new、delete和malloc、free的区别//new和delete的底层原理//new和delete需匹配使用的原因//定位new表达式

2024-01-12 11:18:37 1685 56

原创 二、类与对象(四)

内部类的概念//内部类的特性//匿名对象的引入及特性//编译器对拷贝对象时的一些优化//连续构造和拷贝构造时的优化//参数类型为引用时的优化//传值返回时的优化

2024-01-06 14:05:03 1633 62

原创 三、一个规范的日期类

日期类//Date类//一个规范的日期类//Time类//时间类

2024-01-02 20:56:44 863 54

原创 二、类与对象(三)

初始化列表//初始化列表的引入//初始化列表的特性//explicit关键字//static成员//友元//友元函数的特性//static成员的特性

2023-12-29 10:54:06 1629 61

原创 【上海大学数字逻辑实验报告】七、中规模元件及综合设计

中规模元件及综合设计//掌握中规模时序元件的测试//在Quartus II上设计序列发生器//用74LS161芯片构造模10计数器//在Quartus II设计一个二进制序列01100111发生器//上海大学数字逻辑实验报告

2023-12-17 16:22:36 7154 63

原创 【上海大学数字逻辑实验报告】六、时序电路

上海大学数字逻辑实验报告//时序电路//掌握同步二进制计数器和移位寄存器的原理//用分立元件构成2位同步二进制加计数器//在Quartus II上设计单向移位寄存器//在Quartus II上设计环形计数器//构成3位同步二进制加(减)计数器//用74LS74构成双向移位寄存器

2023-12-12 23:05:50 7818 43

原创 【上海大学数字逻辑实验报告】五、记忆元件测试

上海大学数字逻辑实验报告//记忆元件测试//R-S触发器//D触发器//JK触发器//74LS00芯片构成钟控RS触发器//74LS112实现D触发器//在Quartus II上用D触发器实现JK触发器//用D触发器实现RS触发器的功能//用D触发器实现T触发器的功能//用JK触发器实现D触发器的功能//用JK触发器实现RS触发器的功能//用JK触发器实现T触发器的功能

2023-12-09 11:28:58 9280 52

原创 【上海大学《面向对象程序设计A》课程小项目报告】抽象向量类模板及其派生类

上海大学《面向对象程序设计A》课程小项目报告//抽象向量类模板//派生向量类//派生字符串类//测试及异常处理//联合测试

2023-12-05 18:20:57 1269 47

原创 【上海大学数字逻辑实验报告】四、组合电路(三)

多路选择器74LS151//译码器74LS138//在Quartus II上使用多路选择74LS151设计电路//在Quartus II上使用译码器74LS138设计电路//用最小项表达逻辑函数

2023-12-05 09:11:08 17139 40

原创 【上海大学数字逻辑实验报告】三、组合电路(二)

掌握8421码到余3码的转换//掌握2421码到格雷码的转换//使用Quartus II设计8421码到余3码的转换电路逻辑图//使用Quartus II设计2421码到格雷码的转换电路逻辑图//设计2421码到Gray码的转换电路//设计8421码到余3码的转换电路

2023-12-02 17:29:04 5370 48

原创 【上海大学数字逻辑实验报告】二、组合电路(一)

半加器和全加器的逻辑测试//异或门逻辑功能测试//使用分立元件的异或门和与非门分别构成半加器和全加器,并进行测试//使用Quartus II设计二位全加器//74LS00、74LS86

2023-11-29 22:57:45 4252 47

原创 【上海大学数字逻辑实验报告】一、基本门电路

基本门电路//与非门逻辑功能测试//74LS00//复合门和基本门的关系//

2023-11-27 21:14:50 8875 40

原创 二、类与对象(二)

this指针//C语言和C++实现Stack的对比//类的默认成员函数//构造函数//析构函数//拷贝构造函数//赋值运算符重载//const成员函数//取地址及const取地址操作符重载

2023-11-22 21:37:13 918 42

原创 二、类与对象(一)

面向过程和面向对象初步认识//类的引入//类的定义//类的定义方式//类的成员变量命名规则的建议//类的访问限定符及封装//public、protected、private//封装//类的作用域//类的实例化//类的大小

2023-11-01 22:28:14 458 53

原创 一、C++入门

C++关键字//命名空间//命名空间的定义//部分展开//全局展开//C++输入&输出//缺省参数//函数重载//引用//常引用//传值返回和引用返回的效率比较//引用和指针的区别//内联函数//auto关键字//基于范围的for循环

2023-10-23 21:14:14 584 42

原创 【C++】415.字符串相加

字符串相加:给定两个字符串形式的非负整数num1和num2 ,计算它们的和并同样以字符串形式返回。你不能使用任何內建的用于处理大整数的库(比如 BigInteger),也不能直接将输入的字符串转换为整数形式。

2023-10-18 22:16:42 2881 44

原创 二十二、通讯录实现

通讯录基本功能//通讯录结构设计//通讯录具体功能及代码实现//初始化通讯录函数//增加联系人函数//显示所有联系人信息函数//查找指定联系人函数//删除联系人函数//修改指定联系人函数//通讯录的结构优化//初始化通讯录函数的优化//增加联系人函数的优化//释放通讯录空间函数

2023-10-16 21:54:29 947 42

原创 二十一、动态内存管理

动态内存开辟//动态内存函数//malloc//free//calloc//realloc//内存泄漏的概念//内存泄漏的分类//常见的动态内存错误//对NULL指针进行解引用//对动态开辟的空间越界访问//对非动态开辟的空间使用free释放//使用free释放动态开辟空间的一部分//对同一块动态内存多次释放//动态开辟内存忘记释放(内存泄漏)//C/C++程序的内存开辟//柔性数组

2023-10-13 13:08:10 385 40

原创 二十、自定义类型:枚举和联合

枚举类型的声明//枚举类型的优点//枚举类型的使用//联合体类型的声明//联合体类型的特点//联合体大小的计算//联合体类型的应用

2023-10-11 16:28:14 243 28

原创 十九、自定义类型:结构体

结构的声明//特殊的声明//结构体变量的创建和初始化//结构体内存对齐//对齐规则//offsetof宏//内存对齐的原因//修改默认对齐数//结构体传参//位段的定义//位段的内存分配//位段无法跨平台的原因//位段的应用//使用位段的注意事项

2023-10-09 20:37:27 221 31

原创 十八、数据在内存中的存储

整数在内存中的存储//大小端字节序和字节序判断//大小端的成因//浮点数在内存中的存储//浮点数的存储过程//浮点数的读取过程

2023-10-07 12:25:26 181 31

原创 十七、C语言内存函数

memcpy函数的使用和模拟实现//memmove函数的使用和模拟实现//memset函数的使用//memcmp函数的使用

2023-10-04 23:16:05 813 22

原创 十六、字符函数和字符串函数

字符分类函数//字符转换函数//strlen的使用和模拟实现//strcpy的使用和模拟实现//strcat的使用和模拟实现//strcmp的使用和模拟实现//strncpy的使用//strncat函数的使用//strncmp函数的使用//strtok函数的使用//strstr函数的使用和模拟实现//strerror函数的使用

2023-09-29 09:23:22 191 24

空空如也

空空如也

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

TA关注的人

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