SDU 寒假数据结构课程设计随记——思路相关
题目:飞机订票系统
1、可以查询航班(输入航班号,查询起降,起飞抵达城市,航班票价,票价折扣确定航班是否满仓)
2、可以订票,如果该航班已经无票则可以提供相关可选择航班
3、可以退票
基本情况:
1、使用Java+mysql进行程序设计,IDE为IDEA
2、GUI:使用Java swing+awt进行编写,利用Naviacat进行数据库可视化
3、网络交互使用TCP程序设计
面向对象设计:
把 机票 封装为对象,内含
- 航班号(string)
- 起降地点(string)
- 起降时间(时间戳存储,long)
- 航班耗时(按输入起降时间进行计算)
- 票价(float)
- 折扣(float)
- 剩余仓位(int)
等等信息
数据结构体现:
- 将整个飞机抽象为一张图,每一个机票对应的起降点就是图中的顶点,每一个机票就是两点之间的有向边,边上的耗费可以为距离也可以为价格。
- 图的存储为邻接链表,每个链表后面为可以抵达的城市,链表节点内含机票对象。
- 可实现飞机中转,可以DFS,在图较小的前提下可在较短时间内获得结果。
如果搜索时间过长,则给出选项可以搜索小于一次中转的航线,这样穷举(O(n2))即可而不必遍历整张图(O(n3)) - 可按航班号进行搜索,也可以进行目的地搜索即设置当前位置或输入起始进行机票搜索。
- 搜索结果的呈现可以按价格或者耗时升序排列。
package:
- server
- user
- 辅助工具包
使用方式:
- 分为服务器和客户端,客户端可进行注册登录注销等行为,服务端可进行录入和修改机票信息等行为
- 客户端提供查询功能,给出结果并以表格的形式输出,最后可以订票或者查看自己已定机票进行退票
- 服务端录入机票信息后即存入服务端运行的图中,同时机票信息也将存入数据库。在每次服务端启动时,会首先爬取数据库信息构建图
版权声明:本文为qq_43671574原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。