2022年C语言课程设计报告 3.pdf

上传人:Che****ry 文档编号:34244332 上传时间:2022-08-15 格式:PDF 页数:28 大小:516.71KB
返回 下载 相关 举报
2022年C语言课程设计报告 3.pdf_第1页
第1页 / 共28页
2022年C语言课程设计报告 3.pdf_第2页
第2页 / 共28页
点击查看更多>>
资源描述

《2022年C语言课程设计报告 3.pdf》由会员分享,可在线阅读,更多相关《2022年C语言课程设计报告 3.pdf(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、C 课程设计1 / 28中 国 地 质 大 学本科生课程论文课 程 名 称 计算机高级语言课程设计(C)题 目飞机订票系统教 师 姓 名孔春芳本科生姓名吕开园本科生学号 20141000842 本科生专业物理学所 在 院 系数理学院日 期 : 2015.6.26 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 28 页 - - - - - - - - - C 课程设计2 / 28目 录1.题目要求 .3 2.需求分析 .3 3.总体设计 . 34.详细设计 . 35.上机

2、操作 .156.总结 .187.致谢 .19参考文献 .19名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 28 页 - - - - - - - - - C 课程设计3 / 28一、题目要求设置一个飞机订票系统 , 该系统包括航班信息录入功能、统航班信息浏览功能功能、查询航线功能。二、需求分析(1)航班信息用文件保存,因而要提供文件的输入或输出功能;(2)要浏览航班信息,需要提供显示功能;(3)要查询航线,需要提供查找功能;(4)另外还应提供键盘式的选择菜单以实现功能选择

3、。三、总体设计根据需求分析,可以将这个系统的设计分为如下四大模块:航班信息输入模块、航班信息浏览模块和航班查询模块。四、 详细设计1. 本系统要用到的库函数:#include #include 2. 本系统的数据结构是:typedef struct plane char ID10; /*航班代号 */ char Start_Place10; /*起飞地 */ char End_Place10; /*目的地 */ float price; /*票价*/ int Buy_num; /*已售票数 */ int Max_num; /*预售票总数 */ char time20; /*飞行时间 */ PL

4、ANE; 3. 模块划分名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 28 页 - - - - - - - - - C 课程设计4 / 28主菜单1 2 3 4 5 6 输入航班信息浏览航班信息查询航班信息保存函数加载记录退出3. 查询航班信息订票退票查询飞机起飞时间查询飞机目的地查询飞机航班号返 回 主界面4. 程序流程图(1)主函数主函数一般设计的比较简洁,只提供输入,功能处理和输出部分的函数功能。其中各功能模块用菜单方式选择。另外菜单部分也可以写成函数。【程序】m

5、ain() menu(); menu() int n,w1; do system( cls ); /*清屏*/ 显示一系列功能模块输入 n,判断 n 是否是 1-6 根据 n的值调用各功能函数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 28 页 - - - - - - - - - C 课程设计5 / 28puts(tttt 飞机售票系统 !nn); puts(tt*MENU*nn); puts(tttt1.Enter new plane); puts(tttt2.Br

6、owse all); puts(tttt3.opreration); puts(tttt4.Save file); puts(tttt5.Load file); puts(tttt6.Exit); puts(nntt*n); printf(Choice your number(1-6): bb); scanf(%d,&n); if(n6) /*对选择的数字作判断 */ w1=1; printf(your choice is not between 1 and 6,Please input again:); getchar(); else w1=0; while(w1=1); /* 选择功能 *

7、/ switch(n) case 1: enter();break; /*输入模块 */ case 2: browse();break; /*浏览模块 */ case 3: menu1();break; /*查找模块 */ case 4: save();break; /*保存模块 */ case 5: load();break; /*加载模块 */ case 6: exit(0); (2)航班信息输入模块【流程图】开始读取数据名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共

8、 28 页 - - - - - - - - - C 课程设计6 / 28【程序】count() char a10; int i,num=0; printf( 请您输入要统计的飞机目的地:); scanf(%s,a); printf( 航班代号起始地点目的地票价已售乘客容量时间n); for(i=0;iN;i+) if(strcmp(a,pi.End_Place)=0) num+; 输入起始地点否If 0nN 是输入航班代号输入目的地票价已售乘客容量时间结束名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - -

9、- - - - 第 6 页,共 28 页 - - - - - - - - - C 课程设计7 / 28printf(%s %s %s %7.2f %d %d n,pi.ID, pi.Start_Place,pi.End_Place,pi.price,pi.Buy_num,pi.Max_num,pi.time); printf(n 您想统计的航班有 %d 条!n,num); getch(); menu1(); order() int i,j; PLANE temp; for(i=0;iN;i+) for(j=i;j0) temp=pi; pi=pj; pj=temp; browse(); ent

10、er() int i; system( cls ); /* 清屏*/ printf( 请您输入航班信息: ); for(i=0;iN;i+) printf( 航班代号: ); scanf(%s,pi.ID); printf( 起飞地点: ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 28 页 - - - - - - - - - C 课程设计8 / 28scanf(%s,pi.Start_Place); printf( 目的地点: ); scanf(%s,pi.En

11、d_Place); printf( 票价: ); scanf(%f,&pi.price); pi.Buy_num=0; printf( 乘客容量: ); scanf(%d,&pi.Max_num); printf( 起飞时间: ); scanf(%s,pi.time); getch(); menu(); (3)航班信息浏览模块【流程图】【程序】browse() int i; system( cls ); /* 清屏*/ printf( 浏览航班信息: n); printf( 航班代号起始地点目的地票价已售乘客容量时间n); for(i=0;iN;i+) 显示模块打开文件是否读取数据返回名师资料

12、总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 28 页 - - - - - - - - - C 课程设计9 / 28printf(%s %s %s %7.2f %d %d %sn,pi.ID,pi.Start_Place, pi.End_Place,pi.price,pi.Buy_num,pi.Max_num,pi.time); getch(); menu(); (4)航线查询模块1.订票【流程图】开始打开文件读取文件查询所有输入时间显示航班信息确定定票保存结束否是否是名师资料

13、总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 28 页 - - - - - - - - - C 课程设计10 / 28【程序】buy() char t20,place20; int i,w=0,num; printf( 时间); scanf(%s,t); printf( 目的地 ); scanf(%s,place); for(i=0;ipi.Max_num) printf( 当前余票不足,只剩 %d 张,pi.Max_num-pi.Buy_num); else pi.Buy_n

14、um=pi.Buy_num+num; printf( 购票成功! ); if(w=0) printf( 没有您要得票! ); getch(); menu1(); 2.退票【流程图】名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 28 页 - - - - - - - - - C 课程设计11 / 28【程序】back() char id20; int i,w=0; printf(id:); scanf(%s,id); for(i=0;iN;i+) if(strcmp(id

15、,pi.ID)=0) pi.Buy_num-; 开始打开文件读取文件显 示 信 息 输 入方式输入方式及信息显示航班信息确定退票结束否是否是否是名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 28 页 - - - - - - - - - C 课程设计12 / 28printf( 退票成功 ); w=1; if(w=0) printf( 退票失败 ); getch(); menu1(); 3.查询航线分为三种:查询飞机起飞时间、查询飞机目的地、查询飞机航班号【流程图】开始

16、显示模块打开文件读取数据有无数据显示查询方式全部查询输入查询信息否是否是否是名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 28 页 - - - - - - - - - C 课程设计13 / 28【程序】bowse_time() char a20; int i,w=0; printf( 请您输入要查询的飞机起飞时间:); scanf(%s,a); printf( 航班代号起始地点目的地票价已售乘客容量时间n); for(i=0;iN;i+) if(strcmp(a,pi

17、.time)=0) w=1; printf(%s %s %s %7.2f %d %d %sn,pi.ID,pi.Start_Place, pi.End_Place,pi.price,pi.Buy_num,pi.Max_num,pi.time); if(w=0) printf( 没有您想查询的航班 !n); getch(); menu1(); bowse_palce() char a10; int i,w=0; printf( 请您输入要查询的飞机目的地:); scanf(%s,a); printf( 航班代号起始地点目的地票价已售乘客容量时间n); 显示航班信息返回名师资料总结 - - -精品

18、资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 28 页 - - - - - - - - - C 课程设计14 / 28for(i=0;iN;i+) if(strcmp(a,pi.End_Place)=0) w=1; printf(%s %s %s %7.2f %d %d %dn,pi.ID,pi.Start_Place, pi.End_Place,pi.price,pi.Buy_num,pi.Max_num,pi.time); if(w=0) printf( 没有您想查询的航班 !n); get

19、ch(); menu1(); bowse_ID() char a10; int i,w=0; printf( 请您输入要查询的飞机航班号:); scanf(%s,a); printf( 航班代号起始地点目的地票价已售乘客容量时间n); for(i=0;iN;i+) if(strcmp(a,pi.ID)=0) w=1; printf(%s %s %s %7.2f %d %d %dn,pi.ID,pi.Start_Place, pi.End_Place,pi.price,pi.Buy_num,pi.Max_num,pi.time); if(w=0) printf( 没有您想查询的航班 !n); g

20、etch(); menu1(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 28 页 - - - - - - - - - C 课程设计15 / 28五、上机操作1. 编译,连接和运行2. 结果(1)主菜单函数图 1 主菜单(2)录入模块在主界面出现后输入1 回车输入两个航班信息如下图。图 2 功能 1 测试图录入完按回车键回到主界面(3)浏览模块在主界面输入 2,显示如下图图 3 功能 2 测试图(4)查询模块在主界面输入 3,回车,得到下图名师资料总结 - -

21、-精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 28 页 - - - - - - - - - C 课程设计16 / 28对功能 1 的测试:输入数字 1,按回车,然后按所需步骤依次购票如输入其他时间,如FRI,则显示没有此航班,得到如下结果对功能 2 的测试:按回车键后输入2,即可按照顺序完成退票原先购票后所显示的结果如下图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页

22、,共 28 页 - - - - - - - - - C 课程设计17 / 28退票后的结果如图:对功能 3 的测试:按回车键回到查询模块,输入3 查询飞机起飞时间名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 28 页 - - - - - - - - - C 课程设计18 / 28对功能 4 的测试:按回车键回到查询模块,输入4 查询飞机目的地对功能 5 的测试:按回车键回到查询模块,输入5 查询飞机航班号按回车键输入 6 返回主界面输入 6 退出系统六 总结此次实习我

23、感触颇多, 总结出本次程序设计主要运用了if 、else 选择语句,switch语句,标准输入输出,函数等基本知识点。通过编程,我发现以前在C语言课本上学到的东西太少太少了,而且都是理论性的东西, 而这次实习我犯了很多错误,比如变量应该先定义后使用, “; ”不可省等,真正掌握了它的实质。有时候由于一个很小的错误导致程序的无法运行,让我明白了编程细心的重要性。通过该实例的学习,使我进一步理解和运用结构化程序设计的思想和方法,学会了用流程图表示算法。 初步掌握了开发一个小型实用系统的基本方法,学会了调试一个较长程序的基本方法, 进一步掌握和提高利用C语言进行程序设计的能力。我从中受益匪浅。名师资

24、料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 28 页 - - - - - - - - - C 课程设计19 / 28七、致谢在这次课程设计过程中, 遇到了很多问题, 多亏了孔老师的指导以及同学们的热心帮助, 我才可以顺利做好这次作业,还有,在此期间我还得到了计算机学院研究生的帮助,在这里,一同表示感谢,谢谢大家!八、参考文献1.基于 PBL 的 C 语言课程设计及学习指导张冬梅、刘远兴、陈晶、王媛妮编著2.C 程序设计谭浩强 著源代码:/* *计算机高级语言课程设计(c)

25、*题目:飞机订票系统*作者:吕开园*时间: 2015-6-25 */ #include #include #define N 2 /* 所支持的航班的最大数量 */ typedef struct plane char ID10; /* 航班代号 */ char Start_Place10; /* 起飞地 */ char End_Place10; /* 目的地 */ float price; /* 票价*/ int Buy_num; /* 已售票数 */ int Max_num; /* 预售票总数 */ char time20; /* 飞行时间 */ PLANE; PLANE pN; /*航班结

26、构数组 */ 开始读取数据输 入航班号If 0n=N 输 入 目的地票价结束时间乘 客容量已售名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 28 页 - - - - - - - - - C 课程设计20 / 28menu(); menu1(); /*航班信息录入*/ count() char a10; int i,num=0; printf( 请您输入要统计的飞机目的地:); scanf(%s,a); printf( 航班代号起始地点目的地票价已售乘客容量时间n);

27、for(i=0;iN;i+) if(strcmp(a,pi.End_Place)=0) num+; printf(%s %s %s %7.2f %d %d n,pi.ID, pi.Start_Place,pi.End_Place,pi.price,pi.Buy_num,pi.Max_num,pi.time); printf(n 您想统计的航班有 %d 条!n,num); getch(); menu1(); order() int i,j; PLANE temp; for(i=0;iN;i+) for(j=i;j0) temp=pi; pi=pj; pj=temp; 名师资料总结 - - -精品

28、资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 28 页 - - - - - - - - - C 课程设计21 / 28 browse(); enter() int i; system( cls ); /* 清屏*/ printf( 请您输入航班信息: ); for(i=0;iN;i+) printf( 航班代号: ); scanf(%s,pi.ID); printf( 起飞地点: ); scanf(%s,pi.Start_Place); printf( 目的地点: ); scanf(%s,pi.

29、End_Place); printf( 票价: ); scanf(%f,&pi.price); pi.Buy_num=0; printf( 乘客容量: ); scanf(%d,&pi.Max_num); printf( 起飞时间: ); scanf(%s,pi.time); getch(); menu(); browse() int i; system( cls ); /* 清屏*/ printf( 浏览航班信息: n); printf( 航班代号起始地点目的地票价已售乘客容量时间n); for(i=0;iN;i+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -

30、 - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 28 页 - - - - - - - - - C 课程设计22 / 28printf(%s %s %s %7.2f %d %d %sn,pi.ID,pi.Start_Place, pi.End_Place,pi.price,pi.Buy_num,pi.Max_num,pi.time); getch(); menu(); /*订票信息录入*/ buy() char t20,place20; int i,w=0,num; printf( 时间); scanf(%s,t); printf( 目的地 );

31、 scanf(%s,place); for(i=0;ipi.Max_num) printf( 当前余票不足,只剩 %d 张,pi.Max_num-pi.Buy_num); else pi.Buy_num=pi.Buy_num+num; printf( 购票成功! ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 28 页 - - - - - - - - - C 课程设计23 / 28if(w=0) printf( 没有您要得票! ); getch(); menu1(

32、); /*退票信息录入*/ back() char id20; int i,w=0; printf(id:); scanf(%s,id); for(i=0;iN;i+) if(strcmp(id,pi.ID)=0) pi.Buy_num-; printf( 退票成功 ); w=1; if(w=0) printf( 退票失败 ); getch(); menu1(); /*按起飞时间查询航班信息*/ bowse_time() char a20; int i,w=0; printf( 请您输入要查询的飞机起飞时间:); scanf(%s,a); printf( 航班代号起始地点目的地票价已售乘客容量

33、时间n); for(i=0;iN;i+) if(strcmp(a,pi.time)=0) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 23 页,共 28 页 - - - - - - - - - C 课程设计24 / 28w=1; printf(%s %s %s %7.2f %d %d %sn,pi.ID,pi.Start_Place, pi.End_Place,pi.price,pi.Buy_num,pi.Max_num,pi.time); if(w=0) printf( 没有您

34、想查询的航班!n); getch(); menu1(); /*按目的地查询航班信息*/ bowse_palce() char a10; int i,w=0; printf( 请您输入要查询的飞机目的地:); scanf(%s,a); printf( 航班代号起始地点目的地票价已售乘客容量时间 n); for(i=0;iN;i+) if(strcmp(a,pi.End_Place)=0) w=1; printf(%s %s %s %7.2f %d %d %dn,pi.ID,pi.Start_Place, pi.End_Place,pi.price,pi.Buy_num,pi.Max_num,pi

35、.time); if(w=0) printf( 没有您想查询的航班!n); getch(); menu1(); /*按航班号查询航班信息*/ bowse_ID() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 24 页,共 28 页 - - - - - - - - - C 课程设计25 / 28 char a10; int i,w=0; printf( 请您输入要查询的飞机航班号:); scanf(%s,a); printf( 航班代号起始地点目的地票价已售乘客容量时间n); fo

36、r(i=0;iN;i+) if(strcmp(a,pi.ID)=0) w=1; printf(%s %s %s %7.2f %d %d %dn,pi.ID,pi.Start_Place, pi.End_Place,pi.price,pi.Buy_num,pi.Max_num,pi.time); if(w=0) printf( 没有您想查询的航班 !n); getch(); menu1(); menu1() int n,w1; do system( cls ); /*清屏*/ puts(tttt 飞机售票操作 !nn); puts(tt*MENU*nn); puts(tttt1.Buy tick

37、et); puts(tttt2.return ticket); puts(tttt3.bowse by time); puts(tttt4.bowse by end palce); puts(tttt5.bowse by plane ID); puts(tttt6.return to menu); puts(nntt*n); printf(Choice your number(1-6): bb); scanf(%d,&n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 25 页,

38、共 28 页 - - - - - - - - - C 课程设计26 / 28if(n6) /* 对选择的数字作判断*/ w1=1; printf(your choice is not between 1 and 4,Please input again:); getchar(); else w1=0; while(w1=1); /*选择功能 */ switch(n) case 1:buy();break; /* 输入模块 */ case 2:back();break; /* 浏览模块 */ case 3:bowse_time();break; /*查找模块 */ case 4:bowse_pa

39、lce();break; /*输入模块 */ case 5:bowse_ID();break; /* 浏览模块 */ case 6:menu(); save() /* 保存函数 ,保存 n 个记录 */ int w=1; FILE *fp; int i; system( cls ); if(fp=fopen(c:ticket.txt,wb)=NULL) /*以输出打开方式 ,在此前的记录被覆盖 */ printf(nCannot open filen); return NULL; for(i=0;iN;i+) if(fwrite(&pi,sizeof(struct plane),1,fp)!=

40、1) printf(file write errorn); w=0; if(w=1) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 26 页,共 28 页 - - - - - - - - - C 课程设计27 / 28printf(file save ok!n); fclose(fp); getch(); menu(); load() /* 加载记录或可以计算记录个数的函数*/ FILE *fp; int i,w; w=1; system( cls ); if(fp=fopen(c

41、:ticket.txt,rb)=NULL) /*以输出打开方式 ,在此前的记录被覆盖 */ printf(nCannot open filen); w=0; return NULL; for(i=0;!feof(fp);i+) fread(&pi,sizeof(struct plane),1,fp); fclose(fp); if(w=1) printf(Load file ok!); getch(); menu(); /*返回记录个数 */ /*主函数*/ main() menu(); menu() int n,w1; do system( cls ); /*清屏*/ 名师资料总结 - -

42、-精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 27 页,共 28 页 - - - - - - - - - C 课程设计28 / 28puts(tttt 飞机售票系统 !nn); puts(tt*MENU*nn); puts(tttt1.Enter new plane); puts(tttt2.Browse all); puts(tttt3.opreration); puts(tttt4.Save file); puts(tttt5.Load file); puts(tttt6.Exit); puts(n

43、ntt*n); printf(Choice your number(1-6): bb); scanf(%d,&n); if(n6) /* 对选择的数字作判断*/ w1=1; printf(your choice is not between 1 and 6,Please input again:); getchar(); else w1=0; while(w1=1); /*选择功能 */ switch(n) case 1: enter();break; /*输入模块 */ case 2: browse();break; /*浏览模块 */ case 3: menu1();break; /*查找模块 */ case 4: save();break; /*保存模块 */ case 5: load();break; /*加载模块 */ case 6: exit(0); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 28 页,共 28 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁