Readme
项目 | 内容 |
---|---|
课程链接 | 2020春季计算机学院软件工程(罗杰 任健) |
作业要求 | 个人项目作业 |
课程目标 | 系统学习软件开发理论和流程,通过实践积累软件开发经验 |
本博客的收获 | 熟悉了C++语法,熟悉了VS工具使用,将书中开发项目的流程简单实践 |
教学班级 | 005 |
项目地址 | https://github.com/eitbar/IntersectProject.git |
博客链接 | https://www.cnblogs.com/eitbar/p/12453042.html |
作业要求概览
给定 N 个几何对象,询问平面中有多少个点在至少 2 个给定的几何对象上。题目输入保证答案只有有限个。
需要支持的几何对象为:直线,圆。
输入格式
- 第 1 行:一个自然数 N >= 1,表示输入的几何对象的数目。注:具体的 N 的限制参见评分规则。
- 第 2 行至第 N + 1 行:每行描述一个几何对象。具体格式如下:
- 直线:
L <x1> <y1> <x2> <y2>
,表示通过点 (x1, y1) 和 (x2, y2) 的直线。输入保证给定两点不重合。 - 圆:
C <x> <y> <r>
,表示以点 (x, y) 为中心,半径为 r 的圆。输入保证半径 r > 0。
- 直线:
所有几何对象参数均为整数,范围为 (-100000, 100000)。
项目结构
IntersectProject/
├── bin # 可执行文件所在目录
│ └── intersect.exe # vs2019编译Release版exe
├── README.md
├── src # 项目源代码
│ ├── figure.h # 几何图形类的声明
| ├── figure.cpp # 几何图形类中方法的实现
│ └── main.cpp # 主函数
├── test # vs2019单元测试相关代码
│ ├── pch.h
│ ├── pch.cpp
│ └── test.cpp
└── data # 测试数据相关文件
├── data.py # 数据生成脚本
└── test.txt # 博客中性能测试使用数据
如何运行
程序运行:
运行bin/intersect.exe
时,传入参数规定如下:
参数 | 参数意义 | 用法示例 | 是否为必要参数 |
---|---|---|---|
-i <path to input file> |
带一个参数,表示输入文件的路径(绝对或相对路径) | intersect.exe -i input.txt -o output.txt |
是 |
-o <path to output file> |
带一个参数,表示输出文件的路径(绝对或相对路径) | intersect.exe -i input.txt -o output.txt |
是 |
举例:
bin/intersect.exe -i data/test.txt -o testout.txt
运行环境:
- windows
数据生成脚本运行:
运行data/data.py
时,传入参数规定如下:
参数 | 参数意义 | 用法示例 | 是否为必要参数 |
---|---|---|---|
--n <number of figure> |
带一个整数,表示数据中N的大小 | python data/data.py --n 7000 |
否 |
--i <id of test.txt> |
带一个整数,表示生成数据文件的id | python data/data.py --i 0 |
否 |
举例:
python data/data.py --n 7000 --i 0
运行环境:
- python 3.6
- argparse