飞机订票系统课程设计报告_第1页
飞机订票系统课程设计报告_第2页
飞机订票系统课程设计报告_第3页
飞机订票系统课程设计报告_第4页
飞机订票系统课程设计报告_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上飞机订票系统课程设计报告 指导老师: 班 级: 学生姓名: 学 号: 完成日期: 计算机科学与技术系飞机订票系统课程设计报告一、系统分析。1.1根据飞机订票系统的设计目的,设计内容和设计要求。本团队对飞机订票系统这一基础管理系统的业务进行了细致的分析讨论。最终我们决定将整个系统分成7个主要模块。采用结构体这一数据结构来存放教师的信息。首先是信息录入模块,接下来输出模块,即浏览,查询,排序信息三个模块,最后是订票,退票模块。为降低操作难度,以及出错率,决定使用全局数组及变量进行操作。1.2飞机订票系统简易图二、系统设计2.1总体设计(主要功能)本程序包含六大主要模块添加

2、信息模块;浏览信息模块;信息查询模块;信息排序模块;订票模块;退票模块。整体程序采用全局数组fj(飞机)进行存储,全局变量pd(判断)作为标识变量。宏定义输出格式。采用Y,N的方式进行操作回退或继续操作的选择。航班信息包括:航班号,起点,终点,票价,数量及订票标志量(隐藏信息)。输入模块,使用分条输入,以减少错误率并方便操作。浏览,查询及排序模块,组合成输出模块。多方式输出更便于观察并方便记录,同时为后续模块的执行提供操作基础。订,退票模块调用查询模块实现其功能。2.2 软件、硬件环境软件环境 VC2009硬件环境 处理器 Intel(R) Core(TM) i5-3210M CPU 2.50

3、GHz 2.50GHz;显卡 GTX650。内 存 4.0GB操作系统 Windows 72.3主要数据结构和程序的关系说明主要数据结构是结构体struct hbxx/定义结构体数组,航班信息int hbh;/定义航班号char qd20;/起点站char zd20;/终点站float pj;/票价int sl;/机票数量int dcp;/订票标志量fjN;2.4界面设计本程序开始运行的界面,共7个选项,简洁而大方。接下来是添加信息的界面。采用分条添加,清晰而明朗。浏览信息的界面,将所有航班信息显示在屏幕上。查询航班信息界面,根据用户输入的航班号,显示其航班信息。便于用户使用,查找。航班排序界

4、面,将所有航班根据航班号进行排序,可由用户选择是由大到小,还是由小到大。订票界面,由用户输入需要订票的航班号,在进行订票操作。退票界面。2.5函数模块设计(函数功能说明和入口参数的说明)void xxtj();/信息添加的函数void xianshi();/显示航班信息void chazhao();/查找航班信息void dingpiao();/订票业务void tuipiao();/退票业务void duqu();/读取文件void baocun();/保存文件void scgs();/输出格式函数void paixu();/航班排序void chushihua();/系统初始化void j

5、ianli();/建立数据文件void paixu1();/按航班号从小到大排void paixu2();/从大到小三、系统实现主要代码/飞机订票系统/头文件#include<stdio.h>/标准输入,输出函数#include<string.h>/包含字符串处理的头文件#include<process.h>/包含access的头文件,用于系统初始化#define N 9999/定义最大航班数#define PRINT "%dtt%stt%stt%.2ftt%dn",fji.hbh,fji.qd,fji.zd,fji.pj,fji.sl/

6、宏定义输出格式struct hbxx/定义结构体数组,航班信息int hbh;/定义航班号char qd20;/起点站char zd20;/终点站float pj;/票价int sl;/机票数量int dcp;/订票标志量fjN;int i,m=0;/定义全局变量char pd10="y"/函数声明void xxtj();/信息添加的函数芦杰void xianshi();/显示航班信息祁海鹏void chazhao();/查找航班信息祁海鹏void dingpiao();/订票业务李平void tuipiao();/退票业务李平void duqu();/读取文件蔡晓宏voi

7、d baocun();/保存文件蔡晓宏void scgs();/输出格式函数祁海鹏void paixu();/航班排序李平void chushihua();/系统初始化芦杰void jianli();/建立数据文件芦杰void paixu1();/按航班号从小到大排蔡晓宏void paixu2();/从大到小蔡晓宏/主函数void main()/主函数李平int j;chushihua();/系统初始化判断是否存在原始的数据文件printf("欢迎使用飞机订票系统n");/打印出系统主界面doprintf("=n""ttt1.添加航班信息。n&

8、quot;"ttt2.浏览航班信息。n""ttt3.查询航班信息。n""ttt4.航班信息排序。n""ttt5.订票业务。n""ttt6.退票业务。n""ttt0.退出。n""=n");printf("请在0-6中选择以回车键结束:");scanf("%d",&j);switch(j)case 1:xxtj();break;/调用信息添加函数case 2:xianshi();break;/调用显示模块case

9、 3:chazhao();break;/调用查找模块case 4:paixu();break;/调用排序函数case 5:dingpiao();break;/调用订票模块case 6:tuipiao();break;/调用退票模块case 0:baocun();printf("谢谢使用,再见!n");break;default:printf("输入有误!n");break;while(j!=0);/判断是否调用其他函数void chushihua()/定义系统初始化函数卢杰if(access("fjdpxt.dat",0)jianli

10、();elseduqu();void jianli()/定义建立数据文件函数卢杰FILE *fp;if(fp=fopen("fjdpxt.dat","wb")=NULL)/打印文件判断是否出错printf("创建文件失败!");/打印出错提示getchar();return;printf("请依次输出航班信息(以回车键结束):n");/打印提示信息printf("-n");for(i=0;i<N;i+)printf("请输入航班号:");scanf("%d&q

11、uot;,&fji.hbh);printf("请输入起始站:");scanf("%s",fji.qd);printf("请输入终点站:");scanf("%s",fji.zd);printf("请输入票价:");scanf("%f",&fji.pj);printf("请输入机票数:");scanf("%d",&fji.sl);fwrite(&fji,sizeof(struct hbxx),1,fp);m+

12、;printf("添加完毕,是否继续添加?请键入y或n以回车键结束:");scanf("%s",pd);if(strcmp(pd,"y")!=0)/判断是否继续添加航班信息fclose(fp);/关闭文件return;void duqu()/定义读取文件函数蔡晓宏FILE *fp;if(fp=fopen("fjdpxt.dat","r")=NULL)printf("创建文件失败!");getchar();return;i=0;while(!feof(fp)/判断是否遇到文件结

13、束, fread(&fji,sizeof(struct hbxx),1,fp);/逐块读取数据i+;m+;/计算存在的航班数m-;fclose(fp);void baocun()/定义保存函数蔡晓宏FILE *fp;if(fp=fopen("fjdpxt.dat","wb")=NULL)printf("创建文件失败!");getchar();return;for(i=0;i<m;i+)/逐块保存数据fwrite(&fji,sizeof(struct hbxx),1,fp);fclose(fp);void xxtj

14、()/定义添加航班信息函数卢杰doprintf("请依次输入您要添加的航班信息(以回车键结束):n");/打印提示信息printf("n");printf("请输入航班号:");scanf("%d",&fjm.hbh);printf("请输入起点站:");scanf("%s",fjm.qd);printf("请输入终点站:");scanf("%s",fjm.zd);printf("请输入票价:");scanf

15、("%f",&fjm.pj);printf("请输入机票数:");scanf("%d",&fjm.sl);m+;printf("添加完毕,是否继续添加?请键入y或者n以回车键结束:");scanf("%s",pd);while(!strcmp(pd,"y");/判断是否继续添加void scgs()/定义输出格式祁海鹏printf("航班号tt起始站tt终点站tt价格tt机票数n");/信息标题 for(i=0;i<m;i+)prin

16、tf(PRINT);/打印出信息void xianshi()/定义显示航班信息函数祁海鹏printf("n目前我们有如下航班:n");scgs();/调用输出格式函数printf("n请按回车键返回上层菜单");getchar();getchar();void chazhao()/定义查询函数祁海鹏int n;doprintf("n请输入航班号:");scanf("%d",&n);/输入查询的航班号for(i=0;i<m;i+)if(fji.hbh=n)/按航班号判定输出条件printf("

17、n您所查找的航班信息为:n");printf("航班号tt起始站tt终点站tt票价tt机票数nn");printf(PRINT);/显示信息strcpy(pd,"y");printf("n查询完毕,按回车键继续");getchar();getchar();return;printf("n对不起,没有您需要的信息!n");printf("是否重新查找?请键入y或n以回车键结束:");scanf("%s",pd);while(!strcmp(pd,"y&quo

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

19、mp;fji.dcp);/输入所定机票数if(fji.dcp<=0)/判断机票数是否出错printf("输入错误!至少需订1张机票。n");else if(fji.sl=0)/判断机票是否手售完printf("对不起,你所选择的航班的机票已售完!n");break;else if(fji.sl!=0&&fji.sl>=fji.dcp)/判断机票数是否大于等于订票数fji.sl=fji.sl-fji.dcp;printf("订票成功!");break;else if(fji.sl<fji.dcp)/判断

20、机票数是否小于订票数printf("对不起,您所选择的航班只剩%d张机票n",fji.sl);printf("是否需要重新输入机票数?请输入y或n以回车键结束:");/判断是否重新输入订票数scanf("%s",a);while(!strcmp(a,"y");printf("是否需要订其他航班的机票?请输入y或n以回车键结束:");scanf("%s",a);while(!strcmp(a,"y");/判断是否继续订票void tuipiao()/定义退票

21、函数李平char a10;doint n=0;chazhao();/调用查找函数if(strcmp(pd,"y")printf("对不起!没有找到你所需要的航班,所以不能退票。n");printf("n请按回车键返回上层菜单");getchar();getchar();strcpy(pd,"n");break;printf("请输入您要退的机票数目:");scanf("%d",&n);/输入所退票数if(n<=0)/判断票数是否有效printf("输入

22、错误!至少需退1张机票。n");else if(n>=fji.dcp)printf("输入错误,退票量大于售出量。n");elsefji.sl=fji.sl+n;printf("退票成功!");printf("是否继续?请键入y或n以回车键结束:");/判断是否继续退票scanf("%s",a);while(!strcmp(a,"y");/判定并跳出循环void paixu()/定义排序函数李平intn;printf("n*n");printf("1

23、.按航班号从小到大排序n""2.按航班号从大到小排序n");printf("*");printf("请在1-2中选择以回车键结束:");scanf("%d",&n);/输入排序方式switch(n)case 1:paixu1();break;/调用从小到大排序函数case 2:paixu2();break;/调用从大到小排序函数default:printf("输入有误!按默认输出。n");printf("排序后的航班信息为:n");scgs();/显示排序后的航班信息printf("n请按回车键返回上层菜单");getchar();getchar();void paixu1()/定义从小到大排序函数int k,j;struct hbxx t;for(i=0;j<m;i+)k=1;for(j=1;j<m;j+)if(fjk.hbh&

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论