黑马程序员技术交流社区

标题: 求高手帮我“打开苹果电脑”? [打印本页]

作者: 从┧靇┟开始    时间: 2014-5-22 11:27
标题: 求高手帮我“打开苹果电脑”?
本帖最后由 从┧靇┟开始 于 2014-5-22 19:09 编辑

刚看到类 自己练习了一段小程序,求一个能打印出Apple电脑的方法,或者告诉我枚举占位符到底是什么? 小弟谢啦!

  1. #import <Foundation/Foundation.h>

  2. typedef enum{
  3.     AppleComputer,
  4.     DellComputer,
  5.     LenovoComputer
  6. } ComputerBand;

  7. typedef struct{
  8.     int year;
  9.     int month;
  10.     int day;
  11. } ExpireDate;

  12. @interface Computer : NSObject
  13. {
  14.     @public
  15.     ComputerBand band;
  16.     ExpireDate expireDate;
  17. }

  18. - (void)open;
  19. - (void)close;

  20. @end

  21. @implementation Computer

  22. - (void)open
  23. {
  24.     NSLog(@"选择打开电脑的品牌是%d", band);  //  能不能不要输出0,1,2  直接输出电脑名称
  25. }
  26. - (void)close
  27. {
  28.     NSLog(@"关闭显示日期为 %d年 %d月 %d日 的电脑", expireDate.year, expireDate.month, expireDate.day);
  29. }

  30. @end

  31. int main()
  32. {
  33.     Computer *c1 = [Computer new];
  34.    
  35.     c1->band = AppleComputer;
  36.    
  37.     Computer *c2 = [Computer new];
  38.    
  39.     c2->expireDate.year = 1900;
  40.     c2->expireDate.month = 9;
  41.     c2->expireDate.day = 9;
  42.    
  43.    
  44.     [c1 open];
  45.    
  46.     [c2 close];
  47.    
  48.     return 0;
  49. }
复制代码

作者: S捭K阖Y    时间: 2014-5-22 12:22
枚举类型的本质是一些整形数据的集合,例如,你的枚举类型applcomputer被默认赋值为0,只是设定了范围并且设置了方便分辨的名称,是不能直接打印出代替的那些本质整形数据代号的。
你还不如直接把变量直接设置为字符串类型或者通过if语句等通过相应的枚举数字答应相应对应的字符

作者: huangqiwa    时间: 2014-5-22 16:03
楼主好,楼主这种想法是好的,但是C、C++是没有这种直接打印的办法的,如果想打印apple conputer 需要自己做映射,就如楼上所说的“你还不如直接把变量直接设置为字符串类型或者通过if语句等通过相应的枚举数字答应相应对应的字符”
可以将代码做如下修改:
  1. - (void)open
  2. {
  3.         if(self->band==0)
  4.         {
  5.                 NSLog(@"选择打开电脑的品牌是AppleComputer");
  6.         }
  7.         if(self->band==1)
  8.         {
  9.                 NSLog(@"选择打开电脑的品牌是DellComputer");
  10.         }
  11.      
  12. }
复制代码

作者: 从┧靇┟开始    时间: 2014-5-22 16:20
S捭K阖Y 发表于 2014-5-22 12:22
枚举类型的本质是一些整形数据的集合,例如,你的枚举类型applcomputer被默认赋值为0,只是设定了范围并且 ...

明白了  谢啦
作者: 从┧靇┟开始    时间: 2014-5-22 16:21
huangqiwa 发表于 2014-5-22 16:03
楼主好,楼主这种想法是好的,但是C、C++是没有这种直接打印的办法的,如果想打印apple conputer 需要自己 ...

清楚 枚举了 谢啦




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