黑马程序员技术交流社区

标题: oc 基础,类的声明,实现,初始化,方法调用之四,多文件开发 [打印本页]

作者: linexs    时间: 2015-11-22 00:01
标题: oc 基础,类的声明,实现,初始化,方法调用之四,多文件开发
//
//  main.m
//  
//
//  Created by darin on 15/11/18.
//  Copyright © 2015年 loser. All rights reserved.
//
/*

3.设计一个”学生“类
1> 属性
* 姓名
* 生日
* 年龄
* 身高(单位是m)
* 体重(单位是kg)
* 性别
* C语言成绩
* OC成绩
* iOS成绩

2> 行为
* 跑步:每跑步一次,身高增加1cm,体重减小0.5kg,输出跑完后的体重
* 吃饭:每吃一次,身高增加1cm,体重增加0.5kg,输出吃完后的体重
* 学习:每学习一次,3可成绩各加1分,输出学习完后的3科成绩
* 睡觉:输出所有的属性
* 比较C语言成绩:跟另外一个学生比较C语言成绩,返回成绩差(自己的成绩 - 其他人的成绩)
* 比较OC成绩:跟另外一个学生比较OC语言成绩,返回成绩差(自己的成绩 - 其他人的成绩)
* 比较iOS成绩:跟另外一个学生比较iOS语言成绩,返回成绩差(自己的成绩 - 其他人的成绩)
* 计算总分:算出3科成绩的总分
* 计算平均分:算出3科成绩的平均分

*/

#import <Foundation/Foundation.h>
#import "Student.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        
        Student * darin = [Student new];
        darin -> _name = @"darin";
        darin -> _sex = 'm';
        darin -> _age = 29;
        darin -> _birthday = (Birthday){1986,4,15};
        darin -> _hight = 175;
        darin -> _weight = 85;
        darin -> _cScore = 97;
        darin -> _ocScore = 98;
        darin -> _iOSscore = 99;
        
        Student * loser = [Student new];
        loser -> _name = @"loser";
        loser -> _sex = 'm';
        loser -> _age = 29;
        loser -> _birthday = (Birthday){1986,4,15};
        loser -> _hight = 175;
        loser -> _weight = 85;
        loser -> _cScore = 59;
        loser -> _ocScore = 59;
        loser -> _iOSscore = 59;
        
        [darin run];
        [darin eat];
        [darin learn];
        [darin cmpC:loser];
        [darin cmpOC:loser];
        [darin cmpiOS:loser];
        [darin totalScore];
        [darin everageScore];
        
        
        NSLog(@"The End!\n");
    }
    return 0;
}

//
//  Student.h
//  
//
//  Created by darin on 15/11/19.
//  Copyright © 2015年 darin. All rights reserved.
//

/*

3.设计一个”学生“类
1> 属性
* 姓名
* 生日
* 年龄
* 身高(单位是m)
* 体重(单位是kg)
* 性别
* C语言成绩
* OC成绩
* iOS成绩

2> 行为
* 跑步:每跑步一次,身高增加1cm,体重减小0.5kg,输出跑完后的体重
* 吃饭:每吃一次,身高增加1cm,体重增加0.5kg,输出吃完后的体重
* 学习:每学习一次,3可成绩各加1分,输出学习完后的3科成绩
* 睡觉:输出所有的属性
* 比较C语言成绩:跟另外一个学生比较C语言成绩,返回成绩差(自己的成绩 - 其他人的成绩)
* 比较OC成绩:跟另外一个学生比较OC语言成绩,返回成绩差(自己的成绩 - 其他人的成绩)
* 比较iOS成绩:跟另外一个学生比较iOS语言成绩,返回成绩差(自己的成绩 - 其他人的成绩)
* 计算总分:算出3科成绩的总分
* 计算平均分:算出3科成绩的平均分

*/

#import <Foundation/Foundation.h>

typedef struct birth {
    int year;
    int month;
    int day;

} Birthday;

@interface Student : NSObject
{
    @public
    NSString *_name;
    char _sex;
    int _age;
    Birthday _birthday;
    float _hight;
    float _weight;
    float _cScore;
    float _ocScore;
    float _iOSscore;
}
-(void)run;
-(void)eat;
-(void)learn;
-(void)sleep;
-(void)cmpC:(Student *)other;
-(void)cmpOC:(Student *)other;
-(void)cmpiOS:(Student *)other;
-(void)totalScore;
-(void)everageScore;

@end

//
//  Student.m
//  
//
//  Created by darin on 15/11/19.
//  Copyright © 2015年 darin. All rights reserved.
//

/*

2> 行为
* 跑步:每跑步一次,身高增加1cm,体重减小0.5kg,输出跑完后的体重
* 吃饭:每吃一次,身高增加1cm,体重增加0.5kg,输出吃完后的体重
* 学习:每学习一次,3可成绩各加1分,输出学习完后的3科成绩
* 睡觉:输出所有的属性
* 比较C语言成绩:跟另外一个学生比较C语言成绩,返回成绩差(自己的成绩 - 其他人的成绩)
* 比较OC成绩:跟另外一个学生比较OC语言成绩,返回成绩差(自己的成绩 - 其他人的成绩)
* 比较iOS成绩:跟另外一个学生比较iOS语言成绩,返回成绩差(自己的成绩 - 其他人的成绩)
* 计算总分:算出3科成绩的总分
* 计算平均分:算出3科成绩的平均分

*/

#import "Student.h"

@implementation Student

-(void)run{
    _hight += 1;
    _weight -= 0.5;
    NSLog(@"姓名:%@,身高:%.2f,体重:%.2f;",_name,_hight,_weight);
}

-(void)eat{
    _hight += 1;
    _weight -= 0.5;
    NSLog(@"姓名:%@,身高:%.2f,体重:%.2f;",_name,_hight,_weight);
}

-(void)learn{
    if (_cScore < 100) {
        _cScore += 1;
    }
    if (_ocScore < 100) {
        _ocScore += 1;
    }
    if (_iOSscore < 100) {
        _iOSscore += 1;
    }
    NSLog(@"C成绩:%.2f,OC成绩:%.2f,iOS成绩:%.2f;",_cScore,_ocScore,_iOSscore);
}

-(void)sleep{
    NSLog(@"姓名:%@,性别:%c,年龄:%d,生日:%d%d%d,身高:%.2f,体重:%.2f,C成绩:%.2f,OC成绩:%.2f,iOS成绩:%.2f;",_name,_sex,_age,_birthday.year,_birthday.month,_birthday.day,_hight,_weight,_cScore,_ocScore,_iOSscore);
}

-(void)cmpC:(Student *)other{
    NSLog(@"%@和%@科目C语言的成绩差:%.2f",_name,other->_name,_cScore - other->_cScore);
}

-(void)cmpOC:(Student *)other{
    NSLog(@"%@和%@科目OC语言的成绩差:%.2f",_name,other->_name,_ocScore - other->_ocScore);
}

-(void)cmpiOS:(Student *)other{
    NSLog(@"%@和%@科目iOS语言的成绩差:%.2f",_name,other->_name,_iOSscore - other->_iOSscore);
}

-(void)totalScore{
    NSLog(@"三科总成绩:%.2f",_iOSscore+ _ocScore+ _iOSscore);
}

-(void)everageScore{
NSLog(@"三科平均成绩:%.2f",(_iOSscore+ _ocScore+ _iOSscore)/3);
}

@end





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2