0
点赞
收藏
分享

微信扫一扫

基于C的windows系统文件差异比较 报告+程序

目录

  1. 实验环境、题目、目的 1
    1.1. 实验环境 … 1
    1.2. 实验题目 … 1
    1.3. 个人的实现程度以及原因 … 2
    1.4. 实验目的 … 2
  2. 设计过程 3
    2.1. 前言 … 3
    2.2. 问题的整体构架 … 3
    2.3. 算法核心:最长公共子序列(LCS) … 4
    2.4. 扩展 … 5
    2.5. 命令行 … 7
    2.6. 类的关系 … 9
    2.7. 合并功能 … 11
    2.8. 代码的其他细节 … 11
  3. 设计的详细信息 12
    3.1. 程序的调用过程 … 12
    3.2. 类 Compare 的功能与实现… 13
    3.3. 类 Folder 的功能与实现 … 14
    3.4. 类 LCS 的功能与实现 … 15
    3.5. 主函数 main 的功能与实现 … 17
  4. 测试数据及其结果 18
    4.1. 测试数据 18
  5. 试验结束之后的思考 21
    5.1. 程序暴露出的问题 … 21
    5.2. 实验体会 … 21
  6. 实验环境、题目、目的
    1.1. 实验环境
    表 1.1:系统配置、编译环境、其他条件
    CPU
    ore i5-7300HQ @2.5GHz
    RAM
    16G
    硬盘
    西部数据蓝盘 3D 500G
    系统
    Windows 10 18362.30
    电源性能
    连接电源、均衡
    其他同时运行的程序
    Word,VSCode,TIM,Chrome
    编译命令
    clang++ **.cpp -o **.exe -std=c++17 -static-libgcc –
    target=x86_64-w64-mingw -O2
    其中编译命令中,**表示某些文件名。由于使用大量的 STL 内容,因此打开
    O2 提升性能(实际上 Visual Studio 也是默认打开 O2 的),否则速度太慢。不过为了防止过慢,基本所有的都是简单数据结构和简单算法,比如 vector 和 sort,pair 之类。
    本次实验的所有代码都移交给 Git 托管,不包括内容详见.gitignore。
    1.2. 实验题目
    注意:下面题目内容是从实验题目 Word 文件复制,可能最终实现的题目有点差别。
    有两个内容相似的文本文件,一个是未修改过的老版本,一个是修改过的新版本。要求实现以下功能:
  1. 比较两个文件内容的差异,新老文件每行前均显示行号,比较结果要求能区分并标记出插入、修改、删除和移动的数据行;
  2. 能够从一个文件中选择存在差异的数据行,合并到另一文件中,然后保存合并结果。
  3. 对两个文件夹内的多个文件或子文件夹进行比较,标记出存在差异的文件, 可从一个文件中选择一个文件复制到另一个文件夹中
    1.3. 个人的实现程度以及原因
  4. 考虑到大型软件的核心比较程序都没有界面(比如 windows 自带的 diff,git 的
    diff),也有好用的软件(但是我没听说过)基于 python 实现了界面,VSCode是基于 chrome 的渲染引擎实现的,因此对于任何的输出结果都可以方便的显示,因此我这里选择命令行实现。
  5. 考虑到所有的 diff 算法都不识别移动,因此移动被忽略掉。举个例子:两个 10k 行的 bin 文件,每一行是 1-10 之一,在这种情况下,diff 无法识别出修改和移动。
  6. 考虑到这个程序应当有一定的用户体验,我针对体验进行了一些优化。比如只有两个文件的时候是直接比较,但是两个文件夹则是取两者相对路径的交集进行比较。
  7. 考虑到命令行的要求,我加入了几个可选项,方便对比。实际合并的时候会忽略选项,因为这影响到了文件的真实性。
  8. 设计主要参考了代码需求,甚至没有考虑过 docx 之类的需求。
    1.4. 实验目的
    本实验的主要目的再于以下几点:
  9. 小规模软件的构建。
  10. 字符串的±1调整。
  11. Windows 系统或者 C 底层的应用。
  12. 设计模式的简单应用。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

本文转载自:http://www.biyezuopin.vip/onews.asp?id=15407

举报

相关推荐

0 条评论