C语言大项目设计

上传人:M****1 文档编号:543448116 上传时间:2023-01-13 格式:DOCX 页数:17 大小:202.06KB
返回 下载 相关 举报
C语言大项目设计_第1页
第1页 / 共17页
C语言大项目设计_第2页
第2页 / 共17页
C语言大项目设计_第3页
第3页 / 共17页
C语言大项目设计_第4页
第4页 / 共17页
C语言大项目设计_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《C语言大项目设计》由会员分享,可在线阅读,更多相关《C语言大项目设计(17页珍藏版)》请在金锄头文库上搜索。

1、目录设计目的1 总体设计1 详细设计3 调试与测试5 核心源程序清单和执行结果5 源程序代码5 截图13 仍存在的问题15 心得体会15 设计进度表16 参考文献17、正文(一)设计目的:假定民航机场共有 n 个航班,每个航班有一航班号、确定的航线(起始站、终点站)、确定的飞行时 间(星期几)和一定的成员订额。设计一飞机订票系统,使之能提供下列服务:1、航班信息录入功能(航班信息用文件保存) 包括航班号、起始站、重点站、机票数等;2、航班信息浏览功能3、按航班号排序4、查询航线:按航班号查询5、承办订票和退票业务(可选项)(二)总体设计:编写一个飞机订票系统的程序,使该系统能够实现对航班信息的

2、录入、浏览、排序、查询以及订票、 退票的功能。根据题目要求,首先要制作一个主菜单显示出各个操作的提示可供用户选择,进而一步步地 深入操作。根据主菜单的内容再进一步编制具体操作的函数,各个功能均用专门编制的函数来完成。这就 是看到题目后的最初的思路。在这附上总体模块设计图:因为飞机订票系统含有各航班的各项信息,如航班号、航线、飞行时间、机票数目等必要信息,所以 就决定用刚学不久的结构体数组来存放航班的各项信息,根据题目要求定义如下结构体类型头文件包含、全局变量定义和结构体定义源代码:#include/标准输入、输出头文件#include/包含字符串函数处理头文件#includeprocess.h

3、/包含 access 函数的头文件#define N 1000 /定义最多的航班数%stt%dn#definePRINT%dtt%stt%stt星期,si.num,si.start,si.over,si.time,si.count /宏定义输出格式struct air/定义结构体数组int num;/定义航班号char start20;/航班起始站char over20;/航班终点站char time10;/飞行时间int count;/机票数量sN;int i,m=0;/定义全局变量,记录下航班信息的数量char ii10;/用来选择是否继续的变量以上就是我的总体设计思路。详细设计:在本次的

4、课程设计中我负责编制的是初始化、建立数据文件、数据文件读取、数据文件保存、增加航班信息、订票、退票业务函数的编写。以下是我的负责部分的详细设计内容:1) 定义系统初始化函数模块功能:设立一个初始化函数来得到航班信息。具体设计是第一次运行程序时自动生成保存航班信 息的文件,并输入初始航班信息,待第二 次开始就可以直接读取该文件获得已有的 航班信息并可直接使用。运用了 access函 数判断文件是否存在。该函数源代码为:void chushihua()/初始化函数if(access(hangban.dat,0) build();elseread();2) 定义建立新数据文件的函数 系统初始化后,没

5、有寻找到数据文件,则进行新建数据文件,此函数的作用就是进行新建文件数据的录入。运用到了文件指针的定义FILE*fp,文件的打开fopen和关闭fclose、成块读写函数中的fwrite; 运用for循环进行各组数据的输入,用m+记录下输入的航班数量,并运用if语句判断是否输入下一条航 班信息,若不继续则返回主界面。该函数的源代码为:3) 定义读取文件内航班信息的函数 系统初始化之后,若原始数据文件存在,则进行文件内航班信息的读取,以供接下来程序中的各个函数来使用。在该函数中同样运用到了文件指针FILE *fp、文件的打开fopen和关闭fclose、成块读写函 数中的fread、文件结束检测函

6、数feof同时配合while语句控制文件的读取;m+记录下读取到的航班数 量等。4) 定义保存函数 因为在飞机订票系统中涉及到飞机的订票和退票业务,还有按航班号的排序功能,所以我就定义了这个保存函数来保存下每次运行系统后对整个订票系统涉及到的资料的修改。为了简便程序,我就准备将此 函数放在整个系统得推出选项中,这样就只在每次退出系统的时候进行一次保存,将此次对文件修改的所有新信息都一次保存下来。这样就实现了整个系统运行时进行一次读取,推出时一次保存的设计,大大简便了文件的调用和读取。保存函数运用到的知识点与读取函数大致相同。此函数的源代码为: 有关文件读取、写入和保存的函数定义完了就开始设计与

7、题目要求直接相关的函数了。5) 定义订票业务函数在这个函数中首先调用了 search函数查找需要订票的航班。运用if语句实现订票时的多种情况:订 票数输入不正确、飞机票数不足等情况。订票成功时运用si.count=si.count-n;将已被订的机票数减 去,以显示新的即时航班信息6) 定义退票业务函数:与订票函数相类似,只做稍稍修改就行退票成功是用 si.count=si.count+n; 将航班的剩余票数 加上去以显示即时航班信息。7) 定义主函数主函数主要就是提供系统的主菜单界面供用户选择。运行主函数时首先调用chushihua函数判定数据 文件是否存在、是否要进行初始航班信息输入;若已

8、存在则进入主界面菜单供用户选择,运用swich语句 对用户的不同选择来调用各功能的函数。并用do-while语句循环实现能够让用户进行多次的选择。a) 源程序清单: #include #include #include #define N 1000 #define PRINT星期%stt%dnstruct airint num;char start20;char over20;char time10; int count;sN;/定义结构体数组/定义航班号/航班起始站/终点站/飞行时间/机票数量调试与测试调试过程中曾经遇到过一些问题,但是也不多,遇到过:订票或退票的时候不能将剩余的票数加上和

9、减去。后来经过详细的检查与对照课本知识点找出了相应的错误点,经过修改加入票数加减语句,再经过 与保存函数的配合后实现了题目要求的功能。调试成功。(三)核心源程序清单和执行结果: /标准输入、输出头文件 /包含字符串函数处理头文件 /包含access函数的头文件 /定义最多的航班数 %dtt%stt%stt ,si.num,si.start,si.over,si.time,si.count /宏定义输出格式 int i,m=0; /定义全局变量 char ii10;voidadd();/函数声明增加航班信息函数voidprint();/显示航班信息voidsearch();/查找航班信息void

10、dingpiao();/订票业务voidtuipiao();/退票voidread();/读取文件voidsave();/保存文件voidoutput();/输出格式voidpaixu();/航班排序voidchushihua(); /系统初始化voidbuild();/建立数据文件voidpaixu1();/按航班号从小到大排序voidpaixu2();/从大到小void main() /主函数 int j; chushihua(); printf(/系统初始化判断是否存在原始数据文件0()0欢迎使用天鑫飞机订票系统(*_*)n);/打印出系统主界面do printf(= );printf

11、(1.增加航班信息nt2.浏览航班信息ntt3.查找航班信息(按航班号)ttr (丿_J)厂nttt4.航班排序(按航班号)ntttt5.订票业务nto () ottt6.退票业务n ttttttO.退出 n);printf(= = );p r i n t f ( 请在0-6中选择以回车键结束: );scanf(%d,&j);switch(j)case 1: add(); break;/调用增加航班函数case 2:print();/调用显示模块break;case 3:search();/调用查找模块break;case 4:paixu();/调用排序函数break;case 5:dingp

12、iao();/调用订票模块break;case 6:tuipiao();/调用退票模块break;case 0:/退出系统save();prin tf(谢谢使用,再见!);break;while(j!=0);/判断是否调用其他函数void chushihua()/定义系统初始化函数 if(access(hangban.dat,0)build();elseread();void build()/定义建立数据文件函数FILE *fp;/定义文件指针if(fp=fopen(hangban.dat,wb)=NULL) /打开文件并判定是否出错 prin tf(创建文件失败! );/打印出错提示getchar();return;prin tf(请依次输入航班信息(以回车键结束):n);/打印提示信息n);printf(for(i=0;iN;i+)prin tf(请输入航班号:);scanf(%d,&si.num);/输入航班号prin tf(请输入起始站:); scanf(%s,si.start);/输入起始站prin tf(请输入终点站:);scanf(%s,si.over);/输入终点站prin tf(请输入时间(星期几.):); scanf(%s,si.time);/输入时间prin tf(请输入机票数:);scanf(%d,&si.count);/输入机

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

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号