版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、程序设计课程设计说明书课程名称程序设计设计题目飞机航班订票系统专业班级计算机应用技术201221学生姓名指导教师起止日期2013年6月8日至2013年6月14日福建林业职业牧*拷皖自劭化工程a目录1设计内容、任务以及要求11.1 计 fl 的aj "o'11.2要求12总体设计思路22. 1系统基本功能22. 2具体设计思想22.3系统的总体流程图33 功能模块的详细设计53.1结构的定义53.2各个函数的设计具体设计思想和流程图54.功能模块的调试及测试274. 1添加函数的测试274. 2判断函数的测试284. 3删除函数的测试284. 4统计函数的测试284.5密码确认
2、函数的测试144. 6密码的修改函数31344.7主函函数的测试32 5总结6致谢35参考文献36原程序代码:211设计内容、任务以及要求设计题目的内容、任务主要利用c语言的文件操作能力设计开发一个小型的飞机订票系统,至少具 有如下功能:信息读出,可以查看全部航班信息和查询一个航班信息。可以进行 添加(再添加过程中有重复显示提示信息)、删除、订票等基本操作。操作界面 要能使使用者看懂,以便使使用者正确使用。具体内容如下:程序属于非数值计算型算法设计,学生需要设计出飞机订票系统所需要的基 本功能,并设计简单的界面。(1) 通过提示菜单选择可以进行的操作。(2) 将航班的信息存入文件中,并命名为f
3、lighttnfo. txt。(3) 将订票情况信息存入文件中,并命名为selecttnfo. txt。(4) 在本系统中可以进行管理系统包含的基本操作,其中包括a) 查看所有航班的信息b) 输入一条航班的航班编号,从当前航班中进行查找,如果找到则显 示该航班的相关信息,如果没有找到则给岀提示信息0)添加一条航班的基本信息,通过输入航班编号,首先查找是否存在 该航班编号的航班,如果存在则提示重新输入,否则将该航班按照 顺序插入到相应位置d) 删除一条航班的基本信息,通过输入航班编号,首先查找是否存在 该航班编号的航班,如果存在则将该航班删除,否则给出提示信息, 提示该航班不存在e) 选择一条航
4、班,需要给出学号和航班编号,如果航班编号不存在则 重新输入,直到输入正确为止,并将学号和相应的航班编号存入 selecttnfo. txt 文件中(5) 航班基本信息包括航班编号、起点、终点、飞行吋间和订票额度这些简 单信息。(6) 航班信息文件中每一行存放一条航班的信息。12要求要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为 完成设计准备必要的知识;提高学生用高级语言进行程序设计的能力,重点 提高用c语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的 一般方法和步骤;提高撰写技术文档的能力。2总体设计思路2. 1系统基本功能外部操作:根据耍求系统耍有查看全部航班信
5、息,查询一个航班,添加航 班(再添加过程屮如有重复显示提示信息),删除航班(在删除过程屮如果没 有查找到要删除的显示提示信息),选择航班订票。内部操作:将航班的信息存入文件中,并命名为flightinfo, txto将订 票情况信息存入文件中,并命名为selectinfo, txto相应的航班编号存入 selectinfo, txt 文件中为了接近实战模拟飞机航班订票系统,增加了一些功能。增加功能有把系 统分为了两个部分,一个是官方操作,一个是客户端。官方操作有密码认定和 密码修改,密码的以文件形式存储在硬盘里,以只读认定客户,以只写修改密 码。官方还有查看订票情况,由函数统计出来的。客户端增
6、加了机票显示(显 示包括统计岀来的座位号,以及航班号和学号)。2. 2具体设计思想(1)以结构化各个功能模块,函数间的调用精简整个函数。(2)以全局结构来随时定义结构数组以及机构。(3)以写一个信息存一个的思想,实现多个添加功能。(4)以读一个打印一个的思想,实现显示全部信息。(5)以先判断(以判断函数给定是否有此航班)再打印的思想,来实现查 找是否有这个航班。(6)以先判断(以判断函数给定是否有此航班)再添加的思想,(添加中引用 了删除函数以供用户选择),实现添几功能。(7)以先判断(以判断函数给定是否有此航班)再删除的思想,删除航班信息o(8)以循环统计(以统计函数统计给定航班号)订票文件
7、的的情况返回值 的思想,以显示当前订票情况。(9)以统计(以统计函数统计给定航班号)来返回值的思想,以显示座位 号。(10)密码的确认以及修改,是利用文件存储的永久性来实现的,以只读来 确认密码,以只写来修改密码的思想,来实现的官方操作。2. 3系统的总体流程图图2.1系统的总体流程图(1)2. 2系统的总体流程图(2)/时间以小时为单位/顶票信息机构/航班号学号/座位号3 功能模块的详细设计3. 1结构的定义为了方便使用结构此系统结构均为全局类型定义,其定义有如下两个typedef struct flight/航班信息机构char fnumber5;char start20;char des
8、tination20;int time;int money; fl;typedef struct consumerchar no 5;char xuehao10;int n; select;3. 2各个函数的设计具体设计思想和流程图此系统一共十四个函数如下所示:(1)intjudgc_havc_or_no_a_f 1 ight (char) ;/判断是否有这个航班(2)voi ddelete_a_filght(char ch);删除函数(3)voidadd many_hangban ();/新建(添加)航班信息(4)voidview_all ();/察看所有的航班信息(5)voidscan_a
9、_filght( char ch);/查看个航班函数(6)intmima_hanshu ();/密码确认函数(7)voi dxiugai_hanshu();/密码修改函数(8)voidtongj i_han_shu();/飞机航班统计函数(9)intzuoweihaosure(char hangban);/座位确定函数(10)1 void select_a_filght();订票函数(11)(void printf_han_shu();官方界面美化函数(12)1 void printf_han_shu_comsouer();/顾客端界面美化函数(13)1 void time han shu()
10、;/时间函数3. 2.1判断是否有这个航班函数根据要求在添加的时候要先判断是否己有此航班信息,给出相应的提示。所 以以判断函数的返回值来提示是否要对原有的航班信息进行操作,因此判断函数 的类型为整型。其功能具体设计如下:具 体 流 程 如 下 所 示输入航班号只读方式打开文件m=strcmp(dp.fnumber,ch);第一次比一次if(m=0)语句判断是否 有何已知数据相等的只要条件成立nhl并眺出循返回n的值return n;代码说明图3. 1以下代码说明请对照程序附件。ch为字符型字符串,添加函数在调用时 引入的实参的值付给它,然后引入函数屮应用。file *fp :文件指针指向航班信
11、息(flightinfo, txt)存储文本的缓存地址。if语句是对文本是否打开做出判断。文件以只读方式打开。fl dp;是定义的航班信此结构。while语句是把文件里的数据读到内存里,然后和ch字符串比较,如果相 等m二二0,不相等它就不是一个定值了。strcmp(dp. fnumber, ch);判断是否读出来的数据和已知数据是否相等。if语句是用来确定返回值,如果有与已知数据n就是1否则为0; fclose(fp);关闭文件指针。return n;返冋 n3.2.2删除函数删除一个航班的基本思想是,把文件中的数据全部读出来,然后再放回去, 与已知数据进行比较,如果相等说明就是删除的数据,
12、就不放回文件屮。具体流程如下所示图3.2代码说明ch为引用的字符串。fl all100;定义的结构数组,来控制变量。把文件中的数据全部读出来, 放到结构数组里以便操作。if (fp二fopen(flightinfo. txt", "r")二二null)判 断文件是否打开。以只读的方式。while语句把文件里的数据读到结构数组里,以i的自增来确保数据的完整。 len=i;作为下面while(i<len)语句的循环控制。fp=fopen(,zflightinfo. txt", v);语句以只写的方式打开。将文件里的书 局全部覆盖掉。tf语句中的:str
13、cmp(al 1 i. fnumber, ch) !=0判断但当前字符串是否和已知 字符串是否相等,并以此来确定是否打印数据到文件中。如果哦相等说明与已知 字符串相等。就不打印到文件中以此来删除航班信息。fclose(fp);对打印到文件中数据保证存储。3.2.3新建(添加航班信息函数以追加方式打开文件,先输入要输入的个数,再在for循环中输入航班号, 在for循环屮先判断是否已有次航班,如果已有做出相应的提示。没有则接续输 入。流程图图3.3代码说明pdntf(nnntt请输入要添加的航班个数:);显示提示信息,以增加 程序的美观。scanf (%d, &n)语句是要输入的航班个数。
14、if (fp=fopen(flightinfo, txt", a+")二二null)printf(f订e can not open!,z);exit(0);语句以追加(既可以读也可以写,读重文件头开始读,写重 文件末尾写进)的方式打开文件。m=judge_have_or_no_a_f 1 ight (dp. fnumber) ;/判断是否有这个航班:把实参dp. fnumber引入判断函数,返冋一个值。if语句:根据m的值来提示是否当前添加的航班号是否已有,并提示做相 应的操作有放弃删除重新输入,有删除后重新输入。if(h=l):语句调用相应的删除函数,把dp. fnumb
15、er作为实参引用到删除 函数。然后用函数递归应用在执行循环操作。if(h=2):语句直应用函数递归,应用添加函数执行添加循环。在for循环中没有应用结构数组,直接输入一个,就把这个放到文件中。 fprintf:语句是把内存中的数据打印到文件中。vicw_allo;是查看全部航班函数,为了直接显示是否添加成功,显示文件 屮的全部信息。3. 2. 4察看所有的航班信息以只读方式打开,以文件结束为标志结束,从文件中读一个就打印一个的思 想。流程图图3.4代码说明printfc航班号起飞地点终点 飞行时间(小时)票价(元)nw);:此语句是对航班总体的说明while:语句为控制循环,然后就读一个打印一
16、个,直到文件结束。printf (z,%5s%10s%10s%10d%10dnnz,, dp. fnumber, dp start, dp. destination, dp. time, dp. money)打印内容间的距离控制。fclosc(fp);关闭文件指针。3. 2. 5查看一个航班函数和查看全部航班信息思想一样,只是打印出来的时候只准与查找的航班信息 打印。用一个迁语句条件限制为m =strcmp (dp. fnumber, ch) ;m的值为0才打印 出来。流程图代码说明ch导入字符要找的航班号。 while (!feof (fp)控制循环。m =strcmp(dp. fnumbe
17、r, ch) ;if (m=0) 控制是够打印。break;如果打卬了就跳岀循环。根据if (n-0)判断是否有与给定数据相等的,如果没有会显示提示信息3. 2. 6密码确认函数先给定初始密码,可以利用密码修改函数进行修改,密码认定是把文件中的 字符读岀来和输入的进行对比,是否相等来实现的。程序流程图代码说明char mima20;密码最多有20个字符。while (!feof(fp) fscanf (fp, "%s", yuanmima);从文件屮不把密码拿出来。i f(st rcmp (m i ma, yuanm i ma) =0)与输入字符进行比较。等则输入密码正确,
18、 不等则输入密码不正确。返回值说明是否输入正确,正确返回1,不对返回0.。3. 2. 7密码修改函数设计思想先用密码确认函数确认是否密码正确,正确才让进入下一个环节, 修改是文件以只写的方式打开,然后保存。函数流程图图3.7代码说明n=mima_hanshu() ;/引入密码确认函数。if语句判断是否密码正确。正确系统让进行密码修改,不正确不让修改。fclose(fp);关闭文件。3. 2. 8飞机航班订票统计函数以只读方式打开文件,读岀每个航班号的订票情况,然后打印岀来。程序流程代码说明printf (/,t%stt%dnn/,, dpi. fnumber, n);if (rp=fopen(
19、,zf1 ightlnfo. txt", r)二二null)以只读方式打开文件 打印岀来,航班信息。whilc(!fcof (rp):控制循环,把文件中的数据读到数组中。i+;为后面的for循环做控制。在for循环中没统计一次,指针就指到文件末尾,所以每次统计都要重新 打开文件。统计到一个则座位号加一,最终结果多以就是当请客户的座位号。 fclosc(fp);关闭文件指针。3.2.9座位确定函数用的是统计的思想,只要文件中有何已知数据相等的票,那么统计变量自增 一。然后打印出来。程序流程图3.9代码说明“計”可写可读。wh ile(! feof (fp)控制一次一次的读出来, if
20、(strcmp (hangban, piao. no)=0) 和已知数据进行比较,符合自增。不符合进行下一次。 fclose(fp);关闭文件 return n;返回座位号。3.2.10订票函数以先判断再预定,成功输入后把飞机票存入文件中。代码说明view_all();为了订票方便引入了查看全部函数。while (m=l);要求直道输入正确为止n=judge_have_or_no_a_flight (stu. no) ;/判断函数;判断是否有此航班 if(stu.n>1007控前飞机票的数量不能超过限制人数。m=0;跳岀循环。else printf ct无此次航班号,请重新输入!nnrt
21、);;提示重新输入。fprintf (fp, n%10st%10st%d,stu. no, stu. xuehao, stu. n) ;fclose(fp)保存已预定的飞机票。printf (t%stt%stt%dnn", stu no, stu xuehao, stu n);打卬飞机票。3. 2. 10 官方界面美化函数 顾客端界面美化函数 时间函数为了主函数的简洁,所以引入两个显示提示信息函数。而时间函数是为了模 拟真实系统而引用的系统函数,以显示当前时间。然后保存到文件中,以便查询 操作吋间。4.功能模块的调试及测试4.1添加函数的测试图4. 1添加函数的测试4. 1. 1文本
22、文档中的信息f _= flightinfo-记事本口叵冈文件g)編辑g)格式©)查看 帮助gfgffg12399401239944fgfg12399921239996图4.2添加后文本中的信息由文木中的信息的出,函数代码有误,原代码为: fprintf (fp,,n%5s%10s%10s%10d%10dn,/,dp. fnumbcr, dp. start, dp. destination, &dp. time, &dp. moncy); 应 该改为: fprintf(fp, "n%5st%10st%10st%10dt%10d", dp. fnumb
23、er,dp.start,dp.des tination, dp. time, dp. money);原因是写道文件中的事整型数的地址。所以在文 木中显示的是乱码。调试成功。4. 2判断函数的测试(判断输入的航班号是否已有,给出相应的提示)| c' *c: docu*ents and sett ingsad>inist r at or 桌面710答辩debugchensong.|二 b凶航班号起飞地点终点飞行时间小时票价元alli南示巴黎58988y526河北海南3908二1图4. 3判断函数的测试图4. 4判断函数的测试4.3删除函数的测试(引入删除航班,先通过判断函数,再进行删
24、除)图4. 5删除函数的测试输入1后查看全部图示为| c: "c:documents and settingsad*inistrator桌面710答辩debugchensong. q航班号起飞地点终点飞行时间小时票价兀y526河北海南3908ufo3乌鲁木齐福建5898h176黑龙江昆明3999二1图4. 6删除函数的测试成功的删除航班。(以拿出來,再放回去的操作,设置是否打印,以此來实 现删除)4. 4统计函数的测试(统计处已订航班的票数)ca *c: docu>ent sand set t ingsad>inist r at or 桌面7-10答辩debugchens
25、ong航班号£y5262图4. 7统计函数的测试原代码为 if (fp二fopen ("selectinfo, txt", r)=null) printf(file can not open2 !n); exit (0);for(i=0;i<len;i+) while(!feof(fp)fscanf (fp, s%s%d,piao. no, piao. xuehao, &piao. n) ; if (strcmp(dpi. fnumb er, pi ao. no) =0)n二n+1;printf(t%stt%dnn,dpi fnumber,n);n=
26、0; fclose (fp);说明文件指针已经一到文件末尾,可以改变指针位置,或者是重复打开文件指针。 所以改为:for (i=0; i<len; i+) if (fp二fopen ("selectinfo, txt", "r)=null) printf(file can not open2 !n);exit (0);while(!feof(fp) fscanf (fp, s%s%d,piao. no, piao. xuehao, &piao. n);if(strcmp(dpi fnumber, piao. no)二二0)n=n+l;printf(t
27、%stt%dnrt, dpi fnumber, n);n 二0;fclose (fp);图4. 8统计函数的测试说明修改成功,证明文件每读一次文件指针就会指到文件末尾。4. 5密码确认函数的测试密码函数利用文本文档的长期存储,以只读的方式打开文件,和输入字符串 进行比较。以是否相等来判断密码的对错。以实现密码确认函数。f: 7-10 答 d ebug chens ong.exe nixnew tine is fri jul 10 13:49:34 2009欢迎进入飞机订票系统?& <1>官方操作。& <2>客户端。& <0>退出系统。
28、请输入(原图4. 9密码确认函数的测试 根据设想密码确认函数成功实现。图4. 10密码确认函数的测试4. 6密码的修改函数模拟密码操作,先用密码判断函数判断是否是正确的密码,然后只写的方式 把新密码打印进去在保存的思想,来实现密码修改。c *f二10答辩debugchensong. exe日回3请输入(原)密码注请输入你的新密码=000000裡淺成功?欢迎使用飞机订票系统?本系统有以下功能供你选择& 丄察看全部航班信息.& 2 查找一个航班信息.& 3 添加航班信息.&删除航班信息.& 5 预定你所要的航班.&密码修改.& 7 航班订票统
29、计显示.图4. 11密码的修改函数的测试根据设计思想,符合事实。成功地 完成了密码修改函数的实现。4.7主函函数的测试图4. 12主函函数的测试根据辻语句的判断功能,系统可供官方操作,和客户端。客户端直接进入, 官方操作,为模拟真实系统设计了密码认定,才允许进入。时间函数就在这时显 示和存储。进入官方操作后可以有如图4. 13所示的操作,进入客户端有如图4. 14 的操作。图4. 13主函函数的测试图4. 14主函函数的测试进入一个操作后就是自身的循环操作,根据wehile(n-l)来反复的界面刷 新和循环操作。在while的语句中改变n的值来控制循环的结束。总结经过十天的程序设计,基本掌握程
30、序设计的基本方法和步骤。在这十天中悟出:程序设要求有一定的基础是必须的,但是更多的是无论你 设计什么程序,在设计前一定要有自己的设计理念、设计思想,也可以说是中心 思想。否则在做程序的时候,请教一个高手,就有一种不同的方法。结果最终的 程序不伦不类,设计完后会发现会有不同的漏洞。在设计过程中要人胆的发挥自 己的想彖力,要敢于不断的创新,要敢于尝试,我认为这也是一种进步的好方法。另外我述有一个小小的建议,老师们给初学这门课程的学生尽量不这门课的 神奇的地方讲讲,我觉得会对那些对这门课感兴趣的同学会更感兴趣。记得上次 老师第一次演示文件时,有点相见恨晚,象被注射了兴奋剂一样。6致谢在这十天的时间里
31、,我学到了很多知识,这些少不了老师辛苦指导。同 学之间的帮助,相互鼓励,以及相互探讨,给了自己很大的信心,和跨域式 的进步。所以首先要感谢各位老师和我一起奋斗的同学们。还要感谢我的父母,是他们给了我机会来学习。还要感谢所有为教育事业作出奉献的人。社,2004.参考文献1 杨路明 c语言程序设计基础.北京邮电大学出版社.2005.2 何钦铭,颜晖.c语言程序设计基础.高等教育出版社2008.3 张引c程序设计基础课程设计杭州浙江大学出版社,2007.4 k0ciiansgc语言编程.电子工业出版社.2006.5高福成,c语言程序设局,清华人学出版社、北方交通大学出版原程序代码:#includes
32、tdio. h>#include<string. h>#include<stdlib. h>#includc<timc. h>int judge_have_or_no_a_f 1 ight (char) ;/判断是否有这个航班void select_a_filght();订票函数void xiugai_hanshu();/密码修改函数void view_al 1 ();/察看所有的航班信息void sean_3_filght( char ch);查看一个航班函数void add_many_hangban();/新建航班信息void delete_a_f
33、ilght(char ch);删除函数void printf_han_shu();官方界面美化函数void printf_hem_shu_comsouer();/顾客端界面美化函数int mima_hanshu();/密码确认函数int zuowei_hao_sure(char hangban);/座位确定函数void time_han_shu();时间函数void tongji_han_shu();/飞机航班统计函数typedef struct flightj/航班信息机构ichar fnumber5;char start20;char destination20;int time;吋间以小
34、吋为单位int money; fl;typedef struct consumeri/顶票信息机构ichar no 5;/航班号char xuehao10;学号int n;/座位号 select;/*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&
35、;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*/void main()/主函数int choice, n=l, m, t, w;char ch5;time han shu();printf (,znttt欢迎进入飞机订票系统!nn);printf (,ztt& <1> 官方操作。nn);printf
36、(,ztt& <2> 客户端。nrt);printf (,ztt& <0> 退出系统。nn);printf cztt请输入你的选择:);scanf ("%d,&t);if(t=l) chongxin:w=mima_hanshu() ;/密码确认函数 while(n=l) if (w二二 1) printf_han_shu();官方界面美化函数printf ct请输入你选择的功能:); scanf ("%ct, &choice);printf(nn);switch(choice) case 1: system(,zcls
37、,z); view_all () ;break; /察看所有的航班信息case 2:systcm("cls); view_all () ;/查看全部 printf (,znntt请输入你要查找的航班号:);scanf(s,&ch); scan_a_filght ( ch) ;/察看一个航班信息break;case 3: system("cls");add many hangban () ; break; /新建航班信息(添加函数)case 4:system(,zcls,z);printfcnntt请输入你要删除的航班号:); scanf(s,&ch
38、);有这个航班有这个航班break;break;m=judgc_havc_or_no_a_f 1 ight ( ch); 判断是否if(m=l) delete_a_filght ( ch) ;/删除函数printf (z,tt 成功删除! nnz,);if(m!=l) printfc无此次航班!n);case 5: system(cls); sclcct_a_filght() ; break;/订票函数case 6: system(cls);xiugai hanshu() ; break; /密码修改函数 case 7: system(cls);tongji_han_shu() ; break
39、;/航班统计函数case 0: n=0;break;default :printf(,z请重新输入没有你输入的选择nn);break;elseprintf (z,tt 密码错误! n);printf (,ztt请重新输入密码!nn);goto chongxin;printf_han_shu_comsouer ();顾客端界面美化函数printf ct请输入你选择的功能:); scanf ("%ct, &choice);printf (nn);switch(choice) case 1: system(cls");view_all () ; break; /察看所有的
40、航班信息case 2:system("cls); vicw_all () ;/显示全部 printf (z,t请输入你要查找的航班号:); scanf ("%s", &ch);scan_a_filght ( ch) ;/察看一个航班信息break;case 3:system("cls);select a filght () ; break;/订票函数case 0: n=0;break;default:printf(z,nntt请重新输入没有你输入的选 项:n); break;/*&&&&&&&
41、;&&&&&&&&&&&&& 新 建 航 班 信 息 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
42、amp;&&&*/void add_many_hangban ()/新建航班信息int n , i, m, h;file *fp;fl dp;printf cnnntt请输入要添加的航班个数:); seanf (%d, &n);if (fp=fopcn (,zf1 ightlnfo. txt", a+)=null) printf(“f订e can not open!); exit (0);for(i=l;i<=n;i+) printf (,z请输入第4次航班nn,z, i);printf (t 航班号:);scanf (%s, dp. fnumb
43、er); printf(n);m=judge_have_or_no_a_f 1 ight (dp. fnumber) ;/判断是否有这个航 if(m=l) printf(,zt此次航班己有是否删除!nn/z); printf czt删除重新输入它请输入<l>nn,/); printf (,zt不删除重新输入请输入<2>nn,z); printf ct 请输入:); scanf (%d, &h);if (h二二 1) del ete_a_f i 1 ght (dp. fnumber) ;/删除函数n=nl;add_many_hangban () ; /添加函数 i
44、f (h二二2) add_many_hangban () ; /添加函数printf (,zt 起飞地:);scanf (s,dp. start); printf ("t 目的地:);scanf ("%s", dp. destination); printf (,zt 飞行时间:);scanf (d", &dp. time);printf (t 票价:);scanf (%d, &dp. money);fprintf(fp, n%5st%10st%10st%10dt%10d", dp. fnumber,dp. start,dp.d
45、es tination, dp. time, dp. money);fclose (fp); viewall ();/*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 察看全部航班信息 &&&
46、&&&&&&&&&&&&&&&&&& */void viewall () "file *fp;fl dp;if (fp=fopen(z,f1 ightlnfo. txt",,zr,z) =null) printf(,zfile can not open!n); exit (0); printfc航班号 起飞地点终点 飞行时间(小时)票价(元)nn);while(!feof (fp) fscanf (fp, %s%s%s%d%ct;
47、dp. fnumber, dp. start, dp. destination, &dp. tim e, &dp. money);printf (z,%5s %10s%10s%10d%10dnnz,, dp. fnumber, dp. start, dp. dcstination, dp. time, dp. money);fclose (fp);/ *&&&&&&&&&&&&&&&&&&&&&&&
48、;&&&&&&查 看一个 航 班 函 数&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*/ void sca
49、n_a_filght( char ch)/查看一个航班函数 ""int m, n二0;file *fp;fl dp;if (fp=fopen(z,f1 ightlnfo. txt",,zr,z) =null) printf(,zfile can not open!);exit (0);while(!feof(fp) fscanf(fp, s%s%s%d%dn,dp. fnumber, dp. start, dp. destination, &dp. t imc, &dp. money);m =strcmp(dp fnumber, ch);if (m
50、=0)printf (,z航班号起飞地点终点 飞行时间(小时)票价(元)nn,z);printf (5s%10s%10s%10d%10dnn,dp. fnumber, dp. start, dp.destination, dp. time, dp. money);n二 1;break;if (n=0) printf c没有你查找的航班号!n,z);fclose (fp);/*&&&&&&&&&&&&&&&&&&&&&&&
51、amp;&&&&&&&&&&& 删 除 函 数 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& */ void delete_a_f ilght (char ch)/删除函数 ""int i,len
52、;file *fp;fl all100;/航班最多有100班if (fp=fopencflightlnfo. txt,“r)二二null) printf czfi le can not open!,z); exit (0);i=0;while(!feof (fp) fscanf (fp,"%s%s%s%d%d,alli.fnumber,alli.start,alli.dcstina tion,&alli. time, &alli money);i+;len=i; fclose (fp); fp=fopen(,flightinfo. txt",,zw,z);i
53、 二0;wh ile(i<len)if(stremp(alli. fnumber, ch)!=0)fprintf (fp,n%5s%10s%10s%10d%10d", al 1i. fnumber, al 1i. start,al1 i destination,alli time, alli money);i+;)fclose(fp);/*&&&&&&&&&&&&&&&&&&&&&&&&&
54、amp; 判 断 是 否 有 这 个 航 班 &&&&&&&&&&&&&&&&&&&&&&&&&&&*/int judge_have_or_no_a_flight (char ch)/判断是否有这个航班int m, n二0;file *fp;fl dp;if (fp=fopen(,zflightinfo. txt", "r")二二null) print
55、f(,zfile can not open!); exit (0);while(!feof (fp) fscanf (fp, s%s%s%d%dn,dp. fnumber, dp. start, dp. destination, &dp. t ime, &dp. money);m =strcmp (dp fnumbcr,ch);if (m=0)n=l;/此次航班已有break;fclose(fp); rcturn n;/*&&&&&&&&&&&&&&&&
56、;&&&&&&&& 官 方 界 面 美 化 函 数 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*/ void printf_han_shu()/官方界面美化函数printf( -n );printf (“欢迎使用飞机订票系统!nnnn );printf (,z本系统有
57、以下功能供你选择.nrt);printf c&1察看全部航班信息.nn,z);printf(“&2查找一个航班信息.nn,z);printf (,z&3添加航班信息.nnz,);printf (“&4删除航班信息.nn);printf (,z&5预定你所要的航班.nrt);printf c&6密码修改.nn,z);printf(“&7航班订票统计显示.nrt);printf (,z&0退出系统.n,z);printfc=nn/z);/*&&&&&&&&&&am
58、p;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*/ void printf han shu comsouer()/顾客端界面美化函数prin tf (,=printf c printf(“ printf (,z printf (“ printf (,z printf c欢迎使用飞机订票系统!nnnn “); 本
59、系统有以下功能供你选择.nn,z);&1察看全部航班信息.nn,z);&2查找一个航班信息.nn,z);&3预定你所要的航班.nrt);&0推出系统.n);printf (=/*&&&&&&&&&&&&&&&&&&&&&&&&&订&&&&&&&&&&&&&&
60、;&&&&&&&&&&&&&&&&&&&*/ void select_a_filght () /订票函数 ""file *fp;int n, m=l;select stu;viewall (); while (m二二1)printfc t请输入你要预定的航班:);scanf ("%s",stu no);printf ("nrt);n=judge_have_or_no_a_flight (stu.
61、 no) ;/判断函数 stu. n=zuowei_hao_sure(stu. no);座位号确定函数 if (stu. n>100) printf (对不起你所预定的航班已全部被预订!); exit (0);if(n 二二 1) printf ct请输入你的学号:);seanf ("%s", stu xuehao);printf ("nrt);m二 0;else printf (,zt无此次航班号,请重新输入! nnn,z);if (fp=fopen (z,selectinfo. txt,“a+)二二null) printf(,zfilc can not open!); exit (0);fprintf (fp,,zn%10st%10st%d,stu. no, stu. xuehao, stu. n); fclose(fp);printf (,zt 成功预定航班!nrt);printf (z,t你的飞机票信息是:nrt); printf ("t 航班号tt 学号tt座位号nrt);printf (t%stt%stt%dnn,stu. no, st
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 丰巢柜扫码取件流程及用户合同详解版B版
- 二零二五版办公家具定制与售后支持协议3篇
- 二零二五年度跨境离婚协议书及财产转移范本3篇
- 二零二五年度海洋资源开发项目技术人员聘任协议3篇
- 二零二五年度KTV加盟店运营管理及培训合同范本3篇
- 二零二五版公积金个人提前还款合同3篇
- 西安航空学院《材料科学基础I》2023-2024学年第一学期期末试卷
- 二零二五年度柑橘产品溯源与食品安全合同3篇
- 乌海职业技术学院《视觉艺术赏析与表达》2023-2024学年第一学期期末试卷
- 个性化桶装水供应服务协议2024版版B版
- 2024年关爱留守儿童工作总结
- GB/T 45092-2024电解水制氢用电极性能测试与评价
- 《算术平方根》课件
- DB32T 4880-2024民用建筑碳排放计算标准
- 2024-2024年上海市高考英语试题及答案
- 注射泵管理规范及工作原理
- 山东省济南市2023-2024学年高二上学期期末考试化学试题 附答案
- 大唐电厂采购合同范例
- GB/T 18724-2024印刷技术印刷品与印刷油墨耐各种试剂性的测定
- IEC 62368-1标准解读-中文
- 15J403-1-楼梯栏杆栏板(一)
评论
0/150
提交评论