航空客运订票系统文件操作论文.docVIP

  • 9
  • 0
  • 约1.28万字
  • 约 25页
  • 2019-05-05 发布于江西
  • 举报
PAGE PAGE 5 航空客运订票系统程序设计 姓 名: 潘强辉 专 业: 计算机科学与技术 班 级: 0203108 指 导 教 师: 毕建东               哈尔滨工业大学计算机学院 二OO四年九月 目录 背景和问题的抽象及分析……………………. 3 问题的背景 问题的抽象 时间复杂度分析 关键字…………………………………………. 4 数据结构设置…………………………………. 4 程序的实现和特点……………………………. 5 程序的实现 程序的特点 试运行和测试数据…………………………… 6 结论…………………………………………… 9 参考文献……………………………………… 9 致谢…………………………………………… 9 附录…………………………………………… 10 背景和问题的抽象 1 问题的背景 飞机场每天要接受大量的订票退票服务,还有互联 网上的异地订票等。对这些数量巨大的数据,需要一个专门的软件来进行管理和操作。软件至少需要具备的基本功能包括:接受订票,处理退票,查询乘客信息,查询航班信息等等。 2 问题的抽象 从问题的提出可以看到,我们需要的只是能实现对数据的插入 ,删除,检索这样一个软件。由于乘客的数量较大并且不固定,因此选择用链表来保存乘客的基本信息:包括乘客的姓名,身份证号,搭乘班机的航班号,以及预定的座位号(假设座位预先订号)。为了将这些信息保存起来以备下次程序运行时调用,将必需的信息写入文件中,在程序的初始化时读入。综合一下来看,我们需要做的是建立一个可以插入和删除节点的链表,并能检索这个链表,在必要的时候将链表的内容保存到文件中。 3 时间复杂度分析 因为用的是链表和队列的操作,所以时间复杂度是O(n) 关键字 飞机信息 包括乘客的基本信息,班机剩余的机票等 部分匹配检索 被检索的内容只要和关键字有部分匹配就认为是符合条件的结果。例如:搜索ivan,则包含ivan的乘客都被列出。 文件操作 为防止意外死机,断电等不稳定因素,只要在程序中 链表的内容作了修改就将链表重新写入文件中 数据结构设置 为简化问题,假设有3架飞机,并且每架飞机有5张票,每天有到一个地点的1架飞机。 #define m 4 //3架飞机 #define n 5 //每架飞机5张票 节点中保存的信息包括姓名,ID,班机号,座位号,时间 struct node { char name[21]; char id[21]; int seat,plane,date; node *next,*pre; }; 每架飞机设置一表头节点head1,head2,head3. 为方便编程,再设置一数组用来保存每架飞机机票的销售情况 struct piao { int seat[n+1]; }; 并将链表信息保存至information.dat,将票的信息保存至piao.dat两个文件中。 每次运行程序都对这两个文件进行读写。 将等候的队列保存在wait..txt中 struct wait { char name[21]; char id[21]; char phone[8]; int seat,plane,date; wait *next,*pre; }; 程序的实现和特点 1 初始化 初始化由两部分组成。 先进行机票的初始化,例如1 0 0 0 0 1 2 0 1 1 0 0前面六个数字表示第一架飞机情况,已定1张票,是第五号,后六个数字是地二架飞机的信息,2,3两张票被预定。 接下来进行乘客信息的初始化。根据机票初始化决定储存每架飞机信息的链表从information.dat中读取多少个数据块。按照上面的例子,head1将从information中读取一个长度为node的struct类型数据,head2将读取2个。 2 程序主体 初始化后将进入主程序,主程序包括以下函数来实现必要功能: void makenull(); //初始化,包括三部分 void makenull_piao(); //从文件中读入票的信息 void makenull_information(); //从文件中读入乘客信息 void makenull_wait(); //从文件中读入排队信息 void list_menu(); //显示主菜单 void list_piao(); //显示指定班机的余票 void list_information(); //选择要察看的班机 void plane_i

文档评论(0)

1亿VIP精品文档

相关文档