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

原创 2015年11月18日 14:50:47


------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>


版权声明:本文为博主原创文章,未经博主允许不得转载。

黑马程序员——综合练习 学生信息管理系统

主程序package view; import java.util.Scanner; import modle.Students; import control.panduan; public ...

黑马程序员——C语言基础--经典综合题型(学生管理系统)

---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------...

黑马程序员—虚拟机的安装、Mac OS X系统使用、五个OC小程序

山东省烟台市莱山区烟台大学七号楼201

黑马程序员大型项目淘淘商城

  • 2016年12月20日 21:07
  • 48B
  • 下载

黑马程序员-Java项目之交通灯管理系统

------------------- android开发、java培训、期待与您交流! ---------------------- ------------------- a...
  • sam9204
  • sam9204
  • 2014年06月09日 09:40
  • 393

黑马程序员:DVD管理系统项目之四--初识图形用户界面

---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ---------------------- ...

黑马程序员之项目开发学习笔记:ATM取款机系统数据库设计

某银行拟开发一套ATM取款机系统,实现如下功能: 1. 开户(到银行填写开户申请单, 卡号自动生成); 2. 取钱 3. 存钱 4. 查询余额 5. 转账(如使用一卡通代缴手机话费,个人股票交易等) ...

黑马程序员__JAVA项目分析__交通灯管理系统

------------android培训、java培训、java学习型技术博客、期待与您交流! ------------ 1.需求分析     模拟实现十字路口的交通灯管理系统逻辑,具体需求如下: ...

黑马程序员_交通灯管理系统项目

---------- android培训、java培训、期待与您交流! ---------- 交通灯管理系统项目分析: 模拟实现十字路口的交通灯管理系统逻辑,具体需求如下: 1,...

黑马程序员--JAVA交通灯管理系统项目

----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------ 一、项目需求 模拟实现十字路口的交通灯管理系统逻辑,具体要求如下: 1...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【黑马程序员】OC-综合项目:购票系统
举报原因:
原因补充:

(最多只允许输入30个字)