C语言程序设计课程设计报告书—飞机订票系统.doc

上传人:scccc 文档编号:11139344 上传时间:2021-07-04 格式:DOC 页数:43 大小:252.53KB
返回 下载 相关 举报
C语言程序设计课程设计报告书—飞机订票系统.doc_第1页
第1页 / 共43页
C语言程序设计课程设计报告书—飞机订票系统.doc_第2页
第2页 / 共43页
C语言程序设计课程设计报告书—飞机订票系统.doc_第3页
第3页 / 共43页
C语言程序设计课程设计报告书—飞机订票系统.doc_第4页
第4页 / 共43页
C语言程序设计课程设计报告书—飞机订票系统.doc_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《C语言程序设计课程设计报告书—飞机订票系统.doc》由会员分享,可在线阅读,更多相关《C语言程序设计课程设计报告书—飞机订票系统.doc(43页珍藏版)》请在三一文库上搜索。

1、课 程 设 计 报 告课程名称 C语言程序设计 课题名称 飞机订票系统 专 业 电气工程及其自动化 班 级 电气 学 号 姓 名 指导教师 年 月 日课 程 设 计 任 务 书课程名称 C语言程序设计 课 题 飞机订票系统 专业班级 电气工程及其自动化班 学生姓名 学 号 指导老师 审 批 任务书下达日期 年 月 日任务完成日期 年 月 日前 言C语言程序设计课程设计是对学生的一种全面综合训练,它包括问题分析,总体结构设计,用户界面设计,程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。通常,课程设计的课题

2、比平时的习题复杂得多,也更接近实际。课程设计着眼于与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变“活”,使学生更好地深化理解和灵活掌握教学内容。为了达到上述目的,本课程设计安排了八个设计课题,训练重点在于基本的程序设计方法和分析问题的能力,而不强调面面俱到。学生可任选其中一题进行设计,设计完毕写出课程设计报告,用A4纸打印成册;并将课程设计报告与源程序存盘。学习委员将课程设计报告与磁盘收齐后交指导老师。一、目的全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,

3、把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。二、设计要求掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。1. 设计正确,方案合理。2. 界面友好,使用方便。3. 程序精炼,结构清晰。4. 设计报告5000字以上,含程序设计说明,用户使用说明,源

4、程序清单及程序框图。5. 上机演示。6. 按学号顺序选课题号,并在规定的时间内独自完成相关课题的C源程序编写、调整和运行。源程序及编译生成各文件均保存在软盘中;7. 按本任务书的要求,按附录的要求编写课程设计报告(Word文档格式)。并用A4的复印纸打印并装订; 8. 在2015年6月30日之前,请各班学习委员收齐课程设计报告和源程序交王颖老师 ,联系电话:18607323600。三、进度安排第一周 星期四: 课题讲解,查阅资料第二周星期一: 总体设计,详细设计星期二: 编程,上机调试、修改程序星期三:上机调试、完善程序星期四:上机调试、完善程序星期五: 答辩星期六-星期天:撰写课程设计报告

5、课程设计报告规范一、 需求分析1、程序的功能。2、输入输出的要求。二、 概要设计1、程序由哪些模块组成以及一个模块之间的层次结构、模块的调用关系;每个模块的功能。2、课题的总体数据结构和数据库结构;即要存储什么数据,这些数据是什么样的结构,它们之间有什么关系等。三、 详细设计1、采用C语言定义相关的数据类型。2、写出各模块的类C码算法。3、画出函数的调用关系图。四、 调试分析以及设计体会1、测试数据:准备典型的测试数据和测试方案,包括正确的输入及输出结果和含有错误的输入及输出结果。2、程序调试中遇到的问题以及解决问题的方法。3、课程设计过程经验教训、心得体会。五、 使用说明用户使用手册:说明如

6、何使用你编写的程序,详细列出每一步的操作步骤。六、 书写格式1、 设计报告要求用A4纸打印成册:2、 标题和正文要求见附13、 封面格式如下页。七、 附录1、参考书目2、源程序清单(带注释)附1:l 课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。 l 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。l 正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。l 正文

7、总字数要求在5000字以上(不含程序原代码)。目录第一章、绪论11.1课程背景11.2问题定义2第二章、需求分析42.1 功能要求:4第三章、概要设计53.1 课程设计题目:53.2 模块内容:53.3模块功能:.5第四章、详细设计54.1数据类型.64.2 系统总体结构 74.3机票信息录入void shuru()流程图84.4订票系统void book()流程图94.5显示模块void chakongweixinxi()流程图104.6退票系统void tuipiao()流程图11第五章、测试125.1主界面125.2输入航班信息125.3输出航班信息135.4查询航班信息135.5订票系

8、统. 145.6退票系统14 5.7退出系统15第六章、使用说明 16第七章、课程设计总结 17附1: 源代码 20 参考资料 36第一章 绪论1.1:项目背景描述1、课程设计性质与目的:C语言程序设计是一门实践性很强的课程。C程序课程设计是学习C语言程序设计的非常重要的实践环节,通过本课程设计使学生进一步巩固课堂所学,全面熟悉,掌握C语言程序设计的基本方法和技巧,进一步提高编写程序、分析程序及上机操作、调试程序的能力,让学生加深理解书上所学的知识,提高动手操作能力及分析问题和解决问题的能力。2、课程设计包含的知识点:1掌握并熟练利用C语言的基本数据类型与各种表达式,程序的流程控制语句。2掌握

9、数组的基本概念。掌握一维数组与二维数组的使用,掌握字符数组与字符串的关系。3熟练掌握指针、地址、指针类型的概念及其使用。掌握指针变量的定义与初始化、指针的间接访问和表达式,掌握指针与数组、函数、字符串的联系4掌握函数的定义,函数的返回值,函数的调用,函数的声明,函数的形式参数和实际参数之间的关系,了解函数的作用区间。5掌握结构体的概念,结构体类型的定义,结构体变量的定义和初始化,结构体成员的表示。结构体与指针、函数的关系。1.2:课题描述:设计课题:飞机订票系统一、问题描述:假设某航空公司只有M架N个座位的飞机,每架飞机每天飞行一趟。通过该系统来实现机票的订购问题。二、功能要求:1、本系统采用

10、一个包含N个数据的结构体数组,每个数据的结构应当包括:起飞地、目的地 航班号、座次号码、座次订出与否标记、订座者的姓名和订座者的身份证号码。2、本系统显示这样的菜单:(1) 输入航班信息(2) 输出航班信息(3) 查找航班信息a.显示空座的数量b.显示空座的信息c.显示已订座的信息d.起飞时间(4)订票预约(5)删除定票预约(6)退出系统1、 本系统成功执行菜单的每个信息,选项4)和5)将要求额外的输入,并且它们都允许用户收回其输入。2、 查找航班信息既可按线路查,也可按目的地查。4、在两次运行之间,数据被保存于一个文件里,当本程序重新开始的时候,它首先从该文件读入数据三、算法提示:1、数据结

11、构:结构体类型数组2、数据库结构:下表构成该系统的基本数据库。 航班号起飞时间目的地座次号座次订出与否的标记订票者姓名订票者身份证号码intcharcharintCharcharchar四、测试数据:每架飞机的座位N=12,M=5 五、其它:对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能。第二章 需求分析2.1功能要求:1、系统管理员功能:(1)录入和修改航班和机票的信息:输入航班号,输入起飞地,降落 地,起飞时间,可随时修改航班信息。(2)输出航班的信息:输入航班号便可输出之前输入的航班信息。2、客户需要的功能: (1)查询航班信息:a.显示空座的数量b.显示空座的信息c.

12、显示已订座的信息d.起飞时间 (2)订票预约:查询航班信息后,提前订票预约需要的飞机票,如果 该航班不存在,则订票失败。 (3)订票预约,客户可以在起飞前修改或删除订票预约。 (4)退出系统第三章 概要设计3.1课程设计题目:飞机订票系统3.2模块内容:(1)主函数模块。(2)录入模块:输入航班信息。(3)查找模块:提供三种查找方式,分别为按起飞地、降落地、航班号查找。(4)订票模块:查询乘客要订的航班号,判断此航班是否有空位,有则输入乘客有关信息,订票成功,否则失败。(5)退票模块:输入退票的乘客姓名及证件号码,查找乘客资料中是否有这位乘客,有则删去,无则退票失败。(6)修改模块:确认是否有

13、权对航班进行修改,有则在航班列表中查找要查找修改的内容,进行修改,否则不能修改。3.3.模块功能(1)主函数模块:本函数信息的输入。(3)查找模块功能:实现信息的的主要功能是调用各子函数,实现系统功能。(2)录入模块功能:实现数据查找,包括显示空座的数量,订票的信息,航班起飞的时间的信息。(4)订票模块功能:实现乘客订票功能。(5)退票功能:实现乘客退票要求。第四章 详细设计4.1数据类型(1)本系统使用到的库函数#include#include#include(2)本系统使用的数据结构typedef struct flight/*将flight别名为FLIGHT结构体*/int Number

14、;struct DATEint year;int month;int day;Date;struct TIMEint hour;int min;start;char from30;char to30;int seat;bool you_wu;char name20;char sfnum20;FLIGHT;struct havechar name20;char SFnum20;have;4.2系统总体结构 订票输入航班号查询所有航班输入旅客信息 全部显示 航班号 出发地飞机订票系统 目的地姓名 退票查询所有航班退证件号航班信息和旅客信息输入航班号密码查询 机票信息录入 查询所有机票保存 修改机票

15、删除机票信息4.3机票信息录入void shuru()流程图打开文件读取数据输入航班号输入出发信息 无效重新输入 无效重新输入输入到达信息 折扣 无效重新输入 写入文件是否输入下一个信息结束4.4订票系统void book()流程图在有航班信息的情况下可以进行订票操作。开始打开文件1否读取文件1 是否打开文件2 是否读取文件2 是否查询所有 是否显示航班信息输入航班号显示航班信息确定订票否输入个人信息保存提示放弃结束4.5显示模块void chakongweixinxi()流程图显示模块打开文件否 是读取数据 有无数据 否 是显示查询方式全部查询是 否输入查询信息显示航班信息返回4.6退票系统

16、void tuipiao()流程图开始打开文件1否读取文件1 是否打开文件2 是否读取文件2 是否显示信息输入方式 是输入方式及信息显示航班信息密码?否显示个人信息提示密码错误确定退票结束第5章 测试5.1主界面5.2输入航班信息 依次需要输入航班号,起飞时间,起飞地,目的地,5.3输出航班信息输入航班号就可以输出查询航班的所有信息。5.4查询航班信息该系统有三种查询航班路线,分别为按起飞地,目的地,按航班号查询,5.5订票系统查询乘客要订的航班号,判断此航班是否有空位,有则输入乘客有关信 息,订票成功,否则失败。5.6退票系统查找要退票的航班信息,输入退票者的姓名,身份证号,退票成功。 5.

17、7退出系统第六章 使用说明6.1、首先进入程序主界面(对系统的说明,及程序分组名单)。主界面中有数字(1-6),分别代表系统中的每一个功能,然后可以输入数字,选择其中的功能,再由程序(按数字1-6再回车)进入其他的功能,。6.2、选1进入机票信息录入,依次需要输入起飞时间、起飞地、目的地、航班号,确认输入,没有错误,则输入信息正确,选2浏览航班信息,首先需要输入查找的航班号,如果航班号不存在,则查找失败,如果航班号存在,则界面下方会跳出查找航班的所有信息。选3进行查询航班信息,查询方式有三种,分别为按航班号、按起飞地、按时间对航班进行查询,选4可进行订票功能,系统将自动为你检测查询航班所剩余的

18、座位号,然后你可进行订票功能,你可以选择你看中了的座位号,输入你的姓名以及身份证号码进行订票,如果显示订票成功,则订票功能完成。6.3、选5可进行退票功能,输入正确的航班号,并且输入正确的个人信息。进入退票系统是否查询所有机票信息。选择输入信息输入的方式并输入。退票时的信息显示然后确定,如果显示退票成功,则退票功能完成。第七章 总结一周的C语言课程设计即将结束,现在回想起来真是五味俱全,从开始的懵懂无知到现在做出一本挺有厚度的资料,我不但实践了课本的知识,还制作出心算小程序,虽然很多人帮了我的忙,仍旧感觉自己对C语言有了深入的了解,还是有所成长,有所收获,在实践中,自己编程常会犯错误,并总结一

19、些克服缺点的方法。深刻体会到程序设计中最重要的一部分不是编写源程序,而是调试过程。只有经过调试程序,我们才能掌握正确的语法知识及把问题的解决方法用程序语言来表达。 此次程序设计主要用了函数的调用,if、else选择语句,switch语句,时间函数,标准输入输出、随机取整函数等基本知识点,结合课本知识加上自己的应用结果颇为令人满意 ,但是还有很多的缺陷与不足,这是我可以清醒认识到的。C语言是一项细致深入的工作,不仅要有严谨的思路,还要在实践中有耐心,要细心,如果无法沉着冷静,真的会看不到结果,毫无收获的 。 C语言又是一种系统开发语言。这一个学期对C语言的接触让我明白了自己的不足之处,对书上内容

20、的理解不够透彻。 通过本次课程设计的学习,我体会到学好计算机一定要重视实践环节,不仅是在学习C语言, 还是其他计算机语言都是一样的重要。这样我相信自己的计算机水平一定会取得更好的进步!我总结了一下本次程序课程设计主要用了函数的调用,if、else选择语句,switch语句,时间函数,标准输入输出、随机取整函数等基本知识点,结合课本知识加上自己的应用最终取得圆满成功。C语言是一项细致深入的工作,不仅要有严谨的思路,还要在实践中有耐心,要细心。这一点我亲身体会到了!以下是课程设计中的错误总结和分析:变量是程序中不可缺少的一部分,要谨记先定义后使用。输入输出类型要一致。“;”是C语言的语句结束语,不

21、可省略。的互相匹配。调用函数必先声明。形式参数和实际参数必须个数相等,类型相同。最后,感谢在C语言学习及课程设计中对我指导的老师和同学!附1: 源代码#include#include#include#define M 5#define N 12typedef struct flight/*将flight别名为FLIGHT结构体*/int Number;struct DATEint year;int month;int day;Date;struct TIMEint hour;int min;start;char from30;char to30;int seat;bool you_wu;cha

22、r name20;char sfnum20;FLIGHT;struct havechar name20;char SFnum20;have;int i,j;void Read(FLIGHT *fltlist) /函数声明FILE *fp;if (fp=fopen(fltlist.dat,rb) != NULL)fread(fltlist,sizeof(FLIGHT),M*N,fp);elseFLIGHT*p;p=fltlist;for (i=0;iM;i+)for (j=0;jNumber=i;p-seat=j;p-you_wu=0;p+;fp = fopen(fltlist.dat,wb);

23、fwrite(fltlist,sizeof(FLIGHT),M*N,fp);fclose(fp);void Add(FLIGHT * fltlist)FILE *fp;if ( fp=fopen(fltlist.dat,wb) !=NULL) /“wb”,以二进制写入.fwrite(fltlist,sizeof(FLIGHT),M*N,fp);fclose(fp);elseprintf(打开文件失败!按任意键退出.);getchar();exit(0);void shuru(FLIGHT *fltlist)getchar();FLIGHT *p;FLIGHT fltlist1;FILE *fp

24、;char c=y;while (c=y|c=Y)printf(请输入航班号:(0=航班号=M|i0)printf(航班不存在!);printf(t请重新输入:);scanf(%d,&i);printf(请输入起飞时间(格式为12:00):);scanf(%d:%d,&(fltlist1.start.hour),&(fltlist1.start.min);printf(请输入起飞地(格式为:beijing):);scanf(%s,fltlist1.from);printf(请输入目的地(格式为:beijing):);scanf(%s,fltlist1.to);p=fltlist;for (j=

25、0;jstart.hour=fltlist1.start.hour;(p+i*N+j)-start.min=fltlist1.start.min;strcpy(p+i*N+j)-from,fltlist1.from);strcpy(p+i*N+j)-to,fltlist1.to);if (fp=fopen(fltlist.dat,wb)=NULL)exit(0);fwrite(fltlist,sizeof(FLIGHT),M*N,fp);fclose(fp);printf(修改成功,还要修改吗?t(Y/N);getchar();scanf(%c,&c);void shuchu(FLIGHT *

26、fltlist)getchar();FLIGHT *p;p=fltlist;char c=y;while (c=y|c=Y)printf(请输入航班号:(0=航班号=M|istart.hour,(p+i*N)-start.min);printf(起飞地:);printf(%sn,(p+i*N)-from);printf(目的地:);printf(%sn,(p+i*N)-to);printf(查询完毕,还要继续查询吗?t(Y/N);getchar();scanf(%c,&c);void Book(FLIGHT * fltlist)char c=y;FLIGHT *p;p=fltlist;whil

27、e (c=y|c=Y)FLIGHT fltlist1;printf(请输入航班号:(0=航班号=M|fltlist1.Number0)printf(航班不存在,请重新输入:);scanf(%d,&fltlist1.Number);for (i=0;iNumber=fltlist1.Number)printf(t检测未订的座位.n请稍等.n);i=(p+i*N)-Number;p=fltlist;int w=0;for (j=0;jyou_wu=0)printf(%dt,j);w+;if (w=0)printf(无座位!请重新输入航班号:);goto loop;printf(n以上是座位号,要订

28、票吗?t(Y/N);getchar();scanf(%c,&c);while (c=y|c=Y)printf(n请输入订票日期(格式为xxxx,yy,zz);scanf(%d,%d,%d,&fltlist1.Date.year,&fltlist1.Date.month,&fltlist1.Date.day);printf(请输入乘客姓名:);scanf(%s,fltlist1.name);printf(n请输入身份证号码:);scanf(%s,fltlist1.sfnum);printf(n请输入订票座位号:(0=座位号%d),N);scanf(%d,&fltlist1.seat);for (

29、;)if (fltlist1.seat=N)printf(没有这个座位号!请重新输入:);scanf(%d,&fltlist1.seat);else if (p+N*(fltlist1.Number)+fltlist1.seat)-you_wu=1)printf(此座位已有人,请重新输入:);scanf(%d,&fltlist1.seat);else break;printf(确认订票吗?t(Y/N);getchar();scanf(%c,&c);while (c=y|c=Y)strcpy(p+N*(fltlist1.Number)+fltlist1.seat)-name,fltlist1.n

30、ame);strcpy(p+N*(fltlist1.Number)+fltlist1.seat)-sfnum,fltlist1.sfnum);(p+N*(fltlist1.Number)+fltlist1.seat)-Date.day=fltlist1.Date.day;(p+N*(fltlist1.Number)+fltlist1.seat)-Date.month=fltlist1.Date.month;(p+N*(fltlist1.Number)+fltlist1.seat)-Date.year=fltlist1.Date.year;(p+N*(fltlist1.Number)+fltli

31、st1.seat)-you_wu=1;p=fltlist;Add(p);printf(您的订票成功.n);c=n;c=n;printf(请问还需要继续订票吗?t(Y/N)n);getchar();scanf(%c,&c);void chakongweigeshu(FLIGHT *fltlist)char c=y;FLIGHT *p;p=fltlist;while (c=y|c=Y)FLIGHT fltlist1;printf(请输入航班号:(0=航班号=M|fltlist1.Number0)printf(航班不存在,请重新输入:);scanf(%d,&fltlist1.Number);for

32、(i=0;iNumber = fltlist1.Number)printf(检测未订的座位.n请稍候.n);i=(p+i*N)-Number;p=fltlist;int w=0;for (j=0;jyou_wu=0)w+;printf(还有%d个空位。,w);if (w=0)printf(座位已满.);printf(是否继续查询其它航班是否有空位?t(Y/N);getchar();scanf(%c,&c);void tuipiao(FLIGHT * fltlist)char c=y;char z;FLIGHT * p;p=fltlist;FLIGHT fltlist1;while (c=y|c=Y)printf(请输入航班号:(0=航班号=M|fltlist1.Number0)printf(航班不存在,请重新输入:);scanf(%d,&fltlist1.Number);for (i=0;iNumber=fltlist1.Number)printf(n请输入退票座位号:(0=座位号%d),N);scanf(%d,&fltlist1.seat);for (;)if (fltlist1.seat=N)printf(没有这个座位号!你还要继续查询吗?t(Y/N);getchar();scanf(%c,&z);if (z=y|z=Y)printf(请输入座位号:);

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1