您好,欢迎访问三七文档
课程设计报告课程设计名称数据结构课程设计专业计算机科学与技术班级学号姓名指导教师成绩2012年2月26日数据结构课程设计——《飞机票票订票管理》目录目录.....................................................................ii第1章软件的需求分析.....................................................31.1软件达到的目的...................................................31.2软件功能说明.....................................................31.2.1功能分析说明图..............................................3第2章软件概要设计.......................................................42.1软件模块的总体设计................................................42.2软件设计详细内容..................................................42.2.1采用的主要数据结构类型......................................42.2.3主要流程图..................................................4第3章设计的详细说明及关键代码分析......................................173.1设计的详细说明...................................................173.2关键代码分析和说明...............................................173.3测试说明.........................................................18第4章程序运行..........................................................194.1程序运行........................................................19参考文献...................................................................总结.......................................................................第1章软件的需求分析1.1软件达到的目的通过此系统可以实现如下功能1)录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)2)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;3)订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;4)退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。5)修改航班信息:当航班信息改变可以修改航班数据文件1.2软件功能说明1.2.1功能分析说明图该软件功能分析说明图如1-1所示:图1-1飞机订票系统系统初始化增加航班信息航班信息浏览航班排序订票业务退票业务建立新数据文件从已有的数据文件读取按航班号从小到大排序按航班号从大到小排序查找航班信息按航班号查找退出并保存第2章软件概要设计2.1软件模块的总体设计编写一个飞机订票系统的程序,使该系统能够实现对航班信息的录入、浏览、排序、查询以及订票、退票的功能。根据题目要求,首先要制作一个主菜单显示出各个操作的提示可供用户选择,进而一步步地深入操作。根据主菜单的内容再进一步编制具体操作的函数,各个功能均用专门编制的函数来完成。这就是看到题目后的最初的思路。2.2软件设计详细内容2.2.1采用的主要数据结构类型头文件包含、全局变量定义和结构体定义源代码:#includestdio.h//标准输入、输出头文件#includestring.h//包含字符串函数处理头文件#includeprocess.h//包含access函数的头文件#defineN1000//定义最多的航班数#definePRINT“%d\t\t%s\t\t%s\t星期%s\t\%d\n”,s[i].nums[i].starts[i].over,s[i].time,s[i]..count//宏定义输出格式structair//定义结构体数组{intnum;//定义航班号charstart[20];//航班起始站charover[20];//航班终点站chartime[10];//飞行时间intcount;//机票数量}s[N];inti,m=0;//定义全局变量,记录下航班信息的数量charii[10];//用来选择是否继续的变量2.3流程图(1)menu函数流程图如图2-1开始定义n,w1清屏输出所有主目录图2-1(2)enter函数流程图如图2-2图2-2(3)input函数流程图如图2-3图2-3(4)browse函数流程图如图2-4图2-4(5)menu1函数流程图w1=1w1=0w1==1n=8结束YN清屏输入记录个数ini=0i++输出:请输入第%d航班记录调用input结束NY定义i清屏输入横线回车输出菜单开始i=0结束i++开始定义i输出:请输入航班代号输入ID输出:请输入起飞地点输入BePlace输出:请输入降落地点输入EnPlace输出:请输入起飞时间输入date输出:请输入航班最大载客人数输出:请输入航班票价结束返回主目录menu()返回主目录menu()返回函数enter开始Inti如图2-5图2-5(6)order函数流程图如图2-6图2-6(7)search_time函数流程图如图2-7图2-7(8)serch_end函数流程图如图2-8YYYYNNNNYNNY开始定义n,w1清屏输入菜单输出:Choiceyournumber(1-4):[]键入数字nn1||n4w1=1w1=0w1=1n=1n=2n=3n=4order()search_time()search_end()menu()结束NYYNNY开始定义i,j定义结构s清屏j=i+1ini=0jnti[i].datati[j].datas=ti[i]ti[i]=ti[j]ti[i]=sj++调用browsei++NYNYYN开始定义i,m=0定义结构体s清屏输入出发时间输出对应航班信息i=0ins.data==ti[i].datam++(m!=0)&&(m%10==0)调用printf_one(i)i++分屏显示返回主菜单menu1结束开始定义i,m=0定义结构体s清屏输入目的地输出对应航班信息i=0结束图2-8(9)search函数流程图如图2-9图1-9(10)book函数流程图如图2-10NYNYNYNti[i].EndPlace==s.EndPlacem++(m!=0)&&(m%10==0)调用printf_one(i)分屏显示i++返回主菜单menu1NYYYYN开始定义i,j,k定义结构体sk=1清屏输入起飞地输入目的地输入起飞时间i=1s.BePlace==ti[i]BePlace&&s.EnPlace==ti[i].EnPlace&&s.data==ti[i].dataink=i调用printf_one(k)k==-1输出:NOexist!函数返回值-1结束函数返回k值i++YYN开始定义i清屏输出:欢迎进入售票窗口i=search()i!=-1输出:该趟航班票已售完ti[i].num=ti[i].maxNti[i].num++输出:订票成功返回主目录返回主目录menu()结束输出:该趟航班不存在结束图2-10(11)back函数流程图如图2-11图2-11(12)save函数流程图如图2-12如图2-12NYNYYN开始定义i,k=-1定义结构体s清屏输出:欢迎进入退票窗口输入航班代号IDi=0ins.ID==ti[i].IDk=i调用printf_one(k)k==-1输出:NOexist!返回主目录menu()ti[i].num--输出:退票成功结束i++YNNYYNNY开始定义w=1,*fp,i清屏(fp=fopen(“\\ticket.txt”,”wt”))==NULL输出:filewriteerrori=0infwrite(&ti[i],sizeof(structplane),1,fp)!=1w=0w==1输出:filesaveok!i++fclose(fp)返回主目录menu()结束输出:Cannotopenfile(13)load函数流程图第3章设计的详细说明及关键代码分析3.1设计的详细说明程序中各个模块之间的调用方式主要是通过文件的包含和函数的调用实现的,用文件的形式把各个函数分开,再用头文件把它们包含进来,使用主函数进行调用。3.2关键代码分析和说明1)定义系统初始化函数模块功能:设立一个初始化函数来得到航班信息。具体设计是第一次运行程序时自动生成保NYYNNY开始清屏(fp=fopen(“\\ticket.txt”,”rt”))==NULL输出:Cannotopenfilew=0n=0i=0w==1fread(&ti[i],sizeof(structplane),1,fp)n++i++n=n-1fclose(fp)输出:Loadfileok!1返回主目录menu()!feof(fp)结束数据文件是否存在输入航班信息并建立新数据文件保存下来从已有的数据文件读取已有的航班信息Y初始化结束N定义*fp,i,w=1存航班信息的文件,并输入初始航班信息,待第二次开始就可以直接读取该文件获得已有的航班信息并可直接使用。运用了access函数判断文件是否存在。该函数源代码为:voidchushihua()//初始化函数{if(access(hangban.dat,0))build();elseread();}2)定义建立新数据文件的函数系统初始化后,没有寻找到数据文件,则进行新建数据文件,此函数的作用就是进行新建文件数据的录入。运用到了文件指针的定义FILE*fp,文件的打开fopen和关闭fclose、成块读写函数中的fwrite;运用for循环进行各组数据的输入,用m++记录下输入的航班数量,并运用if语句判断是否输入下一条航班信息,若不继续则返回主界面。3)定义读取文件内航班信息的函数系统初始化之后,若原始数据文件存在,则进行文件内航班信息的读取,以供接下来程序中的各个函数来使用。在该函数中同样运用到了文件指针FILE*fp、文件的打开fopen和关闭fclose、成块读写函数中的fread、文件结束检测函数feof同时配合while语句控制文件的读取;m++记录下读取到的航班数量等。4)定义保存函数因为在飞机订票系统中涉及到飞机的订票和退票业务,还有按航班号的排序功能,所以我就定义了这个保存函数来保存下每次运行系统后对整个订票系统涉及到的资料的修改。为了简便程序,我就准备将此函数放在整个系统得推出选项中,这样就只在每次退出系统的时候进行一次保存,将此次对文件修改的所有新信息都一次保存下来。这样就实现了整个系统运行时进行一次读取,推出时一次保存的设计,大大简便了文件的调用和读取。保存函数运用到的知识点与读取函数大致相同。此函数的源代码为:有关文件读取、写入和保存的函数定义完了就开始设计与题目要求直接相关的
本文标题:飞机订票系统
链接地址:https://www.777doc.com/doc-6170252 .html