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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

飞机订票系统实验报告.docx

1、飞机订票系统实验报告 实验题目:订票系统实验目的:1了解并掌握数据结构的设计方法,具备初步的独立分析和设计能力;2初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。实验要求: 任务:通过此系统可以实现如下功能: 录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定) 查询: 可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓); 可以输入起

2、飞抵达城市,查询飞机航班情况; 订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班; 退票: 可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。 修改航班信息:当航班信息改变可以修改航班数据文件实验主要步骤:航班端(一) 输入航班信息,add()增加航班信息,并保存到save().(二) 修改信息,在xiugai()函数里,输入要修改的航班号,选择修改的内容,如修改时间,地点并保存。客户端(一) 输入起始站和终点站,在两者都符合的条件下在search()函数里查找,并输出航班信息。(二) 订票:用s

3、earch(),判断是否有符合的航班,有则输出并进行订票,还有输入客户信息。(三) 退票:调用search(),用它的返回值判断是否有符合的航班,有则输入,并删除客户信息。1) 在主函数里先了调用chushihua(),确定有hangban.dat文件,并让客户或航班端选择相应的模块。2) 定义订票业务函数,在这个函数中首先调用了search函数查找需要订票的航班,用search函数的返回值判断是否有该航班。运用if语句实现订票时的多种情况:订票数输入不正确、飞机票数不足等情况。订票成功时运用pi.count=pi.count-n;将已被订的机票数减去,以显示新的即时航班信息3) 定义退票业务

4、函数:4) 与订票函数相类似,只做稍稍修改就行退票成功是用pi.count=pi.count+n; 将航班的剩余票数加上去以显示即时航班信息。5) 模块功能:设立一个初始化函数来得到航班信息。具体设计是第一次运行程序时自动生成保存航班信息的文件,并输入初始航班信息,待第二次开始就可以直接读取该文件获得已有的航班信息并可直接使用。运用了access函数判断文件是否存在。实验结果:实验源程序:#include /标准输入、输出头文件#include /包含字符串函数处理头文件#include /包含access函数的头文件#define M 1000 /定义最多的航班数#define E 1000

5、#define PRINT %dtt%stt%stt星期%st%dt%dn ,pi.num,pi.start,pi.des,pi.time,pi.count ,pi.price /宏定义输出格式struct air /定义结构体数组 int num; /定义航班号 char start20; /航班起始站 char des20; /终点站 char time10; /飞行时间 int count; /机票数量 int price; /机票价格pM;struct client long id; /身份证 char name20; /客户姓名 int count ; /客户订票量 int num;

6、 /航班号cE;int i,m=0,e=0; /定义全局变量char ii10;void add(); /函数声明增加航班信息函数void print(); /显示航班信息int search(); /查找航班信息void dingpiao(); /订票业务void tuipiao(); /退票void read(); /读取文件 void save(); /保存文件void output(); /输出格式void chushihua(); /系统初始化void build(); /建立数据文件void del();void xiugai();void main() int j; chushi

7、hua(); /系统初始化判断是否存在原始数据文件 printf( -您好,欢迎进入飞机订票系统!-n); printf(=n); do printf( - 1.增加航班信息 - nn - 2.浏览航班信息 - nn - 3.查找航班信息 - nn - 4.订票业务 - nn - 5.退票业务 - nn - 6.修改航班信息 - nn - 0.退出 - nn); printf(=n); printf(请在0-6中选择以回车键结束:nn); scanf(%d,&j); switch(j) case 1: add(); /调用增加航班函数 break; case 2:print(); /调用显示模

8、块 break; case 3:search(); /调用查找模块 break; case 4:dingpiao(); /调用订票模块 break; case 5:tuipiao(); /调用退票模块 break; case 6:xiugai(); case 0: /退出系统 save(); printf(谢谢使用,再见! ); break; while(j!=0); /判断是否调用其他函数 void chushihua() /定义系统初始化函数 if(access(hangban.dat,0) build(); else read(); void build() /定义建立数据文件函数 FI

9、LE *fp; /定义文件指针 if(fp=fopen(hangban.dat,wb)=NULL) /打开文件并判定是否出错 printf(创建文件失败! ); /打印出错提示 getchar(); return; printf(请依次输入航班信息(以回车键结束):n); /打印提示信息 printf(- n); for(i=0;iM;i+) printf(请输入航班号: ); scanf(%d,&pi.num); /输入航班号 printf(请输入起始站: ); scanf(%s,pi.start); /输入起始站 printf(请输入终点站: ); scanf(%s,pi.des); /输

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

11、; if(fp=fopen(hangban.dat,r)=NULL) printf(创建文件失败! ); getchar(); return; i=0; while(!feof(fp) fread(&pi,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(

12、&pi,sizeof(struct air),1,fp); fclose(fp);void add() /定义增加航班信息函数 do printf(请依次输入您要增加的航班信息(以回车键结束): n); /打印提示信息 printf(- n); printf(请输入航班号: ); scanf(%d,&pm.num); /读取航班号 printf(请输入起始站: ); scanf(%s,pm.start); /读取起始站 printf(请输入终点站: ); scanf(%s,pm.des); /读取终点站 printf(请输入时间: ); scanf(%s,pm.time); /读取时间 pri

13、ntf(请输入机票数: ); scanf(%d,&pm.count); /读取机票数 printf(请输入价格:); scanf(%d,&pm.price); /读取机票价格 m+; printf(添加完毕,是否继续添加?请键入y或n以回车键结束:); scanf(%s,ii); while(!strcmp(ii,y); /判断是否继续添加void output() /定义输出格式函数 printf(航班号tt起始站tt终点站tt时间t机票数t价格n); /信息标题 for(i=0;im;i+) printf(PRINT);/打印出信息 void print() /定义显示航班信息函数 pri

14、ntf(n目前我们有如下航班:n); output(); /调用输出格式函数 printf(n请按回车键返回上层菜单 ); getchar(); getchar(); int search() /定义查询函数 int h=0; char a20; char b20; do printf(n请输入航班起点站: ); scanf(%s,a); /输入查询的航班起点 printf(n请输入航班终点站:); scanf(%s,b); for(i=0;im;i+) if(strcmp(pi.start,a)=0&strcmp(pi.des,b)=0) /按航班起点和终点站判定输出条件 printf(n您

15、所查找的航班信息为:n ); printf(航班号tt起始站tt终点站tt时间t机票数t机票价格 n); printf(PRINT); /显示信息 printf(n查询完毕,按回车键继续); h=1; getchar(); getchar(); return h; printf(n对不起,没有您需要的信息!n ); printf(是否重新查找?请键入y或n以回车键结束 ); scanf(%s,ii); while(!strcmp(ii,y);/判定是否重新查找 void dingpiao() /定义订票业务函数 int h; int n; char a10=y; do h=search();

16、/调用查询模块 if(h=0) printf(对不起!没有找到您所需要的航班,所以不能订票。n); /未查找到所需航班 printf(n请按回车键返回上层菜单 ); getchar(); getchar(); break; do printf(请输入您要订的机票数(以回车键结束): ); scanf(%d,&n); /输入所订机票数 if(n=n) /判定机票数是否大于等于订票数 printf(请输入您的姓名:); scanf(%s,ce.name); printf(请输入您的身份证:); scanf(%d,&ce.id); ce.num=pi.num; ce.count=n; n+; pi.

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

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

19、 ); /判定是否继续退票 scanf(%s,a); while(!strcmp(a,y); /判定并跳出循环 void del() int a,j,n; printf(请输入您退票的航班号n); scanf(%d,&n); for(a=0;ae;a+) if(ca.num=m) for(j=a;je-1;a+) cj=cj+1; printf(删除成功!n); e-;void xiugai() int a,b,j,w,q; char h20,g20; printf(请输入要修改的航班的航班号n); scanf(%d,&b); for(i=0;iM;i+) if(pi.num=b) print

20、f(n请选择 ,1.修改城市,2修改时间,3价格,4,航班号,0退出n); scanf(%d,&a); if(a=1) printf(请选择修改的是:1.起始站,2.终点站n); scanf(%d,&j); if(j=1) printf(请输入修改后的起始站:n); scanf(%s,h); strcpy(pi.start,h); printf(修改成功); else if(j=2) printf(请输入修改后的终点站:n); scanf(%s,h); strcpy(pi.des,h); printf(修改成功); if(a=2) printf(请输入修改后的时间n); scanf(%s,g)

21、; strcpy(pi.time,g); printf(修改成功); if(a=3) printf(请输入修改后的价格n); scanf(%d,&w); pi.price=w; printf(修改成功); if(a=4) printf(请输入修改后的航班号n); scanf(%d,&q); else if(a=0) save(); break; 结果输出:心得体会:调试过程中曾经遇到过一些问题:订票或退票的时候不能将剩余的票数加上和减去。后来经过详细的检查与对照课本知识点找出了相应的错误点,经过修改加入票数加减语句,再经过与保存函数的配合后实现了题目要求的功能。调试成功。经过此次的课程设计,可以很明确的了解到自己哪些知识点掌握的比较好,哪些知识点运用的还不够熟练。通过此次课程设计也学会综合运用理论知识来分析和解决实际问题的能力、养成严谨的科学态度和良好的程序设计习惯,实现由知识向智能的初步转化;学会遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照课程设计的题目要求,完成设计、编写、调试和测试应用程序及编写文档的任务。

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

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