资源描述
WORD
电影票务系统
111190142 杰
一、程序框架图
电影院票务系统
管理员管理影讯系统
按时间排列信息
订票信息
取票信息
退票信息
查询信息
浏览电影信息
退出
创建电影信息
修改电影信息
增加电影信息
删除电影信息
退出子菜单
按电影名称查询信息
按放映时长查询信息
按电影院查询信息
(注:管理员密码为123.)
二、概要设计
1) 主要结构体
struct Movie //电影信息
{
int number; //编号,各票的编号是唯一的,方便用户输入编号就能选择想要的票进行操作
int isNotNull; // 是否不为空,==1时表示有电影可看
char MID[50]; //电影序列号
char MName[50];//电影名称
char company[50]; //电影院
struct tm t1; //播放日期、时间
struct tm t2; //结束日期、时间
time_t second; //把播放日期、时间转换为秒。这样票的排序就很简单了。
int price; //价格
int seatnumber[20][20];//保存座位信息,数字1代表已被预定,数字0代表未被预定
int count; //票数
char late[50]; //是否正常播放
};typedef struct movie movie
struct Customer //顾客
{
char cID[50]; //
int tickets; //订的票数
Movie f; //保存已定的票的信息
};typedef struct Customer Customer;:
Movie ff; //空的票。用来格式化被删除的或过期的或还掉的票
Customer cc; //空人。用来格式化票数为零的客户
Movie f[100]; //保存所有的票
Customer c[100];//保存所有的客户
char password[100]="123"; //密码
char comand[20],comandx[20];//用户输入的命令字符串,防止输入0.1之类的
int command,commandx; //由char comand[20]转化成的命令
int MNumber; //电影票总数,程序刚开始时要从文件读取资料的循环次数
int cNumber; //顾客数,程序刚开始时要从文件读取资料的循环次数
int rank=1; //电影的编号,唯一的,用于区分不同的票
void Ready(); //程序输出主菜单前,从文件里读取所有数据,文件不存在的话就创建所有的文件
void Finish(); //用户选择退出时,保存资料
void Menu(); //输出主菜单,任您选择
void Control(); //管理员管理界面
void AddMovie(); //添加电影
void DeleteMovie(); //删除
void AlterMovie(); //修改
void SearchMovie(); //按电影序号、播放时间、结束时间、电影院查询机票
void MyPrint(Movie f); //自己定义的输出函数
void MyPrintx(Movie f);
void MyPrintxx(Movie f);
void PrintAllMovie(); //输出所有的电影信息
void PrintAllMoviex();
void SortMovie(); //排序电影
2)主要函数流程图:
(1)管理员修改电影信息:先判断密码,密码正确后再选择操作:创建、修改、增加、删除
具体见图1.。
开始
输入密码
是否正确
否
是
选择操作
创建,修改,删除
是否完成
否
是
写入文件
退出
结束
}
图1
(2)排序函数:电影信息按时间排序。见图2。
开始
按时间排序
是否正确
否
是
利用选择法排序
利用新定义的结构体将电影整体读入
是否完成
否
是
是
结束
图2
(3)订票函数,见图3。
开始
订票
输入XX号
是否正确
否
输入电影序号
是
是否存在
否
是
订票数c.tickets
是
结束
图3
(4)退票的流程类似订票函数:只需将c.lose减1或输出c.ticket即可(参见图3)
(5)查询函数:可根据电影名称、时长、电影院查询。
见图4.
开始
查询电影
选择操作
电影时长
电影院
按电影名称查询
是否正确
否
输出信息
是
是否退出
否
退出
是
结束
图4
二、测试数据与其结果分析
显示的主菜单界面:★---您好,欢迎使用电影院订票系统!---★\n");
printf("===Time:===%s================================================================================\n",asctime (timeinfo));
printf( " -------- ☆ 1. 管理员管理界面 ☆-------- \n"
" -------- ☆ 2. 各电影 播放时间表 ☆-------- \n"
" -------- ☆ 3. 按电影名称 查询电影信息 ☆-------- \n"
" -------- ☆ 4. 按电影院 查询电影信息 ☆-------- \n"
" -------- ☆ 5. 按时长(min) 查询电影信息 ☆-------- \n"
" -------- ☆ 6. 订票 ☆-------- \n"
" -------- ☆ 7. 取票☆-------- \n"
" -------- ☆ 8. 退票☆-------- \n"
" -------- ☆ 0. 退出 ☆-------- \n");
printf("================================================================================\n");
管理电影系统测试:
选择“2”
选择“3”
“’
选择“按电影院查询电影信息”
选择“订票”
结果分析: 1)订票时,只能10min以2天以外订票,否则订票失败。。
3)预定时只能预定一个电影,不能同时定两场。
4)退票时一次只能退一。
13 / 13
展开阅读全文