课 程 设 计 报 告
课程名称
课题名称
C 语言程序设计
飞机订票系统
专
班
学
姓
业
级
号
名
网络工程
0901 班
200903120104
郭 武
指导教师
陈淑红 刘洞波 李杰君
2010 年 7 月 11 日
1
湖南工程学院
课 程 设 计 任 务 书
课程名称
课
C 语言程序设计
题 飞机订票系统
专业班级
学生姓名
学
号
网络工程 0901 班
郭 武
200903120104
指导老师
陈淑红 刘洞波 李杰君
审
批
任务书下达日期 2010 年 6 月 28 日
任务 完 成 日 期 2010 年 7 月 11 日
2
一 、 设 计 内 容 与 设 计 要 求
一、设计内容:
飞机订票系统
1.1 问题描述:
假设某航空公司只有 M 架 N 个座位的飞机,每架飞机每天飞行一趟。通
过该系统来实现机票的订购问题。
1.2 功能要求:
1)、本系统采用一个包含 N 个数据的结构体数组,每个数据的结构应当
包括:起飞地、目的地 航班号、座次号码、座次订出与否标记、订座者
的姓名和订座者的身份证号码。
2)、本系统显示这样的菜单:
(1) 输入航班信息
(2)输出航班信息
(3)查找航班信息
a.显示空座的数量
b.显示空座的信息
c.显示已订座的信息
d.起飞时间
(4)订票预约
(5)删除定票预约
(6)退出系统
1、本系统成功执行菜单的每个信息,选项 4)和 5)将要求额外的输入,
并且它们都允许用户收回其输入。
2、查找航班信息既可按线路查,也可按目的地查。
4、在两次运行之间,数据被保存于一个文件里,当本程序重新开
始的时候,它首先从该文件读入数据
1.3 算法提示:
1、数据结构:结构体类型数组
3
2、数据库结构:下表构成该系统的基本数据库。
航班号 起飞
目的地 座次号 座次订出与否的
订票者
订票者身
时间
int
char
char
int
标记
Char
姓名
份证号码
char
char
1.4 测试数据:
每架飞机的座位 N=12,M=5
1.5 其它:
对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功
能。
二、设计要求
1).设计正确,方案合理。
2).界面友好,使用方便。
3).程序精炼,结构清晰。
4).设计报告 5000 字以上,含程序设计说明,用户使用说明,源程序清单
及程序框图。
5).上机演示。
二、进 度 安 排
第 18 周 星期一上午 课题讲解 查阅资料
星期一下午 系统需求分析 模块设计
星期二上午 算法、数据结构设计 主程序设计
星期二下午 各功能模块程序设计 修改完善程序
星期五下午 各功能模块程序设计 修改完善程序
第 19 周 时间待定
星期五下午 答辩
4
目 录
一、需求分析............................................................................................................... 6
1、程序的功能...................................................................................................... 6
2、输入输出的要求.............................................................................................. 8
二、概要设计............................................................................................................... 9
三、详细设计............................................................................................................. 11
1、数据类型........................................................................................................ 11
2、模块分析........................................................................................................ 12
3、函数的调用关系............................................................................................ 12
四、调试分析以及设计体会..................................................................................... 13
1、测试数据........................................................................................................ 13
2、调试分析........................................................................................................ 13
3、心得体会........................................................................................................ 14
五、使用说明............................................................................................................. 15
六、附录..................................................................................................................... 17
1、参考书目........................................................................................................ 17
2、源程序清单(带注释)................................................................................ 17
七、计算机科学与技术系课程设计评分表............................................................. 40
5
一、需求分析
1.1 系统功能需求
1.1.1 程序的功能
1.系统管理员功能:
1)录入和修改航班和机票的信息:输入航班号,输入起飞港,途径港,到
达港,录入起飞时间,到达时间,飞行总共用时,可随时修改航班信息
2)输出航班的信息:输入航班号便可输出之前输入的航班信息
2. 客户需要的功能:
1)查找航班信息:
a.显示空座的数量
b.显示空座的信息
c.显示已订座的信息
d.起飞时间
2)订票预约:查询航班信息后,提前订票预约需要的飞机票,
3)删除定票预约
4)退出系统
6
1.1.2 主要模块流程图
主函数
输入航班信息
查找航班信息
输出航班信息
退出系统
1.1.3 功能描述
功能序号 功能名称
功能说明
3
4
5
查询
订票预约
删除订票
查询空座信息,包括空座数量。
查询已定座的信息,包括起飞时间。
①填写个人信息:包括乘客姓名、乘客所在单位,
乘客身份证号
②填写订单信息:包括起飞城市、起飞时间、到
达城市、路径城市。
由于各种原因,客户不再需要订购的飞机票,客
户可以删除之前定的飞机票,只需依次输入航班
号,座位号,确定删除即可。
1.1.4 各功能模块的功能描述
(1)显示菜单函数:
FLIGHT fltlist[5]; PASSENGER psglist[5][12]; ReadFlight(fltlist);
PASSENGER* k;k=(PASSENGER*) psglist; ReadPassenger(k);
用户可以根据菜单提示,选择相关菜单。
(2)查找函数:
7
查询航班号函数 chaxunhangban(FLIGHT fltlist[]),查询已定座信息函
数 chaxunyidingxinxi(PASSENGER* psglist), 查空位信息函数
chakongweixinxi(FLIGHT fltlist[],PASSENGER* psglist),查空位个数
函数 chakongweigeshu(FLIGHT fltlist[],PASSENGER* psglist)。
本算法实现查找航班信息功能。用户可以根据航班号或起飞抵达城市查找
航班信息。如果没有该航班信息,将提示相关信息。
(3)主控函数:
void main(void)从数据文件中读入航班信息,用户选择某菜单,实现调用
该菜单功能的函数。
(4)订票函数:
void Book(FLIGHT fltlist[],PASSENGER* psglist)
本算法实现订票功能。用户输入订票信息后,该算法就会根据用户输入信
息查找航班信息,找到就显示订票成功相关信息,且该航班票量减去用户
订的票数。如没找到,则提供相关的其他航班信息。该算法功能可以循环
执行。
(5)退票函数:
void tuipiao(FLIGHT fltlist[],PASSENGER* psglist)
本算法实现退票功能。用户可以根据自己的航班型号退票。
当用户输入航班型号退票,该算法会根据用户的航班型号查找储存在以
head 为头节点链表中的客户信息,找到删除该客户信息节点,并输出退
票成功相关信息。否则提示没有该客户信息。
1.2 输入输出的要求
1.2.1 输入的要求
输入必须按以下五个步骤进行:
1)输入航班号,航班号为 0 到 4 的数;
2) 输入起飞港,比如 beijing;
3) 输入途径港,比如 tianjing;
4) 输入到达港,比如 shanghai;
5) 输入起飞时间,比如 12:00;输入到达时间,比如 14:00,输入总共用时,
比如 02:00
8