此次的购票系统主要是通过OC来编程的,下面我将把握的思路和大家分享.
我们直接来看我写的几张思路图吧.上面都写的很明白,下面的主要思路就是大致的方向.
#import <Foundation/Foundation.h> #import "Cinema.h" void buyMovieTicket(){ //调用 电影院的类的 buyTicket的方法 Cinema *cinema = [[Cinema alloc] initWithCinemaName:@"xx影院"]; //开始购票 [cinema buyTicket]; } void buySongTicket(){ } int main(int argc, const char * argv[]) { @autoreleasepool { //打印欢迎信息 printf("************欢迎使用购票系统**************\n\n"); //提示用户选择 printf("您可以使用购票系统购买:1,电影票 2,演唱会\n"); int num; scanf("%d",&num); //当用户选择不同的功能,调用不同的函数 if (num==1) { buyMovieTicket(); }else if(num==2){ buySongTicket(); } } return 0; }
这是第一步:
#import "Cinema.h"
#define ROW 8
#define COL 18
int selectno;
@implementation Cinema
-(instancetype)initWithCinemaName:(NSString*)name{
if (self=[super init]) {
_cinemaName = name;
//给电影票的数组初始化
for (int i=0; i<5; i++) {
moveTiclket* trickets=[moveTiclket new];
trickets.name=[NSString stringWithFormat:@"程冠希%02d",i+1];
trickets.longTime=120;//时长
trickets.actor=@"xxxxxx";//主演
trickets.director=@"jjjjj";//导演
trickets.showtime=[NSString stringWithFormat:@"201%d-12-12",i];//上映时间
trickets.no=[NSString stringWithFormat:@"%d",i+1 ];
trickets.starTime=[NSString stringWithFormat:@"1%d:00",i];
trickets.price=35.5f;
trickets.place=[NSString stringWithFormat:@"影厅%02d",i+1];
tickets[i] = trickets;
}
}
return self;
}
//开始购票
-(void)buyTicket{
NSLog(@"\n欢迎来到%@,我们将为您带来优质的观看体验!\n正在进入购票系统中,请等待.....!\n",_cinemaName);
printf("您已成功进入购票系统,正在上映的电影如下:\n");
[self list];
}
//显示正在上映的电影票
-(void)list{
//打印电影信息
//数组遍历
for (int i=0; i<5; i++) {
NSLog(@"\n\n电影名:%@\t\t\t时长:%d\n导演:%@\t\t\t\t主演:%@\t\n上映时间:%@\t\t编号:%@\n电影播放时间: %@\n\n\n",tickets[i].name,tickets[i].longTime,tickets[i].actor,tickets[i].director,tickets[i].showtime,tickets[i].no,tickets[i].starTime);
}
[self selecMovie];
}
第二步:
//选择一张电影票 -(void)selecMovie{ printf("请选择你要看的电影:\n"); int num; scanf("%d",&num); if (num<1||num>4) { return; }else{ selectno = num; NSLog(@"\n您选择的电影是:%@\n",tickets[selectno-1].name); } [self selectRow]; }
第三步:
//选择排数 -(void)selectRow{ printf("影院座位共:%d排,一排有%d个座位,影院座位布局如下图:\n",ROW-1,COL-1); for (int i=0; i<ROW; i++) { for (int j=0; j<COL; j++) { if (i==0) { printf("%02d ",j); }else if(j==0){ printf("%02d ",i); }else{ printf(" + "); } } printf("\n"); } printf("请选择排数:\n"); int num; scanf("%d",&num); if (num<1||num>7) { return; }else{ printf("您已选择了第%d排,请选择座位号:\n",num); tickets[selectno-1].rowNum=num; [self selectCol]; } } //选择座位号 -(void)selectCol{ int num; scanf("%d",&num); if (num<1||num>17) { return; }else{ printf("您已选择了第%d座,选座成功.\n请查看您观看影片的座位分布位置!!\n",num); tickets[selectno-1].colNum=num; } for (int i=0; i<ROW; i++) { for (int j=0; j<COL; j++) { if (i==0) { printf("%02d ",j); }else if(j==0){ printf("%02d ",i); }else if((i==tickets[selectno-1].rowNum)&&j==(tickets[selectno-1].colNum)){ printf(" @ "); }else printf(" + "); } printf("\n"); } [self pay]; }
#import <Foundation/Foundation.h> #import "moveTiclket.h" @interface Cinema : NSObject { //电影院的名称 NSString *_cinemaName; //票的集合 moveTiclket* tickets[5]; } -(instancetype)initWithCinemaName:(NSString*)name; //开始购票 -(void)buyTicket; //显示正在上映的电影票 -(void)list; //选择一张电影票 -(void)selecMovie; //选择座位 //选择排数 -(void)selectRow; //选择座位号 -(void)selectCol; //开始支付 -(void)pay; //出票(打印票) -(void)printTicket; @end
第四步:
//开始支付 -(void)pay{ printf("购票操作已完成!!\n请确认已购买电影票信息...!\n"); NSLog(@"\n\n您选择的电影名:%@\t\t影厅:%@\n第%d排%d座\n电影播放时间:%@\n票价:%.2f\n\n",tickets[selectno-1].name,tickets[selectno-1].place,tickets[selectno-1].rowNum,tickets[selectno-1].colNum,tickets[selectno-1].starTime,tickets[selectno-1].price); printf("请确认以上信息,无误后请选择是否付款:1.继续 0.退出\n"); int num; scanf("%d",&num); if (num==0) { return; }else if(num==1) [self printTicket]; } //出票(打印票) -(void)printTicket{ printf("请支付.....\n"); printf("已完成支付!\n欢迎购买!\n"); } @end
第五步:
太繁琐了,大家看看就好.还有一些步骤省略了,希望大家多包涵.
原文:http://www.cnblogs.com/yuluoluoluo/p/5042055.html