此次的购票系统主要是通过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