C语言课程设计飞机定票系统.doc

上传人:文库蛋蛋多 文档编号:2384860 上传时间:2023-02-17 格式:DOC 页数:82 大小:1.48MB
返回 下载 相关 举报
C语言课程设计飞机定票系统.doc_第1页
第1页 / 共82页
C语言课程设计飞机定票系统.doc_第2页
第2页 / 共82页
C语言课程设计飞机定票系统.doc_第3页
第3页 / 共82页
C语言课程设计飞机定票系统.doc_第4页
第4页 / 共82页
C语言课程设计飞机定票系统.doc_第5页
第5页 / 共82页
点击查看更多>>
资源描述

《C语言课程设计飞机定票系统.doc》由会员分享,可在线阅读,更多相关《C语言课程设计飞机定票系统.doc(82页珍藏版)》请在三一办公上搜索。

1、 课 程 设 计 报 告课程名称 C语言课程设计 课题名称 飞机订票系统 专 业 电子信息工程 班 级 0981 学 号 姓 名 指导教师 2010年6月25日湖南工程学院课 程 设 计 任 务 书课程名称 C程序设计 课 题 飞机订票系统 专业班级 电子信息工程0981 学生姓名 学 号 指导老师 审 批 任务书下达日期 2010年6 月 25日任务完成日期 2010年 7 月 10日 设计课题四:飞机订票系统一、问题描述:本系统可以用来实现对订票信息进行输出,显示,退票,查询,保存等,并保存文件中,以达到对飞机订票信息进行随时的订票,查询何退票的操作管理系统.二、功能描述:本系统采用一个包

2、含N个数据的结构体数组,每个数据的结构应当包括:航班号,出发地,目的地,价格,等信息,。完成以下模块:1.订票2.显示3.退票4.查询5.保存6.退出系统三、 测试四、其它:对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能。目录一、功能简介11.1主要功能介绍12.1输入输出的要求1二、概要设计22.1程序的模块22.2结构体22.3文件的定义3三、 测试数据43.1机票信息文件43.2旅客信息信息登记4四、详细设计54.1系统总体结构54.2密码模块函数 void checkcode()64.3机票信息录入void inputinfo()流程图74.4订票系统void boo

3、kticket()流程图84.5显示模块void display()流程图94.6退票系统void returnticket()流程图10五、使用说明115.1主界面115.2机票信息管理(保存)125.3订票系统使用155.4退票系统17六、课程设计总结196.1课程设计心得:196.2在程序设计中的问题和解决:19附录20源程序清单(带注释)201.机票信息录入(带注释):203.源程序清单:(附)31参考文献75计算机与通信学院课程设计评分表76一、功能简介1.1主要功能介绍 本程序能输入最多1000个机票信息,管理员在保存功能中通过密码验证输入机票信息,可以对机票信息进行查询;修改;删

4、除等功能。一般用户可以使用订票;显示;退票等功能,在订票时用户输入密码在退票时通过验证后成功退票。具体功能如下:1 、保存模块: 1 机票信息录入 2查询所有机票 3修改机票信息 4删除机票信息有机票信息的管理,对机票信息输入,查询,修改,删除。2、订票模块:当有机票信息后可以订票,订票时输入航班号(进入时有可以查询所有机票信息)出现航班信息,确定订票后输入个人信息:姓名,性别,证件号,联系电话,密码(退票时用)。出现您的个人信息,确定后回车订票结束。3显示模块: 1全部 2航班号 3出发地 4目的地按上述方式查看机票信息4退票模块:(可以选择查看航班信息) 1姓名 2证件号当输入姓名或证件号

5、后会显示您定的航班信息,再要求输入密码,当密码正确时会显示您的个人信息,回车再是否确定退票。5 查询模块:(输入管理密码)输入航班号,显示航班信息 和所有乘客个人信息2.1输入输出的要求当要输入密码时一般为1234,在界面中无提示时当要继续请按回车,其他的请按提示操作,由于时间和能力的关系没有考虑到意外情况请按提示操作。二、概要设计2.1程序的模块1、 保存模块:含有机票信息的管理,对机票信息输入,查询,修改,删除。2、订票模块:当有机票信息后可以订票,订票时输入航班号(进入时有可以查询所有机票信息)出现航班信息,确定订票后输入个人信息:姓名,性别,证件号,联系电话,密码(退票时用)。出现您的

6、个人信息,确定后回车订票结束。3、显示模块:含全部;航班号;出发地;目的地等方式查询所有机票信息。4、退票模块:当输入姓名或证件号后会显示您定的航班信息,再要求输入密码,当密码正确时会显示您的个人信息,回车再是否确定退票。5 查询模块:(输入管理密码)输入航班号,显示航班信息 和所有乘客个人信息2.2结构体struct travellerinfo/旅客信息结构char fightnum 10;/航班号char name 10; /姓名char sex 5; /性别char idnum 20;/证件号码char password 10;/密码char poto 12; /联系电话;struct

7、fightinfo/机票信息结构体char fightnum 10;/航班号char start 8;/出发地char destination 8;/目的地unsigned int price;/价格unsigned int goyear;/出发时间 年unsigned int gomoth;/月unsigned int goday;/日unsigned int gohour;/时unsigned int gominute;/分unsigned int arryear;/到达时间 年unsigned int arrmoth;/月unsigned int arrday;/日unsigned in

8、t arrhour;/时unsigned int arrminute;/分unsigned int rebate;/折扣unsigned int allsticket;/总票数unsigned int surplusticket;/剩余票数;struct allfightinfo /机票全部结构struct travellerinfo fight;/旅客信息结构struct fightinfo fight1;/机票信息结构体;2.3文件的定义FILE *travellerfile=NULL; /存旅客信息数据文件FILE *fightfile=NULL; /存机票信息数据文件char file

9、name=旅客信息信息登记.dat; /记录旅客信息登记char filename1=机票信息.dat; /记录机票信息三、 测试数据3.1机票信息文件航班号出发地目的地 价格 发月-日| 时-分到月-日| 时-分|折扣| 总票|余票123 长沙 衡阳 170 1-1 12: 0 2-2 13: 0 89 240 238T1234 衡阳 广州 280 1-1 12:0 2-2 13: 0 60 240 240 T12345 衡阳 广州 230 1-1 12:11 2-2 13:12 60 241 2413.2旅客信息信息登记航班号 | 姓名 | 性别| 证件号 | 联系电话 | 密码 123

10、肖双喜 男 200913020127 15292283221 123123 余荣川 男 200913020128 2142452314 12345 四、详细设计4.1系统总体结构 订票输入航班号查询所有航班输入旅客信息 全部显示 航班号 出发地飞机订票系统 目的地姓名 退票查询所有航班退证件号航班信息和旅客信息输入航班号密码查询 机票信息录入 查询所有机票保存 修改机票删除机票信息图4.1系统总体结构图在这个总体框架中,我们可以整体地看到这个系统运行流程,所调用几个重要函数。4.2密码模块函数 void checkcode()该模块包括密码的输入并验证,修改密码。算法如下:初始化密码到co20

11、密码正确?输入要验证的密码到co120并验证读出正确密码到co20打开文件成功?开始打开code.txtN Y将该密码写入到code.txtN重新输入 Y密码正确?进入管理系统结束密码验证4.3机票信息录入void inputinfo()流程图打开文件读取数据输入航班号输入出发信息 无效重新输入 无效重新输入输入到达信息 折扣 无效重新输入 写入文件是否输入下一个信息结束4.4订票系统void bookticket()流程图在有航班信息的情况下可以进行订票操作。开始打开文件1否读取文件1 是否打开文件2 是否读取文件2 是否查询所有 是否显示航班信息输入航班号显示航班信息确定订票否输入个人信息

12、保存提示放弃结束4.5显示模块void display()流程图显示模块打开文件否 是读取数据 有无数据 否 是显示查询方式全部查询是 否输入查询信息显示航班信息返回显示所有或条件航班信息4.6退票系统void returnticket()流程图开始打开文件1否读取文件1 是否打开文件2 是否读取文件2 是否显示信息输入方式 是输入方式及信息显示航班信息密码?否显示个人信息提示密码错误确定退票结束五、使用说明 5.1主界面5-11.程序欢迎界面(对系统的说明,及程序分组名单)停留15s 5-2 2、程序主界面(按数字1-5 再回车)进入其他功能5.2机票信息管理(保存)5-31、输入密码(第一

13、次设置密码1234)机票信息管理5-42、 选1进入机票信息录入5-53、 选2查询所有航班信息5-64、 选3修改航班信息,确定后进入查询所有航班 5-7 5、 输入航班号 显示航班信息 要求输入修改信息5-86、 删除请谨慎,全部删除会删除所有文件5.3订票系统使用5-81、定票时查询所有的航班信息5-92、输入正确的航班号5-103、 订票时输入个人信息5.4退票系统5-111、进入退票系统是否查询所有机票信息5-122、选择输入信息输入的方式并输入5-133、退票时的信息显示然后确定六、课程设计总结6.1课程设计心得: 课程设计给我一个学以致用的机会,刚开始的时候还以为学这黑黑的东西没

14、用,只是一些简单的计算。经过了这次的练习我才发现原来的黑屏有它自己的好处,通过学习也发现原来这种黑屏就是那些应用程序的原型,不论你以后学程序开发还是网页的制作都有很好大好处,这些基础是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。回顾起此次课程设计,至今我们仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多

15、在书本上所没有学到过的知识。通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。通过这次的学习我发现以后不管是哪一科我们尽量要把它拿过来使用,只有把知识应用到实际生活中才能说这知识是自己的啦。在以后找工作中这些作品就会是我的学习凭证,是我的能力的体现,不难想象一个公司要的是一些实际的东西不需要太多的理论。6.2在程序设计中的问题和解决:在订票系统中我们发现,在订票时我们的把机票信息中的剩余票数要减少一个,而在退票时我们的把剩余票数加以个,由于在文

16、件的定义时不好把机票信息文件和旅客信息文件放一起,所以在修改机票剩余票数的是侯的打开两个文件然后得对两个文件进行修改。再保存模块得把机票的信息录入进去,所以有很多不分都得写,像机票信息的录入,修改,删除,这样一来就像是写一个机票信息管理系统一样,这样一来导致这个文件会很大,很繁琐。但是还好c语言是面向过程的导致很多的程序代码重复,这样就在写好一部分代码以后就可以进行复制,然后进行修改就行,总体来说工作量还不是很大。.附录源程序清单(带注释)1.机票信息录入(带注释):/*机票信息录入*/void inputinfo(struct allfightinfo *p_fight)int count;

17、/变量的定义char ch,ch1;/定义变量system(cls);/清屏if(fightfile=fopen(filename1,a+b)=NULL)/打开文件printf(不能打开文件,请确认磁盘已满或 机票信息.dat文件没有损坏);getch();exit(1);/不能打开时的处理rewind(fightfile); /定位文件头开始读取for(count=0;fread(&p_fightcount.fight1,sizeof(struct fightinfo),1,fightfile)=1;count+)continue; /读取并计数已经存的数据量printf(ntt-您好,欢迎

18、进入中国民航机票信息登记系统!-n);/输出字符及提示语句printf(nttt 飞机票信息登记表n);printf(n请正确填写以下信息(系统目前不能完全支持中文(中文有可能出错),请用英文或拼音n); printf(-nn);printf(航班号:);while(countfightMAX&gets(p_fightcount.fight1.fightnum)!=NULL /输入航班号&p_fightcount.fight1.fightnum0!=0)printf(n出发地:);gets(p_fightcount.fight1.start); /输入出发地printf(n目的地:);gets

19、(p_fightcount.fight1.destination); /输入目的地fflush(stdin);/清空缓存printf(n价格:);scanf(%d,&p_fightcount.fight1.price);/输入价格fflush(stdin);/清空缓存ye:printf(n出发时间年:);scanf(%d,&p_fightcount.fight1.goyear);/输入出发时间if(!(1500p_fightcount.fight1.goyear&p_fightcount.fight1.goyear4000)/ 判断年份是否为有效值printf(ntt您输入的年份有点不和实际!

20、请确定是否重新输入(y/n);/不符合时的处理(下面的输入一样)ch1=getch();if(ch1=n|ch=N)/询问出错时是否重新输入printf(ntt您放弃重新输入年份!);goto mo;/转至输入月份printf(ntt请重新输入年份!);goto ye;/转至输入年份fflush(stdin);/清空缓存mo:printf(n出发时间月:);scanf(%d,&p_fightcount.fight1.gomoth);/时间的输入if(!(0p_fightcount.fight1.gomoth&p_fightcount.fight1.gomoth=12)/判断是否有效printf

21、(ntt您输入的月份有点不和实际!请确定是否重新输入(y/n);/无效时的处理ch1=getch();if(ch1=n|ch=N)printf(ntt您放弃重新输入月份!);goto da;/转至输入时间天printf(ntt请重新输入月份!);goto mo;/转至输入时间月fflush(stdin);/清空缓存da:printf(n出发时间日:);/时间天的输入scanf(%d,&p_fightcount.fight1.goday);if(!(0p_fightcount.fight1.goday&p_fightcount.fight1.goday=31)/判断是否有效printf(ntt您

22、输入的日有点不和实际!请确定是否重新输入(y/n);/无效时的处理ch1=getch();if(ch1=n|ch=N)printf(ntt您放弃日重新输入!);goto go;/转至输入出发时间printf(ntt请重新输入日!);goto da;/转至输入时间天fflush(stdin);/清空缓存go:printf(n出发时间时:);/出发时间时的输入scanf(%d,&p_fightcount.fight1.gohour);if(!(0=p_fightcount.fight1.gohour&p_fightcount.fight1.gohour=23)/不合适时的处理printf(ntt您

23、输入的时间有点不和实际!请确定是否重新输入(y/n);ch1=getch();/输入一个字符if(ch1=n|ch=N)/判断字符printf(ntt您放弃时间重新输入!);goto gomi;/转至出发分的输入printf(ntt请重新输入时间!);goto go;fflush(stdin);gomi:printf(n出发时间分:);scanf(%d,&p_fightcount.fight1.gominute);if(!(0=p_fightcount.fight1.gominute&p_fightcount.fight1.gominute=59)printf(ntt您输入的时间有点不和实际!

24、请确定是否重新输入(y/n);ch1=getch();if(ch1=n|ch=N)printf(ntt您放弃时间重新输入!);goto arry;printf(ntt请重新输入时间!);goto gomi;fflush(stdin);arry:printf(n到达时间年:);/输入到达时间scanf(%d,&p_fightcount.fight1.arryear);if(p_fightcount.fight1.arryearp_fightcount.fight1.goyear)/判断输入到达的年份是否为有效,到达时间不能小于出发时间(下同)printf(您输入的到达时间小于起飞时间,请重新输入

25、到达时间年!);goto arry;if(!(1500p_fightcount.fight1.arryear&p_fightcount.fight1.arryear4000)printf(ntt您输入的年份有点不和实际!请确定是否重新输入(y/n);ch1=getch();if(ch1=n|ch=N)printf(ntt您放弃重新输入年份!);goto arrm;printf(ntt请重新输入年份!);goto arry;fflush(stdin);arrm:printf(n到达时间月:);scanf(%d,&p_fightcount.fight1.arrmoth);if(p_fightcou

26、nt.fight1.arryear=p_fightcount.fight1.goyear&p_fightcount.fight1.arrmothp_fightcount.fight1.gomoth)printf(您输入的到达时间小于起飞时间,请重新输入到达时间月!);goto arrm;if(!(0p_fightcount.fight1.arrmoth&p_fightcount.fight1.arrmoth=12)printf(ntt您输入的月份有点不和实际!请确定是否重新输入(y/n);ch1=getch();if(ch1=n|ch=N)printf(ntt您放弃重新输入月份!);goto

27、arrd;printf(ntt请重新输入月份!);goto arrm;fflush(stdin);arrd:printf(n到达时间日:);scanf(%d,&p_fightcount.fight1.arrday);if(p_fightcount.fight1.arrmoth=p_fightcount.fight1.gomoth&p_fightcount.fight1.arrdayp_fightcount.fight1.goday)printf(您输入的到达时间小于起飞时间,请重新输入到达时间日!);goto arrd;if(!(0p_fightcount.fight1.arrday&p_fi

28、ghtcount.fight1.arrday=31)printf(ntt您输入的日有点不和实际!请确定是否重新输入(y/n);ch1=getch();if(ch1=n|ch=N)printf(ntt您放弃日重新输入!);goto arrh;printf(ntt请重新输入日!);goto arrd;fflush(stdin);arrh:printf(n到达时间时:);scanf(%d,&p_fightcount.fight1.arrhour);if(p_fightcount.fight1.arrmoth=p_fightcount.fight1.gomoth&p_fightcount.fight1

29、.arrday=p_fightcount.fight1.goday&p_fightcount.fight1.arrhourp_fightcount.fight1.gohour)printf(您输入的到达时间小于起飞时间,请重新输入到达时间时!);goto arrh;if(!(0=p_fightcount.fight1.arrhour&p_fightcount.fight1.arrhour=23)printf(ntt您输入的时间有点不和实际!请确定是否重新输入(y/n);ch1=getch();if(ch1=n|ch=N)printf(ntt您放弃时间重新输入!);goto arrmi;prin

30、tf(ntt请重新输入时间!);goto arrh;fflush(stdin);arrmi:printf(n到达时间分:);scanf(%d,&p_fightcount.fight1.arrminute);if(p_fightcount.fight1.arrmoth=p_fightcount.fight1.gomoth&p_fightcount.fight1.arrday=p_fightcount.fight1.goday&p_fightcount.fight1.arrhour=p_fightcount.fight1.gohour&p_fightcount.fight1.arrminutep_

31、fightcount.fight1.gominute)printf(您输入的到达时间小于起飞时间,请重新输入到达时间分!);goto arrmi;if(!(0=p_fightcount.fight1.arrminute&p_fightcount.fight1.arrminute=59)printf(ntt您输入的时间有点不和实际!请确定是否重新输入(y/n);ch1=getch();if(ch1=n|ch=N)printf(ntt您放弃时间重新输入!);goto reb;printf(ntt请重新输入时间!);goto arrmi;fflush(stdin);reb:printf(n折扣:);

32、scanf(%d,&p_fightcount.fight1.rebate);if(!(0p_fightcount.fight1.rebate&p_fightcount.fight1.rebatep_fightcount.fight1.allsticket)printf(您输入的剩余票不合乎实际!请重新输入!);goto surp;fflush(stdin);/清空缓存fwrite(&p_fightcount+.fight1,sizeof(struct fightinfo),1,fightfile); /将信息写入文件 printf(是否录入下一个飞机票信息(y/n);/询问是否输入下一个机票信

33、息ch=getch(); /输入一个字符if(ch=y|ch=Y)/判断字符的输入system(cls);printf(n请输入下一个飞机票信息n);printf(n航班号:); continue; /继续输入下一个飞机票信息 elseprintf(nn飞机票信息录入结束,返回!);fclose(fightfile); /关闭文件 getch(); /返回子菜单system(cls);/清屏return ; printf(输入有误,终止飞机票信息录信,返回!);getch();/等待输入字符system(cls);return ; /返回 3.源程序清单:(附)/* * * Author:飞机

34、订票系统组 * Datetime:2010/06*/#include#include#include#include#include#define fightMAX 1000void inputinfo(struct allfightinfo *);/机票信息录入void filename1read (struct allfightinfo *);/旅客信息信息读取void allabout(struct allfightinfo *); /查询所有信息void mofinfo(struct allfightinfo *);/修改机票信息void password();/密码验证int checkcode();/身份验证void allabout(struct allfightinfo *); /查询所有信息void mofin

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号