关闭

【黑马程序员】OC-综合项目:购票系统

标签: ios源码购票系统
153人阅读 评论(0) 收藏 举报
分类:


------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------


OC-综合项目:购票系统


购票系统实现源码:


<span style="font-size:14px;">//
//  main.m
//  综合项目--购票系统
//
//  Created by Brisinga on 15/11/3.
//  Copyright © 2015年 yan. All rights reserved.
//

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

//定义买电影票
void buyMovieTicket(){

    Cinema *cin = [[Cinema alloc] initWithName:@"万达影院"];
    
    [cin buyTicket];

}

//定义买演唱会票
void buyConcertTicket(){

    NSLog(@"购买演唱会模块正在实现中...");
}
int main(int argc, const char * argv[]) {
    @autoreleasepool {
       
        int no; //接收用户输入的票的种类
        NSLog(@"*************欢迎使用购票系统**************");
        NSLog(@"请选择要购买的票的种类: 1.电影票  2.演唱会票");
        scanf("%d",&no);
        //判断输入是否合法
        if (no==1) {
            buyMovieTicket();
        }else if(no==2){
        
            buyConcertTicket();
        
        }else{
            
            NSLog(@"输入不合法!请重新输入!");
        }
        
    }
    return 0;
}



//
//  Cinema.h
//  OC学习
//
//  Created by Brisinga on 15/11/3.
//  Copyright © 2015年 yan. All rights reserved.
//

#import <Foundation/Foundation.h>
#include "MovieTicket.h"
@interface Cinema : NSObject
{
    MovieTicket *_tickets[5];
}
@property NSString *cinemaName; //电影院名字
@property NSString *place;  //厅
-(instancetype)initWithName:(NSString *)name;
//开始购票
-(void)buyTicket;
//显示正在上映的电影票
-(void)showList;
//选择电影票
-(void)selectTicket;
//显示座位
-(void)showSeat;
//选择排
-(void)selectRow;
//选择座位号
-(void)selectCol;
//支付
-(void)pay;
//出票
-(void)printTicket;
@end


//
//  Cinema.m
//  OC学习
//
//  Created by Brisinga on 15/11/3.
//  Copyright © 2015年 yan. All rights reserved.
//

#import "Cinema.h"

//定义选择的编号
int selectNum;
//定义座位排号
#define ROW 7
//定义座位号
#define COL 15

//定义选择的座位号
int y;
//定义选择的排号
int x;

@implementation Cinema

//初始化影讯
-(instancetype)initWithName:(NSString *)name{

    if (self=[super init]) {
        self.cinemaName = name;
        for (int i=0; i<5; i++) {
            MovieTicket *ticket = [MovieTicket new];
            ticket.name = [NSString stringWithFormat:@"忍者神龟:%0d",i+1];
            ticket.ticketNo = i+1;
            ticket.actor = @"乌龟/耗子/忍者";
            ticket.longTime = 180;
            ticket.showTime = [NSString stringWithFormat:@"20%02d-07-10",i+1];
            ticket.startTime = [NSString stringWithFormat:@"1%d:00",i+1];
            ticket.price = 30.5f;
            ticket.place = i+1;
            _tickets[i] = ticket;
            
        }
    }
    return self;
}

//开始购票
-(void)buyTicket{

    NSLog(@"开始购票:");
    [self showList];
}
//显示正在上映的电影票
-(void)showList{
    
    NSLog(@"当前正在上映的电影为:");
    for (int i=0; i<5; i++) {
        NSLog(@"**************************");
        NSLog(@"影片名称:%@  编号:%d",_tickets[i].name,_tickets[i].ticketNo);
        NSLog(@"主演:%@  时长:%d",_tickets[i].actor,_tickets[i].longTime);
        NSLog(@"上映时间:%@",_tickets[i].showTime);
        NSLog(@"开始时间:%@  %d号厅",_tickets[i].startTime,_tickets[i].place);
        NSLog(@"价格:%.2f",_tickets[i].price);
       // NSLog(@"**************************");
        
    }
        [self selectTicket];
}
//选择电影票
-(void)selectTicket{
    
    NSLog(@"                 ");
    NSLog(@"请选择要购买电影票的编号:");
    int num;
    scanf("%d",&num);
    //判断输入是否合法
    if (num<0||num>5) {
        NSLog(@"输入不合法,请重新输入!");
        [self selectTicket];
    }
    selectNum = num-1;
    NSLog(@"您选择的是编号为%d的影片:",num);
    NSLog(@"                 ");
    NSLog(@"影片名称:%@  编号:%d",_tickets[selectNum].name,_tickets[selectNum].ticketNo);
    NSLog(@"主演:%@  时长:%d",_tickets[selectNum].actor,_tickets[selectNum].longTime);
    NSLog(@"上映时间:%@",_tickets[selectNum].showTime);
    NSLog(@"开始时间:%@  %d号厅",_tickets[selectNum].startTime,_tickets[selectNum].place);
    NSLog(@"价格:%.2f",_tickets[selectNum].price);
    NSLog(@"                 ");
    NSLog(@"确定么?  1.确定  0.取消");
    scanf("%d",&num);
    if (num==1) {
        [self showSeat];
    }else if (num==0){
        [self selectTicket];
    
    }else{
        NSLog(@"输入不合法!重新输入!");
        [self selectTicket];
    }
    
}
//显示座位
-(void)showSeat{

    NSLog(@"当前观影座位情况:");
    for (int i=-1; i<ROW; i++) {
        for (int j=-1; j<COL; j++) {
            if (i==-1) {
                printf(" %02d",j+1);
            }else if (j==-1) {
                printf(" %02d",i+1);
            }else{
                printf(" + ");
            }
        }
        //NSLog(@"            ");
        printf("\n");
    }
    [self selectRow];
}
//选择排
-(void)selectRow{

    NSLog(@"请选择排号:");
    int num;
    scanf("%d",&num);
    //判断是否合法
    if (num<1||num>ROW) {
        NSLog(@"输入有误,请重新输入!");
        [self selectRow];
    }else{
        x = num;
      [self selectCol];
    }
    
}
//选择座位号
-(void)selectCol{

    NSLog(@"请选择座位号:");
    int num;
    scanf("%d",&num);
    //判断是否合法
    if (num<1||num>COL) {
        NSLog(@"输入有误,请重新输入!");
        [self selectCol];
    }else{
     
        y = num;
        NSLog(@"您输入的座位号为%d排%d座",x,y);
        NSLog(@"确定付款么? 1.确定  0.取消");
        scanf("%d",&num);
        if (num==1) {
            [self pay];
        }else if(num==0){
            [self selectRow];
        }else{
            NSLog(@"非法的输入!");
            return;
        }
    }
    
}
//支付
-(void)pay{

    NSLog(@"正在付款...");
    NSLog(@"付款成功!");
    
    [self printTicket];
}
//出票
-(void)printTicket{

    NSLog(@"正在出票,请稍等...");
    NSLog(@"出票成功!");
    NSLog(@"您购票的信息如下:");
    NSLog(@"                 ");
    NSLog(@"影片名称:%@  编号:%d",_tickets[selectNum].name,_tickets[selectNum].ticketNo);
    NSLog(@"主演:%@  时长:%d",_tickets[selectNum].actor,_tickets[selectNum].longTime);
    NSLog(@"上映时间:%@",_tickets[selectNum].showTime);
    NSLog(@"开始时间:%@  %d号厅",_tickets[selectNum].startTime,_tickets[selectNum].place);
    NSLog(@"座位号:%d排%d座",x,y);
    NSLog(@"价格:%.2f",_tickets[selectNum].price);
    NSLog(@"                 ");
    NSLog(@"座位显示如下:");
    for (int i=-1; i<ROW; i++) {
        for (int j=-1; j<COL; j++) {
            if (i==-1) {
                printf(" %02d",j+1);
            }else if (j==-1) {
                printf(" %02d",i+1);
            }else if(i==x-1&&j==y-1){
                
                printf(" @ ");
            }else{
                printf(" + ");
            }
        }
        //NSLog(@"            ");
        printf("\n");
    }
    
}
@end


//
//  Common.h
//  OC学习
//
//  Created by Brisinga on 15/11/3.
//  Copyright © 2015年 yan. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Common : NSObject
@property NSString *name; //影片名字
@property NSString *actor; //主演
@property int longTime;  //时长
@property NSString *showTime;  //上映时间
@property int num; //编号
@end


//
//  Common.m
//  OC学习
//
//  Created by Brisinga on 15/11/3.
//  Copyright © 2015年 yan. All rights reserved.
//

#import "Common.h"

@implementation Common

@end


//
//  Ticket.h
//  OC学习
//
//  Created by Brisinga on 15/11/3.
//  Copyright © 2015年 yan. All rights reserved.
//

#import "Common.h"

@interface Ticket : Common
@property int row;  //排
@property int col;  //座位号
@property int place; //上映地点
@property NSString *startTime; //开始时间
@property float price; //价格

//显示票的信息
-(void)showInfo;
@end

//
//  Ticket.m
//  OC学习
//
//  Created by Brisinga on 15/11/3.
//  Copyright © 2015年 yan. All rights reserved.
//

#import "Ticket.h"

@implementation Ticket

@end

//
//  MovieTicket.h
//  OC学习
//
//  Created by Brisinga on 15/11/3.
//  Copyright © 2015年 yan. All rights reserved.
//

#import "Ticket.h"

@interface MovieTicket : Ticket
@property int ticketNo; //票的编号
@end


//
//  MovieTicket.m
//  OC学习
//
//  Created by Brisinga on 15/11/3.
//  Copyright © 2015年 yan. All rights reserved.
//

#import "MovieTicket.h"

@implementation MovieTicket

@end


//
//  ConcertTicket.h
//  OC学习
//
//  Created by Brisinga on 15/11/3.
//  Copyright © 2015年 yan. All rights reserved.
//

#import "Ticket.h"

@interface ConcertTicket : Ticket
@property int ticketNo; //票的编号
@end


//
//  ConcertTicket.m
//  OC学习
//
//  Created by Brisinga on 15/11/3.
//  Copyright © 2015年 yan. All rights reserved.
//

#import "ConcertTicket.h"

@implementation ConcertTicket

@end
</span>


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:5787次
    • 积分:259
    • 等级:
    • 排名:千里之外
    • 原创:21篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档