飞机订票系统程序设计_课程设计.docx





《飞机订票系统程序设计_课程设计.docx》由会员分享,可在线阅读,更多相关《飞机订票系统程序设计_课程设计.docx(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、山东工商学院信电学院高级语言程序设计课程设计报告高级语言程序设计课程设计报告题目:飞机订票系统程序设计专业:班级:学号:姓名:指导教师: 日期:山东工商学院信电学院1、程序基本功能要求本程序首先输入用户名、密码进入系统;从菜单中选择可以输入机票信息对机票信息进行浏览、修改、查询、退订票等功能并可以通过其内部各类方式或菜单内选项了解航班更细的信息。(1) 航班信息用文件保存,因而要提供文件的输入输出操作。(2) 航班信息的录入,其中包括了航班信息中的航班号、起始站、终点站、预售机票数 、已售机票数。(3) 航班信息浏览功能且提供显示操作。(4) 可以查询航线,查询方式有按航班号查询、按起点站查询
2、、按终点站查询按航线查询、按飞行时间查询五种,可从各个方面进行查询,方便快捷。(5) 承办订票和退票业务,可显示剩余票数和已买票数。当票数被订或被退时票数会随之变化,统计较为灵活。(6) 提供键盘式选择菜单以实现功能选择。2、总体设计.编写一个飞机订票系统的程序使该系统能够实现对航班信息的录入、浏览、修改、查询以及订票、退票的功能。根据课程设计要求和本组人员的增补, 首先要通过一个用户登录界面进入系统,其次要制作一个主菜单显示出各个操作的提示可供用户选择进而一步步地深入操作。根据主菜单的内容再进一步编制具体操作的函数,各个功能均用专门编制的函数来完成。因为飞机订票系统含有各航班的各项信息如航班
3、号、航线、飞行时间、机票数目等必要信息所以就决定用刚学不久的结构体数组来存放航班的各项信息,这就是看到题目后的最初的思路。在整个程序中,含有多种类型的头文件,包括了标准输入、输出头文件、字符串函数处理头文件、动态存储与释放函数头文件;在结构体数组中也对不同类型的数组进行不同的定义,例如: int flightno、int totalticket、char start10 等;在各类信息的显示操作中,本系统在执行浏览、查询和退订票是充分利用函数的调用,利用 switch()语句进行,简便实用;在此系统中,函数相互嵌套, 形成了一个完整的系统。本次设计需要编制初始化、建立数据文件、数据文件保存、增
4、加航班信息、订票、退票业务等内容。首先需要设立一个初始化函数来得到航班信息。具体设计是第一次运行程序时自动生成保存航班信息的文件,并输入初始航班信息,待第二次开始就可以直接读取该文件获得已有的航班信息并可直接使用。运用了access 函数判断文件是否存在。系统初始化后,没有寻找到数据文件则进行新建数据文件。此函数的作用就是进行新建文件数据的录入,运用到了文件指针的定义 FILE *fp文件的打开 fopen 和关闭 fclose、成块读写函数中的 fwrite运用 for 循环进行各组数据的输入,用 m+记录下输入的航班数量并运用 if 语句判断是否输入下一条航班信息,若不继续则返回主界面。系
5、统初始化之后 若原始数据文件存在则进行文件内航班信息的读取以供接下来程序中的各个函数来使用。在该函数中同样运用到了文件指针FILE *fp、文件的打开fopen 和关闭 fclose、成块读写函数中的 fread、文件结束检测函数 feof 同时配合while 语句控制文件的读取,m+记录下读取到的航班数量等。因为在飞机订票系统中涉及到飞机的订票和退票业务还有按航班号的排序功能,所以我就定义了这个保存函数来保存下每次运行系统后对整个订票系统涉及到的资料的修改。为了简便程序 我就准备将此函数放在整个系统得推出选项中,这样就只在每次退出系统的时候进行一次保存将此次对文件修改的所有新信息都一次保存下
6、来。这样就实现了整个系统运行时进行一次读取,推出时一次保存的设计大大简便了文件的调用和读取。保存函数运用到的知识点与读取函数大致相同。在这个函数中首先调用了 search 函数查找需要订票的航班。运用 if 语句实现订票时的多种情况, 订票数输入不正确、 飞机票数 不足等情况。 订票成功时运 用si.totalticket=si.totalticket-n,si.sellticket=si.sellticket+n 将已被订的机票数减去以显示新的即时航班信息。与订票函数相类似si.totalticket=si.totalticket+n, si.sellticket=si.sellticket
7、-n。只做稍稍修改就行退票成功是用.。将航班的剩余票数加上去以显示即时航班信息。模块分工:进入系统菜单 、输出航班信息、订票信息由刘妍负责输入航班信息、保存航班信息、读取航班信息由龚媛负责查询航班信息、退票信息、修改信息部分由郭勇艳负责3、详细设计系统程序结构(流程图)开始系统初始化修改航班信息航 班信 息订票业务退票业务退 出并 保浏览查航找班信息存建立新数据文件从已有的数据文件读取输的类息入各信按航班号、起始站、时间、航线查找录入信息系统流程图开始文 件 打 开否输入信息输出错误信息将信息输 出到磁是 否 继续利用 frferaeda(d&(s&sii,s,isziezoefo(ff(lf
8、ilgihgth)t,)1,1f,pf)p读取信息结束航班信息浏览函数:流程图显示信息开始文件打开输 出 错 误 信息查找航班信息是 否 查 找到删除操作输入信息是否继续结束查询模块:流程图.开始文件打开输出错误信息查询方式航班号起点站终 点站路线飞行时间是否继续结束4、程序运行结果(截图)登陆系统时需输入用户信息图 1进入系统后出现菜单供选择,选择需要进入的窗口妇胪井,;,飞机订栗管理系统?=压!1 录,i航 员, 1 兰自航2 浏览 i,1f1詈 首,航3 -1恪古i.,1 ,f1百巴,4 查询航王丹信巴5 订罕信息,6 退罕信息8 挹出航珀信患管平理统,I.青在0 - 6 中选择 l.I
9、 ,回车键结束:青i1,f1 1., 农1 次;:面 ,i l ,舟Ji P.言勹:il,冗 哎辄, ,I I ,信自清 键, ,l ,回 车键结亩图 2航班信息的录入=,中选清芢0 - 6择., l.1 回 车遣结束:轴1 1青,完 农吹 ;钳积,II信息 :ii ,l.碍 伴l , Ill ,信 息诸链,I l , u:一l1 回 车键结束1,;请楠,,11 ,航 刊I号:123 啃楠;起治站:yantaiqin,一aoi,.主:十: g目 寸甘l |-1清辄,:;,终点站:1,., 1 ,廿寸 司:7.1 ;,I请奇,前: ,,一节售幸,巴,数:234 ,清辅i,_.)已一23 售苹巴数
10、 :草, 1 个信自已经辄气 呈否细续?才专任营数字键址续, 拧0 结束3请输;,1,,航 !.,III号:234 ,清输;,1,起一怡站:yantai清输,;终点站:J 1.nan清输,;,一旷闭:屈?.2 I,咱 ;1l,义预售罕思数:;:1,342 I,清轴,:已售罕总数:续拧0 结束0沪笸華,巴,古?234342. E.如 i 信自已经输气巨一百维续?护任音护字键细,灯婓華售323已航!,任号起怡护点站时间123yantaiqingdao7.1jinan234yantai浏览航班信息7.2图 3酮图 4在已i .Ei售43售页2航班信息的修改1 -2请1清柄;,衍123 航P.I号I
11、i.J千l,II 号:起恬站终点站B寸可势草卞J123yantai,i请年前,新航刊I号、起怡站疆124 qingdao7.1、. 佳西口数票已终点站、时间可却.T. 方, .丘一,一一、54是否继芸?请市建:;,.y e s 武no口回车遴 结束:口图 5查询菜单1 寻;,,,,义航班信息2王一浏览航刊 1 吕自,3 _修严利瓦i.,1II i言,息,4 一 查询航班信息 -i.丁竺11 芒自心向信心o思 出航班信患管理卒统=择l.芍起点中选 ,回 车遴结束0 - 6青在:青老择桽找古式: 卢 贮!:,I f号互找:互芦艺一扫飞行时团查询寸 5回站查询售五o - 5匿图 6通过航班号和时间进
12、行查询键;,1,,是否组奀直扛?请 ,-yes 请洗桯杳找卞式:1 梪箭预号查找2 扛 起点站查询3 椤竺气峈查找飞4 荨芦立5 ,心托iT廿寸闲查询心匕匝清存0- 5 中洗i圣:y e s或no l 1 ,回车键结束,拧 且,他键l,I.I,回车翌结亩西回王茎羊:5 时1请,奇前;,飞行目 :7.1 王米,亡查找箭1,lf信启,成,功?航刊干巨起怡呫莘勹示124.: 终占呫,yantaiqingda.o没有包需要引信息或查找完毕:甘十百剖字机草数陌售机? 132454 图 7系统订票图 8退票系统1玉枉录,i ,人利.J1 .王l ,片,言皂 - 12 . ;刘陷航, ,三自 3 -1 亏舌
13、饥刊I 信息I千1询航:1,, 幸 信 , 荨4 查言患5. i-T,6一手军1芒巨心卫正底衬信息营理孚统=l_1音在0- 6 中选择, 1 回 车 键结束:节选择查找下式:芍肮玉, 1, 于号亘拉一节起点站五询芍终占差宜栈飞1五飞三t一节 ,丁 旷闱杳向五回盲有05囡晒尸 他主建回车链结束亡回王菜单:l.,宜没有 肛需耍的信息或 t凸亢毕:砉fl .T!/ es亘一不进综杏廿外 ,丰:,1 或n o ,回牛遵结丰嘉箭卢,气3日 的机益如目:退草成功?诸但 ,沪写或II U l.,.回土键绪束;邮退出系统图 9珩肉肾航1 录 ;,1,飞利酥归信息信因航卫1 信 息,2 . 1言息3 订莘1 亡
14、自. 1尸莘 1 它51 = 1.!.a,退出航员王信息管理牛铣6勹口,自心立.: 4 . 窒询航钊于信息0.音在0 - 6 中选择 :1): 一,回车呾结束:;1卫杻玉I甘11:自杻2 浏览航, 1:1 寻 ,,什兀 兰3 修严航卫 1舌巴,4 . 查询航!:!.信II 息5 叮幸信息1 6 7启 菩 古自 .上示 口 1土 ,0 书出航王扞信息管理系统.,.=青在8 - 6 中选择 l 11 回 车键芜丰:围一皿图 105、源程序代码(代码中注明每段代码的完成人)/*用户名:dianke密码:12345*/#include/标准输入、输出头文件#include/包含字符串函数处理头文件#i
15、nclude/包含动态存储与释放函数头文件#include/包含字符串的输入、输出头文件#define N 10000struct flight/定义结构体数组int flightno; char start10; char end10; char day10; int totalticket; int sellticket;sN;int i; int m=0;#definePRINT%-d%14s%13s%12s%12d%16dn,si.flightno,si.start,si.end,si.da y,si.totalticket,si.sellticket/定义输出格式void menu(
16、);/进入系统菜单void print();/输出航班信息void booking();/订票信息void input();/输入航班信息void save();/保存航班信息void read();/读取航班信息void search();/查询航班信息void back();/退票信息void correct();/修改信息void menu()intj;printf(欢迎进入飞机订票管理系统!n); printf(=n);doprintf(printf( printf( printf(1. 录入航班信息2. 浏览航班信息3. 修改航班信息4. 查询航班信息n);n);n);n);prin
17、tf(5.订票信息n);printf(6.退票信息n);printf(0.退出航班信息管理系统n);printf(=n);printf(请在 0-6 中选择以回车键结束:n); scanf(%d,&j);switch(j)case 1: input();/调用输入模块break;case 2:print();/调用打印模块break;case 3:correct();/调用修改模块break;case 4:search();/调用查询模块break;case 5:booking();/调用订票模块break;case 6:back();/调用退票模块break;case 0:; break;w
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 飞机 订票 系统 程序设计 课程设计

限制150内