航空订票系统

第一章  绪    论

任务:通过此系统可以实现如下功能:

1)、录入:

可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)

2)、查询:

可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);

可以输入起飞抵达城市,查询飞机航班情况;

3)、订票:(订票情况可以存在一个数据文件中,结构自己设定)

可以订票,如果该航班已经无票,可以提供相关可选择航班;

4)、退票: 可退票,退票后修改相关数据文件;

客户资料有姓名,证件号,订票数量及航班情况,订单要有编号(不能重复)。

5)、修改航班信息:

当航班信息改变可以修改航班数据文件

要求:

根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;

界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。

存储结构:学生自己根据系统功能要求自己设计。请在最后的上交资料中指明你用到的存储结构;

测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明;

第二章  航空订票系统的需求分析

功能需求

 功能模块图

本系统的主要的功能包括:

1、航班信息录入功能(航班信息用文件保存)

包括航班号、起始站、终点站、机票数等;

2、航班信息浏览功能;

3、按航班号排序;

4、查询航线:按航班号查询;

5、订票和退票业务 。

功能模块图如下图2-1所示:

航空订票系统

录入航班信息

以链表形式存储航班信息

修改航班信息

查询航班信息

办理定票业务

办理退票业务

#TODO

图2-1 功能模块图

  录入航班信息功能

航班的基本信息,对它们输入后,要存进原文件再用户输入完成后,程序会询问是否继续输入,这个功能更具人性化,可以省去返回到主函数在进入这个函数的麻烦。

  存储航班信息功能

单用户输入航班信息后该功能自动存储航班信息,以备用户查询调用。

 修改航班信息功能

当用户需要修改航班信息时,可以选择需要修改的航班号,然后再重新输入航班的详细信息。

查询航班信息功能

基本信息的查询按查询可供选择的方式比较丰富,可按航班号查询,也可以按出发地降落地查询。

 订票功能

在该功能模块中输入需要订票的航班。然后在输入乘客的各种信息,比如:姓名,证件号,订票数,航班号等。并且该功能可以自动给定好的票标识订单号。

 退票功能

在该功能中,程序代码原理和订票系统相类似,退票时要求客户输入姓名,证件号以及航班号。当客户信息的票存在时则显示退票成功,否则则显示“该顾客信息不存在,单击任意键退出”。

 退出系统功能

当用户希望结束程序时,只需要返回操作界面选择该功能即可退出程序。

非功能需求

要求系统界面美观﹑易于操作和升级,能够承受大规模的数据库操作,执行效率高,尽可能降低内存消耗。

第三章  关键技术

C语言

C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出。1978后,C语言已先后被移植到大、中、小及微型机上。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画。具体应用比如单片机以及嵌入式系统开发。

  链表

链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,链表比较方便插入和删除操作。

第四章  航空订票系统的设计

 系统流程图

系统流程图(System Flowchart)是描绘系统物理模型的传统工具。它的基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件(程序、文件、数据库、表格、人工过程等),表达信息在各个部件之间流动的情况。

 航班信息录入流程图

输入航班信息,程序自动存储信息,并且会弹出是否需要继续输入航班,是按Y继续输入,否则按任意键返回主菜单。如图4-1所示。

主菜单

是否为Y

输入航班信息

存储航班信息

输入选择

#TODO

图 4-1

 修改航班信息流程图

在主页面选择修改航班信息,选择航班号,错误时显示航班不存在,正确则输入新的航班信息,并且系统提示修改成功。如图4-2所示。

主菜单

输入航班信息

存储航班信息

是否有该航班

没有该航班

修改成功

输入航班号

#TODO

图 4-2

 查询航班信息流程图

从主界面选择进入该模块,会有俩种查询方式,分别为航班号查询方式及起始地查询方式,选择一种查询,若无相应的航班信息则弹出无该航班,否则弹出该航班详细信息。如图4-3所示。

主菜单

请输入选择

输入数是?

按地址查询

输入航班号

输入起始地

输出航班信息

按航班号查询

#TODO

图 4-3

 订票流程图

从主界面进入订票模块,输入客户信息姓名,证件号,订票数然后再输入航班号,如果该航班不存在则会显示是否继续订票,输入Y则可继续订票,并输入客户信息;输入其他字符则返回主菜单界面。如图4-4所示。

主菜单

输入客户信息及航班号

航班存在?

成功订票

航班不存在

是否继续

输入选择

是否为Y?

输入客户信息及航班号

#TODO

图 4 -4

 退票流程图

进入该退票模块,输入客户信息,系统分析有无该信息,若有,则弹出退票成功;如果无该信息怎显示“该客户信息不存在”,回到主菜单。如图4-5所示。

主菜单

姓名

存在该信息?

证件号

订单号

不存在

退票成功

#TODO

图4-5

第五章  航空订票系统的实现

客户订票事件的实现

void dingpiao()   //订票

{

long length=0;

p_inf * head_p=NULL;

c_inf *p, *p1, *head_c;

char choice;

FILE * fp; // fp是顾客信息文件指针

head_p=read_p(); //读取航班信息文件并初始化链表

if(head_p==NULL)

{

return;

}

head_c=read_c(); //读取顾客信息文件并初始化链表

p1=head_c;

if((fp=fopen("d:\\customer.dat","ab"))==NULL)  /*打开顾客信息文件*/

{

fp=fopen("d:\\customer.dat","wb");

}

else

{

if(p1!=NULL)

{

while(p1!=NULL) //找出最后一个结点

{

p1=p1->next;

length++;

}

}

}

do

{

printf("请输入订票者信息,各项内容之间以空格键分开\n\n");

printf("姓名,证件号,数量,航班号\n");

p=(c_inf *)malloc(sizeof(c_inf));

fflush(stdin); //清除系统缓冲区

scanf("%s%d%d%d",CS);

p->numb_ord=length+1;

if(xg_hb(p->numb_p,p->amount_t,head_p))//实现对航班信息链表的修改

{

length++;

printf("**************************************************************");

printf("提示:您已成功订票\n订单号是:%d",p->numb_ord);

printf("\n************************************************************");

fwrite(p,sizeof(c_inf),1,fp);

}

else

{

free(p);

}

printf("\n继续订票请输入Y,否则返回上一级菜单\n");

fflush(stdin);

choice=getch();

}while(choice=='Y');

fclose(fp);

write_p(head_p); //将修改后的航班信息链表写入到航班信息文件中

free_p(head_p);

free_c(head_c);

}

客户退票事件的实现

void tuipiao()  //退票

{

    char name[20];

    int numb_ord, numb_id;

    p_inf *head_p, *p_p;

    c_inf *head_c, *p_c, *p1_c=NULL;

    head_p=read_p();

    head_c=read_c();

    p_p=head_p;

    p_c=head_c;

    if(p_c==NULL)

    {

        printf("单击任意键退出");

        getch();

        return;

    }

    printf("请输入客户姓名:\n");

    scanf("%s",name);

    printf("请输入证件号:\n");

    scanf("%d",&numb_id);

    printf("请输入订单号:\n");

    scanf("%d",&numb_ord);

    while(p_c!=NULL)

    {

        if(strcmp(name, p_c->name)==0&&numb_ord==p_c->numb_ord&&p_c->numb_id

==numb_id)

        {

            break;

        }

        p1_c=p_c;

        p_c=p_c->next;

    }

    if(p_c==NULL)

    {

        printf("该顾客信息不存在,单击任意键退出");

        getch();

    }

    else // 将链表信息重新写到文件中

    {

        while(p_p!=NULL)

        {

            if(p_p->number==p_c->numb_p)

            {

                break;

            }

            p_p=p_p->next;

        }

        write_p(head_p);

        write_c(head_c);

        printf("退票成功,单击任意键退出");

        getch();

    }

    free_p(head_p);

    free_c(head_c);

    //system("cls");

}

系统界面的实现

系统登录界面

                         #TODO   

                                    

系统录入航班信息页面

#TODO   

                                   

在该实验中输入的航班信息为:

航班号  起飞时间  抵达时间   始发地  目的地  票价  折扣  座位总数  剩余票数

1234     12:30   14:25     枫林     广兰   1200   3      120       34

 系统修改航班信息页面

修改后的航班信息如下:

航班号  起飞时间  抵达时间   始发地  目的地  票价  折扣  座位总数  剩余票数

1234     09:20   12:20    枫林     广兰  1200   3      120       34

 系统查询航班信息页面

在本实验中选择的是航班号查询航班信息,查询的航班号是:1234

#TODO

系统订票页面

#TODO

在试验中输入的客户信息是:

姓名              证件号             票数       航班号

cga           342427199811132354        1         1234

系统退票页面

#TODO

在实验中输入的信息为:

姓名              证件号             订单号

cga           342427199811132354         3

总结

在近半个月的时间里,不断地对程序及各模块进行修改、编译、调试、运行,其间遇到很多问题。经过这次实习,我对调试掌握的更加熟练了,改变了过去只调试不知道如何对照程序语言修改程序的坏习惯,对调试也有了新的认识,意识到了程序语言的规范性以及我们在编程时要有严谨的态度,同时在写程序时如果加一定量的注释,既增加了程序的可读性,也可以使自己在读程序时更容易。

C语言—航班订票系统相关推荐

  1. 数据结构课设航班订票系统(C语言版)

    数据结构课设航班订票系统(C语言版) 课设要求 (1) 航班管理.每条航线设计出合理的信息,包括:起点和终点站名,航班号,成员额定,飞行周期.飞机型号.余票量.航班票价等 (2) 客户管理.订票的客户 ...

  2. c语言航班订票管理系统源代码,简易C语言航空订票系统

    代码片段和文件信息 属性            大小     日期    时间   名称 ----------- ---------  ---------- -----  ---- 目录        ...

  3. c语言飞机订票信息查询,C语言飞机订票系统

    <C语言飞机订票系统>由会员分享,可在线阅读,更多相关<C语言飞机订票系统(11页珍藏版)>请在人人文库网上搜索. 1.课程设计课程:数据结构专业班级:XX软件工程XX班姓名: ...

  4. JAVA在线航班订票系统计算机毕业设计Mybatis+系统+数据库+调试部署

    JAVA在线航班订票系统计算机毕业设计Mybatis+系统+数据库+调试部署 JAVA在线航班订票系统计算机毕业设计Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S架构 开发语 ...

  5. C语言-飞机航班订票系统

    #include<stdio.h> #include<stdlib.h> #include<string.h> static int airnum=0;//静态变量 ...

  6. 【c语言】航班订票系统

    #include<stdio.h> #include<string.h> #include<stdlib.h> #include<malloc.h> # ...

  7. c语言航空订票系统流程图,飞机订票系统(C语言代码及流程图).doc

    FILENAME 飞机订票系统流程图 PAGE 19 第 PAGE 19 页 共 NUMPAGES 25 页 DATE \@ "yyyy-M-d" 2010-12-22 目录 目录 ...

  8. C语言飞机订票系统(数组版)

    (1)建立航班信息和乘客信息,每次航班的信息包括:航班号.起飞城市.到达城市.起飞时间.到达时间.机票价格.机票折扣.机票剩余数量: 每位乘客的信息包括:姓名.身份证号.性别.购买机票数.乘坐航班航班 ...

  9. c语言航空订票系统程序设计,航空订票系统C语言版.doc

    #include #include #include #include #define ok 1 #define error 0 #define overflow -2 int select2(); ...

最新文章

  1. 前后端分离接口规范~
  2. ASP.NET简化编辑界面 V3
  3. Day71 分页,cookie and Session
  4. JSTL标签显示分页
  5. qt checkbox 选中事件_丽声事件 | 十堰市第五届全国青少儿播音主持等级考试圆满落幕...
  6. Elasticsearch启动问题:max number of threads [3753] for user [XX] is too low, increase to at least [4096]
  7. 每天至少保证4个小时的学习时间
  8. BMFont制作美术字体包教包会
  9. 电脑首次插入耳机有声音,再次插入没有声音
  10. 计算机基础中的word2010,计算机基础word2010上机操作 - 图文
  11. 在linux下成功写Bingo游戏
  12. 用python写一个股票提醒、并用邮件方式发送出去
  13. 最简单直接粗暴的Mothur分析OTU教程
  14. 御坂御坂题解(出自北航校赛) 约瑟夫环问题高效解决方案
  15. 怎么把太大的ppt文件压缩变小
  16. 智能合约通证化与 Web3 革命(1):为何智能合约没能成为区块链的杀手级应用?...
  17. 邻域闭包matlab,拓扑空间、开集、闭集、闭包、聚点、邻域
  18. echarts折线图 折现下方显示阴影
  19. 数据查询必备技能SQL调优:Mysql什么情况下不走索引
  20. LeanCloud 已加入安卓统一推送联盟

热门文章

  1. 绘图技巧 | 超多种类在线可视化图表制作工具推荐
  2. jmeter循环控制器和CSV数据文件设置搭配使用
  3. iOS去掉导航栏底部的线
  4. 机器学习-回归之一元回归与多元回归算法原理及实战
  5. pyecharts从入门到精通-地图专题Map-世界地图和中国城市地图
  6. VI设计通过企业文化传播企业VI设计视觉感受
  7. Linux 版勒索软件即将到来
  8. wap2app ios首页侧滑关闭页面出现空白 解决方法
  9. GOOGLE 人机验证(RECAPTCHA)无法显示解决方案(转)
  10. html语言br怎么用,HTML br 标签如何使用