黑马程序员技术交流社区
标题:
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