黑马程序员技术交流社区
标题: 思考和实现 [打印本页]
作者: Star_FDt78 时间: 2015-12-21 23:00
标题: 思考和实现
思考和实现:
设计一个 狗 类
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);
}
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |