Update 更新文档

This commit is contained in:
2026-02-25 23:01:42 +08:00
parent 40aff32fb0
commit 80518309a7
679 changed files with 4611263 additions and 0 deletions

View File

@@ -0,0 +1,344 @@
# QTradeProgram - 大单检测程序源代码提交指南
## 一、提交前准备工作
### 1.1 代码完整性校验
在提交源代码前,需确保代码文件完整覆盖程序核心功能模块,具体需包含以下内容:
* **核心模块文件**
* 主窗口模块:`QMainwindow/QMainwindow.h``QMainwindow/QMainwindow.cpp`、UI 表单文件`ui_QMainwindow.h`
* 订单处理模块:`Sqbase/qorderprocessor.h``Sqbase/qorderprocessor.cpp``Sqbase/OrderBookParser.h``Sqbase/OrderBookParser.cpp`
* 大单管理模块:`Sqbase/qbigordermanager.h``Sqbase/qbigordermanager.cpp`
* 数据结构定义:`include/BZStruct.h``include/qeventbus.h``include/ObjectPool.h``include/tool.h`
* 程序入口:`main.cpp`
* **依赖配置文件**
* 项目配置文件(如 Visual Studio 项目文件`.vcxproj`、Qt 工程文件`.pro`
* 库文件依赖说明(`lib/`目录下第三方库清单及版本说明,如 Futu API、Qt 5.9 库)
* 编译配置说明(编译选项、宏定义、目标平台架构,如 x86/x64
### 1.2 代码格式规范检查
需按照 C++ 代码规范统一格式,避免因格式混乱影响审查或协作效率,具体规范如下:
* **代码缩进**:采用 4 个空格缩进,禁止使用 Tab 键缩进
* **命名规则**
* 类名:采用帕斯卡命名法(如`QOrderProcessor``QBigOrderManager`
* 函数名:采用驼峰命名法(如`findExtremeOrders``cacheResult`
* 成员变量:前缀`m_`+ 驼峰命名(如`m_threadPool``m_cacheHits`
* 常量:全大写 + 下划线分隔(如`MAX_CACHE_SIZE`
* **注释要求**
* 类 / 函数头部:需包含功能描述、参数说明、返回值说明(如`qorderprocessor.h`中函数注释格式)
* 关键算法逻辑在复杂代码块如大单检测算法、LRU 缓存逻辑)旁添加行注释,解释核心逻辑
* 注释占比:源代码注释量不低于代码总量的 30%,确保可读性
### 1.3 冗余文件清理
提交前需删除无关冗余文件,避免占用提交空间或造成混淆,需清理的文件类型包括:
* 编译生成文件:`Debug/``Release/`目录下的`.obj``.exe``.dll`等编译产物
* 临时缓存文件IDE 生成的`.suo``.user``.qmake.stash`等配置缓存
* 日志 / 测试文件:程序运行中生成的`logs/`目录日志文件、测试用例临时数据文件
## 二、不同场景下的提交方式
### 2.1 软件著作权登记提交(官方要求)
若用于软件著作权登记,需严格遵循中国版权保护中心的提交规范,具体流程如下:
#### 2.1.1 纸质版提交
* **材料准备**
1. 源代码打印:需打印完整源代码,若代码总量超过 60 页,可仅打印前 30 页和后 30 页;若不足 60 页,需全部打印
2. 页码标注:每页代码右上角需标注 “第 X 页,共 Y 页”(如 “第 5 页,共 48 页”),页码需连续且清晰
3. 封面制作:为源代码打印件添加封面,封面需包含软件名称(`QTradeProgram-大单检测程序`、版本号V1.0)、著作权人名称、提交日期
* **装订要求**
* 采用左侧胶装或线装,禁止使用订书机装订
* 纸张规格:统一使用 A4 纸,打印分辨率不低于 300dpi文字清晰可辨
* **提交地址**
* 现场提交:中国版权保护中心各地方受理大厅(如北京总部:北京市西城区天桥南大街 1 号)
* 邮寄提交:北京市西城区天桥南大街 1 号中国版权保护中心,邮编 100050收件人注明 “软件登记部”
#### 2.1.2 电子版提交
* **文件格式**
* 源代码需转换为 PDF 格式,单个 PDF 文件大小不超过 20MB若代码量大可分多个 PDF 文件(需按模块或页码拆分,如 “源代码 1-30 页.pdf”“源代码 31-60 页.pdf”
* PDF 文件需添加书签,按模块分类(如 “主窗口模块”“订单处理模块”“数据结构定义”),便于审查时快速定位
* **上传路径**
1. 登录中国版权保护中心官网([http://www.ccopyright.com.cn/](http://www.ccopyright.com.cn/)),进入 “软件著作权登记” 系统
2. 选择 “在线提交”,填写软件基本信息(名称、版本号、开发完成日期等)
3. 在 “上传材料” 环节,选择 “源代码文档”,上传 PDF 格式的源代码文件
4. 确认上传文件无误后提交申请并在线缴纳登记费用200 元 / 件)
### 2.2 团队协作提交Git 版本控制)
若用于团队开发协作,需通过 Git 版本控制系统提交,确保代码管理规范且可追溯,具体步骤如下:
#### 2.2.1 仓库初始化与分支管理
* **仓库创建**
1. 在 Git 仓库平台(如 GitHub、GitLab、Gitee创建项目仓库命名为`QTradeProgram`
2. 初始化仓库结构,创建`README.md`文件,说明项目功能、技术栈、编译步骤
* **分支策略**
* 主分支:`main`(仅用于存放稳定版本代码,禁止直接提交)
* 开发分支:`develop`(团队日常开发分支,用于整合各功能模块代码)
* 功能分支:`feature/xxx`(如`feature/order-detection`用于开发大单检测功能,`feature/cache-optimize`用于优化缓存逻辑)
* 修复分支:`bugfix/xxx`(如`bugfix/thread-safety`用于修复线程安全问题)
#### 2.2.2 代码提交步骤
1. **克隆仓库**
```
git clone https://github.com/\[用户名]/QTradeProgram.git
cd QTradeProgram
```
1. **创建功能分支**
```
git checkout develop
git pull origin develop
git checkout -b feature/\[功能名称]
```
1. **添加代码文件**
将本地源代码文件按目录结构复制到仓库中,确保目录与代码结构一致(如`QMainwindow/``Sqbase/``include/`),然后执行:
```
git add . # 添加所有文件
\# 或单独添加指定文件
git add QMainwindow/QMainwindow.h QMainwindow/QMainwindow.cpp
git add Sqbase/qorderprocessor.h Sqbase/qorderprocessor.cpp
```
1. **提交代码**
```
git commit -m "feat: 新增订单处理模块核心逻辑
\- 实现findExtremeOrders大单检测算法
\- 添加LRU缓存机制cacheResult/getCachedResult方法
\- 支持多线程处理订单数据QtConcurrent+线程池)"
```
提交信息需遵循 “类型:描述” 格式,类型包括`feat`(新功能)、`fix`(修复 bug`docs`(文档更新)、`style`(代码格式调整)等,描述需简洁明了,说明提交内容的核心作用。
1. **推送分支与合并请求**
```
git push origin feature/\[功能名称]
```
推送完成后,在 Git 平台发起 “合并请求”Pull Request/Merge Request将功能分支合并到`develop`分支,指定团队成员进行代码审查,审查通过后完成合并。
### 2.3 本地备份与归档提交
若用于本地备份或归档,需将源代码按版本打包,便于后续追溯或恢复,具体方式如下:
* **压缩打包**
1. 按代码目录结构选中所有文件,使用压缩工具(如 WinRAR、7-Zip压缩为 ZIP 或 RAR 格式
2. 压缩包命名格式:`QTradeProgram_V[版本号]_源代码_YYYYMMDD.zip`(如`QTradeProgram_V1.0_源代码_20251111.zip`
* **归档存储**
1. 建立本地归档目录,按版本号分文件夹存储(如`归档/20251111_V1.0/`
2. 在归档文件夹中添加`版本说明.txt`,记录该版本的功能更新、代码修改点、编译环境要求(如 “V1.0 版本:完成大单检测核心功能,支持沪深 A 股数据监控,编译环境为 Visual Studio 2015+Qt 5.9”)
## 三、提交注意事项
### 3.1 知识产权保护
* 源代码中需添加版权声明,在每个头文件和源文件的开头添加著作权信息,格式如下:
```
/\*
 \* QTradeProgram - 大单检测程序
 \* 版权所有 (C) \[年份] \[著作权人名称]如北京XX科技有限公司/张三)
 \* 本软件为原创开发,拥有完整著作权,未经授权禁止复制、传播或修改
 \*/
```
* 若使用第三方库(如 Futu API、Qt 框架),需在提交材料中添加 “第三方依赖声明”,说明第三方库的名称、版本、授权方式(如 “Futu API V3.0遵循富途开放平台服务协议用于获取股票行情数据Qt 5.9:遵循 GPLv3 开源协议,用于图形界面开发”),避免侵权风险。
### 3.2 版本一致性保障
* 提交的源代码版本需与软件设计说明书、用户手册中描述的版本一致,确保 “源代码 - 文档 - 程序功能” 三者匹配,具体需核对:
* 版本号:源代码中`main.cpp`或配置文件中的版本定义需与著作权申请表中的版本号V1.0)一致
* 功能模块源代码实现的功能如多线程处理、LRU 缓存、大单检测算法),需与软件设计说明书中 “核心功能” 章节描述一致
* 数据结构:`BZStruct.h`中定义的`BigOrderInfo``OrderBookData`等结构,需与设计说明书中 “数据结构设计” 章节一致
### 3.3 安全性与合规性
* 源代码中禁止包含敏感信息,如 Futu API 的密钥(`apiKey``secret`)、用户隐私数据、服务器地址等,若需使用密钥,需在代码中通过配置文件读取(如`config/`目录下的配置文件),且配置文件中不存储明文密钥
* 若软件涉及金融数据(如股票行情、交易订单),需在提交材料中添加 “数据合规声明”,说明数据来源合法(如 “本软件使用的股票行情数据来自富途开放平台,已获得合法授权,仅用于非商业用途”),符合金融数据相关监管要求
## 四、常见问题与解决方案
### 4.1 代码页数不足 60 页,如何提交?
若源代码总页数不足 60 页(如仅 48 页),需将所有代码全部打印(纸质版)或完整转换为 PDF电子版不可仅打印部分页数同时在提交材料中添加 “代码页数说明”,注明 “本软件源代码共 48 页,不足 60 页,已完整提交”。
### 4.2 Git 提交时出现代码冲突,如何处理?
当多人协作提交代码时,若出现分支冲突(如两人同时修改`qorderprocessor.cpp`的同一函数),处理步骤如下:
1. 拉取远程分支最新代码:
```
git pull origin develop
```
1. 查看冲突文件Git 会在冲突文件中标记冲突区域(`<<<<<<< HEAD``=======`为本地代码,`=======``>>>>>>> feature/xxx`为远程代码)
2. 解决冲突:根据业务逻辑保留正确代码,删除冲突标记(`<<<<<<<``=======``>>>>>>>`
3. 重新提交:
```
git add \[冲突文件]
git commit -m "fix: 解决与develop分支的代码冲突保留大单检测算法正确逻辑"
git push origin feature/xxx
```
### 4.3 著作权登记时,源代码格式不符合要求被退回,如何修改?
若因格式问题被退回,需按以下要求调整:
1. 页码:确保每页页码连续,无缺页、重页,页码位置统一(如右上角)
2. 字体统一使用宋体或楷体字号不小于小四号12pt确保文字清晰
3. 代码完整性:若被指出 “核心功能代码缺失”,需补充缺失的模块文件(如遗漏`OrderBookParser.cpp`,需重新打印并提交)
4. 注释:若注释量不足,需在关键函数、算法逻辑旁补充注释,确保注释占比达标后重新提交
> (注:文档部分内容可能由 AI 生成)