当前位置:文档之家› 航班信息管理系统

航班信息管理系统

课程设计课程名称C语言课程设计题目名称航班信息管理系统学生学院物理与光电工程学院专业班级电子科学与技术(4)班学号学生姓名指导教师2015 年10 月23 日目录一设计目的.............................................................................................................................. - 2 - 二课程设计的内容.................................................................................................................. - 2 - 三课程设计的要求与数据...................................................................................................... - 2 - 四课程设计应完成的工作...................................................................................................... - 3 - 五总体设计.............................................................................................................................. - 3 - 六详细设计.............................................................................................................................. - 3 - 七调试分析.............................................................................................................................. - 9 -7.1 源程序及注释............................................................................................................... - 9 -7.2 调试与测试................................................................................................................. - 30 -7.2.1 算法调试过程中出现的问题及解决方法:.................................................. - 30 -7.2.2 主要程序运行结果.......................................................................................... - 32 - 八总结.................................................................................................................................... - 35 - 九参考文献............................................................................................................................ - 36 -一设计目的进一步加深、巩固所学专业课程(《C语言程序设计》)的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。

掌握运用C 语言独立地编写、调试应用程序和进行其他相关设计的技能。

二课程设计的内容对航班信息(包括航班号、最大载客数、起飞地点、起飞时间、降落地点、降落时间、单价)和乘客信息(包括航班号、身份证号码姓名、性别、出生年月、座位号)进行管理,包括航班信息与乘客信息的输入、输出、查询、删除、统计、退出。

假设现收集到了一个机场的所有的航班信息,要求用C语言编写一个简单的航班信息管理系统,可进行录入、查询、修改和浏览航班信息的功能;乘客提出航班号、起飞地点、起飞时间、降落地点、订票数等订票要求,根据事先保存的航班数据决定乘客能否订票。

只有全部满足了乘客的订票要求并且所订航班有足够的未订座位之后才能完成订票处理,并且修改该航班的未订座位数(每个航班的未订座位数的初始值就是该航班的最大载客数),否则,订票失败,并且给出不能订票的原因。

三课程设计的要求与数据1、对航班信息(包括航班号、最大载客数、起飞地点、起飞时间、降落地点、降落时间、单价)和乘客信息(包括航班号、身份证号码、姓名、性别、出生年月、座位号)进行管理,包括航班信息与乘客信息的输入、输出、查询、删除、统计、退出;2、航班信息内容较多,要求设计的管理系统能够完成以下功能:(1)、航班信息录入功能:航班信息用文件保存,可以一次完成若干条记录的输入;(2)、航班信息浏览功能:完成全部航班记录的显示;(3)、查询功能:完成按航班号或按目的地查找航班记录,并显示;(4)、航班信息的修改:按航班号进行修改某个航班的信息;(5)、航班信息的删除:按航班号进行删除某个航班的信息;(6)、订票处理:按乘客的订票方式完成航班订票处理;(7)、应提供一个界面来调节各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!四课程设计应完成的工作1、编写算法;2、算法测试,并有具体的测试结果和结果分析;3、撰写课程设计报告,内容包括:(1)封面扉页(2)设计任务书(3)目录(4)总体设计方案(包括流程图)(5)使用说明及运行实例(包括界面)(6)成员设计内容简介(7)项目源代码(注意注释的使用)(8)指导老师评语五总体设计1、功能1:航班信息的输入并对输入的内容进行错误检查;2、功能2:航班信息的显示浏览;3、功能3:航班信息的修改并对修改的内容进行错误检查;4、功能4:航班信息的删除;5、功能5:航班信息的查询;6、功能6:乘客信息输入并对输入的内容进行错误检查;7、功能7:订票处理检查是否还有空座位;8、退出系统。

六详细设计系统的整体框图如图1所示:图1 整体框图1、打开存放着航班信息与乘客信息的文件:分别打开航班文件与乘客文件,存放在链表中,供后续函数调用;可用函数void read_psg_data(void)、voidread_pla_data(void)来实现此操作。

这是两个无参函数,用来读取存储在文件中的信息当到达文件尾时关闭文件并退出函数,带回指向链表头的一个指针和指向链表尾的指针。

算法:fopen()函数打开文件后读取一定长度的信息存到malloc()分配的内存地址空间,声明两个全局指针pla_head和psg_head,每读取一组数据就将其地址存放在pla1节点中,并链接到之前列表的尾端。

N-S流程图如图2所示(以读取航班信息为例):fp=fopen(文件)while(不到文件尾)malloc()分配内存pla1是否成功否是fread()读取一定长度字节数据到pla1pla1置为NULL pla_head 是否为空pla_end->next = pla1; pla_head = pla1; pla_end = pla1;pla_end = pla1;pla_end_next 置为NULL读取成功标志位置为0 关闭文件图2 打开文件读取数据流程图2、输入航班数据与乘客数据(以航班数据为例):输入信息包括航班号、最大载客数、起飞地点等相关信息;用函数void add_pla_info(void),函数再调用int check_pla_num(PLA *pla)、void check_time(int *hour, int *min)、voidcheck_string(char name[20])分别进行航班号、输入的时间、输入的地点等信息的正确性验证,从源头避免出错。

算法:打开待保存输入信息的文件,在一个while 循环里面分配内存并输入数据,对输入的数据进行正确性验证,如果出错则会提示重新输入,正确输入完一个航班后将数据保存到链表尾端并将新的航班数据写入打开的文件中。

N-S 流程图如图3所示(以读取航班信息为例):分配 内存失败 返回菜单否是fp=fopen(文件) while(继续输入)malloc()分配内存pla 是否成功输入航班号航班记录已存在? 输入载客数是否数字且在正常范围 输入起飞时间 时间格式正确? 输入降落地点 地点格式正确? 输入降落时间 时间格式正确? 输入单价 是否数字? pla_head 为空? pla_end->next = pla; pla_head = pla; pla_end = pla; pla_end = pla; 保存新航班数据到文件图3 输入航班数据流程图3、显示浏览航班信息:显示信息包括航班号、最大载客数、起飞地点、起飞时间、降落地点、降落时间、单价、剩余票数,调用了时间函数localtime()获取当前系统时间;用函数void display_pla_info(void)完成此操作。

算法:把读取文件后产生的链表按照一定的格式输出到屏幕上。

N-S 流程图如图4所示:将链表头赋给航班结构体局部变量 while(未到链表尾) printf(pla1);pla1 = pla1->next;图4 显示航班信息流程图4、删除航班信息:删除一个航班的所有信息,调用函数void delete_pla_data(void)完成是删除操作。

否是提示出错后返回否 是 重新输入否 重新输入重新输入是是否否 是重新输入否重新输入是否 重新输入否是是算法:显示所有航班信息,要求用户输入需删除的航班号,在while 循环中遍历链表,找到数据则显示出来,再次要求用户确认删除,若删除,该数据的下一条数据地址将会取代当前的数据地址,即从链表中删除了,调用save_pla_info()保存新的链表;若没有找到航班则要求用户重新输入。

相关主题