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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

飞机订票系统课程设计报告.docx

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

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

3、Hz 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 ch

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

6、信息 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(); /读取文件蔡晓宏void baocun(); /保存文件蔡晓宏

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

8、班信息排序。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 3:chazhao();break; /调用查找模块 case 4:paixu();break; /调用排序函数 case 5:dingpiao();break;/调用订票模块 case 6:tuipiao();break; /调用退票模块 case 0:baocun()

9、; printf(谢谢使用,再见!n); break; default:printf(输入有误!n);break; while(j!=0); /判断是否调用其他函数void chushihua() /定义系统初始化函数卢杰 if(access(fjdpxt.dat,0) jianli(); else duqu(); void jianli() /定义建立数据文件函数卢杰 FILE *fp; if(fp=fopen(fjdpxt.dat,wb)=NULL) /打印文件判断是否出错 printf(创建文件失败!); /打印出错提示 getchar(); return; printf(请依次输出航班

10、信息(以回车键结束):n); /打印提示信息 printf(-n); for(i=0;iN;i+) printf(请输入航班号:); scanf(%d,&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+; printf(添加完毕,是否继续添加?请键入y或n以回车键

11、结束:); 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) /判断是否遇到文件结束, fread(&fji,sizeof(struct hbxx),1,fp); /逐块读取数据 i+; m+; /计算存在的航班数 m-; fclose(fp);void

12、 baocun() /定义保存函数蔡晓宏 FILE *fp; if(fp=fopen(fjdpxt.dat,wb)=NULL) printf(创建文件失败!); getchar(); return; for(i=0;im;i+) /逐块保存数据 fwrite(&fji,sizeof(struct hbxx),1,fp); fclose(fp);void xxtj() /定义添加航班信息函数卢杰 do printf(请依次输入您要添加的航班信息(以回车键结束):n); /打印提示信息 printf(n); printf(请输入航班号:); scanf(%d,&fjm.hbh); printf(请

13、输入起点站:); scanf(%s,fjm.qd); printf(请输入终点站:); scanf(%s,fjm.zd); printf(请输入票价:); scanf(%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;im;i+) printf

14、(PRINT);/打印出信息 void xianshi() /定义显示航班信息函数祁海鹏 printf(n目前我们有如下航班:n); scgs(); /调用输出格式函数 printf(n请按回车键返回上层菜单); getchar(); getchar();void chazhao() /定义查询函数祁海鹏 int n; do printf(n请输入航班号:); scanf(%d,&n); /输入查询的航班号 for(i=0;im;i+) if(fji.hbh=n) /按航班号判定输出条件 printf(n您所查找的航班信息为:n); printf(航班号tt起始站tt终点站tt票价tt机票数n

15、n); printf(PRINT); /显示信息 strcpy(pd,y); printf(n查询完毕,按回车键继续); getchar(); getchar(); return; printf(n对不起,没有您需要的信息!n); printf(是否重新查找?请键入y或n以回车键结束:); scanf(%s,pd); while(!strcmp(pd,y); /判断是否重新查找void dingpiao() /定义订票业务函数李平 char a10=y; do chazhao(); /调用查询模块 if(strcmp(pd,y) printf(对不起!没有找到您所需要的航班,所以不能订票。n)

16、; printf(n请按回车键返回上层菜单); getchar(); getchar(); strcpy(pd,y); break; do printf(请输入您要订的机票数(以回车结束):); scanf(%d,&fji.dcp); /输入所定机票数 if(fji.dcp=fji.dcp) /判断机票数是否大于等于订票数 fji.sl=fji.sl-fji.dcp; printf(订票成功!); break; else if(fji.slfji.dcp) /判断机票数是否小于订票数 printf(对不起,您所选择的航班只剩%d张机票n,fji.sl); printf(是否需要重新输入机票数?

17、请输入y或n以回车键结束:); /判断是否重新输入订票数 scanf(%s,a); while(!strcmp(a,y); printf(是否需要订其他航班的机票?请输入y或n以回车键结束:); scanf(%s,a); while(!strcmp(a,y); /判断是否继续订票void tuipiao() /定义退票函数李平 char a10; do int n=0; chazhao(); /调用查找函数 if(strcmp(pd,y) printf(对不起!没有找到你所需要的航班,所以不能退票。n); printf(n请按回车键返回上层菜单); getchar(); getchar();

18、strcpy(pd,n); break; printf(请输入您要退的机票数目:); scanf(%d,&n); /输入所退票数 if(n=fji.dcp) printf(输入错误,退票量大于售出量。n); else fji.sl=fji.sl+n; printf(退票成功!); printf(是否继续?请键入y或n以回车键结束:); /判断是否继续退票 scanf(%s,a); while(!strcmp(a,y); /判定并跳出循环void paixu() /定义排序函数李平 int n; printf(n*n); printf(1.按航班号从小到大排序n 2.按航班号从大到小排序n);

19、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

20、; for(i=0;jm;i+) k=1; for(j=1;jfjj.hbh) k=j; if(i!=k) t=fjk; fjk=fji; fji=t; void paixu2() /定义从大到小排序函数 int k,j; struct hbxx t; for(i=0;jm;i+) k=1; for(j=1;jm;j+) if(fjk.hbhfjj.hbh) k=j; if(i!=k) t=fjk; fjk=fji; fji=t; 四、程序调试结果,测试过程中遇到的主要问题及采取的解决措施 拿到课题,我们感觉不知该从那一步开始,制定了好多方案,想使用链表实现系统功能,查询资料自学链表知识,但是

21、总是一知半解无法实现功能。然后我们决定使用指针,并且成功编完了程序,但是错误太多,经过修改仍无法完成调试。讨论决定果断放弃,采用全局结构体数组。这一决定,大幅度降低了编程的难度,我们完成了调试。但是运行中总是执行中断。查找资料,说可能是系统空间的问题,使用文件存储可以解决。但是文件方面的知识掌握得很不扎实,只能一手拿书一手查资料,展开工作。并且成功完成了调试运行,进行测试中发现有好多的BUG,比如订票系统首次使用会报错,退票系统可退比订票量还多得票等等。我们一条一条修复。最终完成程序。五、总结 经过本次程序设计,暴露出本团对的很多问题,首先是知识掌握水平不一,作为组长因自身英语水平不高,果断决定所有变量及函数名采用拼音缩写。然后是队员编出的程序无法完美兼容,显示出我们沟通的缺乏。 同时也表现出我们知识的欠缺,对于链表,指针及文件的使用,掌握的是在有限,仍需要不断学习,书本上的东西跟本无法完成一个程序。每次报错我们需要根据错误修改,改不了的就上网查找原因。还有好多好多的瑕疵。 但是不得不承认,经过本次课题设计,也表现出队员们的很多优点,思维缜密,查漏补缺,集体的力量是伟大,通过大家的讨论,总能得到一个好的解决方案。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2