zoukankan      html  css  js  c++  java
  • 黑马程序员——c语言学习心得—— 电影购票系统

    黑马程序员——c语言学习心得——  电影购票系统

    1,基础信息类

    1. #import <Foundation/Foundation.h>
    2. #import "Cinema.h"
    3. void buyMovieTicket(){
    4.     //购买电影票
    5.     
    6.     //调用 电影院的类的 buyTicket的方法
    7.     //                  [[Cinema alloc] init];
    8.     Cinema *cinema = [[Cinema alloc] initWithCinemaName:@"亿达影城"];;
    9.     
    10.     //开始购票
    11.     [cinema buyTicket];
    12. }
    13. void buySongTicket(){
    14.     //购买演唱会票
    15. }
    16. int main(int argc, const char * argv[]) {
    17.     @autoreleasepool {
    18.        
    19.         //打印欢迎信息
    20.         printf("**********欢迎使用购票系统***********\n");
    21.         
    22.         //提示用户选择
    23.         printf("您可以使用购票系统购买:1.电影票   2.演唱会票\n");
    24.         int num;
    25.         scanf("%d",&num);
    26.         
    27.         //当用户选择不同的功能,调用不同的函数
    28.         if (num == 1) {
    29.             
    30.             //在函数中创建对象,开始购票
    31.             buyMovieTicket();
    32.         }else if(num == 2){
    33.         
    34.             buySongTicket();
    35.         
    36.         }
    37.         
    38.     }
    39.     return 0;
    40. }
    复制代码

    2,具体实现

    1. @interface Cinema : NSObject
    2. {
    3.     //电影院的名称
    4.     NSString *_cinemaName;
    5.     
    6.     //票的集合
    7.     MovieTicket  *tickets[5];
    8. }
    9. -(instancetype)initWithCinemaName:(NSString *)name;
    10. //开始购票
    11. -(void)buyTicket;
    12. //显示正在上映的电影票
    13. -(void)list;
    14. //选择电影
    15. -(void)selectMovie;
    16. //选择排数
    17. -(void)selectRow;
    18. //选择座位号
    19. -(void)selectCol;
    20. //开始支付
    21. -(void)pay;
    22. //出票(打印票)
    23. -(void)printTicket;
    24. @end
    复制代码
    1. #import "Cinema.h"
    2. #define ROW 7
    3. #define COL 15
    4. //定义一个全局变量,保存编号
    5. int selectNo;
    6. @implementation Cinema
    7. //定义构造方法
    8. -(instancetype)initWithCinemaName:(NSString *)name{
    9.     //先让父类初始化
    10.     if(self = [super init]){
    11.     
    12.         //给电影院初始化个名字
    13.         _cinemaName  = name;
    14.         
    15.         
    16.         //给电影票的数组初始化
    17.         for (int i=0; i<5; i++) {
    18.             
    19.             MovieTicket *mvticket = [MovieTicket new];
    20.             //给对象赋值
    21.             mvticket.name = [NSString stringWithFormat:@"变性金刚%02d",i+1];
    22.             mvticket.longTime = 120;
    23.             mvticket.actor = @"班长/亚马逊/撸啊撸";
    24.             mvticket.director = @"超哥";
    25.             mvticket.no = i+1;
    26.             mvticket.showTime = [NSString stringWithFormat:@"200%d-11-11",i+1];
    27.             mvticket.startTime = [NSString stringWithFormat:@"1%d:00",i+1];
    28.             mvticket.price = 30.0f;
    29.             mvticket.place = [NSString stringWithFormat:@"影厅%02d",i+1];
    30.             
    31.             //把对象存到数组中
    32.             tickets[i] = mvticket;
    33.             
    34.         }
    35.     
    36.     
    37.     }
    38.     return self;
    39. }
    40. //开始购票
    41. -(void)buyTicket{
    42.     NSLog(@"开始购票");
    43.     
    44.     //显示正在上映的电影
    45.     [self list];
    46. }
    47. //显示正在上映的电影票
    48. /*
    49. 思路:
    50. 1)利用已有的tickets数组,打印数组信息
    51. 2)遍历数组
    52. */
    53. -(void)list{
    54.     NSLog(@"显示正在上映的电影票");
    55.     
    56.     /*
    57.      编号     名称
    58.      主演     开始时间
    59.      导演     时长
    60.      上映时间  
    61.      
    62.      */
    63.     for (int i=0; i<5; i++) {
    64.     
    65.         NSLog(@"\n\n 编号:%d 名称:%@\n 主演:%@ 开始时间:%@\n 导演:%@ 时长:%d\n 上映时间:%@\n\n",tickets[i].no,tickets[i].name,tickets[i].actor,tickets[i].startTime,tickets[i].director,tickets[i].longTime,tickets[i].showTime);
    66.     }
    67.     
    68.     //提示让用户选择影片
    69.     [self selectMovie];
    70. }
    71. //选择电影
    72. /*
    73. 思路:
    74. 1)定义一个全局变量,保存用户选择的影片编号
    75. 2)提示用户选择一部电影
    76. 3) 接收用户输入的电影编号
    77. 4) 保存编号
    78. */
    79. -(void)selectMovie{
    80. //    1)定义一个全局变量,保存用户选择的影片编号
    81.     
    82. //    2)提示用户选择一部电影
    83.     printf("请选择观看的电影编号:\n");
    84. //    3) 接收用户输入的电影编号
    85.     int num;
    86.     scanf("%d",&num);
    87.     if (num<0 || num >5) {
    88.         return;
    89.     }
    90.     
    91.     
    92. //    4) 保存编号     // 1 2 3 4 5    //3
    93.     selectNo = num;
    94.     
    95.     NSLog(@"\n您已经选择了影片:%@",tickets[selectNo-1].name);
    96.     
    97.     //选择排数
    98.     [self selectRow];
    99. }
    100. //选择排数
    101. /*
    102. 思路:
    103. 1)把电影院的座位信息都打出来看一下
    104. 2)提示,当前影厅有多少排,每排有多少个座位
    105. 3)提示让用户选择排数
    106. 4) 保存排数信息
    107. */
    108. -(void)selectRow{
    109.     printf("当前影厅共有:%d排,每排有%d个座位。\n",ROW,COL);
    110. //    1)把电影院的座位信息都打出来看一下
    111.     for (int i=-1; i<ROW; i++) {
    112.         for (int j=-1; j<COL; j++) {
    113.             
    114.             if (i==-1) {
    115.                 printf("%02d ",j+1);
    116.             }else if(j==-1){
    117.             
    118.                 printf("%02d",i+1);
    119.             }else{
    120.                 printf(" + ");
    121.             }
    122.         }
    123.         
    124.         printf("\n");
    125.     }
    126. //    2)提示,当前影厅有多少排,每排有多少个座位
    127. //    3)提示让用户选择排数
    128.     printf("请选择排数:\n");
    129.     int num;
    130.     scanf("%d",&num);
    131.     if (num<0 || num >7) {
    132.         return;
    133.     }
    134.     
    135.     //    4) 保存排数信息
    136.     tickets[selectNo-1].rowNum = num;
    137.     
    138.     
    139.     //选择座位
    140.     [self selectCol];
    141. }
    142. //选择座位号
    143. -(void)selectCol{
    144.     printf("您已经选择了%d排,请选择座位:\n",tickets[selectNo-1].rowNum);
    145.     
    146.     printf("请选择座位数:\n");
    147.     int num;
    148.     scanf("%d",&num);
    149.     if (num<0 || num >15) {
    150.         return;
    151.     }
    152.     
    153.     //  保存座位信息
    154.     tickets[selectNo-1].colNum = num;
    155.     
    156.     //把用户当前的购买的信息打印出来,让用户确认
    157.     //您选择 xxx  开始时间:
    158.     //  第 xx 排  xx 座
    159.     //价格:
    160.     NSLog(@"\n您选择的影片是:\n%@  开始时间:%@\n  第%d排%d座  \n  票价:%.2f",tickets[selectNo-1].name,tickets[selectNo-1].startTime,tickets[selectNo-1].rowNum,tickets[selectNo-1].colNum,tickets[selectNo-1].price);
    161.     printf("请确认:1.确认无误  0.取消\n");
    162.     int flag;
    163.     scanf("%d",&flag);
    164.     
    165.     if (flag) {
    166.         //确认,然后支付
    167.         [self pay];
    168.     }
    169.    
    170. }
    171. //开始支付
    172. -(void)pay{
    173.     NSLog(@"\n开始支付...\n支付已经完成...");
    174.     //打印票
    175.     [self printTicket];
    176. }
    177. //出票(打印票)
    178. -(void)printTicket{
    179.     NSLog(@"\n\n恭喜您,购票成功:\n购票信息如下:\n  %@  开始时间:%@\n  第%d排%d座  影厅:%@ \n  票价:%.2f",tickets[selectNo-1].name,tickets[selectNo-1].startTime,tickets[selectNo-1].rowNum,tickets[selectNo-1].colNum,tickets[selectNo-1].place,tickets[selectNo-1].price);
    180.     
    181.     
    182.     //座位信息打印出来看一下
    183.     for(int i=-1;i<ROW;i++){
    184.     
    185.         for (int j=-1; j<COL; j++) {
    186.             
    187.             //先判断是否显示小人,
    188.             // i == (rowNum-1)  && j== (colNum-1)
    189.             if (i== (tickets[selectNo-1].rowNum-1) && j ==(tickets[selectNo-1].colNum-1)) {
    190.                 printf(" @ ");
    191.                 
    192.             }else{
    193.             
    194.             
    195.                 if (i==-1) {
    196.                     printf("%02d ",j+1);
    197.                 }else if(j==-1){
    198.                     
    199.                     printf("%02d",i+1);
    200.                 }else{
    201.                     printf(" + ");
    202.                 }
    203.             
    204.             }
    205.         }
    206.     
    207.         printf("\n");
    208.     }
    209.     
    210. }
    复制代码
    1. @interface MovieTicket : Ticket
    2. //票价
    3. @property float price;
    4. //电影票的编号
    5. @property int ticketNo;
    6. @end
    复制代码

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    mysql常用函数
    快看看你躺枪了吗?最全搞笑中式英语大集合
    浏览器 返回状态码汇总
    Eclipse 快捷键 篇
    Spring定时任务的几种实现
    mysql ---复制表结构---创建新表
    日志级别的选择:Debug、Info、Warn、Error还是Fatal
    关闭网页时如何弹出消息框 提醒用户:您确认关闭吗 ?
    处理session丢失的问题
    工作中存在的问题
  • 原文地址:https://www.cnblogs.com/zijie/p/4925937.html
Copyright © 2011-2022 走看看