#import <Foundation/Foundation.h>
/*------------------------
------------------------*/
//创建一个枚举ShapeType,形状
typedef enum
{
kCircle
,kRectangle
,kOblateSpheroid
}ShapeType;
//创建一个枚举ShapeColor,颜色
typedef enum
{
kRedcolor
,kGreencolor
,kBluecolor
}ShapeColor;
//创建一个结构体,大小
typedef struct
{
int x,y,width,height;
}ShapeRect;
//创建一个结构体,形状主体,包含形状,颜色,大小
typedef struct
{
ShapeType type; // 形状创建一个实例type
ShapeColor fillcolor; // 颜色创建一个实例 fillcolor
ShapeRect bounds; // 形状大小创建一个实例 bounds
}Shape;
//函数声明
void drawShapes(Shape shapes[],int count);
void drawCircle(ShapeRect bounds,ShapeColor fillcolor);
void drawRectangle(ShapeRect bounds,ShapeColor fillcolor);
void drawOblateSpheroid(ShapeRect bounds,ShapeColor fillcolor);
NSString *colorName (ShapeColor colorName);
NSString *colorName (ShapeColor colorName);
//主函数
int main (int argc, const char * argv[])
{
Shape shapes[3];
ShapeRect rect0 = {0,0,10,30};
shapes[0].type = kCircle;
shapes[0].fillcolor = kRedcolor;
shapes[0].bounds = rect0;
ShapeRect rect1 = {30,40,50,60};
shapes[1].type = kRectangle;
shapes[1].fillcolor = kGreencolor;
shapes[1].bounds = rect1;
ShapeRect rect2 = {15,18,37,29};
shapes[2].type = kOblateSpheroid;
shapes[2].fillcolor = kBluecolor;
shapes[2].bounds = rect2;
drawShapes (shapes,3);
return 0;
}
void drawShapes(Shape shapes[],int count)
{
int i;
for (i=0; i<count; i++) {
switch (shapes[i].type) {
case kCircle:
drawCircle(shapes[i].bounds
,shapes[i].fillcolor);
break;
case kRectangle:
drawRectangle(shapes[i].bounds
,shapes[i].fillcolor);
break;
case kOblateSpheroid:
drawOblateSpheroid(shapes[i].bounds
,shapes[i].fillcolor);
break;
}
}
}
void drawCircle(ShapeRect bounds,ShapeColor fillcolor)
{
NSLog(@"drawing a circle at (%d %d %d %d) in %@"
,bounds.x
,bounds.y
,bounds.width
,bounds.height,colorName(fillcolor));
}//drawCicle
void drawRectangle(ShapeRect bounds,ShapeColor fillcolor)
{
NSLog(@"drawing a drawRectangle at (%d %d %d %d) in %@"
,bounds.x
,bounds.y
,bounds.width
,bounds.height,colorName(fillcolor));
}//drawRectangle
void drawOblateSpheroid(ShapeRect bounds,ShapeColor fillcolor)
{
NSLog(@"drawing a drawOblateSpheroid at (%d %d %d %d) in %@"
,bounds.x
,bounds.y
,bounds.width
,bounds.height,colorName(fillcolor));
}//drawOblateSpheroid
NSString *colorName (ShapeColor colorName)
{
switch (colorName) {
case kRedcolor:
return @"red";
break;
case kGreencolor:
return @"green";
break;
case kBluecolor:
return @"blue";
break;
}
return @"no clue";
}//colorName
过程式编程-绘图程序
最新推荐文章于 2023-11-14 22:32:29 发布