c语言航班信息查询系统实验报告

合集下载

数据结构课程设计航班查询系统实验报告

数据结构课程设计航班查询系统实验报告

目录一、概述 0二、系统分析 (1)1.航班信息的查询与检索 (1)2.航班信息查询与检索数据结构理论 (1)三、概要设计 (2)1.系统的功能 (2)2.系统模块分析及其流程图 (3)四、详细设计 (6)1.各函数说明 (6)2.定义相关数据类型 (8)3. 航班信息的查询 (9)五、运行由于测试 (12)六、总结与心得 (16)参考文献 (16)附录 (16)一、概述随着信息产业的飞速发展,信息化管理及查询已经进入并应用到各行各业,影响着人们的价值观念和生活方式。

因此,要提高企业信息化建设,利用先进的办公自动化系统来实现企业内部信息管理、共享及交流,从而提高企业综合实力。

本次设计是针对航班的查询系统,该设计要求对飞机航班信息进行排序和查询。

可按航班的航班号、起点站、终点站等信息进行航班信息的查询。

二、系统分析1.航班信息的查询与检索进入系统后,首先提示输入航班的信息,包括:航班号、起点站、终点站、班期、起飞时间、到达时间、飞机型号及票价等,票价为整型,其他为字符型。

当输入完一个信息后会提示是否继续输入,重复以上步骤输入全部的信息。

进入主菜单后会给出用户操作的界面,根据提示进行航班信息的查询。

2.航班信息查询与检索数据结构理论针对在本该类系统中的数据的处理情况,本系统采用二分查找法、基数排序法、最高位优先法。

二分查找法也称为折半查找法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O(log n)完成搜索任务。

它的基本思想是,将n 个元素分成个数大致相同的两半,取a[n/2]与欲查找的x作比较,如果x=a[n/2]则找到x,算法终止。

如果x<a[n/2],则我们只要在数组a的左半部继续搜索x(这里假设数组元素呈升序排列)。

如果x>a[n/2],则我们只要在数组a的右半部继续搜索x。

对航班号的排序是采用的基数排序法。

基数排序法又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为O (nlog(r)m),其中r为所采取的基数,而m为堆数,在某些时候,基数排序法的效率高于其它的比较性排序法。

C语言课程设计报告_航班管理系统方案

C语言课程设计报告_航班管理系统方案

C程序课程设计报告题目:航班管理系统班级:学号::指导教师:年月日一、问题描述 (3)二、设计及实验要点 (3)1功能分析 (3)2、总体设计 (5)(一)、功能模块设计 (5)1.航班管理系统的功能主流程 (5)2.管理系统的查询功能 (5)3.顾客进行订票的功能模块 (5)4.退票的功能模块 (5)5.续票的功能模块 (6)6.在订票续票功能完成之后,对顾客订票信息的查询功能模块 (6)7.退出系统的功能模块 (6)(二)、数据结构设计 (6)(三)、函数功能描述 (7)三、源程序(见附录) (9)四、程序实现 (9)(一)源码分析 (9)1.程序预处理 (9)2.主函数main() (9)3管理系统的查询功能 (9)4.顾客订票的功能模块 (11)5.顾客退票的功能模块 (11)5.顾客续票的功能模块 (12)(二)运行结果 (14)五、不足之处 (14)六、参考文献 (14)航班管理系统一、问题描述航班售票是民航业务管理的一项最基本业务。

表面上看,他只是民航业务的一个简单部分,但是她涉及的业务量大、客户多,还涉及资金管理与客户服务等多方面,因此这项业务并不像看上去那么简单。

过去传统的售票方式已不能满足现代航空业务流量剧增的客户要求,本次设计便是利用目前先进的开发工具Delphi7.0以及SQL server 2000开发一个航班售票管理系统,她能方便快捷的运用在民航业务的营运之中。

本系统是对民航飞机售票业务的一种模拟。

此次的开发系统主要是完成航班售票管理的各种自动化服务,通过计算机的运行完成各项事务,设计一个航班售票管理的数据管理系统。

通过开发此系统,可稳定简便地通过计算机来执行一系列操作,减少人工劳动强度,达到省时省力的目的,容包括乘客信息添加、修改、删除、查询;航班的售票订票的添加、修改、删除、查询;航空公司的航班时刻表的查询等。

在此次课程设计的实验中,便是利用C语言和数据结构的一些知识模拟航班管理系统。

C语言数据结构课程设计航空订票实验报告(含源代码)

C语言数据结构课程设计航空订票实验报告(含源代码)

一、设计要求任务通过此系统可以实现如下功能:1.录入航班信息:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据定)2.查询航班:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,确定航班是否满仓);3.订票:(订票情况可以存在一个数据文件中,结构自己设定);4.退票:可退票,退票后修改相关数据文件;5.修改航班信息6.退出程序客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。

修改航班信息:当航班信息改变可以修改航班数据文件要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;二、设计概要主界面选择操作项目1.录入航班信息通过单链表这种数据结构,设置了剩余票数,航班号,出发地点,到达地点,起飞日期,出发时间,到达时间,票价。

2.订票输入旅客的姓名,证件号,航班号,和订票张数。

程序中自动查询输入要定的航班号,如果没有则叫其重新输入,有则执行:票数足够则订票成功,票数不充足叫其选择其它航班。

此也采用单链表的数据结构。

3.退票要旅客输入订单号,查询航班号,没有此航班号则叫旅客核对。

有则执行:1)查询旅客的航班2)修改航班的剩余票数。

3)删除旅客订票信息。

4)退票成功,显示剩余票数。

4.查询输入航班号,有与之匹配的航班则输出之,没有则说没有此航班5.修改航班信息查询到要修改的航班,然后直接进行修改6.退出程序三、设计中主要用到的结构体typedef struct P//旅客机票信息{char name[10];//姓名int ordernum;//机票编号char num[10];//旅客证件号struct P *next;int ticketnum;//订票张数int flightn;//航班号}person;typedef struct node//航班信息{ int ticket;//剩余票数int flightnum;//航班号char startadd[20];//出发地点char arriveadd[20];//到达地点char startdate[20];//出发日期char starttime[10];//出发时间char arrivetime[10];//到达时间int price;//票价struct node *next;}LinkList;四、主要函数void dingpiao(LinkList *&L,person *&p)//订票函数void write(LinkList *&L)//航班信息录入函数void showF(LinkList *fn)//展示航班信息的函数void showT(LinkList *L1,person *p1)//展示机票信息的函数void tuipiao(LinkList *&L,person *p)//退票函数void xiugai(LinkList *&L)//修改航班信息的函数void scr()//主界面函数void chaxun(LinkList *&L)//查询函数int main()//主函数,定义为int型五、变量说明1.在主函数中LinkList *h 表示航班节点person *p 表示机票信息节点2.在其他函数中一般也用 r,p,f等表示链表指针i j m等表示int变量六、演示截图1.航班信息录入2.订票3.退票4.查询5.修改航班信息6.主界面、七、实验心得体会1.巩固和加深了对数据结果的理解,提高综合运用本课程所学知识的能力2.培养了我选用参考书,查阅手册及及文献资料的能力。

C语言课程设计-航班信息管理系统

C语言课程设计-航班信息管理系统

课程设计课程名称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.查询航班:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,确定航班是否满仓);3.订票:(订票情况可以存在一个数据文件中,结构自己设定);4.退票:可退票,退票后修改相关数据文件;5.修改航班信息6.退出程序客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。

修改航班信息:当航班信息改变可以修改航班数据文件要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;二、设计概要主界面选择操作项目1.录入航班信息通过单链表这种数据结构,设置了剩余票数,航班号,出发地点,到达地点,起飞日期,出发时间,到达时间,票价。

2.订票输入旅客的姓名,证件号,航班号,和订票张数。

程序中自动查询输入要定的航班号,如果没有则叫其重新输入,有则执行:票数足够则订票成功,票数不充足叫其选择其它航班。

此也采用单链表的数据结构。

C语言课程设计报告_航班管理系统方案

C语言课程设计报告_航班管理系统方案

C程序课程设计报告题目:航班管理系统班级:学号::指导教师:年月日一、问题描述 (3)二、设计及实验要点 (3)1功能分析 (3)2、总体设计 (5)(一)、功能模块设计 (5)1.航班管理系统的功能主流程 (5)2.管理系统的查询功能 (5)3.顾客进行订票的功能模块 (5)4.退票的功能模块 (5)5.续票的功能模块 (6)6.在订票续票功能完成之后,对顾客订票信息的查询功能模块 (6)7.退出系统的功能模块 (6)(二)、数据结构设计 (6)(三)、函数功能描述 (7)三、源程序(见附录) (9)四、程序实现 (9)(一)源码分析 (9)1.程序预处理 (9)2.主函数main() (9)3管理系统的查询功能 (9)4.顾客订票的功能模块 (11)5.顾客退票的功能模块 (11)5.顾客续票的功能模块 (12)(二)运行结果 (14)五、不足之处 (14)六、参考文献 (14)航班管理系统一、问题描述航班售票是民航业务管理的一项最基本业务。

表面上看,他只是民航业务的一个简单部分,但是她涉及的业务量大、客户多,还涉及资金管理与客户服务等多方面,因此这项业务并不像看上去那么简单。

过去传统的售票方式已不能满足现代航空业务流量剧增的客户要求,本次设计便是利用目前先进的开发工具Delphi7.0以及SQL server 2000开发一个航班售票管理系统,她能方便快捷的运用在民航业务的营运之中。

本系统是对民航飞机售票业务的一种模拟。

此次的开发系统主要是完成航班售票管理的各种自动化服务,通过计算机的运行完成各项事务,设计一个航班售票管理的数据管理系统。

通过开发此系统,可稳定简便地通过计算机来执行一系列操作,减少人工劳动强度,达到省时省力的目的,容包括乘客信息添加、修改、删除、查询;航班的售票订票的添加、修改、删除、查询;航空公司的航班时刻表的查询等。

在此次课程设计的实验中,便是利用C语言和数据结构的一些知识模拟航班管理系统。

C语言课程设计报告飞机订票系统

C语言课程设计报告飞机订票系统

C语言课程设计报告飞机订票系统摘要本文是关于C语言课程设计报告飞机订票系统,它具有灵活的菜单,可以让用户轻松查看有关航班信息的详细信息,并用于购买操作。

本文旨在概述程序的全部运行流程,运用相关编程技术来实现订票系统。

关键词:C 语言课程设计,飞机订票系统,编程技术1 引言随着科技的不断发展,传统的人工订票系统已经不能满足人们的复杂需求,订票系统需要采用新技术来改进,以适应现代用户的需求。

为了建立一个高效的订票系统,我们开发了一个飞机订票系统。

它具有基于菜单式界面的灵活性,可以有效地实现飞机航班信息的查询,购票和航班信息的管理。

本报告着重介绍了构筑飞机订票系统的过程,旨在介绍编程技术以及每个模块的函数、功能实现,并概述程序的全部运行流程。

2 技术框架编写本程序的主要语言是C,采用层次功能模块结构设计,分为用户界面,数据管理,查询服务,支付服务和关系维护四个主要模块。

(1)用户界面用户界面模块主要实现功能是提供用户访问的菜单界面,用户可以在输入信息后,访问系统并根据输入信息获取反馈,进行下一步操作。

(2)数据管理数据管理包含数据结构和文件管理模块,它用来存储和管理航班信息、乘客信息等有关数据,数据在使用后可以及时写入文件。

(3)查询服务查询服务模块提供用户查询航班信息所必需的功能,根据用户输入的查询条件,提供精确的查询结果。

(4)支付服务支付服务模块用来实现订票系统和外围支付系统或服务的接口,以进行订票支付操作,以保证系统订票的安全性。

(5)关系维护关系维护模块主要负责订票系统的关系维护,保证数据的一致性,以及相联的航班和乘客信息之间的一致性。

3 设计实现(1)用户界面模块用户界面模块主要是用户与系统的交互界面,用C语言的标准输入输出实现,通过“while-switch”语句实现对不同功能的跳转。

(2)数据管理模块数据管理模块采用数组和二维字符串实现,能够有效地存储和进行订票,查询,修改和删除数据。

航班查询系统实验报告

航班查询系统实验报告
printf(" ………………………………………\n");
printf("请输入您的选择:");
scanf("%d",&i);
printf("\n");
switch(i)
{
if(k==6)
printf("%对不起!无此航班信息! %\n");
else
{
printf("航班号起点站终点站航班期起飞时间到达时间机型票价\n");
i++;
getchar();
printf("需要继续输入吗?\n");
printf("y代表继续输入/n代表结束输入!\n");
printf("请输入y或n\n");
scanf("%c",&ch);}/k.ength=i-1;}
四、系统测试
(一)
图4输入数据
图5查询信息
图6查询信息
图7查询信息显示
for(i=1;i<k.length;i++)
{
//putchar('b');
swap=0;
for(j=1;j<=k.length-i;j++)
if(k.sl[j].others.price>k.sl[j+1].others.price)
{
tmp=k.sl[j].others.price;
k.sl[j].others.price=k.sl[j+1].others.price;
infotype others;

C语言程序设计 航班管理系统

C语言程序设计 航班管理系统

仲恺农业工程学院C语言程序设计报告航班信息管理系统课程名称C语言程序设计姓名XXX院(系)信息科学与技术学院专业班级网络工程XX学号201320XX指导教师XXX仲恺农业工程学院教务处制目录1需求分析 (1)2系统总框图和功能模块说明 (1)2.1系统总框图 (1)2.2功能模块说明 (2)3系统设计 (3)3.1主要结构体 (3)3.2主要功能函数 (3)3.3关键函数的流程图 (4)4系统调试 (5)5总结 (7)6源程序清单 (7)1需求分析航班信息包括航班号、起点站、终点站、班期、起飞时间、到达时间、飞机型号、票价,八项信息。

试设计航班信息管理系统,使之能提供以下功能:●系统以菜单方式工作●航班信息录入功能(航班信息用文件保存)--输入●航班信息浏览功能--输出●航班信息查询功能-算法(其中查询方式可以按学历查询、按职工号查询等)●航班信息排序、筛选功能2系统总框图和功能模块说明2.1系统总框图图1系职工信息管理系统输入航班信息筛选航班信息排序航班信息查询航班信息保存航班信息按航班起点站筛选按航班到达站筛选按航班起点时间筛选按航班到达时间筛选统总框图2.2功能模块说明输入航班信息模块,完成航班信息的录入。

航班信息的录入前,录入系统先完成新建文件,检测文件是否存在的功能。

检测完毕,采用循环的输入流程,以检测文件是否终止为循环的判定条件;输入信息时,以检测编号判断输入的信息与文件中的信息是否有冲突,防止输入的信息存在冲突;把航班信息一一输入后,判断其有没有存入文件中。

排序航班信息模块,完成航班信息中的价格排序,便于筛选信息结果的查看,排序是利用冒泡排序法,按照价格从高到低编排。

查询航班信息模块,根据输入的航班编号,查询航班编号的信息,。

其过程中,首先是对输入的信息判断,判断输入的信息无误后再查询。

筛选航班信息模块,筛选模板分为四种不同条件的筛选,分别是起点站、到达站、起点时间、到达时间。

利用字符串函数strcmp比较输入的筛选条件与文件中字符串是否一致为判断,利用循环结构把筛选条件与有效字符串一一作比较。

C语言程序设计报告(航班)

C语言程序设计报告(航班)
起始界面
输入航班信息
查询航班界面
订票系统
2.数据结构
先定义全局变量: int n=0,m=0,c;//定义全局变量 n 为航班数,m 为乘客数,c 则是常用变量 结构体: struct plane//定义航班结构体
{
int airnum;//航班号 int maxsize;//最大载客数 char start[20];//起飞地点 char time1[20];//起飞时间 char end[20];//降落地点 char time2[20];//降落时间 float price;//票价
2. 结束语 能够完成这次课程设计必须感谢 C 语言课程老师陈黎静、宋戈,还有同学的帮助。
参考文献
1、谭浩强 《C 程序设计》(第四版) 清华大学出版社 2、Greg Perry 《Absolute Beginner’s Guide To C》 第二版 Sams 3、: [美]普拉塔(Prata,S.) 《C Primer plus》 第 5 版 人民邮电出版社
printf("\n\t\t\t 订票成功!您的个人信息已保存.\n"); fwrite(&m,sizeof(int),1,fp); pas[m-1]=a;//将乘客信息放在结构体数组 pas[m-1]中 pas[m-1].seat=rand()%fly[l].maxsize+1; fly[l].maxsize=fly[l].maxsize-b;//修改剩余票数
{ l=i;//将对应航线的位置 i 赋值给 l break;
} }
if(l==-1) { printf("\n\t\t\t 该航班不存在!\n"); } else if(b>fly[l].maxsize)//判断票是否售完 {

c语言程序设计报告飞机票预订系统

c语言程序设计报告飞机票预订系统

目录目录i1课程设计的目的12需求分析12.1设计一个飞机订票系统,完成以下功能12.2该系统中用到的数据结构13概要设计23.1总体功能模块23.1.1 基本设计23.1.2开发平台23.1.3系统功能图23.2详细设计33.2.1主函数的实现33.2.2打印模块程序43.2.3保存模块程序53.2.4从文件读取信息模块63.2.5打印模块73.2.8订票模块123.2.9退票模块133.2.10修改模块133.2.11头文件及结构体数组164 调试与测试结果分析174.1系统主界面174.2输入航班信息界面174.3浏览航班信息界面174.4修改航班信息界面184.5查找航班信息界面184.6删除航班信息界面184.7订票信息界面194.8退票信息界面194.9退出系统195 使用说明196总结20参考文献...................................................................... (28)附录...................................................................... .. (29)飞机票预订系统的设计与实现1课程设计的目的(1)学会怎样用c语言做一个完整的系统。

(2)掌握c语言的编辑,,运行等环节。

(3)掌握c语言中链表的建立,插入,删除,保存节点。

熟练掌握for while 、do-while 循环语句的使用。

(4)通过程序设计的课程设计,掌握并熟悉一个简单项目的开发过程,本项目利用程序设计中最基础和最重要的部分:单链表。

(5)在整个开发设计过程中掌握程序设计的思想,以及各种操作和实际应用。

并可以将其运用于具体问题的解决之中。

加深对程序设计课程中理论和实践相结合的认识。

(6)掌握并熟练单链表的创建、插入、删除、查找等各种常用算法。

最终设计完成《飞机票预订及查询系统》,将各种算法综合运用于具体的设计任务中。

C语言航班订票管理系统设计报告

C语言航班订票管理系统设计报告

C语言航班订票管理系统设计报告设计任务书编写一个飞机订票系统的程序,使该系统能够实现对航班信息的录入、浏览、排序、查询以及订票、退票的功能。

小组任务分配:小组负责人:负责总体设计(包括总体设计流程图、模块函数原型接口设计); 负责订票函数模块、退票函数模块编写。

组员:负责文件的输入、文件读取、文件输出函数模块的编写。

组员:负责查询、修改、删除函数模块的编写。

目录1、需求分析 (4)2、功能描述 (4)3、总体设计 (6)4、调试分析 (7)5、测试结果 (7)6、用户使用说明 (12)7、课程设计心得 (12)8、附录(源代码) (13)2需求分析:用数组或链表数据结构完成一个航班信息管理系统,此系统的具体功能要求如下:(1)航班信息录入功能1)用户从键盘输入每次航班的信息:航班号、起始站、终点站、起飞时间、机票数、票价。

2)可添加一个或多个航班信息到当前编辑的数据中。

3) 可修改一个或多个航班信息。

4)可删除一个或多个航班信息。

(2)文件保存功能1)航班信息每一机场存为一个数据文件,数据文件可在程序中打开、编辑和重新保存。

2)用户输入航班信息可随时保存数据文件。

(3)文件打开功能1)程序只能对当前打开的数据文件进行编辑。

(4)查询功能1)浏览所有航班信息;2)按航班号查询航班信息;3)按终点站查询航班信息;4) 按航线查询航班信息;(5)报表输出功能1) 按航班编号输出一个航空公司的航班信息:航班号、起始站、终点站、起飞时间、机票数、票价,到屏幕和文件。

注:以上功能以菜单形式供用户使用,并有一定的容错功能。

一,功能描述模块基本介绍:1. 用户输入模块在此模块中,用户将根据菜单提示结合自己的需求输入一个0~7的值,来实现一定的功能。

2. 航班信息录入模块此模块可以让用户从键盘输入每个航班的信息:航班号、起始站、终点站、起飞时间、机票数、票价。

用户可插入一个或多个航班信息到当前编辑的数据中。

用户可删除一个或多个航班信息。

航班信息的查询与检索实验报告

航班信息的查询与检索实验报告

目录1 概述................................................................................................1.1 问题描述 ................................................................................1.2 基本要求 ................................................................................2 系统分析.........................................................................................2.1 功能需求分析.........................................................................2.2 设计要求 ................................................................................3 概要设计.........................................................................................3.1 各函数说明.............................................................................4 详细设计.........................................................................................4.1数据类型定义模块 ..................................................................4.2实现排序的各函数模块 ...........................................................5 运行与测试.....................................................................................5.1 航班信息输入.........................................................................5.2 航班信息查询.........................................................................5.3 退出航班信息系统..................................................................6 总结与心得 (12)参考文献1 概述1.1 问题描述随着科技与经济的发展,当今乘飞机旅行的人越来越多,人们需要关心了解各类航班的班次、时间、价格及机型等信息。

c语言课程设计航班报告

c语言课程设计航班报告

C程序设计实习报告正⽂第⼀章实习报告§1.1题⽬描述【要求】假定某民航机场共有n个航班。

每个航班有⼀航班号、确定的航线(起始站、终点站)、确定的飞⾏时间(星期⼏)和⼀定的成员订额。

试设计⼀民航订票系统,能提供下列服务。

(1)航班信息录⼊功能(航班信息⽤⽂件保存)。

(2)航班信息浏览功能。

(3)查询航线:(⾄少⼀种查询⽅式)。

①按航班号查询。

②按起点站查询。

③按终点站查询。

④按飞⾏时间查询。

【提⽰】(1)需求分析航班信息⽤⽂件保存,因⽽要提供⽂件的输⼊/输出功能;要浏览航班信息,需要提供显⽰功能;要查询航线,需要提供查找功能;另外,还要提供键盘式选择菜单以实现功能选择。

(2)总体设计整个系统可以设计为航班信息输⼊模块、航班信息浏览模块和航线查询模块。

(3)数据结构建⽴航班结构体,结构体成员包括航班号、起始站、终点站、飞⾏时间(星期⼏)、预售票总数、已售票数。

§1.2算法设计根据需求分析,可以将这个系统的设计分为如下五⼤模块:输⼊航班信息,保存航班信息, 浏览航班信息,查找航班信息,退出。

§1.3程序设计及代码分析1.结构体设计建⽴航班结构体,结构体成员包括航班号,起点站,终点站,飞⾏时间(星期⼏),预售票总数。

struct air{ int fir_num;char start[20]; char terminus[20]; char fir_time[10]; int count;}s[N]; /*s[N]中每个数组元素依次对应⼀个航班信息*/ [注意]s[N]中的N 为学⽣个数, 程序中采⽤宏定义的⽅式, 可以随时在源程序宏定义中改,本程序宏定义# define N 10000。

2.主函数 [流程图][程序]void main(){ int j ;printf(“----welcome to our scheduled flight manage system!----*\n”);printf(“*****************************************************\n”);do{ printf(“1. Please input the scheduled flight information\n\m”“2. Look through the scheduled flight information\n\n ”“3. Search for the scheduled flight information\n\n”“0. EXIT\n\n”);printf(“*****************************************************\n”);printf(“NOTE: This system just support the fly information in the nearest week\n\n”); printf(“Please choose one number during 0-3 then push enter: \n\n”);scanf(“%d”, &j );switch (j){ case 1: input(); /*调⽤输⼊模块*/break;case 2: print(); /*调⽤打印模块*/break;case 3: search(); /*调⽤查找模块*/break;case 0: break;} /*退出*/}while(j!=0);printf(“Thank you for using our system!Goodbye!\n”);}3.各功能模块设计3.1 输⼊航班信息[流程图][程序]void input(){ char f[]=“20121000748”; /*设置密码*/int y;printf (“Please input the password then push Enter:\n\n”);scanf(“%s”,f); /*读取密码*/if(strcmp(f,“20121000748”)= =0)printf(“*****************************************************\n”);for(i=0;i{ printf(“Please input the flight number:\n”);scanf(“%d”,&s[i].fir_num); /*读取航班号*/printf(“Please input the start place:\n”);scanf(“%s”,s[i].start); /*读取起点站*/printf(“Please input the terminus:\n”);scanf(“%s”,s[i].terminus); /*读取终点站*/printf(“Please input the time:\n”);scanf(“%s”,s[i].fir_time); /*读取时间*/printf(“Please input the number of the ticket(the number of the ticket should be ended by 0:)\n”,m);scanf(“%d”,&s[i].count); /*读取机票数*/m++;printf(“The %d group information have been inputted! Please push any key to continue, push 0 to the end”,m); scanf(“%d”,&y);if(y= =0){ save(); /*将结构体存盘*/print(); /*输⼊输出航班信息*/break;}}} }else printf(“password error! Please check your password! Thank you! Goodbye!\n\n”);}3.2 保存信息模块[流程图][程序]void save(){ FILE *fp, *fp1; /*定义⽂件指针*/if((fp=fopen(“chen.dat”,”wb”))= =NULL) /*打开⽂件并判断是否出错*/{ printf(“Fail to creat the file!\n\n”);getchar();return;}if((fp1=fopen(“hao.dat”,”wb”))= =NULL){ printf(“Fail to creat the file!\n\n”);for(i=0;iif(fwrite(&s[i],sizeof(struct air),1,fp)= =0) /*向⽂件写⼊数据并判断是否出错*/printf(“Fail to input data to the file!\n\n”);fprintf(fp1,”%d”,m);fclose(fp); /*关闭⽂件*/fclose(fp1);}3.3浏览信息模块[流程图][程序]void read(){ FILE *fp, *fp1; /*定义⽂件指针*/if((fp=fopen(“chen.dat ”,”rb ”))= =NULL) /*打开⽂件判断是否出错*/{ printf(“ Error please make sure the file is exist! Push any key back to the menu ”);getchar();}if((fp1=fopen(“hao.dat ”,”rb ”))= =NULL) /*打开⽂件判断是否出错*/ { printf(“Fail to creat the file!\n\n ”); getchar();return;}fscanf(fp1,”%d ”,&m); fclose(fp1); for(i=0;i{ fread(&s[i],sizeof(s),1,fp);} /*从⽂件中读取信息*/fclose(fp);} /*关闭⽂件*/ void print() /*打印模块*/ { char w[10];read(); /*调⽤读⽂件函数*/printf(“FlightNumber StartPlace Terminus Time TicketNumber\n ”); for(i=0;i{ printf(PRINT);} /*打印信息*/printf(“Please push any key back to the up menu:\n ”); scanf(“%s ”,w);}3.4 查询信息模块[流程图][程序]void search(){ char name1[20];char time[10];int n,no;do{ printf("Please choose one way you want to search:\n\n"); /*打印查询⽅式菜单*/ printf("1.According to the flight number\n\n""2.According to the Terminus\n\n""3.According to the start place\n\n""4.According to the flying time\n\n""0.BACK\n\n");printf("Please choose one number during [0-3]:[]\n\n""Push any other key back to the top menu:\n\n");scanf("%d",&n); /*读取查找⽅式*/if(n= =0)break;switch(n){ case 1:printf("Please input the flight number:\n");scanf("%d",&no); /*航班号*/break;case 2:printf("Please input the terminus :\n");scanf("%s",name2); /*读取终点站*/break;case 3:printf("Please input the start place:\n");scanf("%s",name1); /*读取起点站*/break;case 4:printf("Please input the flying time:\n");scanf("%s",time);break;}read(); /*调⽤读取函数*/{if(strcmp(s[i].start,name1)==0||strcmp(s[i].terminus,name2)==0)/*按终点站起始站判断输出条件*/{printf("\nSucceed in searching for the flight information!\n");printf("FlightNumber StartPlace Terminus Time TicketNumber\n");printf(PRINT); /*打印信息*/}if(s[i].fir_num= =no) /*按航班号判断输出条件*/{printf("\nSucceed in searching for the flight information!\n");printf("FlightNumber StartPlace Terminus Time TicketNumber\n"); printf(PRINT); }if(strcmp(s[i].fir_time,time)= =0){printf("\nSucceed in searching for the flight information!\n");printf("FlightNumber StartPlace Terminus Time TicketNumber\n");printf(PRINT); /*打印信息*/}printf("Can not find the informtiong you wanted or youhave done it:\n\n""Do you want to continue?Please input YES or NOand push enter \n");scanf("%s",ii);}while(strcmp(ii,"yes")==0);}§1.4实验数据及运⾏效果截图1.输⼊数据管理员输⼊航班信息:航班号起点站终点站飞⾏时间总票数100 quzhou wuhan 9.1 100101 quzhou wuhan 9.2 150102 wuhan quzhou 9.1 130103 beijing wuhan 9.2 1002.编译,连接和运⾏3.结果3.1 主菜单函数3.2 输⼊信息模块3.3浏览信息模块3.4查询信息模块3.4.1 按照航班号查询3.4.2 按照终点站查询3.4.3 按照起点站查询3.4.4 按照时间查询3.4.5 结束§1.5设计中出现的错误及解决⽅法我在程序的设计中遇到了诸如中英输⼊法错误、标点符号错误等错误,同时在函数调⽤处多次出错,很感谢马钊⽼师、殷商珉珉同学和李洋同学的指导,让我学会⽤模块化的⽅式处理相关问题。

c语言航班信息查询系统实验报告

c语言航班信息查询系统实验报告

软件学院大作业任务书题目:航班信息查询系统专业:班级:姓名:学号:完成人数:起讫日期:任课教师:职称:讲师部分管主任:完成时间:说明1.本任务书由任课教师填写后,下达到学生。

2.任务完成后,任课教师需填写小结表。

3.任务书、学生成绩与学生完成后的大作业(纸质和电子两种)一并报送各教学研究部审核后转教务办。

4.另附一份全班大作业总结NANCHANG UNIVERSITY高级语言程序设计课程设计题目: 航班信息查询系统学院:专业:班级:完成人数:成员:起讫日期:任课教师:完成时间:填表日期:目录一、需求分析............................................................. - 1 -1.1 项目介绍....................................................... - 1 -1.2 功能需求....................................................... - 1 -二、系统分析............................................................. - 1 -2.1 本程序需解决的关键技术问题..................................... - 1 -2.2 程序流程....................................................... - 1 -三、程序设计与实现....................................................... - 2 -3.1 程序设计....................................................... - 2 -3.2 程序实现........................................... 错误!未定义书签。

飞机航班订票系统C语言程序设计报告

飞机航班订票系统C语言程序设计报告

《程序设计》课程设计说明书课程名称《程序设计》设计题目飞机航班订票系统专业班级计算机应用技术201221学生姓名指导教师起止日期2013年6月8日至2013年6月14日福建林业职业技术学院自动化工程系目录1 设计内容、任务以及要求 (1)1.1设计题目的内容 (1)1.2要求 (1)2总体设计思路 (2)2.1系统基本功能 (2)2.2具体设计思想 (2)2.3系统的总体流程图 (3)3 .功能模块的详细设计 (5)3.1结构的定义 (5)3.2各个函数的设计具体设计思想和流程图 (5)4.功能模块的调试及测试 (27)4.1添加函数的测试 (27)4.2判断函数的测试 (28)4.3 删除函数的测试 (28)4.4统计函数的测试 (28)4.5 密码确认函数的测试 (14)4.6密码的修改函数 (31)4.7 主函函数的测试 (32)5 总结 (34)6致谢 (35)参考文献 (36)原程序代码: (21)1 设计内容、任务以及要求1.1设计题目的内容、任务主要利用c语言的文件操作能力设计开发一个小型的飞机订票系统,至少具有如下功能:信息读出,可以查看全部航班信息和查询一个航班信息。

可以进行添加(再添加过程中有重复显示提示信息)、删除、订票等基本操作。

操作界面要能使使用者看懂,以便使使用者正确使用。

具体内容如下:程序属于非数值计算型算法设计,学生需要设计出飞机订票系统所需要的基本功能,并设计简单的界面。

(1)通过提示菜单选择可以进行的操作。

(2)将航班的信息存入文件中,并命名为FlightInfo.txt。

(3)将订票情况信息存入文件中,并命名为SelectInfo.txt。

(4)在本系统中可以进行管理系统包含的基本操作,其中包括a)查看所有航班的信息b)输入一条航班的航班编号,从当前航班中进行查找,如果找到则显示该航班的相关信息,如果没有找到则给出提示信息c)添加一条航班的基本信息,通过输入航班编号,首先查找是否存在该航班编号的航班,如果存在则提示重新输入,否则将该航班按照顺序插入到相应位置d)删除一条航班的基本信息,通过输入航班编号,首先查找是否存在该航班编号的航班,如果存在则将该航班删除,否则给出提示信息,提示该航班不存在e)选择一条航班,需要给出学号和航班编号,如果航班编号不存在则重新输入,直到输入正确为止,并将学号和相应的航班编号存入SelectInfo.txt文件中(5)航班基本信息包括航班编号、起点、终点、飞行时间和订票额度这些简单信息。

c语言课程设计报告--航班时刻表信息 (2)

c语言课程设计报告--航班时刻表信息 (2)

一、系统功能模块结构航班时刻表信息查询系统由五大功能模块组成:文件模块,编辑模块,查询模块,统计模块,帮助模块。

如下图1所示:图3.1.1 系统功能模块结构图1、文件模块包括五个子模块:数据保存,数据加载,数据备份,备份恢复,退出;2、编辑模块包括九个子模块:航班插入,航班修改,航班删除,机场插入,机场修改,机场删除,经停航班插入,经停航班修改,经停航班删除;3、查询模块包括三个子模块:航班查询,机场查询,模糊查询;航班时刻表信息查询系统文件数据保存数据加载数据备份恢复备份退出编辑航班插入航班修改航班删除机场插入机场修改机场删除经停航班插入经停航班修改经停航班删除查询航班查询机场查询模糊查询统计座位统计价格统计帮助帮助主题关于系统清屏4、统计模块包括两个子模块:座位统计,价格统计;5、帮助模块包括三个子模块:帮助主题,关于系统,清屏。

二、数据结构设计及用法说明1、帐号密码信息链数据结构(IP)及用法typedef struct ip_node{char id[15]; /*帐号*/char password[15]; /*密码*/struct ip_node *next;} IP;2、航班信息链数据结构(FLIGHT_NODE)及用法typedef struct flight_node{char flight_number[10]; /*航班编号*/char aircraft_model[20]; /*客机名称*/char flight_corp_number[10]; /*所属航空公司编号*/char flight_corp_name[20]; /*所属航空公司名称*/char initial[10]; /*始发地*/char terminal[10]; /*目的地*/char begin_time[10]; /*始发时间*/char end_time[10]; /*到达终点时间*/float one_price; /*单程票价*/float round_price; /*来回票价*/char full_time[10]; /*全程时间*/int mileage; /*飞行里程*/struct flight_node *next; /*指向下一结点*/struct stop_airport_node * anext; /*指向经停机场信息链结点的指针*/ } FLIGHT_NODE;3、经停机场信息链数据结构(STOP_AIRPORT_NODE)及用法typedef struct stop_airport_node{char airport_number[10]; /*机场编号*/char airport_name[20]; /*机场名称*/char regional_number[10]; /*所属地域编号*/char flight_number[10]; /*航班编号*/char arrive_time[10]; /*到达时间*/char leave_time[10]; /*离开时间*/char cur_time[10]; /*到目前为止飞行时间*/int cur_mileage; /*到目前为止飞行里程*/struct stop_airport_node *next; /*指向下一节点*/struct stop_flight_node *fnext; /*指向经停航班信息结点的指针*/ } STOP_AIRPORT_NODE;4、经停航班信息链数据结构(STOP_FLIGHT_NODE)及用法typedef struct stop_flight_node{char flight_number[10]; /*经停航班编号*/char aircraft_model[20]; /*经停客机型号*/char airport_number[10]; /*机场编号*/char regional_number[10]; /*所属地域编号*/char flight_type[20]; /*航班类型:始发-经停-终到*/char arrive_time[10]; /*到达时间*/char leave_time[10]; /*离开时间*/float cur_one_price; /*本机场到终点单程票价*/float cur_round_price; /*本机场到终点来回票价*/int surplus_ticket; /*余票数量*/struct stop_flight_node *next;/*指向下一个结点*/} STOP_FLIGHT_NODE;5、屏幕窗口信息链数据结构(LAYER_NODE)及用法typedef struct layer_node {char LayerNo; /*弹出窗口层数*/SMALL_RECT rcArea; /*弹出窗口区域坐标*/CHAR_INFO *pContent; /*弹出窗口区域字符单元原信息存储缓冲区*/char *pScrAtt; /*弹出窗口区域字符单元原属性值存储缓冲区*/struct layer_node *next; /*指向下一结点的指针*/} LAYER_NODE;6、标签束信息结构(LABEL_BUNDLE)及用法typedef struct label_bundle {char **ppLabel; /*标签字符串数组首地址*/COORD *pLoc; /*标签定位数组首地址*/int num; /*标签个数*/} LABEL_BUNDLE;标签束信息包括标签字符串数组内容,标签位置,标签个数。

C程序设计实习报告正文

C程序设计实习报告正文

C程序设计实习报告正⽂第⼀章实习报告§1.1题⽬描述【要求】假定某民航机场共有n个航班。

每个航班有⼀航班号、确定的航线(起始站、终点站)、确定的飞⾏时间(星期⼏)和⼀定的成员订额。

试设计⼀民航订票系统,能提供下列服务。

(1)航班信息录⼊功能(航班信息⽤⽂件保存)。

(2)航班信息浏览功能。

(3)查询航线:(⾄少⼀种查询⽅式)。

①按航班号查询。

②按起点站查询。

③按终点站查询。

④按飞⾏时间查询。

【提⽰】(1)需求分析航班信息⽤⽂件保存,因⽽要提供⽂件的输⼊/输出功能;要浏览航班信息,需要提供显⽰功能;要查询航线,需要提供查找功能;另外,还要提供键盘式选择菜单以实现功能选择。

(2)总体设计整个系统可以设计为航班信息输⼊模块、航班信息浏览模块和航线查询模块。

(3)数据结构建⽴航班结构体,结构体成员包括航班号、起始站、终点站、飞⾏时间(星期⼏)、预售票总数、已售票数。

§1.2算法设计根据需求分析,可以将这个系统的设计分为如下五⼤模块:输⼊航班信息,保存航班信息, 浏览航班信息,查找航班信息,退出。

§1.3程序设计及代码分析1.结构体设计建⽴航班结构体,结构体成员包括航班号,起点站,终点站,飞⾏时间(星期⼏),预售票总数。

struct air{ int fir_num;char start[20]; char terminus[20]; char fir_time[10]; int count;}s[N]; /*s[N]中每个数组元素依次对应⼀个航班信息*/ [注意]s[N]中的N 为学⽣个数, 程序中采⽤宏定义的⽅式, 可以随时在源程序宏定义中改,本程序宏定义# define N 10000。

2.主函数 [流程图][程序]void main(){ int j ;printf(“----welcome to our scheduled flight manage system!----*\n”);printf(“*****************************************************\n”);do{ printf(“1. Please input the scheduled flight information\n\m”“2. Look through the scheduled flight information\n\n ”“3. Search for the scheduled flight information\n\n”“0. EXIT\n\n”);printf(“*****************************************************\n”);printf(“NOTE: This system just support the fly information in the nearest week\n\n”); printf(“Please choose one number during 0-3 then push enter: \n\n”);scanf(“%d”, &j );switch (j){ case 1: input(); /*调⽤输⼊模块*/break;case 2: print(); /*调⽤打印模块*/break;case 3: search(); /*调⽤查找模块*/break;case 0: break;} /*退出*/}while(j!=0);printf(“Thank you for using our system!Goodbye!\n”);}3.各功能模块设计3.1 输⼊航班信息[流程图][程序]void input(){ char f[]=“20121000748”; /*设置密码*/int y;printf (“Please input the password then push Enter:\n\n”);scanf(“%s”,f); /*读取密码*/if(strcmp(f,“20121000748”)= =0)printf(“*****************************************************\n”);for(i=0;i{ printf(“Please input the flight number:\n”);scanf(“%d”,&s[i].fir_num); /*读取航班号*/printf(“Please input the start place:\n”);scanf(“%s”,s[i].start); /*读取起点站*/printf(“Please input the terminus:\n”);scanf(“%s”,s[i].terminus); /*读取终点站*/printf(“Please input the time:\n”);scanf(“%s”,s[i].fir_time); /*读取时间*/printf(“Please input the number of the ticket(the number of the ticket should be ended by 0:)\n”,m);scanf(“%d”,&s[i].count); /*读取机票数*/m++;printf(“The %d group information have been inputted! Please push any key to continue, push 0 to the end”,m); scanf(“%d”,&y);if(y= =0){ save(); /*将结构体存盘*/print(); /*输⼊输出航班信息*/break;}}} }else printf(“password error! Please check your password! Thank you! Goodbye!\n\n”);}3.2 保存信息模块[流程图][程序]void save(){ FILE *fp, *fp1; /*定义⽂件指针*/if((fp=fopen(“chen.dat”,”wb”))= =NULL) /*打开⽂件并判断是否出错*/{ printf(“Fail to creat the file!\n\n”);getchar();return;}if((fp1=fopen(“hao.dat”,”wb”))= =NULL){ printf(“Fail to creat the file!\n\n”);for(i=0;iif(fwrite(&s[i],sizeof(struct air),1,fp)= =0) /*向⽂件写⼊数据并判断是否出错*/printf(“Fail to input data to the file!\n\n”);fprintf(fp1,”%d”,m);fclose(fp); /*关闭⽂件*/fclose(fp1);}3.3浏览信息模块[流程图][程序]void read(){ FILE *fp, *fp1; /*定义⽂件指针*/if((fp=fopen(“chen.dat ”,”rb ”))= =NULL) /*打开⽂件判断是否出错*/{ printf(“ Error please make sure the file is exist! Push any key back to the menu ”);getchar();}if((fp1=fopen(“hao.dat ”,”rb ”))= =NULL) /*打开⽂件判断是否出错*/ { printf(“Fail to creat the file!\n\n ”); getchar();return;}fscanf(fp1,”%d ”,&m); fclose(fp1); for(i=0;i{ fread(&s[i],sizeof(s),1,fp);} /*从⽂件中读取信息*/fclose(fp);} /*关闭⽂件*/ void print() /*打印模块*/ { char w[10];read(); /*调⽤读⽂件函数*/printf(“FlightNumber StartPlace Terminus Time TicketNumber\n ”); for(i=0;i{ printf(PRINT);} /*打印信息*/printf(“Please push any key back to the up menu:\n ”); scanf(“%s ”,w);}3.4 查询信息模块[流程图][程序]void search(){ char name1[20];char time[10];int n,no;do{ printf("Please choose one way you want to search:\n\n"); /*打印查询⽅式菜单*/ printf("1.According to the flight number\n\n""2.According to the Terminus\n\n""3.According to the start place\n\n""4.According to the flying time\n\n""0.BACK\n\n");printf("Please choose one number during [0-3]:[]\n\n""Push any other key back to the top menu:\n\n");scanf("%d",&n); /*读取查找⽅式*/if(n= =0)break;switch(n){ case 1:printf("Please input the flight number:\n");scanf("%d",&no); /*航班号*/break;case 2:printf("Please input the terminus :\n");scanf("%s",name2); /*读取终点站*/break;case 3:printf("Please input the start place:\n");scanf("%s",name1); /*读取起点站*/break;case 4:printf("Please input the flying time:\n");scanf("%s",time);break;}read(); /*调⽤读取函数*/{if(strcmp(s[i].start,name1)==0||strcmp(s[i].terminus,name2)==0)/*按终点站起始站判断输出条件*/{printf("\nSucceed in searching for the flight information!\n");printf("FlightNumber StartPlace Terminus Time TicketNumber\n");printf(PRINT); /*打印信息*/}if(s[i].fir_num= =no) /*按航班号判断输出条件*/{printf("\nSucceed in searching for the flight information!\n");printf("FlightNumber StartPlace Terminus Time TicketNumber\n"); printf(PRINT); }if(strcmp(s[i].fir_time,time)= =0){printf("\nSucceed in searching for the flight information!\n");printf("FlightNumber StartPlace Terminus Time TicketNumber\n");printf(PRINT); /*打印信息*/}printf("Can not find the informtiong you wanted or youhave done it:\n\n""Do you want to continue?Please input YES or NOand push enter \n");scanf("%s",ii);}while(strcmp(ii,"yes")==0);}§1.4实验数据及运⾏效果截图1.输⼊数据管理员输⼊航班信息:航班号起点站终点站飞⾏时间总票数100 quzhou wuhan 9.1 100101 quzhou wuhan 9.2 150102 wuhan quzhou 9.1 130103 beijing wuhan 9.2 1002.编译,连接和运⾏3.结果3.1 主菜单函数3.2 输⼊信息模块3.3浏览信息模块3.4查询信息模块3.4.1 按照航班号查询3.4.2 按照终点站查询3.4.3 按照起点站查询3.4.4 按照时间查询3.4.5 结束§1.5设计中出现的错误及解决⽅法我在程序的设计中遇到了诸如中英输⼊法错误、标点符号错误等错误,同时在函数调⽤处多次出错,很感谢马钊⽼师、殷商珉珉同学和李洋同学的指导,让我学会⽤模块化的⽅式处理相关问题。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件学院大作业任务书题目:航班信息查询系统专业:班级:姓名:学号:完成人数:起讫日期:任课教师:职称:讲师部分管主任:完成时间:说明1.本任务书由任课教师填写后,下达到学生。

2.任务完成后,任课教师需填写小结表。

3.任务书、学生成绩与学生完成后的大作业(纸质和电子两种)一并报送各教学研究部审核后转教务办。

4.另附一份全班大作业总结NANCHANG UNIVERSITY高级语言程序设计课程设计题目: 航班信息查询系统学院:专业:班级:完成人数:成员:起讫日期:任课教师:完成时间:填表日期:目录一、需求分析.............................................................................................................................. - 1 -1.1 项目介绍.................................................................................................................. - 1 -1.2 功能需求.................................................................................................................. - 1 -二、系统分析.............................................................................................................................. - 1 -2.1 本程序需解决的关键技术问题.............................................................................. - 1 -2.2 程序流程.................................................................................................................. - 1 -三、程序设计与实现.................................................................................................................. - 2 -3.1 程序设计.................................................................................................................. - 2 -3.2 程序实现....................................................................................... 错误!未定义书签。

四、系统测试............................................................................................................................ - 11 -五、个人小结............................................................................................................................ - 13 -六、参考文献............................................................................................................................ - 13 -一、需求分析1.1 项目介绍一个简易的航班信息查询系统,将航班信息录入进去,就可以查询到航班的信息1.2 功能需求1.所有航班信息2.航班查询3.输入新的航班信息4.删除航班信息二、系统分析2.1 本程序需解决的关键技术问题使用了struct结构体多次使用了if语句 for循环语句用到了指针的内容2.2 程序流程1,了解问题。

要解决问题,必须先了解每个细节。

2 ,确定解决问题的流程,确认输入输出内容即内部需要做的操作。

输入:用户的选择指令。

输出:程序的运行结果。

操作:对信息读入,存储,删除3,设计操作算法。

得出数据流图。

对每块的操作流程做设计。

如何对信息读入,存储,删除等。

4 编写代码。

将算法实体化,形成C代码。

5 测试并解决问题。

编译运行,尝试输入多组数据,测试结果是否与预期相同。

如果不同,那么查找问题并修改代码。

最终形成合格的程序。

三、程序设计与实现3.1 程序设计#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>#define N 15#define M 20#define LEN sizeof(struct fly)typedef struct fly{int no;/*航班号*/char startpoint[M];char finalpoint[M];int banqi[M];char startime[M];char finaltime[M];char tipe[M];float price;};struct fly f[N];void in();void all();void show(int i);void order(int); /*排序*/void find(); /*查询系统*/void search(); /*编号查询系统*/void menu();void startpoint(); /*起点站查询系统*/void finalpoint(); /*达到站查询系统*/void startime(); /*起点时间查询系统*/void finaltime(); /*到达时间查询系统*/int main(){int n;menu();scanf("%d",&n);while(n){switch(n){case 1:all();break;case 2:find();break;case 3:in();break;default:break;}getch();menu();scanf("%d",&n);}}void menu(){system("cls");printf("\n\n\n\n\n");printf("\t\t|--------------航班信息查询系统----------------|\n");printf("\t\t| 0.退出|\n");printf("\t\t| 1.所有航班|\n");printf("\t\t| 2.航班查询|\n");printf("\t\t| 3.输入新的航班信息|\n");printf("\t\t| 4.删除航班信息|\n");printf("\t\t|----------------------------------------------|\n\n ");printf("\t\t\t 选择(0-4):______");}void all(){int i,m=0;char ch[2];FILE *fp;if((fp=fopen("data","ab+"))==NULL){printf("不能打开文件\n");return;}while(!feof(fp))//feof()是文件结束检测函数,如果没有结束,返回值是0,结束了是1{if(fread(&f[m],LEN,1,fp)==1)m++;}fclose(fp);if(m==0)printf("没有航班记录\n");else{system("cls");/*system就是调用DOS命令,CLS命令的意思是清除屏幕上所有的文字*/for(i=0;i<m;i++)show(i);}printf("按任意键返回菜单");}void in(){int x,i,m=0;char ch[2];FILE *fp;if((fp=fopen("data","ab+"))==NULL){printf("不能打开文件\n");return;}while(!feof(fp))//feof()是文件结束检测函数,如果没有结束,返回值是0,结束了是1{if(fread(&f[m],LEN,1,fp)==1)m++;}fclose(fp);if((fp=fopen("data","wb"))==NULL){printf("不能打开文件\n ");return;}for(i=0;i<m;i++)fwrite(&f[i],LEN,1,fp);printf("是否输入新的航班信息?输入请按'Y'否则按任意键----"); scanf("%s",ch);while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0){printf("编号--------");scanf("%d",&x);for(i=0;i<m;i++)if(f[i].no==x){printf("该记录已经存在!按任意键返回菜单\n");fclose(fp);return;}f[m].no=x;printf("起点站-----");scanf("%s",&f[m].startpoint);printf("终点站-----");scanf("%s",&f[m].finalpoint);printf("班期-------");scanf("%s",&f[m].banqi);printf("起飞时间---");scanf("%s",&f[m].startime);printf("到达时间---");scanf("%s",&f[m].finaltime);printf("飞机型号---");scanf("%s",&f[m].tipe);printf("价格-------");scanf("%f",&f[m].price);printf("是否保存?输入请按'Y'否则按任意键----");scanf("%s",ch);if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0){if(fwrite(&f[m],LEN,1,fp)!=1){printf("不能保存\n");getch();}else{printf("编号为%d的航班信息已经保存\n",f[i].no);m++;}}printf("是否继续,继续请按--Y--,否则按任意键");scanf("%s",ch);}fclose(fp);printf("OK");}void find() /*查询系统*/{system("cls");printf("\n\n\n\n\n");printf("\t\t|----------------航班信息查询------------------|\n");printf("\t\t| 0.返回菜单|\n");printf("\t\t| 1.航班号查询|\n");printf("\t\t| 2.起点站查询|\n");printf("\t\t| 3.到达站查询|\n");printf("\t\t| 4.起飞时间查询|\n");printf("\t\t| 5.到达时间查询|\n");printf("\t\t|----------------------------------------------|\n\n ");printf("\t\t\t 选择(0-5):______");int n;scanf("%d",&n);if(n<0||n>5)printf("输入错误!");else switch(n){case 0:return;case 1:search();break;case 2:startpoint();break;case 3:finalpoint();break;case 4:startime();break;case 5:finaltime();break;default:break;}}void search() /*编号查询系统*/{FILE *fp;int snum,i,m=0,x=0;char ch[2];if((fp=fopen("data","ab+"))==NULL){printf("不能打开文件\n");return;}while(!feof(fp))if(fread(&f[m],LEN,1,fp)==1);m++;if(m==0){printf("没有记录");return;}printf("请输入编号----");scanf("%d",&snum);for(i=0;i<m;i++)if(snum==f[i].no){show(i);x++;}if(x==0)printf("没有相关的记录\n");fclose(fp);return;}void startpoint() /*起点站查询系统*/{FILE *fp;int i,m=0;char snum[M];if((fp=fopen("data","ab+"))==NULL){printf("不能打开文件\n");return;}while(!feof(fp))if(fread(&f[m],LEN,1,fp)==1);m++;fclose(fp);if(m==0){printf("没有记录");return;}printf("请输入起点站----");scanf("%s",&snum);for(i=0;i<m;i++){if(strcmp(f[i].startpoint,snum)==0){show(i);}elseprintf("没有相关的记录\n");return;}}void finalpoint() /*到达站查询系统*/{FILE *fp;int i,m=0;char snum[M];if((fp=fopen("data","ab+"))==NULL){printf("不能打开文件\n");return;}while(!feof(fp))if(fread(&f[m],LEN,1,fp)==1);m++;fclose(fp);if(m==0){printf("没有记录");return;}printf("请输入到达站----");scanf("%s",&snum);for(i=0;i<m;i++)if(strcmp(f[i].finalpoint,snum)==0){show(i);continue;}elseprintf("没有相关的记录\n");return;}void startime() /*起点时间查询系统*/{FILE *fp;int i,m=0;char snum[M];if((fp=fopen("data","ab+"))==NULL){printf("不能打开文件\n");return;}while(!feof(fp))if(fread(&f[m],LEN,1,fp)==1);m++;fclose(fp);if(m==0){printf("没有记录");return;}printf("请输入起点时间----");scanf("%s",&snum);for(i=0;i<m;i++)if(strcmp(f[i].startime,snum)==0){show(i);continue;}elseprintf("没有相关的记录\n");return;}void finaltime() /*达到时间查询系统*/{FILE *fp;int i,m=0;char snum[M];if((fp=fopen("data","ab+"))==NULL){printf("不能打开文件\n");return;}while(!feof(fp))if(fread(&f[m],LEN,1,fp)==1);m++;fclose(fp);if(m==0){printf("没有记录");return;}printf("请输入到达时间----");scanf("%s",&snum);for(i=0;i<m;i++)if(strcmp(f[i].finaltime,snum)==0){show(i);continue;}elseprintf("没有相关的记录\n");return;}void show(int i){printf("航班编号为%d的航班信息如下:\n",f[i].no);printf("起点站----------------%s \n",f[i].startpoint);printf("终点站----------------%s \n",f[i].finalpoint);printf("起飞时间--------------%s \n",f[i].startime);printf("到达时间--------------%s \n",f[i].finaltime);printf("班期------------------%s \n",f[i].banqi);printf("航班型号--------------%s \n",f[i].tipe);printf("价格------------------%5.2f \n",f[i].price);printf("\n\n\n\n");}四、系统测试五、个人小结C语言是面向过程的语言,整体程序都是由函数组成的,所有的执行代码都应该位于函数内部,C语言的程序是从main()函数开始执行运行的,也是从main()函数结束运行的,把几个概念理解清楚,在初始学习阶段就不会混乱。

相关文档
最新文档