1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > MOSAD_面向对象与Objective-C语法学习

MOSAD_面向对象与Objective-C语法学习

时间:2022-02-17 11:54:42

相关推荐

MOSAD_面向对象与Objective-C语法学习

面向对象与Objective-C语法学习

实验目的

学习掌握Objective-C语法,掌握基础字符串操作。OO知识——多态与继承

实验内容

给定三个用户张三,李四,王五。

给定四种语言英语、日语、德语、西班牙语。

实现场景输出(log形式即可):随机选择一个用户和一种语言学习,从当前日期开始,随机产生时间进行学习,输出学习进度直至学习完毕。每个语言共8个tour,每个tour共4个unit,每次学习一个unit。

要求:

随机选定人名、语言后,一次性输出所有的结果。随机时间指的是每次随机1-5天,每次学习时间在前一次的基础上加上刚刚随机出的天数。需要用到多态。

实验步骤

实验中,使用的是TA给出的.h文件。

因此,首先我们先对头文件中定义的方法进行实现。

首先是LearnOneUtil方法,每次调用对util加1,超过4则重置为1,tour加1.

- (void)learnOneUnit{if (progress_unit==4) {progress_tour++;progress_unit=1;}else{progress_unit++;}}

getTour和getUtil方法比较简单,不作介绍~

isFinish方法则是判断tour是否已经达到8而unit达到4。

- (bool)isFinish{if (self.getTour==9 && self.getUnit==1) {return true;}return false;}

然后依照TA给定的多态要求,对getName函数进行重写。以下以English为例。

@implementation English- (NSString *)getName{NSString *str = @"英语";return str;}

接下来是主函数部分,首先需要实现对人员和语言的随机选择,利用arc4random函数随机一个整数,根据整数进行对应的赋值。

int randompeople = arc4random() % 3;int randomlanguage =arc4random() % 4;NSString *name;switch (randompeople) {case 0:name = @"张三";break;...}id lang;switch (randomlanguage) {case 0:lang = [English new];break;...}

日期处理部分,使用NSDateFormatter进行日期格式转换,利用dateByAddingTimeInterval方法对日期进行不断的增加。同时,利用isFinish函数的返回值判断过程是否结束。

NSDate *currentDate = [NSDate date];NSDateFormatter *formatter = [[NSDateFormatter alloc]init];formatter.dateFormat = @"yyyy年MM月dd日";NSString *date = [formatter stringFromDate:currentDate];NSTimeInterval oneday = 24*60*60;while ([lang isFinish]==false) {NSLog(@"%@ %@ 学习%@ tour %zi util %zi",name,date,[lang getName],[lang getTour],[lang getUnit]);int days = arc4random() % 5 + 1;[lang learnOneUnit];currentDate = [currentDate dateByAddingTimeInterval: oneday * days];date = [formatter stringFromDate:currentDate];}

之后,点击运行即可完成输出。

实验心得

本次作业的题目是非常简单的,用别的语言,可以很快完成。但是使用ObjectiveC,由于对其许多语法规则不熟悉,因此写起来还是比较吃力的。实际代码可能在有经验的人眼里也会看着比较幼稚。但毕竟万事开头难,等我完全熟悉了ObjectiveC之后,相信我也可以写出不错的代码。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。