1. 程式人生 > >黑那程式設計師——OC實戰——電影院買票系統

黑那程式設計師——OC實戰——電影院買票系統

今天看完了教學視訊中的OC部分,最後的課程老師講了一個例項的題,就是模擬電影院購票的系統。在自己簡單些了一個小程式之後,再聽了老師的解法,自己融合老師講的和自己理解的內容,寫了一個改進版的程式。
程式程式碼如下

mian.h檔案

#import <Foundation/Foundation.h>
#import "Cinema.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Cinema *C1=[[Cinema alloc]initWithcinema:@"搞基聖地"];           //初始化物件的屬性
printf("**************************************\n"); printf("******歡迎使用基佬專用電影票購票系統*******\n"); printf("**************************************\n"); while (1) { //利用迴圈,將購票行為可以迴圈進行 printf("是否開始購票?\n1.是 0.否\n"); int flag; scanf("%d",&flag); if (flag==1) { //判斷輸入內容
[C1 printmovie]; //呼叫購票的實力方法 }else if (flag==0){ break; }else{ printf("輸入有誤!\n"); } } printf("謝謝您的使用\n"); } return 0; }

Cinema.h檔案

#import <Foundation/Foundation.h>
#import "MovieTicket.h"

@interface Cinema
: NSObject
{ NSString *_cinema; MovieTicket *_movt[5]; } //初始化init -(instancetype)initWithcinema:(NSString*)name; //列出電影播放安排 -(void)printmovie; //選擇電影 -(void)chosemovie; //選擇座位 -(void)choseseat; //選擇第幾排 -(void)chosepai; //選擇第幾列 -(void)choselie; //確認位置 -(void)queren; //支付 -(void)pay; //出票 -(void)printticket; @end

Cinema.m檔案

#import "Cinema.h"
int NOMBER;
int PAI,LIE;

@implementation Cinema
//初始化init
-(instancetype)initWithcinema:(NSString*)name{
    if (self=[super init]) {
        _cinema=name;    //MovieTicket *_mt[5]
        for (int i=0; i<5; i++) {
            MovieTicket *mt=[MovieTicket new];
            [email protected]"放映電影";
            mt.place=name;
            mt.starttime=[NSString stringWithFormat:@"%02d:00",i+1];
            [email protected]"120min";
            mt.no=i+1;
            mt.moviename=[NSString stringWithFormat:@"精肛互擼娃%02d",i+1];
            [email protected]"激情四射狼";
            [email protected]"bigbaby";
            mt.price=100;
            _movt[i]=mt;
        }
    }
    return self;
}
//列出電影播放安排
-(void)printmovie{
    for (int i=0; i<5; i++) {
        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);
    };
    [self chosemovie];
}
//選擇電影
-(void)chosemovie{
    printf("請選擇電影編號!\n");
    scanf("%d",&NOMBER);
    if (NOMBER>0&&NOMBER<6) {
        NSLog(@"\n\n您已成功選擇:%@",_movt[NOMBER-1].moviename);
        [self choseseat];
    }else {
        printf("輸入非法,請重新選擇!\n");
        [self chosemovie];
    };
}
//選擇座位
-(void)choseseat{
    printf("座位資訊如下,'+'為可選座位,'-'為已售出座位\n");
    for (int i=-1; i<15; i++) {
        for (int j=-1; j<15; j++) {
            if (i==-1) {
                printf(" %02d ",j+1);
            }else if (j==-1){
                printf(" %02d ",i+1);
            }else{
                if (_movt[NOMBER]->_seat[i][j]==0) {
                    printf("  + ");
                }else if(_movt[NOMBER]->_seat[i][j]==1){
                    printf("  - ");
                }
            }
        }
     printf("\n");
    }
    [self chosepai];
}

//選擇第幾排
-(void)chosepai{
    printf("請選擇第幾排\n");
    scanf("%d",&PAI);
    if (PAI>0&&PAI<16) {
        _movt[NOMBER-1].pai=PAI;
        printf("您已成功選擇第%d排\n",PAI);
        [self choselie];
    }else{
        printf("輸入非法,請重新選擇!\n");
        [self chosemovie];
    };
}
//選擇第幾列
-(void)choselie{
    printf("請選擇第幾列\n");
    scanf("%d",&LIE);
    if (LIE>0&&LIE<16) {
        _movt[NOMBER-1].lie=LIE;
        printf("您已成功選擇第%d列\n",LIE);
        [self queren];
    }else{
        printf("輸入非法,請重新選擇!\n");
        [self choselie];
    };

}
//確認位置
-(void)queren{
    int i;
    printf("您選擇的是:第%d排,第%d列\n確認:1 取消:0\n",_movt[NOMBER-1].pai,_movt[NOMBER-1].lie);
    scanf("%d",&i);
    if (i==1) {
        _movt[NOMBER]->_seat[_movt[NOMBER-1].pai-1][_movt[NOMBER-1].lie-1]=1;
        printf("確認成功!\n");
        [self pay];
    }else if (i==0){
        printf("取消成功,程式即將退出。。。\n");
        return;
    }else {
    printf("輸入非法,請重新選擇!\n");
        [self queren];
    }
}
//支付
-(void)pay{
    printf("支付中。。。。\n");
    printf("支付成功\n");
    [self printticket];
}
//出票
-(void)printticket{

    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);
}

@end

Common.h檔案

#import <Foundation/Foundation.h>

@interface Common : NSObject
{
    @public

Common.m檔案


#import "Common.h"

@implementation Common

@end

Ticket.h檔案

#import "Common.h"

@interface Ticket : Common
//開始時間
@property NSString *starttime;
//持續時間
@property NSString *duration;
//座位位置
@property int pai;
@property int lie;

@end

Common.m檔案

#import "Ticket.h"

@implementation Ticket

@end

MovieTicket.h檔案

#import "Ticket.h"
@interface MovieTicket : Ticket
//編號
@property int no;
//電影名
@property NSString *moviename;
//導演
@property NSString *director;
//主演
@property NSString *actor;
//票價
@property float price;
//列印票
-(void)printMovieTicket;
@end

MovieTicket.m檔案

#import "MovieTicket.h"

@implementation MovieTicket
-(void)printMovieTicket{
   NSLog(@"列印票資訊");
}
@end

以上就是我寫的程式,也算是這些天學習oc的一個小成果。
分享給大家。