现代操作系统实验1

MOSAD_HW1_REPORT

介绍

个人作业1-创建第一个XCode项目、面向对象与Objective-C语法学习

开发环境

  • Mac OS
  • Objective-C
  • Xcode

任务

张三衣柜里有N(N>3)件上衣:白色T恤…M(M>4)条裤子:灰色沙滩裤…你需要帮张三在未来的一周内挑选搭配。(你需要自己定义N、M取值)

要求:

  • 上衣未来两天内不可重复穿着,裤子未来一天内不可重复穿着。

  • 不同颜色搭配可获得不同分数。例如

    上衣裤子得分
    白色灰色、蓝色、白色…20、10、30…

    你需要自行定义颜色搭配分数。

  • 需要用到多态。

  • 输出程序设计和运行过程中,相关设计体现的oo特性(数据隐秘性、封装性、继承、多态)。

验收要点:

  • 输出一周内每天张三的随机搭配,包括衣物的关键属性、搭配分数。
  • 输出哪一天搭配分数最高及搭配是什么。
  • 类的设计与封装。
  • 类与类之间的继承关系与多态的体现。

项目设计

令 N=4, M=5, 即假设张三衣柜里有4件上衣:白色T恤、红色T恤、橙色T恤、黄色T恤;5条裤子:白色沙滩裤、绿色沙滩裤、蓝色沙滩裤、灰色沙滩裤、粉色沙滩裤。

  • 不同颜色搭配可获得不同分数。

    上衣裤子得分
    白色白色、绿色、蓝色、灰色、粉色5、10、15、20、25
    红色白色、绿色、蓝色、灰色、粉色30、35、40、45、50
    橙色白色、绿色、蓝色、灰色、粉色55、60、65、70、75
    黄色白色、绿色、蓝色、灰色、粉色80、85、90、95、99

代码设计

  • 父类
@interface Clothes : NSObject{
    NSString *color;
    NSInteger counter; //计数器,记录下衣物剩下冷却时间
}
// 初始化衣服颜色和计数器
- (id) init: (NSString *) colour; 
// 获取私有变量color
- (NSString *) getColor;

// 设置冷却时间
- (void) setCounter;
// 获取私有变量counter
- (NSInteger) getCounter;

- (void) calCounter;  //计算剩余冷却时间
  • 子类TopClothes

    变量全都继承自父类。

// 设置上衣冷却时间为3(今天、明天、后天)
- (void) setCounter;
  • 子类Trousers

    变量全都继承自父类。

// 设置裤子冷却时间为2(今天、明天)
- (void) setCounter;

运行

经过多次测试,输出结果符合项目设计的预期,未发现任何问题。现将其中三次的测试结果展示出来。

  • 测试1

在这里插入图片描述

  • 测试2

在这里插入图片描述

  • 测试3

在这里插入图片描述

总结

本次实验在设计时体现了比较明显的OO特性(数据隐秘性、封装性、继承、多态)。

  • 数据隐秘性及封装性

    成员变量都是私有变量,想要修改和获取变量都必须通过成员函数才能实现。

  • 继承

    TopClothesTrousers 都继承 Clothes

  • 多态

    函数 - (void) setCounter; 体现了多态。

1. 在linux下编写一个应用程序,命名为an_ch2_1b。这个程序不断地输出如下行:Those output come from child,[系统时间] 另外写一个应用程序,命名为an_ch2_1a。这个程序创建一个子进程,执行an_ch2_1b。这个程序不断地输出如下行: Those output come from child,[系统时间] 观察程序运行的结果,并对你看到的现象进行解释。 2. 在linux环境下编写一个控制台应用程序,程序中有一个共享的整型变量shared_var,初始值为0;创建一个线程并使其立即与主线程并发执行。新创建的线程与主线程 均不断地循环,并输出shared_var 的值。主线程在循环中不断地对shared_var 进行加1操作,即每次循环shared_var 被加1;而新创建的线程则不断地对shared_var 进行减1 操作,即每次循环shared_var 被减1。观察程序运行的结果,并对你看到的现象进行解释。 理发师问题的描述:一个理发店接待室有n张椅子,工作室有1张椅子;没有顾客时,理发师睡觉;第一个顾客来到时,必须将理发师唤醒;顾客来时如果还有空座的话,他就坐在一个座位上等待;如果顾客来时没有空座位了,他就离开,不理发了;当理发师处理完所有顾客,而又没有新顾客来时,他又开始睡觉。 1. 实现一个“difftree”命令,其功能是比较两个目录下的文件结构和文件信息。当在命令行方式下执行“difftree ”命令时,能够比较目录dir1和 目录dir2是否具有相同的结构,对相同的部分,进一步比较相同文件名的文件内容。列出比较的文件系统结构图。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值