过程式编程-绘图程序

来源:互联网 发布:nginx rtmp 直播配置 编辑:程序博客网 时间:2024/04/25 06:28
#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));}//drawCiclevoid 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));}//drawRectanglevoid 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));}//drawOblateSpheroidNSString *colorName (ShapeColor colorName){    switch (colorName) {        case kRedcolor:            return @"red";            break;                    case kGreencolor:            return @"green";            break;                    case kBluecolor:            return @"blue";            break;    }    return @"no clue";}//colorName

原创粉丝点击