本项目是 C++ 面向对象编程练习的一部分,目标是实现一个功能完备且高效的 Complexe 类,用于表示和操作复数。
.
├── CMakeLists.txt # CMake 构建配置文件
├── build.sh # 构建脚本
├── .gitignore # Git 忽略文件配置
├── 题目.md # 实验题目描述
├── solution_process.md # 详细的解题思路和过程
├── README.md # 本文件
├── cmake/ # CMake 配置文件
│ └── ComplexeLibConfig.cmake.in
├── include/ # 头文件目录
│ └── Complexe.h # Complexe 类的头文件
├── src/ # 源代码目录
│ └── Complexe.cpp # Complexe 类的实现文件
├── tests/ # 测试文件目录
│ ├── TD_main_Validation.cpp # 功能验证测试程序
│ └── TD_main_Bench_CPU.cpp # 性能基准测试程序
└── build/ # 构建输出目录 (由 CMake 生成)
├── validation_test # 验证测试可执行文件
└── bench_test # 性能测试可执行文件
Complexe 类支持以下操作:
- 构造函数:
- 默认构造函数
Complexe()(初始化为 0+0j) - 带参构造函数
Complexe(double re, double im) - 从单个
double初始化 (虚部为0)
- 默认构造函数
- 算术运算:
- 复数与复数:
+,-,*,/ - 复数与
double:+,-,*,/(双向,例如c + d和d + c)
- 复数与复数:
- 特性计算:
GetModule(): 计算模GetArgument(): 计算辐角 (弧度)Conjugue(): 计算共轭 (也可通过operator!调用)
- 比较:
operator==: 判断两个复数是否相等
- 输出:
Affiche(): 以(R +Ij)格式输出到控制台AffichePolar(): 以极坐标Mei(A)(弧度) 格式输出AffichePolarDegre(): 以极坐标Mei(A)(角度) 格式输出operator<<: 支持std::ostream输出,例如cout << c;
- 极坐标设置:
SetPolarCoord(double mod, double arg_rad)SetPolarCoordDegre(double mod, double arg_deg)
详细的设计思路和每个问题的解答,请参见 solution_process.md 文件。
本项目使用 CMake 作为构建系统,提供了更现代化和跨平台的编译方式。
使用提供的构建脚本(推荐):
./build.sh这个脚本会自动创建 build 目录,配置 CMake,并编译整个项目。
如果你想手动控制编译过程:
mkdir build && cd build# Debug 模式(默认)
cmake ..
# Release 模式(带优化)
cmake .. -DCMAKE_BUILD_TYPE=Releasemake -j4或者使用 CMake 的通用编译命令:
cmake --build . --parallel 4编译完成后,在 build 目录中:
./validation_test./bench_testmake test或者:
ctest --verbose关于此 TD 中每个问题的详细分析、UML 设计、代码实现思路以及对性能和易用性的讨论,请参考 solution_process.md 文件。