黑马程序员技术交流社区
标题: 第7题 思考&实现 [打印本页]
作者: 0826iOS_sunzhen 时间: 2015-9-9 21:16
标题: 第7题 思考&实现
一个人可以吃不同的食物,只要吃东西就会增加体重0.6,如果 要是出门遛弯,每走100步,体重减0.2,小于100步忽略不计。 请用面向对象思想实现。
思路;
类名:Person
属性:年龄(_age)、体重(_weight)
动作:吃饭(eat)方法、散步(walk)方法
- #import <Foundation/Foundation.h>
- /**
- * Person类,年龄_age,体重_weight;
- */
- @interface Person : NSObject
- {
- @public
- int _age;
- float _weight;
- }
- -(void)eat;
- -(void)walk:(int)step;
- @end
- @implementation Person
- -(void)eat{
- _weight+=0.6;
- }
- -(void)walk:(int)step{
- _weight = _weight-(step/100)*0.2;
-
- }
- @end
- int main(int argc, const char * argv[]) {
- @autoreleasepool {
- Person *per=[Person new];
- per->_age = 23;
- per->_weight=60;
-
- //调用方法
- [per eat];
- [per walk:500];
-
- NSLog(@"age = %d",per->_age);
- NSLog(@"weight = %0.2f",per->_weight);
-
- }
- return 0;
- }
复制代码 刚刚完成第7题!
作者: a124113798 时间: 2015-9-9 21:31
需求没有看全啊,小于100步忽略不计的功能没实现。。。。
作者: 0826iOS_sunzhen 时间: 2015-9-9 21:49
_weight = _weight-(step/100)*0.2;当输入的步数小于100步,(step/100)*0.2=0 已经实现了
作者: a124113798 时间: 2015-9-10 17:30
哦,是啊。lz威武
作者: oxzjsku 时间: 2015-9-10 18:01
请教下那个先声明"人"类的里面 再用"狗"做属性的 怎么弄, 我没读懂是什么意思. 就差这一题了 在线等.急=.=~
作者: 13817049701 时间: 2015-9-10 18:06
- @interface Person : NSObject
- {
- @public
- NSString *_personName;
- Dog *_dog;
- }
- -(void)giveFood;
- -(void)walkDog:(int)length;
- @end
- @implementation Person
- /**
- * 喂食
- */
- -(void)giveFood{
- [_dog eat:1];
- }
- /**
- * 遛狗
- *
- * @param length 多少米
- */
- -(void)walkDog:(int)length{
- [_dog run:length];
- }
- @end
复制代码
作者: TTsu 时间: 2015-9-10 18:07
这个代码太强了,思维和逻辑如此之慎密只该天上有,人间哪的几回闻啊
作者: oxzjsku 时间: 2015-9-10 18:15
Dog *_dog; 这个之后再怎么弄 main函数里面怎么赋值额 还是不用赋值了?
作者: 0826iOS_sunzhen 时间: 2015-9-10 19:00
- //
- // main.m
- // 第二题
- //2.设计一个”狗“类
- //1> 属性
- //* 颜色
- //* 速度(单位是m/s)
- //* 性别
- //* 体重(单位是kg)
- //2>行为
- //* 吃:每吃一次,体重增加0.5kg,输出吃完后的体重
- //* 吠(叫):输出所有的属性
- //* 跑:每吃一次,体重减少0.5kg,输出速度和跑完后的体重
- //* 比较颜色:跟别的狗比较颜色,如果一样,两个值做减法得零,返回NO(零值),不一样,
- //做减法得到非零值,返回YES(1)
- //* 比较速度:跟别的狗比较速度,返回速度差(自己的速度 - 其他狗的速度)
- // Created by mac on 15/9/10.
- // Copyright (c) 2015年 zhy. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- #pragma mark 枚举狗的颜色
- typedef enum Color {kWhite,kBlack,kYellow}dogColor;
- #pragma mark "狗"类的声明
- //1> 属性
- @interface Dog : NSObject
- {
- @public
- dogColor _color;
- float _speed;
- NSString * _sex;
- float _weight;
- }
- //2> 行为
- -(void)eat:(int)_time;
- -(void)bark;
- -(void)run:(int)_time2;
- -(int)compare:(dogColor)_color2;
- -(int)compare2:(float)_speed2;
- @end
- #pragma mark "狗"类的实现
- @implementation Dog
- //3> 实现
- -(void)eat:(int)_time
- {
- _weight += (0.5)*_time;
- NSLog(@"吃完后的体重:%.2f",_weight);
-
- }
- -(void)bark
- {
- NSLog(@"颜色:%d,速度:%.2fm/s,性别:%@,体重:%.2fkg",_color,_speed,_sex,_weight);
- }
- -(void)run:(int)_time2
- {
- _weight -= (0.5)*_time2;
-
- NSLog(@"跑完后的体重:%.2fkg",_weight);
- }
- -(int)compare:(dogColor)_color2
- {
- if (0 == (_color) - (_color2)) {
- BOOL flag = NO;
- NSLog(@"结果为%d,则跟别的狗颜色一样",flag);
- }else{
- BOOL flag = YES;
- NSLog(@"结果为%d,则跟别的狗颜色不一样",flag);
- }
- return 0;
- }
- -(int)compare2:(float)_speed2
- {
- float chaZhi = _speed - _speed2;
-
- NSLog(@"跟别的狗的速度差为:%.2f",chaZhi);
-
- return 0;
- }
- @end
- #pragma mark -
- #pragma mark 添加人类
- @interface Person : NSObject
- {
- @public
- NSString *_personName;
- Dog *_dog;
- }
- -(void)giveFood:(int)_time;
- -(void)walkDog:(int)length;
- @end
- @implementation Person
- /**
- * 喂食
- */
- -(void)giveFood:(int)_time{
- [_dog eat:_time];
- }
- /**
- * 遛狗
- *
- * @param length 多少米
- */
- -(void)walkDog:(int)length{
- [_dog run:length];
- }
- @end
- #pragma mark _
- int main(int argc, const char * argv[]){
- @autoreleasepool {
- Dog *dog =[Dog new];
-
- dog ->_color = kBlack;
-
- dog ->_sex = @"公的";
-
- dog ->_speed = 6.02;
-
- dog ->_weight= 40;
-
- [dog eat:2];
-
- [dog bark];
-
- [dog run:2];
-
- [dog compare:kWhite];
-
- [dog compare2:5.01];
-
-
- //这边是人类出现之后,将dog传入
- Person *per=[Person new];
- per->_personName=@"张三";
- per->_dog=dog;
- [per walkDog:2];
- [dog bark];
- }
-
- return 0;
- }
复制代码
作者: oxzjsku 时间: 2015-9-10 19:20
谢谢了~
作者: 安若曦 时间: 2015-9-10 19:29
我今天也刚刚写了这个
作者: 同舟ing 时间: 2015-9-10 20:28
振哥,你不要太牛b哦!!我刚开始看了你写的瞬间思路大开啊!谢大神!
作者: 0826iOS_sunzhen 时间: 2015-9-10 20:33
黑马币那么少,再不好好学习,怎么对得起我自己
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |