用c++基本函数定义多个函数完成相关图形的输出(可根据参数修改输出图形的大小[长宽]) 直角三角形、等腰三角形、矩形、平行四边形、菱形,用#代替
时间: 2024-10-21 16:13:05 浏览: 40
在 C++ 中,你可以通过模板和函数重载的方式定义一系列通用的图形输出函数,每个函数接受不同的参数来指定图形的类型和尺寸。下面是一个简单的示例,展示了如何定义这样的函数集,其中`shape`参数用于区分不同的图形类型,`size`参数代表图形的长和宽:
```cpp
#include <iostream>
// 图形类型枚举
enum ShapeType {
TRIANGLE,
ISOSCELES_TRIANGLE,
RECTANGLE,
PARALLELOGRAM,
DIAMOND
};
// 函数模板,用于根据不同图形类型和大小绘制图形
template <ShapeType shape, int size>
void drawShape(int side_length = 0) {
switch (shape) {
case TRIANGLE:
// 直角三角形
if (side_length == 0) {
std::cout << "Drawing a triangle with default size...#\n";
} else {
for (int i = 0; i <= size; ++i) {
for (int j = 0; j <= i; ++j) {
std::cout << "#";
}
std::cout << "\n";
}
}
break;
case ISOSCELES_TRIANGLE:
// 等腰三角形
if (side_length > 0) {
for (int i = 0; i <= size; ++i) {
if (i <= side_length / 2) {
std::cout << "#";
} else {
std::cout << " ";
}
for (int j = 0; j <= i; ++j) {
std::cout << "#";
}
std::cout << "\n";
}
} else {
std::cout << "Drawing an isosceles triangle with default size...#\n";
}
break;
// 其他形状类似,这里省略
case RECTANGLE:
for (int i = 0; i < size; ++i) {
for (int j = 0; j < size; ++j) {
std::cout << "#";
}
std::cout << "\n";
}
break;
case PARALLELOGRAM:
// 平行四边形
// ... 实现代码 ...
break;
case DIAMOND:
// 菱形
// ... 实现代码 ...
break;
default:
std::cerr << "Invalid shape type.\n";
break;
}
}
// 示例:绘制一个等腰三角形,边长为5
drawShape(ISOSCELES_TRIANGLE, 5);
阅读全文