/IntersectProject

BUAA_2020_SE_course_personal_project

Primary LanguageC++

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