电影院的设计与实现(改进更新)

这里对之前的一个电影院售票系统进行了改进,相应有的数据进行了封装。保证了数据的安全性

为用户仅仅提供接口的使用

//
//  main.m
//  电影院的设计与实现
//

#import <Foundation/Foundation.h>
#import "Cinema.h"
int main(int argc, const char * argv[])
{

    @autoreleasepool {

        //1.创建对象
        Cinema * cinema = [[Cinema new]init];
        //2.打印影讯信息
        [cinema movieInformation];
        //3.用户选择电影
        [cinema selectMovie];
        //4.用户选择排号
        [cinema selectRowNumber];
        //5.用户选择座位
        [cinema selectSeatNumber];
        //6.打印票据
        [cinema printTicket];

      }
    return 0;
}
//
//  Cinema.h
//  电影院的设计与实现
//

#import <Foundation/Foundation.h>

@interface Cinema : NSObject
{
    int _movieNumber;//电影编号
    int _rowNumber;//排号
    int _seatNumber;//座位号
}

//看影讯
-(void)movieInformation;

//选择电影
-(void)selectMovie;

//选择排号
-(void)selectRowNumber;

//选择座位号
-(void)selectSeatNumber;

//出票
-(void)printTicket;

@end
//
//  Cinema.m
//  电影院的设计与实现
//

#import "Cinema.h"

@implementation Cinema
//看影讯
-(void)movieInformation
{
    NSLog(@"片名:%@\n上映日期:%@\n影片时长:%@\n演员:%@\n导演:%@\n影片编号:%@", @"无人区",@"2013年12月24日",@"116分钟",@"刘德华,黄叶",@"张艺谋",@"1");
}

//选择电影
-(void)selectMovie
{
    //1.提示用户输入
    NSLog(@"--请选择电影--");
    int movieNumber = 0;
    scanf("%d",&movieNumber);
    //2.记录用户输入信息
    _movieNumber = movieNumber;
}

//选择排号
-(void)selectRowNumber
{
    NSLog(@"一共10排,没排20个座位");
    //1.提示用户选择排号
    NSLog(@"--请选择排号--"); int rowNumber = 0; scanf("%d",&rowNumber);
    //2.记录用户输入信息
    _rowNumber = rowNumber;
}

//选择座位号
-(void)selectSeatNumber
{
    //1.提示用选择座位号
    NSLog(@"--请选择座位号--");
    int seatNumber = 0;
    scanf("%d",&seatNumber);
    //2.记录用户输入信息
    _seatNumber = seatNumber;
}

//出票
-(void)printTicket
{
    NSLog(@"电影:%d %d排%d号",_movieNumber,_rowNumber,_seatNumber);
}
@end
时间: 2025-01-02 23:27:57

电影院的设计与实现(改进更新)的相关文章

引擎设计跟踪(九.14) 更新记录和骨骼动画导出

骨骼动画是去年打算写的部分, 但是中间因为工作太忙, 已经拖了一年了. 期间也加了其他东西, 比如对UI做了部分完善.UI对toolbar button添加了drop down 支持, 一种是dropdown menu, 一种是dropdown property sheet 实现这些控件不难, 但是要做抽象和复用, 接口设计稍微有点复杂. 现在可以把一个IConfig对象绑定到toolbar的button里了. 这样保存这些配置的时候,直接使用IConfig接口就可以了.贴一个编辑器的配置文件,

公交车路线查询系统后台数据库设计--换乘算法改进与优化

在<查询算法>一文中已经实现了换乘算法,但是,使用存储过程InquiryT2查询从“东圃镇”到“车陂路口”的乘车路线时,发现居然用了5分钟才查找出结果,这样的效率显然不适合实际应用.因此,有必要对原有的换乘算法进行优化和改进.在本文中,将给出一种改进的换乘算法,相比原有的算法,改进后的算法功能更强,效率更优. 1. “压缩”RouteT0 假设RouteT0有以下几行 如下图所示,当查询S1到S4的二次换乘路线时,将会产生3×2×4=24个结果 从图中可以看出,第1段路线中的3条线路的起点和站

FPGA设计思想(持续更新)

一. 流水线设计 将原本一个时钟周期完成的较大的组合逻辑通过合理的切割后分由多个时钟周期完成.该部分逻辑运行的时钟频率会有明显对的提升,提高系统的性能用面积换速度 一个流水线设计需要4个步骤完成一个数据的处理过程,那么从有数据输入的第一个时钟周期开始,直到第4个时钟周期处理完第一个数据,但在以后的每一个时钟周期都会有处理完成的数据输出,流水线设计在开始处理时需要一定的处理时间,但以后就会不断的输出数据,从而大大提高处理速度.(面积换速度)如果不采用流水线设计,那么处理一个数据就需要4个时钟周期,

Win10 RS2版改进更新历史界面:已安装补丁分类显

从微软目前推送的Win10 RS2预览版来看,该版本可能更注重于细节的改善.近日,国外部分网友发现自己的14915版本有些与众不同,Windows更新的历史记录界面能够将已安装补丁分类显示,更有条理. Windows系统更新的内容有多种,包括安全更新.功能更新.驱动更新和软件更新等,这些更新如果没有分类排列,就像现在Windows10一周年更新正式版这样,多少显得有些杂乱,找起来比较费事.新版界面将不同中的更新分类显示,不想看到的分类可以直接点击隐藏,有助于突出重点. 不过目前该功能似乎还在小范

通达OA 工作计划模块中一些设计问题有待改进

这两天看了一下通达OA中的"工作计划"这个模块,在测试使用中发现的一些问题,在这里和大家做个探讨和分享. 工作计划这个东西,本身来说是非常好的,一起都按照计划来,工作有据可依,提前规划么:但是很多情况时,只有计划没有跟踪及后续跟进导致计划成为了无用计划. 姑且先不管实际应用情况,先看这个计划模块的设计来说.计划里面比较关键的一个地方,就是把计划日期和时间日期混淆到了一起,这样最直接的问题就是很难区分出来当时的要求时限和后来执行的时间,虽然可以在工作明细条目中查看,但需要过多的查询导致使

xv6的设计trick(不断更新)

1.每个进程通过时钟中断出发trap.c中的 if(proc && proc->state == RUNNING && tf->trapno == T_IRQ0+IRQ_TIMER) yield();来强制把这个进程置为Runnable状态,yield的实现如下: acquire(&ptable.lock); //DOC: yieldlock proc->state = RUNNABLE; sched(); release(&ptable.

FastReport报表设计模版fr3 不断更新中;需要购买的加我QQ:1958059044

原文地址:https://www.cnblogs.com/plug/p/10586752.html

JFinal 1.8 主要改进了Db + Record设计的改变

JFinal 1.8 主要改进了Db + Record设计,对多数据源支持有大幅度的提升.相对于 1.6 版,多数据源设计在语义上更加明确,之前缺失的 API 也全部被补充进来,在java商城产品以及jsp商城开发中API 的使用方式与单数据源使用时保持一致.Db + Record 采用新设计,结构更加合理,代码量缩减了三分之一. 此外还进行了一些小幅改进,如 Druid 升级至最新版本 1.0.5,DruidStatViewHandler 支持内置监控界面,优化了 Controller 中的文

莪的拽、像省田各号①样没尽頭队——需求改进&amp;原型设计

需求改进&原型设计 Ⅰ. 需求&原型改进 Ⅱ. 系统设计 Ⅲ. Alpha任务分配计划 Ⅳ. 测试计划 原文地址:https://www.cnblogs.com/m870100/p/9859127.html