黑马程序员技术交流社区

标题: 入学测试题9 [打印本页]

作者: 泥娃娃    时间: 2016-3-20 09:48
标题: 入学测试题9
测试题9.
设计一个菜单类

*一个添加菜单的对象方法

*一个删除菜单的对象方法

*还有一个打印数组中所有菜单的对象方法
main.m
  1. #import <Foundation/Foundation.h>
  2. #import "CZCarte.h"
  3. #import "CZFood.h"
  4. int main(int argc, const char * argv[]) {
  5.     @autoreleasepool {
  6.         //  创建一个菜单对象
  7.         CZCarte *carte = [CZCarte new];
  8.         // 为菜单对象的成员属性赋值
  9.         carte->_foods = [[NSMutableArray alloc]init];
  10.         NSLog(@"--------原菜单内容---------");
  11.         [carte printCarte];  //打印空菜单

  12.         // 创建菜对象 并为菜的属性赋值
  13.         CZFood *f1 = [CZFood new];
  14.         f1.name = @"酸辣土豆丝";
  15.         f1.price = 12;
  16.         f1.info =@"辣椒炒土豆";
  17.         
  18.         CZFood *f2 = [CZFood new];
  19.         f2.name = @"鱼香肉丝";
  20.         f2.price = 24;
  21.         f2.info =@"微辣";
  22.         NSLog(@"--------添加后菜单内容-------");
  23.         [carte addFood:f1];//调用添加菜单方法
  24.         [carte addFood:f2];//调用添加菜单方法
  25.         [carte printCarte];//打印菜单
  26.         NSLog(@"--------删除后菜单内容-------");
  27.         [carte removeFood:f1];//调用删除菜单方法
  28.         [carte printCarte];  //打印菜单
  29.     }
  30.     return 0;
  31. }
复制代码

CZCarte.h
  1. #import <Foundation/Foundation.h>
  2. @class CZFood;
  3. @interface CZCarte : NSObject
  4. {     @public
  5.     NSMutableArray * _foods;
  6. }

  7. /**添加菜*/

  8. -(void) addFood:(CZFood *) food;

  9. /**删除菜*/

  10. -(void) removeFood:(CZFood *) food;

  11. /**打印菜单*/

  12. -(void) printCarte;

  13. @end
复制代码

CZCarte.m
  1. #import "CZCarte.h"
  2. #import "CZFood.h"
  3. @implementation CZCarte

  4. /**添加菜*/

  5. -(void) addFood:(CZFood *) food {
  6.    
  7.     [_foods addObject:food];
  8.    
  9. }

  10. /**删除菜*/

  11. -(void) removeFood:(CZFood *) food {
  12.    
  13.     [_foods removeObject:food];
  14.    
  15. }

  16. /**打印菜单*/

  17. -(void) printCarte {
  18.    
  19.     for (CZFood *food in _foods) {
  20.         
  21.         NSLog(@"菜名:%@",[food name]);
  22.         
  23.         NSLog(@"价格:%.2f",[food price]);
  24.         
  25.         NSLog(@"简介:%@",[food info]);
  26.         
  27.     }
  28. }
  29. @end
复制代码

CZFood.h
  1. #import <Foundation/Foundation.h>

  2. @interface CZFood : NSObject
  3. @property (nonatomic,strong) NSString *name; // 菜名
  4. @property (nonatomic,assign) float price;  //价格
  5. @property (nonatomic,strong) NSString *info; // 简介
  6. @end
复制代码

这是我做的,请各位大神斧正,优化。
作者: x313611232    时间: 2016-3-27 18:18
厉害!!!!
作者: a18302465887    时间: 2016-3-27 21:42
厉害!!!!
作者: wanwan_jz    时间: 2016-3-27 23:43
厉害!!!!
作者: tdwydan1    时间: 2016-3-28 11:31
借鉴一下,以后肯定会用




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2