• 问题总会出现,不过解决问题的方法也会出现!!!

代码练习-55-购票系统

代码练习 小雨 638次浏览 已收录 0个评论

—— ——-

代码练习-55-购票系统

//
//  main.m
//  购票系统 Objective-C
//  综合项目

#import <Foundation/Foundation.h>
#import "Cinema.h"
void buyTicket(){
//购买电影票

//调用Cinema类的buyTicket方法
    Cinema *cinema = [[Cinema alloc]initWithCinemaName:@"亿达影城"];
    [cinema buyTicket];

}
void buySoundTicket(){


}

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //打印欢迎信息
        printf("**************** 欢迎使用购票系统****************n");
        //提示用户选择
        printf("您可以使用购票系统购买:1.电影票 2.演唱会n");
        int num;
        scanf("%d",&num);
        //当用户选择不同的功能,调用不同的函数
        if (num==1) {
            //在函数中创建对象开始购票
            buyTicket();
        }else if(num==2){
            buySoundTicket();
        }
    }
    return 0;
}

//
//  Cinema.h
//  综合项目
//
//  Created by ZhouBin on 15/8/9.
//  Copyright (c) 2015年 ZhouBin. All rights reserved.
//

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

@interface Cinema : NSObject
{
    //电影院的名称
    NSString *_cinemaName;

    //票的集合
    MovieTicket *ticket[5];

}

//定义构造方法
-(instancetype)initWithCinemaName:(NSString *)name;

//开始购票
-(void)buyTicket;
//显示正在上映的电影票
-(void)list;
//选择电影
-(void)selectMovie;
//选择排数
-(void)selectRow;
//选择座位号
-(void)selectCol;
//开始支付
-(void)pay;
//出票(打印票)
-(void)printTicket;
@end

//
//  Cinema.m
//  综合项目
//
//  Created by ZhouBin on 15/8/9.
//  Copyright (c) 2015年 ZhouBin. All rights reserved.
//

#import "Cinema.h"
#define ROW 7
#define COL 15

//定义一个全局变量保存编号
int selectNo;

@implementation Cinema

//定义构造方法
-(instancetype)initWithCinemaName:(NSString *)name{

    //让父类先初始化
    if (self=[super init]) {
        //给电影院初始化个名字
        _cinemaName = name;

        //给电影票的数组初始化
        for (int i=0; i<5; i++) {
            MovieTicket *mvticket = [MovieTicket new];
            //给对象赋值
            mvticket.name = [NSString stringWithFormat:@"投名状%02d",i+1];
            mvticket.longTime = 120;
            mvticket.actor = @"李连杰/刘德华/金城武";
            mvticket.director = @"陈可辛/叶伟民";
            mvticket.no = i+1;
            mvticket.showTime = [NSString stringWithFormat:@"200%d-11-11",i+1];
            mvticket.startTime = [NSString stringWithFormat:@"1%d:00",i+1];
            mvticket.price = 32.6f;
            mvticket.place = [NSString stringWithFormat:@"影厅%02d",i+1];


            //把对象存储到数组中
            ticket[i]=mvticket;


        }

    }
    return self;
}


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

    NSLog(@"开始购票");
    [self list];

}
//显示正在上映的电影票
/*
 思路:
    利用已有的ticket数组,打印数组
    遍历数组

 */
-(void)list{

    NSLog(@"正在上映的电影票");

    /*
     编号     名称
     主演     开始时间
     导演     时长
     上映时间

     */
    for (int i=0; i<5; i++) {
        NSLog(@"nn编号:%d 名称: %@ n主演:%@ 开始时间:%@ n导演:%@ 时长:%d n上映时间:%@nn",ticket[i].no,ticket[i].name,ticket[i].actor,ticket[i].startTime,ticket[i].director,ticket[i].longTime,ticket[i].showTime);
    }

    //提示让用户选择电影
    [self selectMovie];

}
//选择电影
/*
 思路:
    定义一个全局变量,保存用户选择的影片编号
    提示用户输入一部电影编号
    接收用户输入的电影编号
    保存编号
 */
-(void)selectMovie{

    NSLog(@"选择电影");
//    定义一个全局变量,保存用户选择的影片编号

//    提示用户输入一部电影编号
    NSLog(@"请输入您选择的电影编号");
//    接收用户输入的电影编号
    int num;
    scanf("%d",&num);
//    保存编号
    if (num<0||num>5) {
        return;
    }
    selectNo = num;
    NSLog(@"n您已成功选择电影:%@",ticket[selectNo-1].name);



    //提示让用户选择排数
    [self selectRow];

}
//选择排数
/*
 思路:
    把电影院的座位信息都打出来看一下
    提示,当前影厅有多少排,每排有多少个座位
    提示用户输入排数
    保存排数
 */
-(void)selectRow{

    //    提示,当前影厅有多少排,每排有多少个座位
    printf("当前影厅有%d排,每排有个%d座位n",ROW,COL);
//    把电影院的座位信息都打出来看一下
    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("  +");
        }
        printf("n");
    }

//    提示用户输入排数
    printf("请输入您要选择的排数n");
    int num;
    scanf("%d",&num);
    if (num<0||num>7) {
        return;
    }

//    保存排数
    ticket[selectNo-1].rowNum = num;

    //提示让用户选择座位号
    [self selectCol];

}
//选择座位号
-(void)selectCol{
    printf("您已经选择了排数:%d,请选择座位n",ticket[selectNo-1].rowNum);
    int num;
    scanf("%d",&num);
    if (num<0||num>15) {
        return;
    }
    //    保存座位
    ticket[selectNo-1].colNum = num;

    //把用户当前的购买信息打印出来,让用户确认
    //您选了 xxx 开始时间:
    //第 xx 排 xx 座
    //价格:
    NSLog(@"n您选择的影片:n %@,开始时间:%@ n 第%d排 第%d座 n 票价:%.2fn",ticket[selectNo-1].name,ticket[selectNo-1].startTime,ticket[selectNo-1].rowNum,ticket[selectNo-1].colNum,ticket[selectNo-1].price);

    printf("请确认:1.确认 0.取消n");
    int flag;
    scanf("%d",&flag);
    if (flag) {
        //让用户支付票价
        [self pay];
    }



}
//开始支付
-(void)pay{

    NSLog(@"开始支付...n支付已经完成...");
    //打印出票
    [self printTicket];

}
//出票(打印票)
-(void)printTicket{

    NSLog(@"出票");
    NSLog(@"n恭喜您,购票成功!n购票信息如下:n %@,开始时间:%@ n 第%d排 第%d座 n 影厅:%@ n 票价:%.2fn",ticket[selectNo-1].name,ticket[selectNo-1].startTime,ticket[selectNo-1].rowNum,ticket[selectNo-1].colNum,ticket[selectNo-1].place,ticket[selectNo-1].price);

    //打印座位信息
    for (int i=-1; i<ROW; i++) {
        for (int j=-1; j<COL; j++) {
            if (i==(ticket[selectNo-1].rowNum-1) && j==(ticket[selectNo-1].colNum-1)) {
                printf("  @");
            }else if(i==-1){
                printf("%02d ",j+1);
            }else if(j==-1){
                printf("%02d",i+1);
            }else{
                printf("  +");
            }
        }
        printf("n");
    }

}
@end

//
//  MovieTicket.h
//  综合项目
//
//  Created by ZhouBin on 15/8/9.
//  Copyright (c) 2015年 ZhouBin. All rights reserved.
//

#import "Ticket.h"

@interface MovieTicket : Ticket
//票价
@property float price;

//电影票的编号
@property int ticketNo;

@end

//
//  MovieTicket.m
//  综合项目
//
//  Created by ZhouBin on 15/8/9.
//  Copyright (c) 2015年 ZhouBin. All rights reserved.
//

#import "MovieTicket.h"

@implementation MovieTicket

@end

//
//  Ticket.h
//  综合项目
//
//  Created by ZhouBin on 15/8/9.
//  Copyright (c) 2015年 ZhouBin. All rights reserved.
//

#import "Common.h"

@interface Ticket : Common
//排数
@property int rowNum;

//座位号
@property int colNum;

//地点
@property NSString *place;

//开始时间
@property NSString *startTime;

//结束时间
@property NSString *endTime;


-(void)printTicket;
@end

//
//  Ticket.m
//  综合项目
//
//  Created by ZhouBin on 15/8/9.
//  Copyright (c) 2015年 ZhouBin. All rights reserved.
//

#import "Ticket.h"

@implementation Ticket
-(void)printTicket{

    NSLog(@"打印票的信息");

}
@end
//
//  Common.h
//  综合项目
//
//  Created by ZhouBin on 15/8/9.
//  Copyright (c) 2015年 ZhouBin. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Common : NSObject
//名称
@property NSString *name;

//时长
@property int longTime;

//主演
@property NSString *actor;

//导演
@property NSString *director;

//上映时间
@property NSString *showTime;

//编号
@property int no;

@end

//
//  Common.m
//  综合项目
//
//  Created by ZhouBin on 15/8/9.
//  Copyright (c) 2015年 ZhouBin. All rights reserved.
//

#import "Common.h"

@implementation Common

@end

本博客内容既有转载自网络的内容,也有本作者原创内容,仅供学习与交流之用
如有侵权或者错误之处,请及时在下方留言!
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址