数据结构课程设计实验报告--机票管理系统



《数据结构课程设计实验报告--机票管理系统》由会员分享,可在线阅读,更多相关《数据结构课程设计实验报告--机票管理系统(56页珍藏版)》请在文档大全上搜索。
1、数据结构课程设计实验报告 目录一.设计要求及分析2二.数据结构设计3三.主要功能函数设计4四.源代码4五.运行与测试30六.实验小结35七.参考文献36一.设计要求及分析: 首先建立1个航班信息表,乘客信息表在程序运行过程中建立。 在飞机航班数据的信息模型中,航班号是主关键字,例如CZ3869,其中CZ是航空公司的别称,用两个大写字母表示,后4位为航班编号。设计要求 (1)建立飞机航班信息表,按航班号有序,用文件保存; 乘客信息表按航班号和姓名有序,用文件保存;每个航班记录包括十项,分别是:航班号、起点、终点、班期、起飞时间、到达时间、飞机型号、票价、总票、余票等,例如航班信息表如下表所示。
2、航班号 起点 终点班 期起飞时间到达时间机 型票 价总票余票CA1544 合肥 北京1,2,4,5 1055 1240 733 960 200 MU5341 上海 广州 每 日 1420 1615 M901280 160 CZ3869 重庆 深圳 2,4,6 0855 1035 7331010 200 MU3682 桂林 南京2,3,4,6,7 2050 2215 M901380 160 HU1836 上海 北京 每 日 0940 1120 7381250 230 CZ3528 成都 厦门1,3,4,5,7 1510 1650 CRJ1060 130 MU4594 昆明 西安1,3,5,6 1
3、015 1140 3281160 100 SC7425 青岛 海口 1,3,6 1920 2120 DH41630 180 其中余票字段可定义为数组int yp8;yp0不用, yp1存放班期1(星期一)的余票数,类推,无班期则放0。每个航班可按如下格式显示:航班号 起点 终点 班期 起飞时间 到达时间 飞机型号 票价 总票 余票CA1544 合肥 北京 1,2,4,5 1055 1240 733 960 200 1-60 2-80 4-56 5-66每个乘客记录包括:身份证、姓名、性别、航班号、班期、手机号等。 (2)程序运行后,出现登录界面,(参考通讯录管理系统)选择管理者和普通乘客; (
4、3)选择普通乘客需要输入身份证号和登录密码,只能做查询类工作和购票、退票操作; (4)选择管理者需要输入登录密码,如连续输错3次密码,则被退出系统;管理员可做所有操作。 菜单设计可分航班信息管理和乘客信息管理(可参考图书管理系统), (a) 航班信息管理可实现: 1. 增加航班记录 2. 查询航班信息- a.按航班号查询 b. 按起点和终点查询 3. 删除航班记录 4. 修改航班信息 5. 显示全部航班信息 0. 返回上层菜单 (b) 乘客信息管理可实现: 1. 查询乘客信息- a.按身份证号查询 b.按姓名查询 c.按航班号查询 2. 购票(增加乘客记录) 3. 退票(删除乘客记录) 4.
5、修改乘客信息 5. 显示全部乘客信息 0. 返回上层菜单根据以上菜单项设计相应的功能函数。每次执行完相应的功能后能返回主菜单。分析:购票需要输入身份证号,姓名、性别、航班号、班期、手机号等,先判断相应航班号的班期的 余票数, 不为0则增加一条乘客记录,并修改相应航班号的班期的余票数,否则不能购票; 退票时需要输入身份证号,可得到乘客信息,修改相应航班号的班期的余票数,并删除该乘客信息记录。2. 数据结构设计struct air /定义航班结构体数组char num20; /定义航班号char start20;/定义起点char over20;/定义终点char banqi20; /定义班期ch
6、ar time120; /定义起飞时间char time220; /定义到达时间char type20; /机型char price20; /价?格?int xcl; /票数struct air *next;lineinfo;struct guest /定义乘客结构体数组int idnum;/身份证号char gname20; /名字char gender20;/定义机票结构体数组 int pnum; /定义机票结构体数组char num20; /定义机票结构体数组 char banqi20; /定义机票结构体数组 struct guest *next; / 定义机票结构体数组;三.主要功能函
7、数设计 1. 增加航班记录 void addair() 添加(增加航班信息) 2. 查询航班信息- a.按航班号查询 b. 按起点和终点查询 void chaxunts() 查询函数,可以按航班号查询 及按起点和终点查询 3. 删除航班记录 void shanchu() 删除航班信息 4. 显示全部航班信息 void xianshixinxi() 显示全部航班信息 0. 返回上层菜单 (b) 乘客信息管理可实现: 1. 查询乘客信息- a.按身份证号查询 b.按姓名查询 c.按航班号查询 void xianshixinxi2() 可实现按身份证号查询和按姓名查询及按航班号查询 2. 购票(增加
8、乘客记录) void dingpiao() 3. 退票(删除乘客记录) void tuipiao() 4. 显示全部乘客信息 void lvke() 0. 返回上层菜单四.源代码:#include #include #include #include #include #define LEN sizeof(struct air)#define LEN1 sizeof(struct guest)#define NULL 0int chcode();struct air /定义结构体数组char num20; /定义航班号char start20;/航班起始站char over20;/终点站cha
9、r banqi20; /班期char time120; /起飞时间char time220; /到达时间char type20; /机型char price20; /价格int xcl; /票数struct air *next;struct guest /定义结构体数组int idnum;/身份证号char gname20; /名字char gender20;/性别 int pnum;char num20;char banqi20; struct guest *next;void mainmenu() /显示主菜单 system (cls); printf( ); printf(tttt 1.
10、航班信息管理系统nn); printf(tttt 2.旅客订退票系统nn); printf(tttt 3.退出系统nn); printf(ttt 请按键选择,回车确定n); printf( );printf(=);return ;void menu1() /显示航班信息菜单 system (cls);printf(=); printf( ); printf(tttt 1.增加航班信息nn); printf(tttt 2.删除航班信息nn); printf(tttt 3.航班查询nn); printf(tttt 4.航班信息一览nn); printf(tttt 5.返回上一层nn); print
11、f(ttt 请按键选择,回车确定n); printf( );printf(=); return ;void menu2() /显示航班查询菜单 system (cls);printf(=); printf( ); printf(tttt 1.航班号查询nn); printf(tttt 2.起点和终点查询nn); printf(ttt 请按键选择,回车确定n); printf( );printf(=); return ;void menu7() /显示航班查询菜单 system (cls);printf(=); printf( ); printf(tttt 1.身份证号查询nn); printf