飞机订票系统报告文档格式.docx
《飞机订票系统报告文档格式.docx》由会员分享,可在线阅读,更多相关《飞机订票系统报告文档格式.docx(29页珍藏版)》请在冰豆网上搜索。
2课程设计原理2
2.1主要模块的功能说明2
2.2原理图介绍3
2.2.1系统功能模块结构图3
2.2.2流程图分析4
3数据结构设计8
3.1存储结构8
3.2算法描述9
4调试与分析14
4.1调试过程14
4.2测试结果15
参考文献18
附录(关键部分程序清单)19
1题目介绍和功能要求
1.1题目介绍
利用C语言或面向对象的C++等设计一个小型飞机订票系统,实现规定的功能操作,自己设计航班信息及订票信息的存储结构。
1.2功能要求
(1).录入功能:
由键盘录入航班情况,修改航班信息,包括航班号、起降时间、始发站和终点站、航班票价、票价折扣、航班是否满仓。
(2).查询功能:
能够根据输入信息查询航班情况,如输入航班号或抵达城市即可获得该航班的日期、起降时间,始发站和终点站,票价及折扣情况,是否满仓等信息。
(3).订票功能:
旅客输入所需订票的航班号,程序先进行查找,若找到,则输出航班信息,在旅客输入姓名、身份证号码和订票数量后能够订票,同时修改航班信息;
若找不到,则不能订票,提示是否重新查找。
(4).退票功能:
旅客输入所需退票的航班号,程序先进行查找,若找到,则输出航班信息,在旅客输入姓名、身份证号码和退票数量后能够退票,同时修改航班信息。
2课程设计原理
2.1主要模块的功能说明
该程序除主函数外共定义了4类主要的函数,分别为录入函数、查询函数、订票函数、退票函数,各部分实现的功能如下:
(1).录入函数luru():
调用链表初始化的函数,能够实现录入航班情况的功能,包括航班号、日期、起降时间、起飞城市和抵达城市、航班票价、票价折扣、总座位数以及剩余座位数。
(2).查询函数chaxun():
共调用两个子函数,分别为航班号查询hbhchaxun()和目的地查询mddchaxun()函数。
航班号查询函数可实现按航班号查询功能,旅客只需输入航班号即可获得该航班的航班号、日期、起降时间、起飞城市和抵达城市、航班票价、票价折扣、总座位数、剩余座位数等信息。
目的地查询函数可实现按目的地查询的功能,当旅客输入抵达城市时,将输出所有到达该目的地的航班信息。
(3).订票函数dingpiao():
当旅客输入所需航班号时,程序会进行查找,若找到此航班,则输出该航班的航班号、日期、起降时间、起飞城市和抵达城市、航班票价、票价折扣、总座位数、剩余座位数等信息,同时提示旅客输入姓名、身份证号码、订票数量。
若信息输入正确,则订票成功并修改航班信息;
若无此航班,则提示是否重新订票,是则重新操作,否则返回主菜单。
若所订票数大于余票量,则提示无法订票,是否需重新订票,是则重新操作,否则返回主菜单。
(4).退票函数tuipiao():
旅客输入需退票的航班号时,该函数会进行查找操作,若找到此航班,则输出该航班的航班号、日期、起降时间、起飞城市和抵达城市、航班票价、票价折扣、总座位数、剩余座位等信息,并提示旅客输入姓名,身份证号码以及退票数量。
函数将再次进行查找操作,若找到旅客信息,则完成退票;
反之,若航班号输入错误或查找不到旅客信息则提示退票失败,是否重新查找并退票,是则重新操作,否则返回主菜单。
2.2原理图介绍
2.2.1系统功能模块结构图
执行主函数时,会出现一个界面,提供五项选择,提示不同按键的作用,分别为输入航班信息、查找航班信息、订票信息、退票信息、退出程序,用来调用以上四个子函数。
图2.1系统功能模块结构图
2.2.2流程图分析
(1).录入函数:
程序执行录入函数时,需按要求依次输入航班信息,当一个航班信息录入完毕,则提示是否继续输入,是则按1,否则按2,继续入航班信息。
流程图如下:
图2.2录入函数流程图
(2).查询函数:
旅客在提示下输入查询方式,若选择按航班号查找,则按1,调用按航班号查找函数,若找到,则输出该航班的航班号、日期、起降时间、起飞城市和抵达城市、航班票价、票价折扣、总座位数、剩余座位数等信息;
若找不到,则输出无此航班的提示并返回主菜单。
若选择按目的地查找,则按2调用按目的地查找函数,若找到,则输出所有到达该目的地的航班的航班号、日期、起降时间、起飞城市和抵达城市、航班票价、票价折扣、总座位数、剩余座位数等信息;
流程图如下:
图2.3查询函数流程图
(3).订票函数:
当旅客输入所需航班号时,程序会进行查找,若找到此航班,则输出该航班的信息,同时提示旅客输入姓名、身份证号码、订票数量,若信息输入正确,则订票成功并修改航班信息。
若无此航班,则提示是否重新订票,是则重新操作;
图2.4订票函数流程图
(4).退票函数:
旅客输入需退票的航班号时,该函数会进行查找操作,若找到此航班,则输出该航班信息,并提示旅客输入姓名、身份证号码以及退票数量,函数将再次进行查找操作,若找到旅客信息,则完成退票。
反之,若航班号输入错误或查找不到旅客信息则提示退票失败,是否需要重新退票,是则重新操作,否则返回主菜单。
图2.5退票函数流程图
3数据结构设计
3.1存储结构
该程序主要应用结构体和链表,定义两个结构体,分别用来存放航班信息和订票的客户信息。
(1).航班信息包括航班号、起降时间、始发站和终点站、航班票价、票价折扣、航班是否满仓等,同时在存储航班信息的链表结点中存在存放客户信息的空间,便于客户订票和退票。
具体设计如下:
typedefstructHangxian{//创建一个结构体
charhangbanhao[15];
//航班号
chardate[15];
//日期
intstime;
//起飞时间
intetime;
//降落时间
inttotal;
//座位数
intodd;
//余票
floatprice;
//价格
floatdiscount;
//折扣
charstart[15];
//起飞城市
charend[15];
//降落城市
structHangxian*next;
//指向下一个链结点的指针
structYidingkehu*yiding;
//定义一个指向已订票客户的头结点指针
}Hangxian,*Linklist;
(2).客户信息包括姓名、身份证号码、订票数量;
typedefstructYidingkehu//单链表
{
charname[15];
//已订票的客户姓名
intID;
//身份证号
intpiao;
//订票数量
structYidingkehu*next1;
}Yidingkehu,*Link;
3.2算法描述
(1).当程序进入主函数时,界面会提示不同按键的作用分别为录入函数、查询函数、订票函数、退票函数。
case1:
luru();
break;
选择1,录入功能
case2:
chaxun();
选择2,查询功能
case3:
dingpiao();
选择3,订票功能
case4:
tuipiao();
选择4,退票功能
default:
exit(0);
选择0,退出
}
}while(n==1||n==2||n==3||n==4);
(2).录入函数描述:
录入函数首先为航线信息的头结点分配空间,若成功,则调用链表初始化的函数,再用while循环实现链表的插入操作,输入航班号、日期、起降时间、起飞城市和抵达城市、航班是否满仓等信息,直到退出该函数,返回主菜单。
若不成功,则退出函数,返回主菜单。
算法如下:
{intm;
do{
if(!
InsertLinklist(L))//为空,向其中加入航班信息
{
printf("
内存已满\n"
);
exit(OVERFLOW);
}//向链表中加一结点
printf("
\t是否要输入下一个航线记录?
\n"
\t是请输入1\n"
\t否请输入2\n\t"
scanf("
%d"
&
m);
//决定是否输入下一条航线记
}while(m==1);
(3).查询函数描述:
在提示下输入查找方式,若选择按航班号查找,则调用按航班号查找函数,若选择按目的地查找,则调用按目的地查找函数。
若找到,则输出符合要求的所有航班信息;
找不到,则输出无此航班的提示,返回主菜单。
{intn;
printf("
返回主菜单********0\n\n"
目的地查询********1\n\n"
航班号查询********2\n\n"
请输入查询方式:
"
scanf("
n);
//格式化
switch(n)
{case1:
mddchaxun();
按目的地查询
break;
case2:
hbhchaxun();
按航班号查询
default:
}
(4).目的地查询函数描述:
目的地查询函数可实现按目的地查询的功能,当旅客输入抵达城市时,将进行链表的遍历操作。
若找到符合要求的航班,则输出所有到达该目的地的航班的航班号、日期、起降时间、起飞城市和抵达城市、航班票价、票价折扣、总座位数、剩余座位数等信息;
若找不到,则提示输入错误,并返回主菜单。
{printf("
\t请输入终点站:
gets(c);
gets(c);
while(p)
{if(p)
m=strcmp((*p).end,c);
//如果==,则m=0;
if(m==0)
{printf("
\t航班信息:
p=p->
next;
if(m!
=0)
{//不匹配
\t对不起没有符合您要求的航班:
\n\n"
m=1;
\t按任意键返回主菜单:
getchar();
(5).航班号查询函数描述:
查找函数航班号查询函数可实现按航班号查询功能,当旅客输入航班号时,将进行链表的遍历操作。
若找到符合要求的航班,则输出该航班的航班号、日期、起降时间、起飞城市和抵达城市、航班票价、票价折扣、总座位数、剩余座位数等信息。
具体算法同按目的地查询函数。
(6).订票函数描述:
当旅客输入所需航班号时,会进行链表的遍历操作,若找到此航班,则输出该航班的航班号、日期、起降时间、起飞城市和抵达城市、航班票价、票价折扣、总座位数、剩余座位数等信息,同时提示旅客输入姓名、身份证号码、订票数量,若信息输入正确,则订票成功并修改航班信息;
若无此航班,则提示是否重新订票,是则重新操作,否则返回主菜单;
do{printf("
\n请输入您要订的票数:
scanf("
piao);
if(piao<
=p->
odd)