#include \n#include \n\n// 定义一个点结构体\nstruct Point {\n int x;\n int y;\n};\n\n// 定义一个绘图类\nclass DrawingSoftware {\npublic:\n DrawingSoftware() {\n canvas.resize(10, std::vector(10, ' '));\n }\n\n // 在指定位置绘制一个点\n void drawPoint(Point point) {\n if (isValidPoint(point)) {\n canvas[point.y][point.x] = '';\n }\n }\n\n // 在指定位置绘制一条直线\n void drawLine(Point start, Point end) {\n if (!isValidPoint(start) || !isValidPoint(end)) {\n return;\n }\n\n // 使用 Bresenham 算法绘制直线\n int dx = abs(end.x - start.x);\n int dy = abs(end.y - start.y);\n int sx = (start.x < end.x) ? 1 : -1;\n int sy = (start.y < end.y) ? 1 : -1;\n int err = dx - dy;\n\n while (true) {\n canvas[start.y][start.x] = '';\n\n if (start.x == end.x && start.y == end.y) {\n break;\n }\n\n int e2 = 2 * err;\n if (e2 > -dy) {\n err -= dy;\n start.x += sx;\n }\n if (e2 < dx) {\n err += dx;\n start.y += sy;\n }\n }\n }\n\n // 打印绘制结果\n void printCanvas() {\n for (int i = 0; i < canvas.size(); i++) {\n for (int j = 0; j < canvas[i].size(); j++) {\n std::cout << canvas[i][j];\n }\n std::cout << std::endl;\n }\n }\n\nprivate:\n std::vector<std::vector> canvas;\n\n // 检查点是否在画布范围内\n bool isValidPoint(Point point) {\n return point.x >= 0 && point.x < canvas[0].size() && point.y >= 0 && point.y < canvas.size();\n }\n};\n\nint main() {\n DrawingSoftware software;\n \n // 绘制一个点\n Point p1 = {5, 5};\n software.drawPoint(p1);\n\n // 绘制一条直线\n Point p2 = {2, 2};\n Point p3 = {7, 7};\n software.drawLine(p2, p3);\n\n // 打印绘制结果\n software.printCanvas();\n\n return 0;\n}