黑马程序员技术交流社区

标题: oc——买电影票的程序--原创代码 [打印本页]

作者: c9527    时间: 2015-11-2 14:00
标题: oc——买电影票的程序--原创代码

视频中老师视频讲过,自己再次重新写的。有老师课里边的内容,也有原创。全部自己敲出来的
mian.h
  1. #import <Foundation/Foundation.h>
  2. #import "Cinema.h"
  3. int main(int argc, const char * argv[]) {
  4.     @autoreleasepool {
  5.         Cinema *C1=[[Cinema alloc]initWithcinema:@"搞基圣地"];
  6.         printf("**************************************\n");
  7.         printf("******欢迎使用基佬专用电影票购票系统*******\n");
  8.         printf("**************************************\n");
  9.         while (1) {
  10.         printf("是否开始购票?\n1.是  0.否\n");
  11.         int flag;
  12.         scanf("%d",&flag);
  13.         if (flag==1) {
  14.             [C1 printmovie];
  15.         }else if (flag==0){
  16.             break;
  17.         }else{
  18.             printf("输入有误!\n");
  19.         }
  20.         }
  21.         printf("谢谢您的使用\n");
  22.     }
  23.     return 0;
  24.     }
复制代码
Cinema.h
  1. #import <Foundation/Foundation.h>
  2. #import "MovieTicket.h"

  3. @interface Cinema : NSObject
  4. {
  5.     NSString *_cinema;
  6.     MovieTicket *_movt[5];
  7. }
  8. //初始化init
  9. -(instancetype)initWithcinema:(NSString*)name;
  10. //列出电影播放安排
  11. -(void)printmovie;
  12. //选择电影
  13. -(void)chosemovie;
  14. //选择座位
  15. -(void)choseseat;
  16. //选择第几排
  17. -(void)chosepai;
  18. //选择第几列
  19. -(void)choselie;
  20. //确认位置
  21. -(void)queren;
  22. //支付
  23. -(void)pay;
  24. //出票
  25. -(void)printticket;

  26. @end
复制代码

Cinema.m
  1. #import "Cinema.h"
  2. int NOMBER;
  3. int PAI,LIE;

  4. @implementation Cinema
  5. //初始化init
  6. -(instancetype)initWithcinema:(NSString*)name{
  7.     if (self=[super init]) {
  8.         _cinema=name;    //MovieTicket *_mt[5]
  9.         for (int i=0; i<5; i++) {
  10.             MovieTicket *mt=[MovieTicket new];
  11.             mt.name=@"放映电影";
  12.             mt.place=name;
  13.             mt.starttime=[NSString stringWithFormat:@"%02d:00",i+1];
  14.             mt.duration=@"120min";
  15.             mt.no=i+1;
  16.             mt.moviename=[NSString stringWithFormat:@"精肛互撸娃%02d",i+1];
  17.             mt.director=@"激情四射狼";
  18.             mt.actor=@"bigbaby";
  19.             mt.price=100;
  20.             _movt[i]=mt;
  21.         }
  22.     }
  23.     return self;
  24. }
  25. //列出电影播放安排
  26. -(void)printmovie{
  27.     for (int i=0; i<5; i++) {
  28.         NSLog(@"\n\nNO.%d\n电影名:%@  \n导演:%@   主演:%@  \n电影时长:%@  开场时间:%@  \n票价:%.2f\n\n",_movt[i].no,_movt[i].moviename,_movt[i].director,_movt[i].actor,_movt[i].duration,_movt[i].starttime,_movt[i].price);
  29.     };
  30.     [self chosemovie];
  31. }
  32. //选择电影
  33. -(void)chosemovie{
  34.     printf("请选择电影编号!\n");
  35.     scanf("%d",&NOMBER);
  36.     if (NOMBER>0&&NOMBER<6) {
  37.         NSLog(@"\n\n您已成功选择:%@",_movt[NOMBER-1].moviename);
  38.         [self choseseat];
  39.     }else {
  40.         printf("输入非法,请重新选择!\n");
  41.         [self chosemovie];
  42.     };
  43. }
  44. //选择座位
  45. -(void)choseseat{
  46.     printf("座位信息如下,'+'为可选座位,'-'为已售出座位\n");
  47.     for (int i=-1; i<15; i++) {
  48.         for (int j=-1; j<15; j++) {
  49.             if (i==-1) {
  50.                 printf(" %02d ",j+1);
  51.             }else if (j==-1){
  52.                 printf(" %02d ",i+1);
  53.             }else{
  54.                 if (_movt[NOMBER]->_seat[i][j]==0) {
  55.                     printf("  + ");
  56.                 }else if(_movt[NOMBER]->_seat[i][j]==1){
  57.                     printf("  - ");
  58.                 }
  59.             }
  60.         }
  61.      printf("\n");
  62.     }
  63.     [self chosepai];
  64. }

  65. //选择第几排
  66. -(void)chosepai{
  67.     printf("请选择第几排\n");
  68.     scanf("%d",&PAI);
  69.     if (PAI>0&&PAI<16) {
  70.         _movt[NOMBER-1].pai=PAI;
  71.         printf("您已成功选择第%d排\n",PAI);
  72.         [self choselie];
  73.     }else{
  74.         printf("输入非法,请重新选择!\n");
  75.         [self chosemovie];
  76.     };
  77. }
  78. //选择第几列
  79. -(void)choselie{
  80.     printf("请选择第几列\n");
  81.     scanf("%d",&LIE);
  82.     if (LIE>0&&LIE<16) {
  83.         _movt[NOMBER-1].lie=LIE;
  84.         printf("您已成功选择第%d列\n",LIE);
  85.         [self queren];
  86.     }else{
  87.         printf("输入非法,请重新选择!\n");
  88.         [self choselie];
  89.     };
  90.    
  91. }
  92. //确认位置
  93. -(void)queren{
  94.     int i;
  95.     printf("您选择的是:第%d排,第%d列\n确认:1 取消:0\n",_movt[NOMBER-1].pai,_movt[NOMBER-1].lie);
  96.     scanf("%d",&i);
  97.     if (i==1) {
  98.         _movt[NOMBER]->_seat[_movt[NOMBER-1].pai-1][_movt[NOMBER-1].lie-1]=1;
  99.         printf("确认成功!\n");
  100.         [self pay];
  101.     }else if (i==0){
  102.         printf("取消成功,程序即将退出。。。\n");
  103.         return;
  104.     }else {
  105.     printf("输入非法,请重新选择!\n");
  106.         [self queren];
  107.     }
  108. }
  109. //支付
  110. -(void)pay{
  111.     printf("支付中。。。。\n");
  112.     printf("支付成功\n");
  113.     [self printticket];
  114. }
  115. //出票
  116. -(void)printticket{
  117.    
  118.     NSLog(@"\n您的票:\n\n电影名:%@  \n导演:%@   主演:%@  \n电影时长:%@  开场时间:%@  \n票价:%.2f\n第%d排,第%d列\n\n",_movt[NOMBER-1].moviename,_movt[NOMBER-1].director,_movt[NOMBER-1].actor,_movt[NOMBER-1].duration,_movt[NOMBER-1].starttime,_movt[NOMBER-1].price,_movt[NOMBER-1].pai,_movt[NOMBER-1].lie);
  119. }

  120. @end
复制代码

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

  2. @interface Common : NSObject
  3. {
  4.     @public
复制代码

Common.m

  1. #import "Common.h"

  2. @implementation Common

  3. @end
复制代码

Ticket.h
  1. #import "Common.h"

  2. @interface Ticket : Common
  3. //开始时间
  4. @property NSString *starttime;
  5. //持续时间
  6. @property NSString *duration;
  7. //座位位置
  8. @property int pai;
  9. @property int lie;

  10. @end
复制代码
  1. #import "Ticket.h"

  2. @implementation Ticket

  3. @end
复制代码

MovieTicket.h
  1. #import "Ticket.h"
  2. @interface MovieTicket : Ticket
  3. //编号
  4. @property int no;
  5. //电影名
  6. @property NSString *moviename;
  7. //导演
  8. @property NSString *director;
  9. //主演
  10. @property NSString *actor;
  11. //票价
  12. @property float price;
  13. //打印票
  14. -(void)printMovieTicket;
  15. @end
复制代码

MovieTicket.m
  1. #import "MovieTicket.h"

  2. @implementation MovieTicket
  3. -(void)printMovieTicket{
  4.    NSLog(@"打印票信息");
  5. }
  6. @end
复制代码





作者: c9527    时间: 2015-11-2 14:01
求技术分,求黑马币
作者: 任子杰    时间: 2015-11-2 19:47
慢慢赚

作者: Venus_1991    时间: 2015-11-2 21:58
给力啊,lz!!!!




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