收藏 分销(赏)

飞机订票专业系统设计.doc

上传人:精**** 文档编号:3013302 上传时间:2024-06-13 格式:DOC 页数:21 大小:274.04KB
下载 相关 举报
飞机订票专业系统设计.doc_第1页
第1页 / 共21页
飞机订票专业系统设计.doc_第2页
第2页 / 共21页
飞机订票专业系统设计.doc_第3页
第3页 / 共21页
飞机订票专业系统设计.doc_第4页
第4页 / 共21页
飞机订票专业系统设计.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、C语言课程设计报告班级:05507111姓名:陈彬学号:;1001454指引教师:刘文中C语言课程设计报告一、 C语言课程设计目C语言教学是学生依照课堂讲授内容,学生做相应自主练习,消化课堂所解说内容;通过调试典型例题或习题积累调试C程序经验;通过完毕辅导教材中编程题,逐渐培养学生编程能力、用计算机解决实际问题能力。详细来说: 1 进一步掌握和运用C语言进行程设计能力; 2、进一步理解和运用构造化程设计思想和办法; 3、初步掌握开发一种小型实用系统基本办法; 4、学会调试一种较长程序基本办法; 5、学会运用流程图或N-S图表达算法; 6、掌握书写程设计开发文档能力(书写课程设计报告);二、课程

2、设计报告正文(1)课程设计题目原文;假定民航机场共有n个航班:航班号、起始站、终点站、飞机号、飞机时间、乘员定额、余票量。试设计一民航订票系统,使之能提供下列服务:l 航班信息录入功能(文献保存) l 完毕航班信息浏览功能; l 查询航线(至少一种查询方式)。(2)题目分析(需求分析);任务:通过此系统可以实现如下功能: 录入: 可以录入航班状况(数据可以存储在一种数据文献中)浏览:航班信息浏览功能需要提供显示操作; 查询:可提供按照航班号、起点站、终点站、飞行时间、查询,可以查询某个航线状况(如,输入航班号,起飞到达都市,拟定航班与否满仓);此外要提供键盘式选取菜单以实现功能选取。 规定:依

3、照以上功能阐明,设计航班信息,订票信息存储构造,设计程序完毕功能。可以建立航班构造体,构造体成员涉及航班号、起点站、终点站、飞行时间、预售票总数、已售票数。 (3)整体设计与模块划分;依照需求分析,该程序可分为如下四大模块:输入模块显示模块查询模块退出模块飞机订票系统(4)代码设计;涉及各功能模块流程图;重要模块中核心某些代码分析;核心函数算法设计和分析;等等;(一)主函数(1)分析:主函数功能比较简朴,形式比较简洁,重要功能为:在系统中没有程序所要文献时,为程序建立一种所许文献;调用菜单函数。程序中各模块都要用到同一种文献,如果该文献不存在,则该程序就无法正常运营,增长第一种功能就是保证文献

4、可用切可打开!本来只要在主函数里调用各功能模块就行了,但是为了让程序可以以便回到主函数里,因此就建立了一种菜单函数。菜单函数功能是替主函数调用个功能模块函数,因而设计基本思路很简朴,即:用一种输入来接受顾客选取,加以个循环来让输入错误顾客继续输入,直到输入对的为止;用一种switch语句来选取顾客所要用到函数。(2)程序:void menu()int n,w;doputs(tt*MENU*nn);puts(tttt 1.enter new data);puts(tttt 2.Browse all);puts(tttt 3.Search);puts(tttt 4.exit);puts(nntt

5、*n);printf(Choice your number(1-4): bb);scanf(%d,&n);if(n4)w=1;getchar();else w=0;while(w=1);switch(n)case 1:enter();break;case 2:Browse();break;case 3:Search();break;case 4:exit(0);/*主函数*/main()menu();(二)公共函数(1)分析:各功能模块中分程序中交错较多,因而,本程序公共函有5个,这使得各功能模块函数显得简洁,这是程序一种特点。此处公共函数功能较为简朴,但她很实用。(2)程序:1、把航班信息输

6、入到文献中函数。void input(i)struct flight t;printf(nflight_no startstation endstation flytime plan_ticket sell_ticketn);scanf(%d%s%s%s%d%d,&t.flight_no,t.startstation,t.endstation,t.flytime,&t.plan_ticket,&t.sell_ticket);fp=fopen(flydata.txt,ab); if(!fp)printf(can not open this filen);exit(0); else fwrite(

7、&t,sizeof(struct flight),1,fp); fclose(fp);2、输出一种 航班信息函数void printf_oneflight(int i)printf(n%5d%20s%20s%10s%4d%4dn,flyi.flight_no,flyi.startstation,flyi.endstation,flyi.flytime,flyi.plan_ticket,flyi.sell_ticket);3、输出文献内容构造函数void printf_face()printf(ntNO. startstation endstation flytime plan_ticketse

8、ll_ticketn);4、载入函数实现文献内容载入程序,并返回飞机航班数值。int load()FILE *fp;int i;if(fp=fopen(flydata.txt,rb)=NULL)printf(nCan not open filen);exit(0);for(i=0;!feof(fp);i+)fread(&flyi,sizeof(struct flight),1,fp);fclose(fp);return(i-1);5、返回退出函数实现程序退出、返回。void printf_back()int w;printf(nntSuccessful._nn);printf(What do

9、you want to do?nnt1).Browse all nowt2).back:bb);scanf(%d,&w);if(w=1) Browse();else menu();(三)航班基本信息输入模块航班信息录入函数:(1)分析:航班基本信息,对它们输入后,要存进原文献,采用fwrite函数就可以实现。但是,用该函数存进文献数据都是以二进制形式存在,不是普通所采用形式,可以改用fprintf函数来实现该功能。但是本程序采用是fwrite函数。再顾客输入完毕后,程序会询问与否继续输入,这个功能更具人性化,可以省去返回到主函数在进入这个函数麻烦!【流程图输入信息文献打开否 输入信息与否继续将

10、信息输出到磁盘调用printf_back()函数结束开始输出错误信息(2)程序:void enter()int i,n;printf(How many flights do you want input?: bb);scanf(%d,&n);printf(n Enter data nownn);for(i=0;in;i+)printf(n Input %dth float record.n,i+1);input(i);printf_back();航班信息浏览函数:流程图显示信息开始文献打开查找航班信息与否查找到输入信息与否继续结束输出错误信息删除操作显示航班信息:void Browse()in

11、t i,n;n=load();printf_face();for(i=0;in;i+)if(i%10=0)printf(nPress any key to contiune .);getchar();puts(nn);puts(nn);printf_oneflight(i);printf(tThere are %d record.n,n);printf(nPress any key to back .n);getchar();menu();查询模块:分析:基本信息查询按查询可供选取方式比较丰富,可按航班号查询。在查询小模块中采用了直接查找办法。本模块可以通过各种查询方式进行完善。这是本程序没有

12、做地方。流程图开始文献打开查询方式与否继续结束输出错误信息航班号此处可以完善其他查询方式程序:void Search()int m,i,flight_no,flag=0;printf(Please input flight_no:n);scanf(%d,&flight_no);m=load();for(i=0;im;i+)if(flight_no=flyi.flight_no)flag=1;printf(nThe flight message is:n);printf_oneflight(i);if(flag=1)printf(Found!);elseprintf(Not Found!);pr

13、intf_back();(5)运营与测试报告:在第一步编程过程中很顺利编写好了各模块,最后整合成了一种完整程序,但在调试过程中遇到了许多问题。如某些由于粗心导致分号,括号,字母输错例子诸多。但都不久改正。尚有函数调用错误fp=fopen(flydata.txt,ab);我在写时丢了fopen成果始终错误,并且发现不了,日后请教师才解决问题。尚有写程序中我经常忘掉头文献包括命令,以及函数声明,导致调试中浮现警告。这让我体会到只有耐心一行一行改错误才干把程序调试好。运营中遇到问题:例如,对数据写文献操作中,我把存在flyN中数据以fwrite(&flyN,sizeof(struct flight)

14、,1,fp)写入文献,成果发现文献中总是不能浮现数据。以至程序不能运营背面某些。日后才发现获得地址错了应改成fwrite(&t,sizeof(struct flight),1,fp)。在机票显示阶段就是这问题让程序浮现错误。不能对的读出输入飞机航班信息。三、总结 程序整体上运营与题目规定很吻合,算法大多比较通用,各个函数模块对的性、完备性、对输入容错能力以及算法进一步改进在设计中均有表述,这道题使我熟悉了文献输入输出操作,真切感受到了fprintf和fwrite函数区别! 回顾起本次课程设计,至今我仍感触颇多,从理论到实践,在整整半个月日子里,我学到诸多诸多东西,不但巩固了此前所学过知识,并且

15、学到了诸多在课本上所没有学到过内容。通过这次课程设计使我懂得了理论与实际相结合是很重要,只有理论知识是远远不够,只有把所学理论知识与实践相结合起来,从理论中得出结论,才是真正知识,才干提高自己实际动手能力和独立思考能力。在设计过程遇到了各种各样问题,同步在设计过程中发现了自己局限性之处,对此前所学过知识理解得不够深刻,掌握得不够牢固,通过这次课程设计,把此前所学过知识重新温故,巩固了所学知识。四、程序代码:#include /*头文献包括命令*/#include#define N 50struct flight /*构造体存储航班信息构造*/int flight_no;char startst

16、ation20;char endstation20;char flytime10;int plan_ticket;int sell_ticket;flyN;/*定义构造体变量*/FILE* fp;void Browse();void printf_oneflight(int i);void menu();void input(i) /* 把航班信息输入到文献*/struct flight t;printf(nflight_no startstation endstation flytime plan_ticket sell_ticketn);scanf(%d%s%s%s%d%d,&t.flig

17、ht_no,t.startstation,t.endstation,t.flytime,&t.plan_ticket,&t.sell_ticket);fp=fopen(flydata.txt,ab); if(!fp)printf(can not open this filen);exit(0); else fwrite(&t,sizeof(struct flight),1,fp); fclose(fp);void printf_oneflight(int i) /*输出一种 航班信息*/printf(n%5d%20s%20s%10s%4d%4dn,flyi.flight_no,flyi.sta

18、rtstation,flyi.endstation,flyi.flytime,flyi.plan_ticket,flyi.sell_ticket);void printf_face() /*输出文献内容构造*/printf(ntNO. startstation endstation flytime plan_ticketsell_ticketn);int load()/*载入函数实现文献内容载入程序,并返回飞机航班数值*/FILE *fp;int i;if(fp=fopen(flydata.txt,rb)=NULL)printf(nCan not open filen);exit(0);for

19、(i=0;!feof(fp);i+)fread(&flyi,sizeof(struct flight),1,fp);fclose(fp);return(i-1);void printf_back() /*返回退出函数实现程序退出、返回*/int w;printf(nntSuccessful._nn);printf(What do you want to do?nnt1).Browse all nowt2).back:bb);scanf(%d,&w);if(w=1) Browse();else menu();void enter()/*航班信息录入*/int i,n;printf(How man

20、y flights do you want input?: bb);scanf(%d,&n);printf(n Enter data nownn);for(i=0;in;i+)printf(n Input %dth float record.n,i+1);input(i);printf_back();void Browse()int i,n;n=load();printf_face();for(i=0;in;i+)if(i%10=0)printf(nPress any key to contiune .);getchar();puts(nn);puts(nn);printf_oneflight

21、(i);printf(tThere are %d record.n,n);printf(nPress any key to back .n);getchar(); /*没有返回植*/menu();void Search()/*查询*/int m,i,flight_no,flag=0;printf(Please input flight_no:n);scanf(%d,&flight_no);m=load();for(i=0;im;i+)if(flight_no=flyi.flight_no)flag=1;printf(nThe flight message is:n);printf_onefli

22、ght(i);if(flag=1)printf(Found!);elseprintf(Not Found!);printf_back();void menu()int n,w;doputs(tt*MENU*nn);puts(tttt 1.enter new data);puts(tttt 2.Browse all);puts(tttt 3.Search);puts(tttt 4.exit);puts(nntt *n);printf(Choice your number(1-4): bb);scanf(%d,&n);if(n4)w=1;getchar();else w=0;while(w=1);switch(n)case 1:enter();break;case 2:Browse();break;case 3:Search();break;case 4:exit(0);/*主函数*/main()menu();/*菜单函数功能是替主函数调用个功能模块函数*/

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 考试专区 > 中考

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服