版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、滁滁州州学学院院课课程程设设计计报报告告课程名称:课程名称: 数据结构 设计题目设计题目: 飞机票务管理系统 系系 别:别: 计算机科学与技术 专专 业:业: 计算机科学与技术 组组 别:别: 第十九组 起止日期起止日期: 2011 年 5 月 20 日2011 年 6 月 20 日 指导教师指导教师: 杨斌 计算机科学与技术系计算机科学与技术系 20112011 年制年制2课程设计任务书课程设计任务书课程设计题目机票预订与查询组长牛绍海学号2010211110班级计科(1)班系别计算机系专业计算机科学与技术组员杨涛 2010211136 张树建 2010211144范玲春 201021108
2、0指导教师杨斌课程设计目的设计一个飞机票务管理程序课程设计所需环境Microsoft Visual C+6.0课程设计任务要求通过设计的程序完成飞机票务管理与操作课程设计工作进度计划序号起止日期工 作 内 容分工情况15.215.22小组成员讨论程序设计概要所有成员参与25.225.25小组成员接受各自程序任务所有成员参与35.266.15各组员完成各自设计编写任务赵雷完成主要文件操作范玲春完成飞机信息及订票程序张树建完成机票信息程序杨涛完成主要添加信息程序牛少海完成信息查找及修改程序孔旭东完成主函数及程序汇总工作46.156.17程序汇总及调试所有成员参与56.186.19小组成员讨论程序结
3、果及心得体会所有成员参与66.20完成各自心得体会文档,准备答辩所有成员参与指导教师签字: 年 月 日教研室审核意见:教研室主任签字: 年 月 日3目目 录录一一 引引言言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 3二二 需需求求分分析析 . . . . . . . . . . . . . . . . . . . . . . . . . . .
4、 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 4系统所实现功能.4 要求:.4 运行环境及开发工具:.4三三 设设计计概概要要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 5 程序概要图.5 主要数据结构234 .5 课程设计所用方法及原理
5、.6四四 详详细细设设计计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 6 所需软件环境.6 部分程序程序源代码.6 程序运行结果简介.17五五 调调试试及及操操作作说说明明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6、 . . . . . . . . . . . . . .1 19 9(1) 初始操作.19 主要功能操作.19六六 课课程程设设计计体体会会与与总总结结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 26 6体会.26 总结.26致致谢谢 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7、 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 27 7参参考考文文献献 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 27 7按按照照第第三三组组或或者者模模板板认认真真修修改改。 页页眉眉上上不不要要有有页页码码!4一一 引言引言乘坐飞机已经不是什么新鲜事,一张机票就是一个登
8、记的凭证。但是,你是否知道机场是如何处理订票、退票、查询、排队等一系列问题的?首先,一位乘客来到机场或代售点,他要先选择他需要的业务和帮助是订票、退票,如果选择订票,那么他还要确定要到达的目的地、飞机班次等诸如此类的问题,订票时偶尔也会出现暂时买不到票的情况,那么就要排队;如果选择退票,那就按退票的程序进行总之,本程序模拟的就是买票恩退票的过程,飞机票务系统可以帮助机场工作人员很好的处理这些琐碎的问题。二二 需求分析需求分析系统所实现功能 录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班
9、票价,票价折扣,确定航班是否满仓) ;可以输入起飞抵达城市,查询飞机航班情况;订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;退票: 可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。修改航班信息:当航班信息改变可以修改航班数据文件 要求:根据以上功能说明,设计航班信息,订票信息的存储结构1,设计程序完成功能; 运行环境及开发工具: Microsoft Visual C+6.0 中 C 语言开发、5三三 设计概要设计概要 程序概要图系统中主要函数及功能信息查询函数makenull_informa
10、tion()makenull_wait()list_information()plane_information()查询机票及等候排队信息信息输入函数book()add_information()add_wait()输入订票及排队信息信息输出函数list_piao()show_wait()write_to_file()输出机票及排队信息信息修改函数search_delete()查找及对信息作出修改图 1 程序概要 主要数据结构234#include #include #include #include #define m 4 #define n 56struct node char name2
11、1; char id21;char phone8; int seat,plane,date; node *next,*pre;struct wait char name21; char id21; char phone13; int seat,plane,date,count; wait *next,*pre;struct piao int seatn+1; 课程设计所用方法及原理将订票人输入的信息写入文件,同时系统记录这一信息并对机票信息作出修改,当其他人订票或查询时,输出修改后的信息,当票已被预定完时,输出等候建议。主要利用了文件的各种操作1,指针的各项应用等知识2。四四 详细设计详细设计
12、 所需软件环境Windows 操作系统下的 Microsoft Visual C+6.0 软件环境 部分程序程序源代码void makenull(); /赵雷 void makenull_piao();/赵雷 void makenull_information();/赵雷 void makenull_wait();/赵雷 void list_menu();/孔旭东,main 函数void show_wait();/孔旭东7void list_piao();/张树建void list_information();/张树建void plane_information(node *head);/范林
13、春void book();/范林春void add_information(node *head,int x,int y);/杨涛void add_wait(int x,int y);/杨涛void search_delete(int x);/牛绍海bool comp(node *x,node*y);/牛绍海void write_to_file();/牛绍海/node *head1,*head2,*head3,*q;wait *wait_head,*wait_end;piao am;void main()char choose; makenull(); do if (choose!=6) li
14、st_menu(); printf(请输入您的选择: );scanf(%s,&choose); switch(choose) case 0 : show_wait();break; case 1 : list_piao();book();break; case 2 : search_delete(1);break; case 3 : list_piao();break; case 4 : list_information();break; case 5 : search_delete(0);break; default : break; while(choose!=6); printf
15、(退出程序n);void makenull() makenull_piao();/票务信息 makenull_information();/客户信息 makenull_wait();/等候人员信息void list_menu() printf(n); printf( 菜单 n); printf( *n);8 printf( * 0 . 查看排队情况 *n); printf( * 1 . 订票 *n); printf( * 2 . 退票 *n); printf( * 3 . 查看剩余票 *n); printf( * 4 . 查看飞机信息 *n); printf( * 5 . 查看乘客信息 *n)
16、; printf( * 6 . 退出 *n); printf( *n); printf(n);void makenull_piao()/机票信息的文件建立 FILE *fp; int i; if(fp=fopen(piao.dat,r) = NULL ) fp=fopen(piao.dat,w); for (i=1;i=m-1;i+) fwrite(&ai,sizeof(piao),1,fp); fclose(fp); fp=fopen(piao.dat,r); for(i=1;ipre=NULL; head1-next=NULL; head2-pre=NULL; head2-next
17、=NULL; head3-pre=NULL; head3-next=NULL; q=head1;9 for(i=1;inext=r; r-pre=q; r-next=NULL; q=q-next; fclose(fp); if(i=a1.seat0+1) head2-next=q; q-pre-next=NULL; q-pre=head2; if(i=a1.seat0+a2.seat0+1) head3-next=q; q-pre-next=NULL; q-pre=head3; void makenull_wait()/排队人员信息的文件读写操作 wait *tempw; FILE *fp;
18、tempw=new wait; int i; if(fp=fopen(wait.txt,r) =NULL ) fp=fopen(wait.txt,w); fclose(fp); wait_end=new wait; wait_head=new wait; wait_end-next=NULL; wait_end-pre=NULL; wait_head=wait_end; /t_head-count=0; fp=fopen(wait.txt,r); fread(wait_head,sizeof(wait),1,fp); for(i=1;icount;i+) fread(tempw,sizeof(
19、wait),1,fp);10 wait_end-next=tempw; tempw-pre=wait_end; tempw-next=NULL; wait_end=tempw; void list_piao()/剩余机票信息 int i,j; for(i=1;i=m-1;i+) if(ai.seat0!=n) printf(第 %d 架飞机剩余的票 :n,i); for(j=1;j=n;j+) if (ai.seatj=0) printf(%d ,j);printf(n); else printf(n The %d plane is full !n,i); void list_informat
20、ion() /显示飞机信息 int x; do printf(显示哪架飞机的信息 ? ); scanf(%d,&x);printf(n);while(x=m); printf(第 %d 架飞机的信息如下 n ,x); if(x=1) plane_information(head1); if(x=2) plane_information(head2); if(x=3) plane_information(head3);void plane_information(node *head)/飞机机票信息 node *q; if(head!=NULL & head-next!=NULL
21、) q=head-next; else q=NULL; cout飞机空,无预订票 !endl; while(q!=NULL) coutendl*date=q-plane; cout日期 :dateendl; cout座位号 : seatendl; cout姓名 : name; coutendlID 号 : id;coutendl电话号码:phone; q=q-next; coutendl;void book() /订票 int i,j,p; coutendli; if (i=m) coutendl* 超出范围!*endl请重新输入:; else coutendl你要订的是到i地的飞机endl;
22、 coutendl第 i 架飞机剩余的票 :endl; for(p=1;p=n;p+) if (ai.seatp=0) cout p; coutendl; break; while(1); coutendlj; if (jn) coutendl* 超出范围!*endldate=i; printf(您的订票日期 :%dn,q-date); break; while(1); if (ai.seatj=0) ai.seatj=1; coutendl;12 ai.seat0+; if(i=1) add_information(head1,1,j); if(i=2) add_information(he
23、ad2,2,j); if(i=3) add_information(head3,3,j); else coutendl* 对不起,该座位已被预订,您被安排到订票等候队列 *next=NULL; cout请输入个人信息endl; coutendl*endl; couttempw-name; couttempw-id; couttempw-phone; tempw-seat=y; tempw-plane=x; wait_end-next=tempw; tempw-pre=wait_end; wait_end=wait_end-next; coutendl* 正在排队等候 *count+; writ
24、e_to_file();void show_wait() /显示大厅排队信息 wait *tempw; tempw=wait_head-next; if (tempw=NULL) coutendl排队中没有人!endl; while(tempw!=NULL) coutname - next; void add_information(node *head,int x,int y) /添加订票人员信息13 node *temp; temp=new node; temp-pre=NULL; temp-next=NULL; cout请输入个人信息endl; coutendl*endl; coutte
25、mp-name; couttemp-id;couttemp-phone; temp-seat=y; temp-plane=x; temp-next=head-next; temp-pre=head; if (head-next!=NULL) head-next-pre=temp; head-next=temp; write_to_file(); coutendl* 订票成功 *endl;void search_delete(int x) /查找及对信息作出修改 node *p,*q,*r; wait *tempw,*tempw2,*tempw3; int step=1,t1,t2,i; cha
26、r ch; p=new node; tempw=new wait; tempw2=new wait; tempw3=new wait; q=head1; coutendl请输入个人信息endl; cout*endl; coutendlp-name; do q=q-next; if ( (q!=NULL) & (comp(q,p) ) coutdate=q-plane; coutLocated!endl; cout*; coutendl姓名 : name; coutendlID 号 : id; coutendl座位号 : seat;14 coutendl班机号 : plane; cout
27、endl日期 : dateendl; if (x=1) coutch; if (ch=Y | ch=y) t1=q-plane; t2=q-seat; at1.seatt2=0; at1.seat0-; r=q;q=q-pre; r-pre-next=r-next; if(r-next!=NULL) r-next-pre=r-pre; delete(r); cout* 记录删除成功 ! *; write_to_file(); tempw=wait_head; for(i=0;icount;i+) tempw=tempw-next; if(tempw=NULL) break; if(tempw-
28、plane=t1) & (tempw-seat=t2) strcpy(tempw3-name,tempw-name); strcpy(tempw3-phone,tempw-phone); coutendl等候的人中有可以订票的了:endl; coutendl姓名 : name; coutendlID 号 : idplane=1) add_information(head1,1,tempw-seat); if(tempw-plane=2) add_information(head2,2,tempw-seat); if(tempw-plane=3) add_information(head
29、3,3,tempw-seat); tempw2=tempw-pre; tempw2-next=tempw-next; if(tempw-next=NULL) wait_end=tempw2; else tempw-next-pre=tempw2; delete(tempw); wait_head-count-; write_to_file(); coutendl等候的name已经成功订票,已经由电话phone通知了endl; break; 15 continue; else if (q=NULL) step+; if(step=2) q=head2; if(step=3) q=head3; i
30、f(step=4) coutendl* 信息检索完毕 *namei != q-namej) & (p-namei != 0) ) i+; if (p-namei = 0) return(false);break; else k=i; while ( (p-namek = q-namej) & (q-namej!=0) ) k+;j+; if (q-namej=0) return(true); else j=0; i+; while( (q-namej!=0) & (p-namei != 0) ); return(false);void write_to_file()/程
31、序中各主要文件操作的调用子函数,负责文件的读取与记录。16 FILE *fp; int i,j; int xm; node *p; wait *tempw; tempw=new wait; tempw=wait_head; fp=fopen(piao.dat,w); for (i=1;i=m-1;i+) fwrite(&ai,sizeof(piao),1,fp); fclose(fp); fp=fopen(information.dat,w); x0=0;x1=a1.seat0; for(i=0,j=1;jnext; for(j=1;jnext; if(j=x2+1) p=head3-
32、next; if(p=NULL)break; fwrite(p,sizeof(node),1,fp); p=p-next; fclose(fp); fp=fopen(wait.txt,w); for(j=0;jcount;j+) if(tempw=NULL)break; fwrite(tempw,sizeof(wait),1,fp); tempw=tempw-next; fclose(fp);17 程序运行结果简介图 2 结果简介18图 3 结果简介19五五 调试及操作说明调试及操作说明(1) 初始操作按照菜单提示进行操作,如下图所示:图 4 菜单 主要功能操作主要功能为主菜单所显示功能,具体
33、操作如下: 查看排队信息查看排队信息 按提示输入数字“0” ,可看见大厅内排队人数,然后按主菜单继续输入。20图 5 排队信息查看 订票订票输入数字“1” ,会打开订票界面,用户会看到现在各个飞机所剩的机票信息,同时会要求用户输入个人信息,按提示输入信息即可。21图 6 订票操作 退票退票输入数字“2” ,程序会提示用户输入以定用户的个人信息,并提示完成退定操作,同时程序自动完成删除操作。22图 7 个人信息查找 查看剩余票查看剩余票输入数字“3” ,用户会看到此时所有飞机所剩票数。23图 8 剩余票信息 查看飞机信息查看飞机信息输入数字“4” 程序会提示用户“查看那架飞机的信息?” ,这时用户需输入“13”之间的数字,每个数字代表一架飞机的编号。24图 9 查看飞机信息 查看乘客信息查看乘客信息输入数字“5” ,程序会要求用户输入姓名,用户输入后,程序会显示该姓名的相关信息,如该姓名不存在,程序则不会执行下一步操作。25图 10 查看乘客信息 退
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 路基路面课程设计边沟
- 肥皂包装机课程设计
- 课程设计原则幼儿园
- 美妆淡妆课程设计
- 2025届高考地理一轮复习:自然灾害
- 2025年江西省九江市高考数学模拟试卷(附答案解析)
- 课程设计整改措施及效果
- 安全培训及隐患排查总结
- 大型桥梁工程施工组织设计方案
- 高级语言课课程设计
- 联想云教室lenovo eclass用户手册
- 机械伤害应急预案演练记录
- 仿古木作工程施工组织设计方案
- 钢铁及合金牌号统一数字代号体系(GB/T17616-2013)
- 《好听的声音》PPT课件
- 拼音拼读练习过关训练(无汉字)
- 电厂氨区液氨储罐置换方案
- 地理说课ppt课件
- 茶艺馆会员制度管理办法
- 建筑电气中级工程师答辩实务题及答案
- 机组试运行工作报告
评论
0/150
提交评论