Object-C一日速成——基础知识

现在是北京时间2:33pm,今天是只有一节早课的一天,所以我坐在咖啡馆,悠闲又自在。搭建了一上午的环境后,我终于要开始写作业喽~

文章目录

  • 一、第二章实验报告
    • 1.1实验目的
    • 1.2实验要求
    • 1.3 实验内容
  • 二、第五章实验报告
    • 2.1 实验目标
    • 2.2 实验要求
    • 2.3 实验内容
  • 三、第六章实验报告
    • 3.1实验目的
    • 3.2实验要求
    • 3.3 实验内容
  • 四、第七章实验报告
    • 7.1实验目的
    • 7.2实验要求
    • 7.3 实验内容
  • 五、第八章实验报告
    • 5.1实验要求
    • 5.2 实验内容
  • 六、第九章实验报告
    • 6.1实验要求
    • 6.2 实验内容
    • 总结一下

一、第二章实验报告

1.1实验目的

熟悉Mac OS的基本操作;
掌握开发OC程序的基本流程;
理解面向对象的思想;
掌握类与实例的方法;
掌握实例变量访问的方法;
掌握基础编程方法的使用。

1.2实验要求

请各位学习者记录实验调试中出现的问题、调试过程及解决方法;
请各位学习者记录实验成果,并将运行结果抓屏;
请各位学习者按实验大纲的要求完成实验报告
完成实验报告

1.3 实验内容

实验题:利用类、对象、方法的声明和实现,数组、指针的知识编写一个小程序【题目要求】
【步骤一】:定义一个Dog.h类,并且在Dog.h中定义两个方法;
【步骤二】:实现Dog.m类,并且实现Dog的两个方法;
【步骤三】: 在main.m中调用Dog的方法,并且应用数组的知识来实现Dog中方法的调用。

【实验工具】
VMWare15+maxOS13+xcode4.9.1

【实验过程记录】

1. 请写出完成步骤一你的大体思路和所用的关键技术,正确运行后截图抓屏(必要时可以附上代码)

创建一个Dog.h文件,通过@interface定义一个Dog类,给出属性“种类:kind”和实例方法“eat”、类方法“run”

在这里插入图片描述

2. 请写出完成步骤二中的的大体思路及所用到的关键技术,正确运行后抓屏截图(必要时可以附上代码)

创建一个Dog.m文件,通过@implementation实现之前定义的Dog类,实现方法“eat”和方法“run”

在这里插入图片描述

3. 请写出完成步骤三中的的大体思路及所用到的关键技术及正确运行后进行抓屏截图(必要时可以附上代码)

在main.m文件中实现Dog类,打印其run和eat方法
关键技术:[[类名 alloc]init]的使用
作为根类中的方法,alloc用于分配内存空间,init用于初始化,用[[类名 alloc]init]得到的对象是可以直接使用的,所以可以用这种方法直接创建对象。

这样创建后的对象也是可以直接使用,这是因为alloc分配了内存空间,init对对象进行了初始化,这样的对象是可以直接使用的。

在这里插入图片描述

二、第五章实验报告

2.1 实验目标

巩固并熟练掌握OC的特点
按照要求完成Person类和Student类的创建与实现

2.2 实验要求

请各位学习者记录实验调试中出现的问题、调试过程及解决方法;
请各位学习者记录实验成果,并将运行结果抓屏;
请各位学习者按教学大纲的要求完成实验报告
完成实验报告Word文件

2.3 实验内容

写出Person类和子类Student类。
创建Person类的实例变量年龄和姓名,run函数。
创建Student类的实例变量学号和班级,learn函数。

【题目要求】
步骤1:写出Person类,并写出Person类的init方法。
步骤2:写出Student类,并写出Student类的init方法。
步骤3:在main函数里定义一个Student对象,打断点跟踪代码的执行,看是如何调用Person类的初始化方法的。

【实验过程记录】
步骤1:写出Person类,并写出Person类的init方法。(截屏)

创建Person.h类,在其中声明属性:姓名和年龄,方法:姓名年龄的setget方法和初始化方法,还有run方法

在这里插入图片描述

创建Person.m类,在其中实现方法:初始化方法、run方法和discribe描述方法。

在这里插入图片描述

在main函数中测试实验效果的代码和结果:

在这里插入图片描述

步骤2:写出Student类,并写出Student类的init方法。(截屏)

创建Student.h类,在其中声明属性:班级,学号,方法:班级学号的setget方法和初始化方法,还有learn方法

在这里插入图片描述

创建Student.m类,在其中实现方法:初始化方法、learn方法和discribe描述方法。
我这里好像写错了,没有体现继承关系,但是我不想改呜呜呜,大家觉得不对一定要提出来,好让我知道我没在玩单机博客

在这里插入图片描述

在main函数中测试实验效果的代码和结果:

在这里插入图片描述在这里插入图片描述

步骤3:在main函数里定义一个Student对象,打断点跟踪代码的执行,看是如何调用Person类的初始化方法的。(截屏)

修改main方法并在Student.m中设计断点跟踪父类Person的初始化

在这里插入图片描述
在这里插入图片描述

三、第六章实验报告

3.1实验目的

通过本次实验复习和巩固指针的使用方法

3.2实验要求

请各位学习者记录实验调试中出现的问题、调试过程及解决方法;
请各位学习者记录实验成果,并将运行结果抓屏;
请各位学习者按教学大纲的要求完成实验报告
完成实验报告Word文件
请将程序设计思想和方法、最终程序清单(自行设计部分明确表示)、运行结果抓屏等
报告提交到课程【作业】中。

3.3 实验内容

可以使用一种名为Sieve of Erastosthenes的算法产生素数,这个过程算法如下所示。编写一个程序来实现这个算法。假定程序找出150之前的所有素数,比较本文和其他计算质数的算法。
【题目要求】
步骤1:定义整型数组P。将所有元素Pi置为0、2<=i<=n。
步骤2:将is 设为2。
步骤3:如果i>n,算法终止。
步骤4:如果Pi等于0,则i是质数。
步骤5:对于所有满足i *j<n的正整数j,将Pi*j设为1。
步骤6:i加1并且回到步骤3。
【实验过程记录】
分步骤进行截图如下
步骤1:定义整型数组P。将所有元素Pi置为0、2<=i<=n。(截屏)
在这里插入图片描述
步骤2:将is 设为2。(截屏)
在这里插入图片描述
在这里插入图片描述
步骤3:如果i>n,算法终止。(截屏)
在这里插入图片描述
在这里插入图片描述
步骤4:如果Pi等于0,则i是质数。(截屏)
在这里插入图片描述
步骤5:对于所有满足i *j<n的正整数j,将Pi*j设为1。(截屏)
在这里插入图片描述
步骤6:i加1并且回到步骤3。(截屏)
在这里插入图片描述
完整代码及实验结果

在这里插入图片描述

几种计算质数的方法:
a)定义求解法:找出只能被1或自身整除的自然数。循环判断该数除以比它小的每个自然数(大于1),如果有能被它整除的,则它就不是质数。
b)最小质因数法:如果一个数是合数,那么它的最小质因数肯定小于等于他的平方根。如果一个数能被它的最小质因数整除的话,那它是合数不是质数。所以判断一个数是否是质数,只需判断它是否能被小于它开跟后后的所有数整除,这样做减少了运算量提高了计算效率。
c)当然,本次实验使用的方法类似于筛选质数的方法,但常规的筛选法是通过建立一个bool型数组,本文是通过整形数组变换。

四、第七章实验报告

7.1实验目的

掌握在Xcode下使用文件读写操作

7.2实验要求

请各位学习者记录实验调试中出现的问题、调试过程及解决方法;
请各位学习者记录实验成果,并将运行结果抓屏;
请各位学习者按教学大纲的要求完成实验报告
完成实验报告Word文件

7.3 实验内容

先创建一个NSString对象,然后调用NSString的writeToFile方法写到 /tmp/test.txt 文件里。然后使用NSFilemager对象读出该对象到NSData对象里。使用NSData对象创建NSString对象。看是否和原来的对象一致。
【题目要求】
步骤1:创建一个NSString对象(不能是空对象)。
步骤2:调用NSString对象的写文件的方法,将NSString对象写入到/tmp/test.txt。
步骤3: 使用NSFilemanger对象判断刚才写的文件是否存在。
步骤4: 如果文件存在,使用NSFilemanger对象将文件的内容读取到NSData对象里。
步骤5: 用读取的NSData对象创建NSString对象。
【实验过程记录】
步骤1:创建一个NSString对象(不能是空对象)。
在这里插入图片描述

步骤2:调用NSString对象的写文件的方法,将NSString对象写入到/tmp/test.txt。

在这里插入图片描述
步骤3: 使用NSFilemanger对象判断刚才写的文件是否存在。

在这里插入图片描述
或者也可以如下图显示

在这里插入图片描述

步骤4: 如果文件存在,使用NSFilemanger对象将文件的内容读取到NSData对象里。
在这里插入图片描述

步骤5: 用读取的NSData对象创建NSString对象。

在这里插入图片描述

五、第八章实验报告

5.1实验要求

请各位学习者记录实验调试中出现的问题、调试过程及解决方法;
请各位学习者记录实验成果,并将运行结果抓屏;
请各位学习者按教学大纲的要求完成实验报告
完成实验报告Word文件

5.2 实验内容

创建一个Person类,该对象将遵循NSCoding协议。
实现该协议,然后实例化一个Person对象,实现对该对象的归档和解档。

【题目要求】
步骤1:创建一个Person类(包含姓名,性别,年龄等属性)
步骤2:实现Person类的初始化函数。
步骤3:实现Person类的NSCoding协议。
步骤4:创建一个Person对象,利用归档方法写到文件。
步骤5:定义一个临时的Person对象,利用NSCoding协议从文件里读文件到临时的Person对象。
步骤6:打印临时Person对象的值。
【实验过程记录】
步骤1:创建一个Person类(包含姓名,性别,年龄等属性)
我对之前的作业中用到的Person类进行了改写

在这里插入图片描述

步骤2:实现Person类的初始化函数。

在这里插入图片描述
在这里插入图片描述

步骤3:实现Person类的NSCoding协议。

在这里插入图片描述
在这里插入图片描述

步骤4:创建一个Person对象,利用归档方法写到文件。

在这里插入图片描述

步骤5:定义一个临时的Person对象,利用NSCoding协议从文件里读文件到临时的Person对象。

在这里插入图片描述
步骤6:打印临时Person对象的值。

在这里插入图片描述

六、第九章实验报告

6.1实验要求

请各位学习者记录实验调试中出现的问题、调试过程及解决方法;
请各位学习者记录实验成果,并将运行结果抓屏;
请各位学习者按教学大纲的要求完成实验报告
完成实验报告Word文件

6.2 实验内容

创建该页面的三层数据模型

【题目要求】

步骤1:创建一个News类,用来保存每一行的数据。
步骤2:创建一个NewsList类,用来保存News类的对象。
步骤3:封装NewsList类里的增删改查的方法。
步骤4:News类和NewsList的NSCoding协议。
步骤5:测试News类和NewList类的NSCoding协议是否正常。
步骤6:创建NewsDb类,用来管理NewList类,封装NewList的归档和解档方法。

【实验过程记录】
步骤1:创建一个News类,用来保存每一行的数据。
创建New.h类

在这里插入图片描述

步骤2:创建一个NewsList类,用来保存News类的对象。

在这里插入图片描述

步骤3:封装NewsList类里的增删改查的方法。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

步骤4:News类和NewsList的NSCoding协议。
创建New.m类并在main中测试其NSCoding协议

在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述测试NSCopying协议
在这里插入图片描述测试NSCoding协议
在这里插入图片描述
在这里插入图片描述

这里我才发现原来加密后的文件是打不开的。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

步骤5:测试News类和NewList类的NSCoding协议是否正常。

在这里插入图片描述在这里插入图片描述

步骤6:创建NewsDb类,用来管理NewList类,封装NewList的归档和解档方法。

在这里插入图片描述在这里插入图片描述

总结一下

代码写的比较粗糙,可能有很多失误,主要目的是了解该语言的基础知识,做完这些实验我也大致了解了这个语言,以后遇到使用Object-C进行开发的项目也完全不需要慌张啦~
在这里插入图片描述

猜你喜欢

转载自www.cnblogs.com/wojiaobuzhidao/p/10946115.html
今日推荐