求解各位大神...!!!
//
// main.m
// 人与狗
//
// Created by Jun-Yip on 15/11/26.
// Copyright © 2015年 Jun-Yip. All rights reserved.
//
/*
1.设计一个”狗“类
1> 属性
* 颜色
* 速度(单位是m/s)
* 性别
* 体重(单位是kg)
2> 行为
* 吃:每吃一次,体重增加0.5kg,输出吃完后的体重
* 吠(叫):输出所有的属性
* 跑:每跑一次,体重减少0.5kg,输出速度和跑完后的体重
* 比较颜色:跟别的狗比较颜色,如果一样,返回YES,不一样,返回NO
* 比较速度:跟别的狗比较速度,返回速度差(自己的速度 - 其他狗的速度)
2.结合前面的“狗”类,设计一个“人”类
1> 属性
* 姓名
* 狗(养了一条狗)
2> 行为
* 喂狗:每喂一次,狗就会执行“吃”这个行为
* 遛狗:每溜一次,狗就会执行“跑”这个行为
*/
#import <Foundation/Foundation.h>
//定义狗的颜色的枚举
typedef enum { kColorWhite,kColorBlack,kColorYellow} Color;
//定义狗的性别的枚举
typedef enum { kSexGong,kSexMu,kSexYao} Sex;
#pragma mark 狗类的定义
@interface Dog:NSObject
{ @public;
Color _color;
int _speed;
Sex _sex;
float _weight;
}
-(void)eat:(NSString *)foodName andnum:(int)eatNum;
-(void)bark;
-(void)run:(int)runNum;
-(BOOL)isSameColorWithOther:(Dog *)otherDog;
-(int)ChaSpeedWithOther:(Dog *)dog;
@end
#pragma mark 人类的定义
@interface Person : NSObject
{
@public
Person *_name;
Dog *_dog;
}
-(void)weiDog;
-(void)liuDog:(int)runNum;
@end
#pragma mark 人的行为
@implementation Person
-(void)weiDog{
[_dog eat];
}
-(void)liuDog:(int)runNum{
[_dog run:runNum];
}
@end
#pragma mark
#pragma mark 狗的行为
@implementation Dog
-(void)eat:(NSString *)foodName andnum:(int)eatNum {
// int eatWeight = 0.5 *
NSLog(@"狗正在吃着第%d次%@,它现在的体重是%.2fkg",eatNum,foodName,_weight-0.5*eatNum);
}
-(void)bark{
NSLog(@"color = %d\tspeed = %dm/s\tsex = %d\tweight = %.2fkg",_color,_speed,_sex,_weight);
}
-(void)run:(int)runNum{
NSLog(@"狗狗第%d次正在以%dm/s的速度疯狂的奔跑,它现在的体重是:%.2fkg",runNum,_speed,_weight-0.5*runNum);
}
-(BOOL)isSameColorWithOther:(Dog *)otherDog{
if (_color == otherDog->_color) {
return YES;
} else {
return NO;
}
}
-(int)ChaSpeedWithOther:(Dog *)otherdog{
return (unsigned int) (otherdog ->_speed -_speed);
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
Dog *dog = [Dog new];
dog -> _color = kColorWhite;
dog -> _speed = 60;
dog -> _sex = kSexYao;
dog -> _weight = 50;
[dog eat:@"粑粑" andnum:5];
[dog run:3 ];
Dog *dog2 = [Dog new];
dog2 -> _color = kColorYellow;
dog2 -> _speed = 80;
[dog bark];
NSLog(@"--------------------------------------------");
BOOL isSameColor = [dog isSameColorWithOther:dog2];
NSLog(@"两只狗的颜色相同,这个说法为:%d",isSameColor);
int cha = [dog ChaSpeedWithOther:dog2];
NSLog(@"两只狗的速度差为%d",cha);
NSLog(@"--------------------------------------------");
Person *per = [Person new];
per ->_dog = dog;
NSLog(@"%@",per->_dog);
[per weiDog:@"骨头" andnum:1];
[per liuDog:1];
}
return 0;
}
|
|