A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© Star_FDt78 中级黑马   /  2015-12-21 23:00  /  863 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

思考和实现:

设计一个 狗 类
1> 属性
    颜色
    速度(单位m/s)
    性别
    体重(单位kg)
2> 行为
    吃: 每吃一次,体重增加0.5kg,输出吃完后的体重
    吠(叫): 输出所有的属性
    跑: 每跑一次,体重减少0.5kg,输出速度和跑完后的体重
    比较颜色:跟别的狗比较颜色,如果一样,两个值做减法得0,返回     NO(零值),不一样减法得非零值,返回YES(1)
    比较速度:跟别的狗比速度,返回速度差(当前狗的速度 - 其他狗的速度)

#import <Foundation/Foundation.h>

typedef enum {black,white,red,yellow} Color;
typedef enum {male,female} Gender;
@interface Dog : NSObject

{
    @public
    int _speed;
    Gender _gender;
    Color _color;
    float _weight;
}
-(void)eat;
-(void)bark:(Dog *) dog;
-(void)run:(Dog *) dog;
-(int)compareColor:(Dog *) dog1 and:(Dog *) dog2;
-(int)compareSpeed:(Dog *) dog1 and:(Dog *) dog2;

@end

@implementation Dog

-(void)eat{

    _weight = _weight + 0.5;
    NSLog(@"吃完后的体重:%.2f kg",_weight);
}
-(void)bark:(Dog *) dog{

    printf("速度:%d 体重:%.2f ",dog->_speed,dog->_weight);
    switch (dog->_color) {
        case 0:
            printf("颜色:黑色 ");
            break;
        case 1:
            printf("颜色:白色 ");
            break;
        case 2:
            printf("颜色:红色 ");
            break;
        case 3:m
            printf("颜色:黄色 ");
            break;
        default:
            printf("您输入的颜色不存在!");
            break;
    }
    switch (dog->_gender) {
        case 0:
            printf("性别:雄性 ");
            break;
        case 1:
            printf("性别:雌性 ");
            break;
        default:
            printf("您输入的性别有误!");
            break;
    }
    printf("\n");
}
-(void)run:(Dog *) dog{

    dog->_weight = dog->_weight - 0.5;
    NSLog(@"跑步后的体重:%.2fkg 跑的速度:%d m/s",dog->_weight,dog->_speed);

}
-(int)compareColor:(Dog *) dog1 and:(Dog *) dog2{

    int a=dog1->_color - dog2->_color;
    if (0 == a) {
        return 0;
    }else {
        return 1;
    }
}
-(int)compareSpeed:(Dog *) dog1 and:(Dog *) dog2{

    int speed = dog1->_speed - dog2->_speed;
    return speed;
}

@end

int main(){

    Dog *dog1 = [Dog new];
    Dog *dog2 = [Dog new];

    dog1->_speed = 100;
    dog1->_gender = male;
    dog1->_color = black;
    dog1->_weight = 65.5;

    dog2->_speed = 120;
    dog2->_gender = female;
    dog2->_color = red;
    dog2->_weight = 75.5;

    [dog1 eat];
    [dog1 bark:dog1];
    [dog1 run:dog1];

    int _compareColor = [dog1 compareColor:dog1 and:dog2];

    int _compareSpeed = [dog1 compareSpeed:dog1 and:dog2];

    NSLog(@"颜色对比的返回值:%d  速度对比的返回值:%d",_compareColor,_compareSpeed);

}


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马