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