1、 WORD 电影票务系统111190142 杰一、程序框架图电影院票务系统管理员管理影讯系统按时间排列信息订票信息取票信息退票信息查询信息浏览电影信息退出创建电影信息修改电影信息增加电影信息删除电影信息退出子菜单按电影名称查询信息按放映时长查询信息按电影院查询信息 (注:管理员密码为123.) 二、概要设计1) 主要结构体struct Movie/电影信息int number;/编号,各票的编号是唯一的,方便用户输入编号就能选择想要的票进行操作int isNotNull;/ 是否不为空,=1时表示有电影可看char MID50;/电影序列号char MName50;/电影名称char comp
2、any50;/电影院struct tm t1;/播放日期、时间struct tm t2;/结束日期、时间time_t second;/把播放日期、时间转换为秒。这样票的排序就很简单了。int price;/价格int seatnumber2020;/保存座位信息,数字1代表已被预定,数字0代表未被预定int count;/票数char late50;/是否正常播放;typedef struct movie moviestruct Customer/顾客char cID50;/int tickets;/订的票数Movie f;/保存已定的票的信息;typedef struct Customer
3、Customer;:Movie ff;/空的票。用来格式化被删除的或过期的或还掉的票Customer cc;/空人。用来格式化票数为零的客户Movie f100;/保存所有的票Customer c100;/保存所有的客户char password100=123;/密码char comand20,comandx20;/用户输入的命令字符串,防止输入0.1之类的int command,commandx;/由char comand20转化成的命令int MNumber;/电影票总数,程序刚开始时要从文件读取资料的循环次数int cNumber;/顾客数,程序刚开始时要从文件读取资料的循环次数int
4、rank=1; /电影的编号,唯一的,用于区分不同的票void Ready();/程序输出主菜单前,从文件里读取所有数据,文件不存在的话就创建所有的文件void Finish();/用户选择退出时,保存资料void Menu();/输出主菜单,任您选择void Control(); /管理员管理界面void AddMovie();/添加电影void DeleteMovie();/删除void AlterMovie();/修改void SearchMovie();/按电影序号、播放时间、结束时间、电影院查询机票void MyPrint(Movie f);/自己定义的输出函数void MyPrin
5、tx(Movie f);void MyPrintxx(Movie f);void PrintAllMovie();/输出所有的电影信息void PrintAllMoviex();void SortMovie();/排序电影2)主要函数流程图: (1)管理员修改电影信息:先判断密码,密码正确后再选择操作:创建、修改、增加、删除 具体见图1.。开始输入密码 是否正确 否 是选择操作创建,修改,删除是否完成 否 是写入文件退出结束 图1(2)排序函数:电影信息按时间排序。见图2。开始按时间排序 是否正确 否 是利用选择法排序利用新定义的结构体将电影整体读入是否完成 否 是 是结束 图2(3)订票函数
6、,见图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