ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:156.07KB ,
资源ID:5245810      下载积分:2 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5245810.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言课程设计飞机订票系统说明书第一个人1.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言课程设计飞机订票系统说明书第一个人1.docx

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

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

3、ude /包含access函数的头文件#define N 1000 /定义最多的航班数#define PRINT %dtt%stt%stt星期%stt%dn ,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(); else read();2)

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

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

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

8、信息输入;若已存在则进入主界面菜单供用户选择,运用swich语句对用户的不同选择来调用各功能的函数。并用dowhile语句循环实现能够让用户进行多次的选择。(四) 调试与测试调试过程中曾经遇到过一些问题,但是也不多,遇到过:订票或退票的时候不能将剩余的票数加上和减去。后来经过详细的检查与对照课本知识点找出了相应的错误点,经过修改加入票数加减语句,再经过与保存函数的配合后实现了题目要求的功能。调试成功。(五) 核心源程序清单和执行结果:a) 源程序清单:#include /标准输入、输出头文件#include /包含字符串函数处理头文件#include /包含access函数的头文件#defin

9、e N 1000 /定义最多的航班数#define PRINT %dtt%stt%stt星期%stt%dn ,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;void add(); /函数声明增加航班信息函数void print(); /显示航班信息void sear

10、ch(); /查找航班信息void dingpiao(); /订票业务void tuipiao(); /退票void read(); /读取文件 void save(); /保存文件void output(); /输出格式void paixu(); /航班排序void chushihua(); /系统初始化void build(); /建立数据文件void paixu1(); /按航班号从小到大排序void paixu2(); /从大到小void main() /主函数 int j; chushihua(); /系统初始化判断是否存在原始数据文件 printf( O(_)O欢迎使用天鑫飞机订票

11、系统(*_*)n); /打印出系统主界面 do printf(= ); printf(1.增加航班信息n t2.浏览航班信息n tt3.查找航班信息(按航班号)tt(_)n ttt4.航班排序(按航班号)n tttt5.订票业务n to()ottt6.退票业务n tttttt0.退出n); printf(= ); printf(请在0-6中选择以回车键结束: ); scanf(%d,&j); switch(j) case 1: add(); /调用增加航班函数 break; case 2:print(); /调用显示模块 break; case 3:search(); /调用查找模块 brea

12、k; case 4:paixu(); /调用排序函数 break; case 5:dingpiao(); /调用订票模块 break; case 6:tuipiao(); /调用退票模块 break; case 0: /退出系统 save(); printf(谢谢使用,再见! ); break; while(j!=0); /判断是否调用其他函数 void chushihua() /定义系统初始化函数 if(access(hangban.dat,0) build(); else read(); void build() /定义建立数据文件函数 FILE *fp; /定义文件指针 if(fp=fo

13、pen(hangban.dat,wb)=NULL) /打开文件并判定是否出错 printf(创建文件失败! ); /打印出错提示 getchar(); return; printf(请依次输入航班信息(以回车键结束):n); /打印提示信息 printf(- n); for(i=0;iN;i+) printf(请输入航班号: ); scanf(%d,&si.num); /输入航班号 printf(请输入起始站: ); scanf(%s,si.start); /输入起始站 printf(请输入终点站: ); scanf(%s,si.over); /输入终点站 printf(请输入时间(星期几):

14、 ); scanf(%s,si.time); /输入时间 printf(请输入机票数: ); scanf(%d,&si.count); /输入机票数 fwrite(&si,sizeof(struct air),1,fp); m+; printf(添加完毕,是否继续添加?请键入y或n以回车键结束:); scanf(%s,ii); if(strcmp(ii,y)!=0) /判断是否继续添加航班信息 fclose(fp); /关闭文件 return; void read() /定义读取文件函数 FILE *fp; if(fp=fopen(hangban.dat,r)=NULL) printf(创建文

15、件失败! ); getchar(); return; i=0; while(!feof(fp) fread(&si,sizeof(struct air),1,fp); /逐块读取数据 i+; m+; /计算存在航班数 m-; fclose(fp);void save() /定义保存函数 FILE *fp; if(fp=fopen(hangban.dat,wb)=NULL) printf(创建文件失败! ); getchar(); return; for(i=0;im;i+) /逐块保存数据 fwrite(&si,sizeof(struct air),1,fp); fclose(fp);void

16、 add() /定义增加航班信息函数 do printf(请依次输入您要增加的航班信息(以回车键结束): n); /打印提示信息 printf(- n); printf(请输入航班号: ); scanf(%d,&sm.num); /读取航班号 printf(请输入起始站: ); scanf(%s,sm.start); /读取起始站 printf(请输入终点站: ); scanf(%s,sm.over); /读取终点站 printf(请输入时间: ); scanf(%s,sm.time); /读取时间 printf(请输入机票数: ); scanf(%d,&sm.count); /读取机票数 m

17、+; printf(添加完毕,是否继续添加?请键入y或n以回车键结束:); scanf(%s,ii); while(!strcmp(ii,y); /判断是否继续添加void output() /定义输出格式函数 printf(航班号tt起始站tt终点站tt时间tt机票数n); /信息标题 for(i=0;im;i+) printf(PRINT);/打印出信息 void print() /定义显示航班信息函数 printf(n目前我们有如下航班:n); output(); /调用输出格式函数 printf(n请按回车键返回上层菜单 ); getchar(); getchar(); void se

18、arch() /定义查询函数 int n; do printf(n请输入航班号: ); scanf(%d,&n); /输入查询的航班号 for(i=0;im;i+) if(si.num=n) /按航班号判定输出条件 printf(n您所查找的航班信息为:n ); printf(航班号tt起始站tt终点站tt时间tt机票数 nn); printf(PRINT); /显示信息 printf(n查询完毕,按回车键继续); getchar(); getchar(); return; printf(n对不起,没有您需要的信息!n ); printf(是否重新查找?请键入y或n以回车键结束 ); scan

19、f(%s,ii); while(!strcmp(ii,y);/判定是否重新查找 void dingpiao() /定义订票业务函数 int n; char a10=y; do search(); /调用查询模块 if(!strcmp(ii,n) printf(对不起!没有找到您所需要的航班,所以不能订票。n); /未查找到所需航班 printf(n请按回车键返回上层菜单 ); getchar(); getchar(); strcpy(ii,n); break; do printf(请输入您要订的机票数(以回车键结束): ); scanf(%d,&n); /输入所订机票数 if(n=n) /判定

20、机票数是否大于等于订票数 si.count=si.count-n; printf(订票成功! ); break; else if(si.countn)/判定机票数是否小于订票数 printf(对不起,你所选择的航班只剩 %d张机票n, si.count); printf(是否需要重新输入机票数?请输入y或n以回车键结束: );/判定是否重新输入订票数 scanf(%s,a); while(!strcmp(a,y); printf(是否需要订其他航班的机票?请输入y或n以回车键结束: ); scanf(%s,a); while(!strcmp(a,y); /判定是否继续订票void tuipia

21、o() /定义退票函数 int n; char a10; do search(); /调用查询函数 if(!strcmp(ii,n) printf(对不起!没有找到您所需要的航班,所以不能退票。n); printf(n请按回车键返回上层菜单 ); getchar(); getchar(); strcpy(ii,n); break; printf(请输入您要退的机票数目: ); scanf(%d,&n); /输入所退票数 if(n=0) /判定票数是否有效 printf(输入错误!至少需退1张机票。 ); else si.count=si.count+n; printf(退票成功! ); pri

22、ntf(是否继续? 请键入y或n以回车键结束: ); /判定是否继续退票 scanf(%s,a); while(!strcmp(a,y); /判定并跳出循环 void paixu() /定义排序函数 int n; printf(n* ); printf(1.按航班号从小到大排序n t2.按航班号从大到小排序n); printf(* ); printf(请在1-2中选择以回车键结束: ); scanf(%d,&n); /输入排序方式 switch(n) case 1:paixu1();/调用从小到大排序函数 break; case 2:paixu2();/调用从大到小排序函数 break; pr

23、intf(排序后的航班信息为:n); output(); /显示排序后航班信息 printf(n请按回车键返回上层菜单 ); getchar(); getchar();void paixu1() /定义从小到大排序函数 int k,j; struct air t; for(i=0;im;i+) /选择法排序 k=i; for(j=i+1;jsj.num) k=j; if(i!=k) t=sk; sk=si; si=t; void paixu2() /定义从大到小排序函数 int k,j; struct air t; for(i=0;im;i+) k=i; for(j=i+1;jm;j+) if(sk.numsj.num) k=j; if(i!=k) t=sk; sk=si; si=t; 以上即为我们的源程序清单。b) 执行结果:程序最终运行情况如所贴图表。1) 第一次运行程序(输入初始数据)界面提示输入原始数据:请输入航班号请输入起始站请输入终点站请输入飞行时间请输入机票数。我按照提示一次输入了4个航班信息后按提示输入“n”则不再继续输入,系统显示出了主菜单界面。接着按0退出程序,显示“谢谢使用,再见。”图表 1

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1