最新版C语言飞机订票系统毕业课程设计.docx
- 文档编号:12233713
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:30
- 大小:33.54KB
最新版C语言飞机订票系统毕业课程设计.docx
《最新版C语言飞机订票系统毕业课程设计.docx》由会员分享,可在线阅读,更多相关《最新版C语言飞机订票系统毕业课程设计.docx(30页珍藏版)》请在冰豆网上搜索。
最新版C语言飞机订票系统毕业课程设计
应用技术学院
课程设计报告
课程名称:
C语言程序设计
课题名称:
飞机订票系统
专业:
土木工程
班级:
1284班
学号:
姓名:
伍元桔
指导教师:
王颖
2014年1月6日
任务书
《C语言程序设计》课程设计是对学生的一种全面综合训练,它包括问题分析,总体结构设计,用户界面设计,程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。
是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。
通常,课程设计的课题比平时的习题复杂得多,也更接近实际。
课程设计着眼于与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变“活”,使学生更好地深化理解和灵活掌握教学内容。
为了达到上述目的,本课程设计安排了八个设计课题,训练重点在于基本的程序设计方法和分析问题的能力,而不强调面面俱到。
学生可任选其中一题进行设计,设计完毕写出课程设计报告,用A4纸打印成册;并将课程设计报告与源程序存盘。
学习委员将课程设计报告与磁盘收齐后交指导老师。
-、目的
全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。
二、基本情况
课程类别:
必修课
课程学分:
1学分
课程学时:
1周
课程对象:
土木工程1284班
三、时间安排
时间
任务
下午1:
00—5:
00
指导老师给学生布置课程设计的任务及要求
到
学生根据设计任务及要求,对系统进行需求分析、概要设计和详细设计,并在此基础上编写程序代码
学生提交系统程序清单初稿
上机调试程序
修改并完善程序并上机调试程序
接受指导老师的验收
到
书写课程设计报告
提交课程设计报告
课程设计报告规范
一、需求析分
1、程序的功能。
2、输入输出的要求。
二、概要设计
1、程序由哪些模块组成以及一个模块之间的层次结构、模块的调用关系;每个模块的功能。
2、课题的总体数据结构和数据库结构;即要存储什么数据,这些数据是什么样的结构,它们之间有什么关系等。
三、详细设计
1、采用C语言定义相关的数据类型。
2、写出各模块的类C码算法。
3、画出函数的调用关系图。
四、调试分析以及设计体会
1、测试数据:
准备典型的测试数据和测试方案,包括正确的输入及输出结果和含有错误的输入及输出结果。
2、程序调试中遇到的问题以及解决问题的方法。
3、课程设计过程经验教训、心得体会。
五、使用说明
用户使用手册:
说明如何使用你编写的程序,详细列出每一步的操作步骤。
六、附录
1、参考书目
2、源程序清单(带注释)
附1:
●课程设计报告装订顺序:
封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。
●正文的格式:
一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。
●正文的内容:
一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。
●正文总字数要求在5000字以上(不含程序原代码)。
目录
一、绪论1
1.1项目背景描述1
1.2问题定义...........................................1
1.3思考1
二、需求分析2
2.1问题描述:
6
2.2功能描述:
7
2.3算法提示:
7
2.4、测试数据:
7
2.5其它:
7
第三章总体设计7
3.1课程设计题目:
7
3.2.内容摘要:
8
3.3.关键字:
8
3.4.总体设计方案的选定:
8
四、详细设计5
4.1采用C语言定义相关的数据类型………………………………..5
4.2写出各模块的类C码算法………………………………………..5
4.3机票信息录入voidinputinfo()流程图7
4.4订票系统voidbookticket()流程图8
4.5显示模块voiddisplay()流程图9
4.6退票系统voidreturnticket()流程图10
五、测试.................................................10
六、使用说明11
5.1主界面11
5.2机票信息管理(保存)12
5.3订票系统使用15
5.4退票系统17
七、课程设计总结19
6.1课程设计心得:
19
6.2在程序设计中的问题和解决:
19
附录20
源程序清单(带注释)20
1.机票信息录入(带注释):
20
3.源程序清单:
(附)31
参考文献75
第一章绪论
1.1:
项目背景描述
1、课程设计性质与目的:
C语言程序设计是一门实践性很强的课程。
C程序课程设计是学习C语言
程序设计的非常重要的实践环节,通过本课程设计使学生进一步巩固课堂所
学,全面熟悉,掌握C语言程序设计的基本方法和技巧,进一步提高编写程
序、分析程序及上机操作、调试程序的能力,让学生加深理解书上所学的知识
,提高动手操作能力及分析问题和解决问题的能力。
2、课程设计包含的知识点:
1.掌握并熟练利用C语言的基本数据类型与各种表达式,程序的流程控制语
句。
2.掌握数组的基本概念。
掌握一维数组与二维数组的使用,掌握字符数组与
字符串的关系。
3.熟练掌握指针、地址、指针类型的概念及其使用。
掌握指针变量的定义与初始化、指针的间接访问和表达式,掌握指针与数组、函数、字符串的联系
4.掌握函数的定义,函数的返回值,函数的调用,函数的声明,函数的形式参数和实际参数之间的关系,了解函数的作用区间。
5.掌握结构体的概念,结构体类型的定义,结构体变量的定义和初始化,结构体成员的表示。
结构体与指针、函数的关系。
1.2:
问题的定义
假设某航空公司只有M架N个座位的飞机,每架飞机每天飞行一趟。
通过该系统来实现机票的订购问题。
第二章需求分析
一、问题描述:
假设某航空公司只有M架N个座位的飞机,每架飞机每天飞行一趟。
通过该系统来实现机票的订购问题。
二、功能要求:
1、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:
起飞地、目的地航班号、座次号码、座次订出与否标记、订座者的姓名和订座者的身份证号码。
2、本系统显示这样的菜单:
(1)输入航班信息
(2)输出航班信息
(3)查找航班信息
a.显示空座的数量
b.显示空座的信息
c.显示已订座的信息
d.起飞时间
(4)订票预约
(5)删除定票预约
(6)退出系统
1、本系统成功执行菜单的每个信息,选项4)和5)将要求额外的输入,并且它们都允许用户收回其输入。
2、查找航班信息既可按线路查,也可按目的地查。
4、在两次运行之间,数据被保存于一个文件里,当本程序重新开
始的时候,它首先从该文件读入数据
三、算法提示:
1、数据结构:
结构体类型数组
2、数据库结构:
下表构成该系统的基本数据库。
航班号
起飞时间
目的地
座次号
座次订出与否的标记
订票者姓名
订票者身份证号码
int
char
char
int
Char
char
char
四、测试数据:
每架飞机的座位N=12,M=5
五、其它:
对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能。
第三章总体设计
课程设计主文档
3.1课程设计题目:
飞机订票系统
3.2.内容摘要:
假设某航空公司只有M架N个座位的飞机,每架飞机每天飞行一趟。
通过该系统来实现机票的订购问题。
3.3.关键字:
函数数组结构体文件循环语句多分支结构
3.4.总体设计方案的选定:
程序的功能要求:
1、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:
起飞地、目的地航班号、座次号码、座次订出与否标记、订座者的姓名和订座者的身份证号码。
2、本系统显示这样的菜单:
(4)输入航班信息
(5)输出航班信息
(6)查找航班信息
a.显示空座的数量
b.显示空座的信息
c.显示已订座的信息
d.起飞时间
(4)订票预约
(5)删除定票预约
(6)退出系统
3、本系统成功执行菜单的每个信息,选项4)和5)将要求额外的输入,并且它们都允许用户收回其输入。
4、查找航班信息既可按线路查,也可按目的地查。
4、在两次运行之间,数据被保存于一个文件里,当本程序重新开
始的时候,它首先从该文件读入数据
第四章详细设计
4.1采用C语言定义相关的数据类型
structtravellerinfo旅客信息结构
{
charfightnum[10];航班号
charname[10];姓名
charsex[5];性别
charidnum[20];证件号码
charznum[12];座次号码
charflage[2];座次定出与否标记
charpoto[12];联系电话
};
structfightinfo机票信息结构体
{
charfightnum[10];航班号
charstart[8];出发地
chardestination[8];目的地
unsignedintprice;价格
unsignedintgoyear;出发时间年
unsignedintgomoth;月
unsignedintgoday;日
unsignedintgohour;时
unsignedintgominute;分
unsignedintarryear;到达时间年
unsignedintarrmoth;月
unsignedintarrday;日
unsignedintarrhour;时
unsignedintarrminute;分
unsignedintallsticket;总票数
unsignedintsurplusticket;剩余票数
};
structallfightinfo机票全部结构
{
structtravellerinfofight;旅客信息结构
structfightinfofight1;机票信息结构体
};
4.2写出各模块的类C码算法
4.2系统总体结构
退
4.3机票信息录入voidinputinfo()流程图
无效重新输入
无效重新输入
无效重新输入
4.4订票系统voidbookticket()流程图
在有航班信息的情况下可以进行订票操作。
否
是
否
是
否
是
否
是
否
否
4.5显示模块voiddisplay()流程图
否
是
否
是
是
否
4.6退票系统voidreturnticket()流程图
否
是
否
是
否
是
否
是
否
第五章测试
(1)menu()函数
第七章总结
一周的C语言课程设计即将结束,现在回想起来真是五味俱全,从开始的懵懂无知到现在做出一本挺有厚度的资料,我不但实践了课本的知识,还制作出心算小程序,虽然很多人帮了我的忙,仍旧感觉自己对C语言有了深入的了解,还是有所成长,有所收获,在实践中,自己编程常会犯错误,并总结一些克服缺点的方法。
深刻体会到程序设计中最重要的一部分不是编写源程序,而是调试过程。
只有经过调试程序,我们才能掌握正确的语法知识及把问题的解决方法用程序语言来表达。
其实这一周遇到了不少的挫折,第一次上机就有些不知所措,到底该从何下手呢?
后来有朋友同学的鼓励,慢慢调整心态,开始动手操作,原来编程很有意思,有时遇到了一个错误怎么找也找不到原因所在,找了老半天结果却是一个函数放错了地方所致,有时一个功能不知道怎么实现找这个、找那个。
有所编到最后一运行却告诉我错误,那真的很让人恼火。
以前上课都是学一些最基本的东西,觉得很枯燥,而现在却可以将以前学的东西编出有实际价值的东西,这样自己非常的投入,其实什么事情只要自己用心了,就会有所感触,有所收获。
真的觉得有味道,生活都变充实了。
此次程序设计主要用了函数的调用,if、else选择语句,switch语句,时间函数,标准输入输出、随机取整函数等基本知识点,结合课本知识加上自己的应用结果颇为令人满意,但是还有很多的缺陷与不足,这是我可以清醒认识到的。
C语言是一项细致深入的工作,不仅要有严谨的思路,还要在实践中有耐心,要细心,如果无法沉着冷静,真的会看不到结果,毫无收获的。
C语言又是一种系统开发语言。
这一个学期对C语言的接触让我明白了自己的不足之处,对书上内容的理解不够透彻。
这一周的课程设计让我们有机会上机调试,我才发现我们的程序存在这么多的漏洞和错误。
我经过了一个下午的时间,在老师的指导下,检查调试这程序,终于让它能够运行了。
但是课程设计并不是那么的简单,能运行的程序并不代表就是对的,我们还要按要求测试数据,一点一滴的把程序按要求做出来。
通过这次的课程设计,我受益匪浅。
它让我了解了细心的重要性,程序中若有一丝一点的错误就会影响整个程序,而使其不能运行。
当我第一次拿到课程设计的任务书的时候,我都非常的兴奋,因为这是我们一次很好的锻炼机会。
我经过一周的C语言课程设计,我不但实践了课本的所学的知识,还亲自制作了自己的小程序,感觉自己对C语言有了更深入的了解。
在实践过程中,自己编程的时候常常会犯错误,并总结了一些克服缺点的方法。
而且更深刻体会到程序设计中最重要的一部分不是编写源程序,而是调试过程。
只有经过调试程序,我们才能掌握正确的语法知识及把问题的解决方法用程序语言来表达。
在设计程序的同时也增长了翻阅有关文献的能力,加强了实践能力及自学能力,培养了分析问题、编程和动手能力,掌握了程序设计基本技能。
在调试过程中,特别让我印象深刻的是自己开始在程序调试的时候,开始并没有并没有看到预期的结果,最后我仔细检查了源程序代码,发现自己在申明函数的时候,出现了一个严重的语法问题,导致我整个程序都不能运行。
我开始心理发慌起来,我开始放弃自己的先前做的工作,觉得自己是第一次做设计,第一次看到这么长的程序代码,有理由放弃,但是,想着自己很辛苦的写了这么久,还是不想放弃,我开始慢慢去找我出的问题,我从头到尾检查了一面,终于发现了问题之所在,我的心情顿时高兴起来,终于看到了希望!
我越来越兴奋,我从新把源程序放入WIN-TC中进行调试,终于是“柳岸花明又一村”。
同时也让我真正体会到一句话:
“胜利永远是属于永不放弃的人!
”
当然在本次课程设计的过程中遇到不止上面那一个困难,也有很多困难被我解决了。
比如,有一个操作上的功能错误。
我怎么找也找不到原因所在,找了老半天结果却是操作错误把一个函数放错了地方所致。
有的时候一个功能不知道怎么实现找这个、找那个源代码都不行。
当编译到最后一行运行却告诉我错误,那真的很烦人。
以前上课都是学一些最基本的东西,觉得很枯燥,而现在却可以将以前学的东西编出有实际价值的东西,这样自己非常的投入,有时候一编就是二三个小时坐在电脑前面,有时候连吃饭都忘了。
但现在回过头来看,还是挺有成就感的。
通过本次课程设计的学习,我体会到学好计算机一定要重视实践环节,不仅是在学习C语言,还是其他计算机语言都是一样的重要。
所以我以后在学习过程中更加重视实践环节的重要性。
这样我相信自己的计算机水平一定会取得更好的进步!
我总结了一下本次程序课程设计主要用了函数的调用,if、else选择语句,switch语句,时间函数,标准输入输出、随机取整函数等基本知识点,结合课本知识加上自己的应用最终取得圆满成功。
C语言是一项细致深入的工作,不仅要有严谨的思路,还要在实践中有耐心,要细心。
这一点我亲身体会到了!
以下是课程设计中的错误总结和分析:
①变量是程序中不可缺少的一部分,要谨记先定义后使用。
②输入输出类型要一致。
③“;”是C语言的语句结束语,不可省略。
④{}的互相匹配。
⑤调用函数必先声明。
⑥形式参数和实际参数必须个数相等,类型相同。
最后,感谢在C语言学习及课程设计中对我指导的老师和同学!
附1:
源代码
#include voidmenu(); voidmenu1(); voidinput(inti) { printf("请输入航班代号: \n"); scanf("%s",ti[i].ID); printf("请输入起飞地点: \n"); scanf("%s",ti[i].BePlace); printf("请输入降落地点: \n"); scanf("%s",ti[i].EnPlace); printf("请输入起飞时间: \n"); scanf("%s",ti[i].data); printf("请输入航班的最大载客人数: \n"); scanf("%d",&ti[i].max); printf("请输入航班的票价: \n"); scanf("%d",&ti[i].price); ti[i].num=0; } voidenter() { inti; system("cls"); printf("请输入航班的数目(0-%d)? : ",N); scanf("%d",&n);*要输入的记录个数* printf("\n请输入数据\n\n"); for(i=0;i { printf("\n请输入第%d航班记录.\n",i+1); input(i);*调用输入函数* } getchar(); menu(); } voidprintf_one(inti)*显示一个记录的函数* { printf("%11s%6s%10s%6s%6d%6d%6d",ti[i].ID,ti[i].BePlace,ti[i].EnPlace,ti[i].data,ti[i].price,ti[i].max,ti[i].num); } voidbrowse() { inti; system("cls"); puts("\n"); printf("\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\n"); for(i=0;i { printf_one(i); printf("\n"); } getchar(); getchar(); menu(); } voidorder()*排序模块(按平均成绩)* { inti,j; structplanes; system("cls"); for(i=0;i { for(j=i+1;j if(strcmp(ti[i].data,ti[j].data)>0) { s=ti[i]; ti[i]=ti[j]; ti[j]=s;} } browse(); } voidsearch_time() { inti,m=0; structplanes; system("cls"); printf("\n\nEnterthetime: "); scanf("%s",s.data);*输入出发的时间* puts("\n"); printf("\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\n"); for(i=0;i { if(strcmp(s.data,ti[i].data)==0) { m++; if((m! =0)&&(m%10==0))*目的是分屏显示* { printf("\n\nPressanykeytocontiune..."); getchar(); puts("\n\n"); } printf_one(i); printf("\n"); *调用显示一个记录的函数* } } puts("\n"); getchar();*按任意健* getchar(); menu1(); } voidserch_end() { inti,m=0; structplanes; system("cls"); printf("\n\nEntertheendPlace: "); scanf("%s",s.EnPlace);*输入要到达的地方* puts("\n"); printf("\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\n"); for(i=0;i { if(strcmp(ti[i].EnPlace,s.EnPlace)==0) { m++; if((m! =0)&&(m%10==0))*目的是分屏显示* { printf("\n\nPressanykeytocontiune..."); getchar(); puts("\n\n"); } printf_one(i); printf("\n"); *调用显示一个记录的函数* } } puts("\n"); getchar();*按任意健* getchar(); menu1(); } voidmenu1() { intn,w1; do { system("cls");*清屏* puts("\t\t\t\t飞机售票操作! \n\n"); puts("\t\t*********************MENU*********************\n\n"); puts("\t\t\t\t1.按照时间排序"); puts("\t\t\t\t2.按照时间查找航班"); puts("\t\t\t\t3.按照地点查找航班"); puts("\t\t\t\t4.返回主菜单"); puts("\n\n\t\t***************************************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新版 语言 飞机 订票 系统 毕业 课程设计