zoukankan      html  css  js  c++  java
  • 牵扯较多属性和方法的类题目,很简单的题目本来不想发的,如果有同学学到这个题目感觉太长不愿敲代码,copy走我的即可~不过还是建议自己打一打

    /*
    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>

    @interface Student : NSObject
    {
        //每次在类的属性声明的时候都要提那么几句:要加@public,要在字符串类型的属性声明的时候声明成字符串指针变量类型
        @public
        NSString *_name;
        NSString *_birthday;
        int _year;
        float _height;
        float _weight;
        NSString *_sex;
        int _scoreC;
        int _scoreOC;
        int _scoreiOS;
    }

    -(void)run;
    -(void)eat;
    -(void)study;
    -(void)sleep;
    -(int)gradeC:(int)score1 andgradeC:(int)score2;
    -(int)gradeOC:(int)score2;
    -(int)gradeiOS:(int)score2;
    -(int)sumScore;
    -(int)averScore:(int)sum;

    @end

    @implementation Student

    -(void)run
    {
        _weight-=0.5;
        NSLog(@"跑步,瘦了0.5kg,体重变为%.2f",_weight);
    }
    -(void)eat
    {
        _weight+=0.5;
        NSLog(@"吃饭,胖了0.5kg,体重变为%.2f",_weight);
    }
    -(void)study
    {
        _scoreC+=1;
        _scoreOC+=1;
        _scoreiOS+=1;
        NSLog(@"C:%d,OC:%d,iOS:%d",_scoreC,_scoreOC,_scoreiOS);
    }
    -(void)sleep
    {
        NSLog(@"Name:%@ Birthday:%@ Year:%d Height:%.2f Weight:%.2f Sex:%@ CScore:%d OCScore:%d iOSScore:%d",_name,_birthday,_year,_height,_weight,_sex,_scoreC,_scoreOC,_scoreiOS);
    }
    -(int)gradeC:(int)score1 andgradeC:(int)score2  //这个方法是传入两个人的数据,然后计算,我觉得这个方法不足之处在于我们明明用第一个人去调用这个方法,那么只需要传第二个人的成绩不就得了,我们明明可以在方法里直接引用调用这个方法的那个人的成绩。改进的方法便是下面两个关于OC和iOS的方法
    {
        int score3=score1-score2;
        return score3;
    }
    -(int)gradeOC:(int)score2  //这个方法和下面的iOS的方法就只需要传入一个值,然后在方法里直接引用调用这个方法的对象的相关属性(成员)和传入的这一个值比较即可了,比较简便
    {
        int score3=_scoreOC-score2;
        return score3;
    }
    -(int)gradeiOS:(int)score2
    {
        int score3=_scoreiOS-score2;
        return score3;
    }
    -(int)sumScore
    {
        int sum;
        sum=_scoreC+_scoreOC+_scoreiOS;
        return sum;
    }
    -(int)averScore:(int)sum
    {
        int average=sum/3;
        return average;
    }


    @end

    int main()
    {
        @autoreleasepool {
            Student *ss1=[Student new];
            Student *ss2=[Student new];
            ss1->_name=@"wang";
            ss2->_name=@"lao";
            ss1->_weight=55.5;
            ss2->_weight=65.5;
            [ss1 run];  //第一个实例化对象ss1去调用run方法
            [ss2 eat];  //第二个实例化对象ss2去调用eat方法
            //运算嘛,所以赋值是一定要的,很麻烦,习惯就好了
            ss1->_scoreC=85;
            ss2->_scoreC=90;
            ss1->_scoreOC=90;
            ss2->_scoreOC=75;
            ss1->_scoreiOS=80;
            ss2->_scoreiOS=100;
            ss1->_birthday=@"1993.12.31";
            ss1->_year=22;
            ss1->_height=1.81;
            ss1->_sex=@"man";
            [ss1 study];  //因为这个方法会使所有成绩加1,所以以后的运算都是在成绩加1的情况的运算的。
            [ss1 sleep];
            int scoreCcha=[ss1 gradeC:ss1->_scoreC andgradeC:ss2->_scoreC];
            NSLog(@"%@的C语言成绩减去%@的C语言成绩的差为:%d",ss1->_name,ss2->_name,scoreCcha);
            int scoreOCcha=[ss1 gradeOC:ss2->_scoreOC];
            NSLog(@"%@的OC语言成绩减去%@的OC语言成绩的差为:%d",ss1->_name,ss2->_name,scoreOCcha);
            int scoreiOScha=[ss1 gradeiOS:ss2->_scoreiOS];
            NSLog(@"%@的iOS成绩减去%@的iOS成绩的差为:%d",ss1->_name,ss2->_name,scoreiOScha);
            int sum=[ss1 sumScore];
            NSLog(@"%@的总成绩为:%d",ss1->_name,sum);
            int average=[ss1 averScore:[ss1 sumScore]];  //这里是直接调用前面方法的返回值,类型保持一致即可
            NSLog(@"%@的平均成绩为:%d",ss1->_name,average);
        }
        return 0;
    }
    */

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    货币
    沙漏
    秋季学习总结
    三个老师
    介绍自己
    redis 的部分配置
    第二次博客作业
    第一次阅读作业
    shell_通配符
    shell_/dev/null,>和&
  • 原文地址:https://www.cnblogs.com/wzy294250051/p/4787900.html
Copyright © 2011-2022 走看看