Files
QTradeProgram/软著申请材料/QTradeProgram - 大单检测程序源代码提交指南.md
2026-02-25 23:01:42 +08:00

11 KiB
Raw Permalink Blame History

QTradeProgram - 大单检测程序源代码提交指南

一、提交前准备工作

1.1 代码完整性校验

在提交源代码前,需确保代码文件完整覆盖程序核心功能模块,具体需包含以下内容:

  • 核心模块文件

    • 主窗口模块:QMainwindow/QMainwindow.hQMainwindow/QMainwindow.cpp、UI 表单文件ui_QMainwindow.h

    • 订单处理模块:Sqbase/qorderprocessor.hSqbase/qorderprocessor.cppSqbase/OrderBookParser.hSqbase/OrderBookParser.cpp

    • 大单管理模块:Sqbase/qbigordermanager.hSqbase/qbigordermanager.cpp

    • 数据结构定义:include/BZStruct.hinclude/qeventbus.hinclude/ObjectPool.hinclude/tool.h

    • 程序入口:main.cpp

  • 依赖配置文件

    • 项目配置文件(如 Visual Studio 项目文件.vcxproj、Qt 工程文件.pro

    • 库文件依赖说明(lib/目录下第三方库清单及版本说明,如 Futu API、Qt 5.9 库)

    • 编译配置说明(编译选项、宏定义、目标平台架构,如 x86/x64

1.2 代码格式规范检查

需按照 C++ 代码规范统一格式,避免因格式混乱影响审查或协作效率,具体规范如下:

  • 代码缩进:采用 4 个空格缩进,禁止使用 Tab 键缩进

  • 命名规则

    • 类名:采用帕斯卡命名法(如QOrderProcessorQBigOrderManager

    • 函数名:采用驼峰命名法(如findExtremeOrderscacheResult

    • 成员变量:前缀m_+ 驼峰命名(如m_threadPoolm_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/),进入 “软件著作权登记” 系统

  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(修复 bugdocs(文档更新)、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中定义的BigOrderInfoOrderBookData等结构,需与设计说明书中 “数据结构设计” 章节一致

3.3 安全性与合规性

  • 源代码中禁止包含敏感信息,如 Futu API 的密钥(apiKeysecret)、用户隐私数据、服务器地址等,若需使用密钥,需在代码中通过配置文件读取(如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 生成)