初识联合类型小练习
来源:互联网 发布:电话名单软件 编辑:程序博客网 时间:2024/06/01 21:42
#include <iostream>using namespace std;struct Line{double x1, x2, y1, y2;};struct Rectangle{double left, right, top, bottom;};struct Circle{double x, y, r;};union Figure{Line line;Rectangle rectangle;Circle circle;};enum Shape { LINE, RECTANGLE, CIRCLE };struct TaggedFigure{Shape shape;Figure figure;};void input(TaggedFigure[], int);void draw(TaggedFigure);void draw_line(Line);void draw_rectangle(Rectangle);void draw_circle(Circle);int main(){const int N = 100;TaggedFigure figures[N];input(figures, N);for (int i = 0; i < N; i++)draw(figures[i]);return 0;}void input(TaggedFigure figures[], int n){for (int i = 0; i < n; i++){int shape;cout << "请输入要绘制的图形(0:线段;1:矩形;2:圆形; -1:结束):";cin >> shape;if (shape == -1)break;switch (shape){case 0:figures[i].shape = LINE;cout << "请输入线段的起点和终点坐标(x1, y1, x2, y2):" << endl;cin >> figures[i].figure.line.x1>> figures[i].figure.line.x2>> figures[i].figure.line.y1>> figures[i].figure.line.y2;break;case 1:figures[i].shape = RECTANGLE;cout << "请输入矩形的左上角和右下角的坐标(left, top, right, bottom):" << endl;cin >> figures[i].figure.rectangle.left>> figures[i].figure.rectangle.top>> figures[i].figure.rectangle.right>> figures[i].figure.rectangle.bottom;break;case 2:figures[i].shape = CIRCLE;cout << "请输入圆心坐标和半径(x, y ,r):" << endl;cin >> figures[i].figure.circle.x>> figures[i].figure.circle.y>> figures[i].figure.circle.r;break;}}}void draw(TaggedFigure figures){switch (figures.shape){case LINE:draw_line(figures.figure.line);break;case RECTANGLE:draw_rectangle(figures.figure.rectangle);break;case CIRCLE:draw_circle(figures.figure.circle);break;}}
//上述的程序中为给出draw_line、draw_rectangle以及draw_circle三个函数的实现。
参考:《程序设计教程》(陈家骏、郑滔编著)
1 0
- 初识联合类型小练习
- 初识结构类型小练习
- 初识SSH2联合开发小案例-登录练习
- 初识Struts,快速熟悉小练习
- python字符类型小练习
- 透明联合类型
- C++类型-联合
- 使用联合类型
- 联合类型的声明
- 联合和枚举类型
- C++ 联合,枚举,类型
- C++联合类型
- 联合类型及其应用
- 验证码小练习强制将int类型转化为char类型遇到的小问题
- 初学者之小甲鱼C++复杂数据类型联合,枚举,类型别名
- 初识 windows 上机练习
- 小白初识线段树(线段树原理+专题练习)
- 类型别名 联合类型 枚举类型
- hotspot在eclipse上编译调试
- iOS KVO 实现分析
- Makefile规则
- Proguard returned with error code 1. See console 之 can't find
- ionic平台下的ios极光推送集成文档
- 初识联合类型小练习
- Node.js之学习网站
- 写日志到文本文件
- Centos7-minimal安装完成后需要完成的几件事情
- iOS关于BOOL
- jquery中的大图轮播还有遮罩效果
- Application的使用
- android自定义环形对比图(外环有类似进度条的旋转动画)
- VS2010进行远程调试方法总结