飞机订票系统 python实现(大二上数据结构课设)



说明: 本博客是从课设报告中截取的重要部分。这个飞机订票系统是本人大二上的数据结构课设,功能相对完善,界面相对美观。图形界面,本来想用Qt5(python中一个图形界面的类库,风格偏向于win10)去做的,但是时间匆促,就使用了python内的标准库tkinter(偏win7风格)做的,中途学习了一个tkinter的视频教程,又从网上买了一本图形界面的书,其实学的过程中是挺轻松的,但是自己实际操作时遇到了许多bug,主要原因是我们在学习时,是一个组件一个组件学习的,但当我们把所有的组件堆砌在一起灵活运用时,就出现了自己没有遇到过的问题,但最终还是都给解决了。

实现了“增添改查”,排序,登录,购票,退票,导入文件,保存等功能,并且还做了一些优化,比如可以在系统的上方显示用户名和日期时间;在信息添加时,有了相应的限制条件,在信息修改时,直接将要修改的信息传入到修改框中;在进行选票时,有了票数的限制;可以多条件的查询功能,可以实现各个字段的排序;并且在退出系统时,提示用户是否保存信息退出。

如需代码
飞机订票系统 python实现(大二上数据结构课设) (请勿白嫖,嘻嘻)


目录

  1. 选题分析:
    1.1 选题分析
    1.2系统框架与功能模块
  2. 数据结构设计
    2.1 数据模型分析
    2.2 存储结构分析
  3. 系统实现
    3.1 模块设计与实现
    3.2 系统展示
  4. 总结
    4.1 技术讨论
    4.2 心得体会

1. 选题分析:

1.1选题分析

【问题描述】 设计一个飞机订票系统
【功能要求】
1)录入/修改:可以录入/修改航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)。
2)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况; 
3)订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;
4)退票:用户可退票,退票后修改相关订票信息。
【界面要求】 有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。

分析: 根据题目的要求,我们要实现基本的功能“增删改查”,并且有相应的文件处理,还有订票的功能;最好也可实现一定排序功能,方便用户使用;为了更好的用户体验,我们可以制作相应的图形界面;

1.2系统框架与功能模块

其系统框架与功能模块,如下图所示:
在这里插入图片描述

2. 数据结构设计

2.1 数据模型分析

由于我们要制作相应的图形界面,我们在进行数据的呈现时,我们采用的是表格的形式,我们使用的组件是python标准库tkinter.ttk中的Treeview组件,进行相应数据的添加,修改,删除,查询。为了方便操作和效率,我们使用嵌套列表来存储从文件读取到的数据,即进行相应功能操作时,实质上是对该嵌套列表的操作
在这里插入图片描述

2.2 存储结构分析

外部:我们这里采用的文件形式的存储结构,总共有三个文件,一个登入用户名密码文件,一个已购航班信息文件,一个待购航班信息文件
在这里插入图片描述

内部:我们在运行程序时,我们使用到的存储结构是嵌套列表(正如2.1所分析)

3. 系统实现
3.1 模块设计与实现

分模块介绍主要函数、函数间数据传递与数据流走向设计、数据存储文件等
我们这里的界面分为三块,登录界面,主界面(待购航班信息)和副界面(已购航班信息)

3.2 系统展示

登录界面:
在这里插入图片描述

登录不成功:
在这里插入图片描述

待购主界面:
在这里插入图片描述

信息添加功能:
这里在添加信息时,有相应的条件限制,比如航班号不能重复,各个字段的信息不能为空。

在这里插入图片描述

信息删除功能:
这里为了防止用户的误删,这里利用弹窗的形式提示用户是否要删除信息

在这里插入图片描述

信息修改功能:

已实现自动将要修改的信息放到修改框中,方便了用户的操作,提高了效率
当然修改也有相应的条件限制,比如各个字段的信息不能为空,并且航班号字段不能和已有的航班号重复。
在这里插入图片描述

文件导入功能:
这里用户可以选择进行操作的文件,而不是固定的文件
在这里插入图片描述

查询信息功能:
这里我们实现了多条件的查询和迭代查询(即可以在当前界面继续查询)
在这里插入图片描述

选票功能:
这里可以选择一定的票数,当然票数有一定的限制,不可以超过最大的次数
在这里插入图片描述

退票功能:
在这里插入图片描述

文件保存功能:
在我们退出时,可以提示是否进行文件的保存,可以保存文件退出,也可以不保存退出
在这里插入图片描述
这里我们可以看到,我们新添加的数据已经写入文件中了
在这里插入图片描述

排序功能:
为了方便用户使用,我们这里对八个字段的数据都进行了排序功能(需要排序时,只需点击每一栏的标签即可

排序前界面:

排序后界面:
在这里插入图片描述

3.3 结果分析

我们通过逐步地测试,我们可以发现各个功能都已经实现了,达到我们选票系统的目标,并且为了更加人性化,我们还进行了一些优化和设计。比如可以在系统的上方显示用户名和日期时间;在信息添加时,有了相应的限制条件,在信息修改时,直接将要修改的信息传入到修改框中;在进行选票时,有了票数的限制;可以多条件的查询功能,可以实现各个字段的排序;并且在退出系统时,提示用户是否保存信息退出。

4. 总结

4.1 技术讨论

这个飞机订票系统,其实算法都比较好实现,最难的模块是如何将数据以图形化的界面展示,由于tkinter是python内的标准库,相比Qt5(python中另一个图形界面的类库)好处是更加的稳定,但是界面的效果不如Qt5好,就造成tkinter的使用率不是很高,所以我们在做这个系统时,碰到的问题有时需要外网才可以查到。

另一个问题是逻辑实现比较难,因为要做出一个系统,就要顾及系统的方方面面,是否有逻辑的问题,是否符合客观事实。有时数据的改动需要考虑与之相关的各个板块,否则会产生一系列的问题。这里我们就请其他同学使用我们的系统,看看有哪些逻辑问题,有哪些可以优化的地方。我们就进一步地改进与完善。

4.2 心得体会

首先,我从开学的时候就开始准备了,当时学习了图形界面的开发,在网上找的视频教程,为了满足更多的模块和功能,我又从网上买了一本图形界面的书,当时学习的时候,很感兴趣,但是是跟着教程,所以是比较的轻松,到我实际去开发时,又四处碰壁,通过查阅资料,最终还是逐个击破了。“纸上得来终觉浅,绝知此事要躬行”,做事要亲力亲为,这样才可以有更好的成长和进步。
另一个方面,我是每个功能一点一点做的,每天完成一个功能,做到后面,你会发现自己的代码框架可能不是最好的,你的代码可以进一步地优化,通过这个课设,我体会到系统框架的重要性,通过它我们可以全局地考虑问题,实现代码的优化,还可以减少工作量。

参考文献:
[1] 洪锦魁. Python GUI设计–tkinter菜鸟教程,清华大学出版社,2017.12.

如需代码
飞机订票系统 python实现(大二上数据结构课设) (请勿白嫖,嘻嘻)

  • 14
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
课程设计报告 机票预定管理系统 组员: 学号: 学院: 班级: 机票预定管理系统uml数据建模分析课程设计全文共21页,当前为第1页。 机票预定管理系统uml数据建模分析课程设计全文共21页,当前为第1页。 目录 一、需求分析 3 1、系统开发背景 3 2、软件主要组成及功能 3 二、系统建模 6 1、创建系统用例模型 6 2、系统用例分析 7 三、创建系统静态模型 10 1、类图 11 四、创建系统动态模型 11 1、时序图 12 2、协作图 14 3、状态图 17 五、创建系统部署模型 19 六、小结 20 1、设计总结 20 2、改善 20 3、小组分工说明: 21 七、参考资料 21 机票预定管理系统uml数据建模分析课程设计全文共21页,当前为第2页。 机票预定管理系统uml数据建模分析课程设计全文共21页,当前为第2页。 一、需求分析 1、系统开发背景 当今世界,以信息技术为主要标志的科技进步日新月异,高科技成果向现实生产力的转化越来越快。纵观全球经济发展,信息技术和信息产业已经成为经济增长的主要推动力之一,正在改变着传统的生产和经营方式以至生活方式,发达国家经过产业结构的升级和经济结构 的转型已进入信息经济阶段。信息资源已经成为国民经济和社会发展的战略资源,信息化水 平也已成为现代水平和综合国力的重要标志。党和国家已将国民经济和社会信息化放在优先发展位置,体现了先进生产力的客观要求,是一项重要的战略决策。这是民航加快发展的机遇,更是民航信息化的难得机遇。 随着知识经济的到来,人类已经逐步进入信息化社会,信息增长的速度越来越快,人们 希望利用先进的管理理论方法手段来得到并处理越来越多的信息,以提高工作效率和管理水 平。由于信息资源对人们生活的重要性,不断提高信息的收集,传输,加以利用等活动,日 益成为人们社会生活的重要组成部分。网上机票预订管理系统的产生和发展正好满足人们的 这种需求。 2、软件主要组成及功能 功能说明: 新用户注册,新用户可以注册,注册时输入用户名可以查询用户可不可用,可用就可以注册,注册时可以判断用户输入的密码和验证密码是否相同,相同才给以注册,如果满意可以点注册,注册成功后用户可以选择不用在回到登陆界面,可以直接陆到用户主界面,以后就可以用这个用户登录了,如果不满意,点取消,所有信息清空,重新输入。 验证登陆名密码,正确进入主菜单,根据登录时所选的登录方式(客户、管理员)的不同分别对用户设定不同的访问权限(如果是输入的客户用户名和密码正确,选择以客户方式登陆则主界面里面的管理员界面不能用,如果输入的是管理员的相应用户密码正确,以管理员的方式登陆则管理员界面可用)不正确则清空登录框,最多可以输入三次,三次不正确系统会自动关闭。 主窗体的用户信息界面,用户点击个人查询按钮,可以把自己的个人信息显示到界面上,还可以对自己的信息进行相应的修改(用户编号和用户名不能修改),还可以点击我的机票查询,查询该用户的订票记录。基本信息查询及设置。显示当前登录用户的个人基本信息,姓名,住址,邮箱等信息。除此之外,可以更改设置自己的密码。 机票预定管理系统uml数据建模分析课程设计全文共21页,当前为第3页。我的航班界面。你可以点击你想查询的有关机票的信息的按钮(舱位信息查询,客机信息查询,航线查询,客户类型信息查询)获得相关信息的表,根据表的内容,你可以在下面的下拉框中选择你要定的票信息,点确定后在下面会显示你的机票的相关内容,如果满意可以点击订票,把相关信息添加到机票数据库表中,如果不满意,可以点重置,所有信息清空,再重新选择。 机票预定管理系统uml数据建模分析课程设计全文共21页,当前为第3页。 可以选定已定航班的订票信息进行转让信息发布。相关的转让二手票的业务信息发布到系统的公共信息服务页面上。查询公共信息服务。打开相应的页面,查询感兴趣的信息。包括系统发布的机票打折信息,以及二手票信息。 退票功能。用户可以根据用户信息表中的我的机票信息查询,找出机票号,在输入到机票号查询里,点击查询获得你的机票信息以及价格显示,点击退票则在数据库机票信息表中删除本条信息。 我的账户信息。由于订购机票需要进行支付票费功能,开设网上账户便于进行票务交易。开设我的账户,可以相关连自己的网上银行,查询账户余额,进行缴费,以及转账等业务。 管理员界面的管理员添加界面能对管理员信息进行查询、添加、删除和修改,包括用户名、登陆密码和联系方式。管理员界面的舱位信息的查询、添加、删除和修改,包括舱位等级编号、舱位等级名称、提供的各种服务类别,以及备注信息等。 管理员界面的客机信息界面对客机信息的添加、修改、删除和查询,包括客机编号、客机型号、购买时间、服役时间、经济舱座位数量、公务舱座位数量、头等舱座位数量以及备注信息等。 管理员界面

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RockLis

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值