1、 C C 语言程序设计语言程序设计 课程设计报告 设计题目:设计题目:飞机订票系统飞机订票系统 学 院 专 业 班 级 学 号 姓 名 2 1 1 设计任务设计任务 1.1 设计题设计题目的目的描述描述 飞机订票系统设计 假定民航机场共有 10 个航班,每个航班有一航班号、确定的航线(起始站、终点站) 、 确定的飞行时间(星期几)和机票数。试设计一民航订票系统,使之能提供下列功能: .航班信息由管理员录入、修改、删除; .旅客可以浏览、按航线查询、按航班号查询、按终点站查询; .承办订票和退票业务; 1.2 设计要求设计要求 (1)仔细审题,明确题目要求。 (2)按照结构化的程序设计思想,将程
2、序模块化,将相对独立的功能写成函数。 (3)要求编程、调试通过并演示;程序编写规范,添加适当注释。 (4)按照课程设计报告的内容和格式要求,撰写课程设计报告,并且打印。 2 2 设计设计方案说明方案说明 2.1 数据的存储结构数据的存储结构 struct plane /定义结构体定义结构体 long num; / 航班号航班号 char start12; / 起始站起始站 char end12; / 终点站终点站 char time10; / 飞行时间飞行时间 int piao; / 机票数机票数 struct plane *next;/ 指向自己结构体类型指向自己结构体类型 ; 2.2 函数
3、之间的调用关系说明函数之间的调用关系说明 3 2.3 函数说明函数说明 函数 creat(): (1) struct plane *creat(); (2) 建立一个动态链表; (3) *head , *p1 ,他们都是指向 struct plane 数据类型的,head 是指向链表 的最前边,p1 指向要插入的地方; (4) N-S-1: 开辟一个新的节点,并使 p1 指向它 读入一个航班的信息给 p1 指向的节点 head=NULL p1-next!=0 insert main load input display delete modify query booking refund cr
4、eate save query_end print query_num query_start 真 假 4 n 等于 1? 输入航班信息 head=p1 p1-next=NULL 函数 insert (1)struct plane *insert(struct plane * head, struct plane * plan); (2)插入数据; (3)参数:head, plan . head 指向文件链表的第一个节点;plan 指向要插入的节点 关键变量:*p0,*p1. p1 指向第一个节点;p0 指向要插入的节点; (4)N-S-2: p1=head;p0=plan; 原来的链表是空的
5、 真 假 将 p0 所 指 的 节 点 作 为 唯 一 的 节点 当 p0-nump1-num 以及 p1 所指向的不是表尾 节点 p1 指向 p2 的位置 p1 向后移一个节点 真 p0-numnum 假 Y p1 指向头结点 N p1-next=p0 p0-next=NULL head=0 p0-next=p1 P2-next=p0 P0-next=p1 n=n+1 函数 save: (1)void save(struct plane *head); (2)保存数据到 plane_list 文件中; 真 假 N-S-1 假 N-S-2 5 (3)参数:head 指向头结点; 主要参数:p
6、为 struct plane 数据类型,指向要写入的节点; (4)N-S-3: ending.num = 0; p=head; 真 写文件 plane_list 假 结束程序 当 p!=NULL 真 写入正确 假 继续写 return p=p-next; 关闭文件 函数 print: (1) void print(struct plane *head ); (2) 把信息显示出来; (3) 参数:head,指向链表的头结点; 主要变量:p,指向要输出的节点; (4)N-S-4: p=head; 真 head!=NULL 假 当 p!=NULL 输出数据 p=p-next; 结束 N-S-3 N-S-4 N-S-4 6 函数 load: (1)