免费预览已结束,剩余19页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机语言课程设计 任务书及说明书设计题目 : 航空订票系统 学 院 专业、 年级 学 生 学 号 指 导 教 师 时 间 2010 年 春季 学期目录 1摘要 3前言43正文.53.1系统分析.53.2总体设计.63.3详细设计.83.4系统调试与测试.104参考文献.15附录:源程序.161摘要航空定票系统是使用JAVA编程技术在MYEclipse6.0集成开发环境下开发的订票系统。该系统实现了航班管理、订票管理、退票管理以及查询航线航班等功能。在航班管理中航空公司内部管理员能在系统中完成添加客户或删除客户信息、查看数据库等功能。乘客能够在系统中完成查询航班、订票办理和退票办理等功能。乘客可以用多种方式来查询航班信息,系统还能将这些信息保存在数据库中,并供航空公司内部管理员随时查询。关键词: 航空定票系统;结构体;文件;指针;定票;退票;查询。 2前言通过该题目的设计过程,可以培养学生结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解,针对c语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。得到软件工程的综合训练,提高解决实际问题的能力。3正文3.1系统分析 设计一个实用的航空订票系统,能以简便高效的方式对航线及客户信息、订票、退票等的录入和查询,具体功能如下:1、 系统以菜单方式工作,要求界面友好,易于操作;2、 订票系统信息录入功能(订票信息以文件保存);3、 订票成功,存储客户信息功能;4、 退票成功,查询客户信息功能;5、 订票信息查询功能。总体设计登录界面航空订票系统存储航线信息系统 存储客户信息系统 退票系统查询系统 订票系统退出订票系统按航线查询按姓名查询退出主菜单,到登录界面! 为实现系统功能,本程序主要分为五个模块。它们分别为:存储航线信息、存储客户信息、退票删除客户信息、订票存储客户信息、查询客户信息,保存并且退出该程序。这五个函数再通过主函数调用分别得以实现。主函数,首先提供了程序运行时的友好界面,列出了清单,提供用户做出选择,以便决定使用订票系统的哪种功能。然后,通过执行多分支选择语句switch语句,分别现其它各个函数的调用功能。其它各个函数的功能分别如下:airline函数用于对航线及客户中的数据以文件的方式进行读入和添加;book函数用于订票时对客户信息的存储;cancel函数用于退票时对客户信息的删除;information函数用于对文件中客户信息的查询。(选择 5时退出订票系统)3.3详细设计(1)数据结构设计本程序中,对于航线及客户各项详细信息的记录用了结构数组的形式,对于主要数据结构的应用如下:结构数组: struct airlineInformation /*存储航线信息*/ char flightNum20; /*航班号*/char placeNum20; /*飞机号*/char destination20; /*目的地*/int bookTicketNum; /*订票数*/int spareTicket; /*余票数*/int seat100; /*表示该航班的座位是否有人坐的情况*/airline3; struct clientInformation /*存储客户信息*/ char clientNum20; /*姓名*/char clientFlightNum20; /*航班号*/int seatNum; /*座位号*/client300;(2)模块接口设计 本程序执行的入口是main函数,然后用switch语句实现对各个函数的调用。被调用的函数都是没有形参的,函数直接实现所需要的功能。最后,再从main函数中结束整个程序的运行 其中涉及到被调用的函数有:airLine() 用于对航线及客户信息中的数据以文件的方式进行读入和添加;book() 用于订票时对客户信息的存储; cancel() 用于退票时对客户信息的删除;information() 用于对文件中客户信息的查询;(3)部分函数流程图airline()函数:book()函数:cancel() 函数: information() 函数: 3.4系统调试与测试首先进入菜单,选择1时输出航线及客户信息,初始有三名乘客,分别对应于相应的航班号,飞机号,目的地,定余票数及相关信息。选择时,乘客可根据航线订票,订票成功则输出相应的座位号、目的地,然后可进行下一项。选择输出查询信息,例如飞机号、目的地、订票数等。当多项选择完成时,选择退出订票系统,操作结束。(2)在没有声明函数原型的情况下调用函数,系统默认把其处理为有任意个整型参数。返回值也为整型。调用时所有参数以整型传递,会出现参数不匹配的情况。解决办法就是明确定义函数参数的类型和个数。但在这个过程中,我的基础也欲显扎实,对C语言编程的认识也提升了一个层次。 设计总结在这个航空订票系统C语言课程设计中,完成了基本功能,即可以检索记录,新建新记录,删除记录,使用文件对记录进行保存和读取功能。在开始进行课程设计时,先进行界面模块的总体把握,充分了解自己要设计的程序的总体的结构,从而,在设计过程中能一个模块一个函数进行详细的构思,从而在调试程序时也显得比较方便,虽说随着程序代码的不断增多、其复杂性不断增大,但因为分模块函数一个一个的调试;最后将其模块用多文件编译运行至没有遇到语法错误。但是,运行结果完全不正确,常常出现乱码和死循环等问题,通过查找资料、与同学相互讨论、多次上机实践及请教,程序终于正确地运行。在此过程中,通过实践的学习,学好计算机要重视实践操作,不仅仅是学习C语言,还有其他语言,要注重实践能力的培养,学到的不止是如何调试这个知识,学到得最多的是一种遇到不懂问题怎么去解决的方法和在遇到困难时心态的调节即无论学习什么,亲手动手去做才能得到最深刻的体会。在此课程设计中,不仅综合了数据结构的知识,而且还综合了文件处理数据的知识,难度显得较大,但这些功能还是能在较短的时间内完成,倒是课本上那些属于基础和细节上的知识点总不知道如何使用、常常用错,如在使用switch()、while()、和getch(),scanf()以及gets()等语句上,有时因用错它们,使程序无法停止。总的来说,这次课程设计收获很多,为了完成这次设计,参考了一些书籍,查看一些资料,对课本知识进行总结,了解了以前常忽视却很重要的东西,深化了对C语言的理解,进一步理解对C语言进行程序设计的方法和步骤,加深了结构化程序设计的思想,更重要的是,积累了很多调试程序的经验,为进一步学习C语言奠定了一定的基础。 4:参考文献1 C/C+程序设计,王连相等,中国科学技术出版社,20042 C语言程序设计,谭浩强,清华大学出版社,19993 C程序设计题解与上机指导,谭浩强,清华大学出版社,19994 C语言实用程序荟萃,西安电子科技大学出版社,19935 C语言函数手册,机械工业出版社,1999附录:源程序#include#include#includestruct airlineInformation/存储航线信息的结构,初始为三条航线char flightNum20;char planeNum20;char destination20;int bookTicketNum;int spareTicketNum;int seat100;/表示该航班的座位是否有人坐的情况airline3=0001,china-001,BeiJing,1,99,0,0002,china-002,ShangHai,1,99,0,0003,china-003,Guangzhou,1,99,0; struct clientInformation/存储客户信息的结构,初始为三位客户 char clientName20; char clientFlightNum20; int seatNum;client300=zhangsan,0001,1,lisi,0002,1,wangwu,0003,1;int enterChoice(void);void airLine(FILE * cfPtr1 , FILE * cfPtr2);/进行航线信息与客户信息的储存的函数原型void bookTicket(FILE * cfPtr1 , FILE * cfPtr2);/订票的函数原型void cancelTicket(FILE * cfPtr1 , FILE * cfPtr2);/退票的函数原型void printInformation(FILE * cfPtr1 , FILE * cfPtr2);/打印航线信息与客户信息的函数原型int main()FILE * cfPtr1;FILE * cfPtr2;int choice,i,j; for(i=0;i=2;i+)/开始时只有每次航班的第一个座有人坐 for(j=0;j=99;j+) airlinei.seatj=0; airlinei.seat0=1;if (cfPtr1=fopen(airline.dat,wb+)=NULL)printf(非常抱歉!n存储航线信息的文件不能打开!n请稍候n);else if(cfPtr2=fopen(customer.dat,wb+)=NULL)printf(非常抱歉!n存储客户信息的文件不能打开!n请稍候n);elseairLine(cfPtr1,cfPtr2);for(i=1;i=30;i+) printf(*); printf(n欢迎使用南航订票系统!n有何疑问详询800-800-800!n);while(choice=enterChoice()!=5)/对操作的选择,当选择5时,操作结束switch (choice) case 1: airLine(cfPtr1,cfPtr2); printInformation(cfPtr1,cfPtr2); break; case 2: bookTicket(cfPtr1,cfPtr2); break; case 3: cancelTicket(cfPtr1,cfPtr2); break; case 4: printInformation(cfPtr1,cfPtr2); break; printf(n);for(i=1;i=30;i+)printf(*);printf(n);printf(谢谢您使用本系统!n欢迎您下次再次使用!n再见!n);for(i=1;i=30;i+)printf(*);printf(n);fclose(cfPtr1);fclose(cfPtr2);system(pause);return 0;int enterChoice(void)int i; int menuChoice; for(i=1;i=30;i+)printf(*);printf(n); printf(n请输入您想进行的操作:n 1-航线信息及客户信息的存储n 2-订票n 3-退票n 4-查询信息n 5-退出系统n);printf(n);for(i=1;i=30;i+)printf(*);printf(n);scanf(%d,&menuChoice); for(i=1;i=20;i+)printf(*);printf(n);return menuChoice;void airLine(FILE * cfPtr1 , FILE * cfPtr2) int i;if (cfPtr1=fopen(airline.dat,rb+)=NULL)printf(非常抱歉!n存储航线信息的文件不能打开!n请稍候n);else if(cfPtr2=fopen(customer.dat,rb+)=NULL)printf(非常抱歉!n存储客户信息的文件不能打开!n请稍候n);elsefor(i=0;i=2;i+)/将目前airline结构数组中的每一项都储存在航线信息中fwrite(&airlinei,sizeof(struct airlineInformation),1,cfPtr1);for(i=0;i=299;i+)/将目前client结构数组中的每一项都储存在客户信息中fwrite(&clienti,sizeof(struct clientInformation),1,cfPtr2);fclose(cfPtr1);fclose(cfPtr2);void bookTicket(FILE * cfPtr1 , FILE * cfPtr2)char Name20;char flightnum20;int i,j,ok=0;/ok为是否订上票的标记值,0表示没订上,1表示订上if (cfPtr1=fopen(airline.dat,rb+)=NULL)printf(非常抱歉!n存储航线信息的文件不能打开!n请稍候n);else if(cfPtr2=fopen(customer.dat,rb+)=NULL)printf(非常抱歉!n存储客户信息的文件不能打开!n请稍候n);elsegetchar();printf(尊敬的客户,欢迎您订票!n);for(i=1;i=30;i+) printf(*);printf(n请输入您的姓名:n);gets(Name);printf(%s先生/女士,请输入您想乘坐的航班号:n,Name);gets(flightnum);printf(操作正在进行中,请稍后.n);for(i=1;i=30;i+) printf(*);printf(n);for(i=0;i0)/并且有余票ok=1;airlinei.bookTicketNum+; airlinei.spareTicketNum-;break;if(ok=1)for(j=0;j=99;j+)/为客户选择一座位 if(airlinei.seatj=0)airlinei.seatj=1;break;printf(恭喜您!n您已经订上了%s次航班的%d座位, 您的目的地为%sn,flightnum,j+1,airlinei.destination);for(i=0;i 2)printf(对不起!n这里没有该次航班,请检查后再次输入!n);elseprintf(抱歉!n您所要坐的%s航班由于客满,不能为您办理!n,flightnum);for(i=1;i=30;i+)printf(*);printf(n);/将此时的信息储存airLine(cfPtr1,cfPtr2);fclose(cfPtr1);fclose(cfPtr2);void cancelTicket(FILE * cfPtr1 , FILE * cfPtr2)char Name20;char flightnum20;int i,j,ok=0,ok1=0;/ok表示是否退票成功,ok1表示是否有该客户if (cfPtr1=fopen(airline.dat,rb+)=NULL)printf(非常抱歉!n存储航线信息的文件不能打开!n请稍候n);else if(cfPtr2=fopen(customer.dat,rb+)=NULL)printf(非常抱歉!n存储客户信息的文件不能打开!n请稍候n);elsegetchar();printf(尊敬的客户,欢迎您退票!n);for(i=1;i=30;i+) printf(*);printf(n请输入您的姓名:n); gets(Name); printf(%s先生/女士,请输入您想退掉的航班号:n,Name);gets(flightnum); for(i=1;i=30;i+) printf(*);printf(n);printf(操作正在进行中,请稍后.n);for(i=1;i=20;i+) printf(*);printf(n);for(i=0;i=299;i+)/检查是否有该客户if(strcmp(clienti.clientName,Name)=0)/有该客户ok1=1;for(j=0;j=2;j+)/检查其输入的航班号是否真确if(strcmp(airlinej.flightNum,flightnum)=0)ok=1; airlinej.bookTicketNum-;airlinej.spareTicketNum+;airlinej.seatclienti.seatNum=0; break;if(ok=1)/退票成功,删除客户信息strcpy(clienti.clientName,);strcpy(clienti.clientFlightNum,); clienti.seatNum=0;break;if(ok1=0)printf(抱歉!n您还没有订票!n);elseif(ok=1)printf(恭喜您!n您已经退票成功!n);elseprintf(抱歉!n您订的不是这次航班,请检查后再次输入!n);for(i=1;i=30;i+)printf(*);printf(n);airLine(cfPtr1,cfPtr2);fclose(cfPtr1);fclose(cfPtr2);void printInformation(FILE * cfPtr1 , FILE * cfPtr2)int i;struct airlineInformation airline;struct clientInformation client;if (cfPtr1=fopen(airline.dat,rb+)=NULL)printf(非常抱歉!n存储航线信息的文件不能打开!n请稍候n);else if(cfPtr2=fopen(customer.dat,rb
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四年级数学教师家长会发言稿
- 二零二四年度建筑工程施工合同标的及税率明细2篇
- 版权购买与授权合同(2024年)3篇
- 2024年船舶用润滑油订购条款3篇
- 2024年汽车交易定金合同示范
- 2024年度租赁合同标的设备租赁期限租金支付方式2篇
- 2024年临时停车服务协议2篇
- 二零二四年度外贸业务接洽与代理合同3篇
- 二零二四年度设备租赁合同:机器设备租赁及维护服务协议2篇
- 2024年度房地产开发商与政府土地购置协议3篇
- 工商业储能商业模式分析及IRR测算
- 小学生主题班会-言语有温度 课件
- 《实验活动1 配制一定物质的量浓度的溶液》课件
- 2024年国家保安员考试题库附参考答案(考试直接用)
- 《“3S”技术及其应用》试卷
- 2024-电商控价协议范本
- 中药养颜秘籍智慧树知到期末考试答案2024年
- 手术切口感染PDCA案例
- 殡葬礼仪服务应急预案
- 校运会裁判员培训
- 烟雾病与麻醉
评论
0/150
提交评论