




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
存档资料 成绩: xx交通大学课 程 设 计 报 告 书所属课程名称 数据库 题 目 航空订票系统 院 (系) 班 级 学号 学生姓名 指导教师 辅导教师 2008年 12 月 7 日 课程设计(论文)任务书 软件学院 学 院 06软件工程(软件测试)专 业 3 班 一、课程设计(论文)题目 航空订票系统 二、课程设计(论文)工作自 2008 年 12月 5日起至 2008 年 12月 12 日止 三、课程设计(论文) 地点: 数据库实验室 四、课程设计(论文)内容要求:1本课程设计的目的(1)巩固和加深对数据库基本知识的理解,提高综合运用课程知识的能力。(2)使学生掌握软件设计的基本内容和设计方法,并培养学生进行规范化软件设计的能力。(3)使学生掌握使用各种计算机资料和有关参考资料,提高学生进行程序设计的基本能力。2课程设计的任务及要求1)基本要求:(1)对系统进行功能模块分析、控制模块分析;(2)系统设计要能完成题目所要求的功能;(3)编程简练,可用,尽可能的使系统的功能更加完善和全面;(4)说明书、流程图要清楚;(5)提高学生的论文写作能力; (6)特别要求自己独立完成; 2)创新要求: 在基本要求达到后,可进行创新设计,如完善的功能、友好的人机界面。3)课程设计论文编写要求(1)要按照书稿的规格打印与写课程设计论文;(2)论文包括目录、绪论、正文、小结、参考文献、附录等;(3)课程设计论文装订按学校的统一要求完成;4)课程设计进度安排内容 天数 地点构思及收集资料 1 图书馆编码与调试 3 实验室撰写论文 1 图书馆、实验室学生签名: 2008 年 12 月 12 日课程设计(论文)评审意见(1)完成基本功能(20分):优()、良()、中()、一般()、差(); (2)完成调试(20分):优()、良()、中()、一般()、差(); (3)创新设计(20分):优()、良()、中()、一般()、差();(4)设计分析(20分):优()、良()、中()、一般()、差();(5)回答问题(20分):优()、良()、中()、一般()、差();(6)格式规范性及考勤是否降等级:是()、否()评阅人: 职称: 2008 年 12月12日目录一 绪论11.1 课题背景及现状11.2 开发工具介绍1二 需求分析2 (一)航空售票系统的数据需求 (二)数据字典 (三) 主要数据流图三 概要设计6四 逻辑设计7五 详细设计7 (一)基本查询语句(二) 程序流图中某些加工实现采用IPO图的方式描述(三)数据库的逻辑结构设计六 测试结果12七 小结17参考文献18附录(主要源代码)19一 绪论1.1 课题背景及现状随着旅游业的逐渐的成熟发达,航空客运量大幅度的提高,国内国际的旅游航班的增加,这些都对航空的信息管理系统提出了更高的要求,所以要不断的完善更新航空售票系统,提高航空售票系统的工作效率。航空公司为方便旅客,需开发一个订票系统。系统的操作者是有登录密码和用户名的售票员。系统要实现的基本功能是航班的调整,售票,订票,取票,退票,乘客信息的管理,乘客购票的统计;而系统在以后扩展时还可以实现的功能有:对机组工作人员的管理,预定机票的送票情况管理等。此系统的开发由我们分模块完成,而我所负责的模块是实现系统的航班调整,售票,订票,退票,取票,航班查询功能。举一个旅客订票的例子:预定机票的旅客信息,包括姓名、性别、地址、证件号、目的地,输入机票预定系统的客户端程序,系统经过查询航空公司内的航班数据服务器后,为旅客安排航班,印出取票通知。旅客在飞机起飞前一天凭取票通知和帐单交款后取票,系统校对无误后即印出机票给旅客。要求系统能有效、快速、安全、可靠和无误的完成上述操作。并要求客户机的界面要简单明了,易于操作,服务器程序利于维护。航空售票系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点1.2 开发工具介绍本次课程设计应用的开发工具主要是用java语言和SQL Server 2005 。java版本 jdk 版本,Java IDE使用的是eclipse 3.2 版本。本次数据库课程设计是以SQL Server 数据库作为后台以java作为前台的应用型设计课程,综合了数据库与java两大课程创建应用型的数据库系统,大大提高了我们学生的动手能力,做到了理论与实践相结合,完成系统的分析,设计和开发。二需求分析(一)航空售票系统的数据需求包括如下几点:数据录入和处理的准确性和实时性数据的输入是否准确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用,从而使系统的工作失去意义。数据的输入来源是手工输入。手工输入要通过系统界面上的安排系统具有容错性,并且对操作人员要进行系统的培训。在系统中,数据的输入往往是大量的,因此系统要有一定的处理能力,以保证迅速的处理数据。数据的一致性与完整性由于系统的数据是共享的,在不同的旅行社中中,机票是共享数据,所以如何保证这些数据的一致性,是系统必须解决的问题。要解决这一问题,要有一定的人员维护数据的一致性,在数据录入处控制数据的去向,并且要求对数据库的数据完整性进行严格的约束。对于输入的数据,要为其定义完整性规则,如果不能符合完整性约束,系统应该拒绝该数据。数据的共享与独立性整个机票预定系统的数据是共享的。然而,从系统开发的角度上看,共享会给设计和调试带来困难。因此,应该提供灵活的配置,使各个分系统能够独立运行,而通过人工干预的手段进行系统数据的交换。这样,也能提供系统的强壮性。系统能实现的操作和功能如下:查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,价格和剩余票额等业务。 承办订票业务:根据客户提出的要求(航班号或者终点站)查询该航班票额情况,若尚有余票,则为客户办理订票手续输出座位号;若已满员,则需重新询问客户要求。若需要,可购买下一次航班或者等待看有没有人退票; 承办退票业务:根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所剩票额能满足他的要求则为他办理订票手续,否则依次询问其它排队候补的客户。两个客户名单可分别由线性表和队列实现。为查找方便已订票客户的线性表应按客户姓名有序,并且,为插入和删除方便,应以链表作存储结构。由于预约人数无法预计,队列也应以链表作存储结构。整个系统需汇总各条航线约情况登录在一张线性表上,由于航线基本不变采用顺序存储结构,并按航班有序或按终点站名有序。每条航线是这张表上的个记录,包含上述8个域,其中乘员名单域为指向乘员名单链表的头指针,等侯替补的客户名单域为分别指向队头和队尾的指针(二)数据字典数据条目:系统管理要求=乘客资料表|机组人员资料表|购买信息表|航班信息表|飞行信息表|订单信息表乘客资料表=证件号+姓名+性别+年龄+家庭地址+电话+旅客类型+目的地机组人员资料表=编号+职称+姓名+年龄+性别购买信息表=旅客证件号+航班+票价航班信息表=航班号+出发地+目的地+起飞时间+抵达时间+航班类型+剩余票数+价格飞行信息表=航班号+飞机号+航程+中转站订单信息表=姓名+证件号+航班号+机型+舱位+座位+订票日期(三) 主要数据流图如下:(1)功能模块设计(2)主要层次结构图:各项业务管理界面乘机资料人明细管理售票管理票务管理购送票管理定单信息管理退出点击关闭该界面回到登陆界面乘客机组人员订票情况客户购票统计送票情况航班删除航班增加航班修改查询业务退票业务售票业务取票业务订票业务旅客航班查询机场航班查询三 概要设计航空订票系统E-R图如下:旅客类型证件号年龄电话性别姓名地址到达时间票价出发地 航班号剩余票数起飞时间舱位航班取票日期订票日期航班类型座位机型目的地证件号起飞时间姓名订票飞行起飞日期目的地订票旅客航班飞机型号航班号飞机座位舱位航班型号购买票价 旅客 111n11n1四 逻辑设计 根据E-R图和相关要求,把ER模型图转换为关系表,进行数据模型转换,系统用到五个基本表:旅客(passenger )表;购买(buy)表;航班(flight)表;飞行(fly)表;飞机(plane)表将E-R图转换成关系模型,关系的主码用横线标识:旅客(passenger )(姓名,证件号,电话,旅客类型,性别,年龄,地址)购买(buy)(旅客证件号,航班,票价)航班(flight)(航班,出发地,目的地,起飞时间,抵达时间,航班类型,剩余票数,票价,起飞日期)飞行(fly)(航班,型号,航程,中转站)飞机(plane)(型号,舱位,座位,航班)五 .详细设计(一)基本查询语句订票业务: 每次当有旅客需要订票时,首先需要对机场的航班情况进行查询,当有符合旅客的航班的机票剩余时旅客可以订票,并记录下旅客的相关信息,用到的SQL 语句为:insert into passenger(姓名,证件号,年龄,性别,旅客类型,地址,电话);然后旅客的订票信息存入数据库,并分配相应的航班和取票信息;退票业务:当有旅客退票时,需要根据录入旅客相关的信息将数据库peopleorder表中相应的记录删除,所用SQL语句为:delete from peopleorder where 姓名=旅客姓名,证件号=旅客证件号码,状态= 买票;航班增加/删除/修改业务(需要管理员权限):当航空公司需要对机场航班情况进行调整时,如增加/删除/修改操作,通过以下SQL语句实现:增加: insert into flight values (航班号,出发地 ,目的地,起飞时间 ,抵达时间,航班类型,剩余票数 ,票价,起飞日期)删除: delete from flight where 航班号=航班号码;修改:update flight set 任意属性列=修改值 where航班号=航班号码; (二) 程序流图中某些加工实现采用IPO图的方式描述:“收集旅客信息数据算法”IPO表系统:航空售票作者:孙启欢 模块:收集数据算法日期:2008.12.7编号:1被调用:取数据模块调用:输入:姓名、性别输出:格式化之后的数据处理: 格式化后的各种数据 = 格式化(相关输入数据)局部数据元素:注释: 本加工仅采集数据,未进行实质性的数据变换“收集航班信息数据算法”IPO表系统:航空售票作者:孙启欢 模块:收集数据算法日期:2008.12.7编号:2被调用:取数据模块调用:输入:航班,出发地,目的地,起飞时间,抵达时间,剩余票数,票价,起飞日期,航班类型输出:格式化之后的数据处理: 格式化后的各种数据 = 格式化(相关输入数据)局部数据元素:注释: 本加工仅采集数据,未进行实质性的数据变换“订票/售票/取票/退票相关数据算法”IPO表系统:航空售票作者:孙启欢 模块:审核数据算法日期:2008.12.7编号:3 被调用:审核数据模块调用:输入:旅客的相关信息,飞机/航班的相关信息输出:订单信息,机票信息处理:订单信息=旅客信息+所购买航班信息+取票信息机票信息=旅客购买航班的详细信息局部数据元素:(三)数据库的逻辑结构设计(航空订票系统使用的数据表)旅客(passenger )(姓名,证件号,电话,旅客类型,性别,年龄,地址)购买(buy)(旅客证件号,航班,票价)航班(flight)(航班,出发地,目的地,起飞时间,抵达时间,航班类型,剩余票数,票价,起飞日期)飞行(fly)(航班,型号,航程,中转站)飞机(plane)(型号,舱位,座位,航班)七 测试结果在航空售票系统的开发过程中,我完成的模块是需要系统实现如下功能:航班的调整(增加/删除/修改),订票/售票,退票,取票,航班查询测试过程中有如下主要代表性功能界面(1)主要功能界面如下:(2)订票客户资料界面 (3)订单号创立成功(4)航班退票系统主界面(5)点击退票 当订单号不存在时(6)点击查询 可知道该订单号的详细信息(7)管理主界面(需要输入帐号 密码)(8)航班管理系统 管理员可以更新数据库(包括 插入 ,删除,更新,和查看数据库)八 小结数据库课程设计任务渐渐远去,通过这次课程设计积累的信心与斗志,我开始写这篇文章,为自己的足迹留下哪怕是微不足道但是对自己弥足珍贵的痕迹。我很高兴的一点是尽管我们的成果离完善还很远,但我真的有了很大的进步:知识方面,知道数据库是如何与开发工具连接的所有这些都让我们对专业的兴趣又浓厚了很多这次课设分为两个阶段管理系统的前台和后台。首先,要开发一个系统,就先得进行需求分析,这个部分是必不可少。需求分析是整个设计过程的基础,是最困难,最耗费时间的一步。这一步做得不好,甚至会导致整个数据库反工重做。其次,该注意的是,数据字典是在需求分析阶段建立,在数据库设计过程中不断修改,充实,完善的。系统一旦建立,各个功能就不易轻易修改和变动,所谓牵一发而动其身,所以要做好准备。再次,E-R图的设计,清晰确定,消除不必要的冗余,优化设计,节省系统开发时间。最后,就是整个系统的维护和优化改进方面,由于时间和能力的有限,不能很好的完善系统,这是这次设计的缺陷。经过这次课设,我总结如下1、 注重理论知识和动手能力的相辅相成。平时要多动脑和多动手,多上机操作实践。2、 平时多浏览资料。我们所学的专业知识更新很快,这就要求我们能与时俱进,图书馆里有大量的参考书,另外网上有着更多、更新的知识宝库。如果能很好的利用这两点,对自己的进步会有很大的帮助3、 虚心请教,当遇到不懂的问题自己想了很多办法却无法解决时,可以请教一些其他的同学或老师,这可以很快的解决问题。在这次课设中,提高和完善所学知识的同时也体会到了团队精神的力量,收获丰富,受益良多;从中学到的知识和吸取的经验教训将会使我的知识很好的加深。没有课设,我们就不可能真正的学好、掌握知识。语言并不重要毕竟它仅仅是工具,用好一个工具并不是一件值得为外人道的事情,主要是了解学习思想。古语说的好:学无止境啊!以后我将更加努力争取取得更好的成绩。我很庆幸在老师和同学的帮助下我顺利地完成了这次数据库课程设计。在这里,我向给予我许多帮助的老师、同学真诚的说声:“谢谢你们!”。参考文献 1 王珊,萨师煊. 数据库系统概论 (第四版) 高等教育出版社,20062(美)RogerS.Pressman 郑人杰 马素霞 等译软件工程 实践者的研究方法2007年1月3(美)Cay S.Horstmann 陈昊鹏 王浩等译java 2核心技术第七版4(美)Bruce Eckel 陈浩鹏译Java编程思想 第四版附录(航空订票系统主要java源程序)主函数:/import flight.assist.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Main extends JFrame private UpdateComboBox update; private Interface jiemian; public Main()update = new UpdateComboBox(); /开始线程jiemian = new Interface();this.getContentPane().add(jiemian);public static void main(String args)try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName();catch(Exception e)Main frame = new Main();frame.setSize(568,436);frame.setResizable(false);frame.setTitle(航班订票系统);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);主界面函数;/*import flight.query.*;import flight.manage.*;import flight.dingpiao.*;/import flight.tuipiao.TuiPiao;import flight.assist.*; */mport java.awt.*;import javax.swing.*;import java.awt.event.*;import javax.swing.border.*;import .URL;class Interface extends JPanel implements ActionListener /主界面/private MyQuery query;static TestDB manager;private TuiPiao tuiPiao;private Hangkong dingPiao;private JButton jbManager = new JButton(管理);private JButton jbDingPiao = new JButton(订票);private JButton jbTuiPiao = new JButton(退票);private JButton jbAbout = new JButton(关于);public Interface()this.setLayout(null);this.add(jbDingPiao);this.add(jbTuiPiao);this.add(jbManager);this.add(jbAbout);jbDingPiao.setFont(new Font(Times,Font.PLAIN,12);jbTuiPiao.setFont(new Font(Times,Font.PLAIN,12);jbManager.setFont(new Font(Times,Font.PLAIN,12);jbAbout.setFont(new Font(Times,Font.PLAIN,12);jbDingPiao.setBounds(190,280,80,30);jbTuiPiao.setBounds(290,280,80,30);jbManager.setBounds(390,280,80,30);jbAbout.setBounds(430,350,80,30);jbManager.addActionListener(this);jbDingPiao.addActionListener(this);jbTuiPiao.addActionListener(this);jbAbout.addActionListener(this);public void paintComponent(Graphics g) ImageIcon imageIcon = new ImageIcon(jiemian.gif);Image image = imageIcon.getImage();g.drawImage(image,0,0,this);public void actionPerformed(ActionEvent e)if (e.getSource() = jbManager )CheckID check = new CheckID();else if (e.getSource() = jbDingPiao)dingPiao = new Hangkong();dingPiao.setSize(430,300);dingPiao.setResizable(false);dingPiao.setTitle(国内机票实时速定);dingPiao.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);dingPiao.setVisible(true); else if (e.getSource() = jbTuiPiao)tuiPiao = new TuiPiao();tuiPiao.setSize(470,370);tuiPiao.setResizable(false); tuiPiao.setTitle(航班退票系统); tuiPiao.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); tuiPiao.setVisible(true);else if (e.getSource() = jbAbout)String information = 制作人: + 孙启欢 杨帅 + n + 版本: + 0.00 + n + 时间: + 2008-6-21 + n + 地址: + 华东交通大学软件学院06软件测试3班; JOptionPane.showMessageDialog(null,information,关于 ,JOptionPane.INFORMATION_MESSAGE); 订票系统主要源代码(部分):/import flight.assist.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.sql.*;import java.util.*;import javax.swing.border.*;public class Hangkong extends JFrame implements ActionListenerprivate String string=new String23;private JComboBox boxyear=new JComboBox();.private JComboBox boxadult=new JComboBox();private String year= 2007, 2008;private String adult= 成人 , 儿童 , 学生 ;private String month=01,02,03,04,05,06,07,08,09,10,11,12;private String day=01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30;private JTextField jbtflight=new JTextField(10);.);private JButton jbtbutton=new JButton(机 票 预 定);private JButton jbtreturn=new JButton(返回主页面);Color color=new Color(230,230,255);if(jbrsingle.isSelected()if(sflight=1)JOptionPane.showMessageDialog(this,航班号不能为空!, 错误信息,JOptionPane.ERROR_MESSAGE);jbtflight.setText();else if(sflight=4)JOptionPane.showMessageDialog(this,没有此次航班,请您重新查阅!, 错误信息,JOptionPane.ERROR_MESSAGE);jbtflight.setText();elseclientFrame.getContentPane().add(client.panel(string);clientFrame.setTitle(客户资料);.client.jbtchildticketnumber.setText(1);else if(jbrdouble.isSelected()isFull=seatinformation.isFull(string11,string10);dflight=doubleflight();if(sflight=1)JOptionPane.showMessageDialog(this,第一航班号不能为空!,错误信息,JOptionPane.ERROR_MESSAGE);else if(dflight=5)JOptionPane.showMessageDialog(this,返回航班号与第一航班号不匹配n请重新输入返回航班号!,错误信息,JOptionPane.ERROR_MESSAGE);jbtflight1.setText();elseclientFrame.getContentPane().add(client.panel(string);clientFrame.setSize(450,460);clientFrame.setTitle(客户资料);clientFrame.setVisible(true);this.setVisible(false);else if(jbrmultiple.isSelected()isFull=seatinformation.isFull(s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 融资租赁的合同
- 全国泰山版初中信息技术七年级下册第三章《实践项目:理想与未来》说课稿
- 2025年租赁合同终止协议书
- 2025年广东省农产品销售合同模板
- 2023九年级数学上册 第二十四章 圆本章热点专题训练说课稿(新版)新人教版
- 水产品类原料概述说课稿-2025-2026学年中职专业课-烹饪原料知识-中餐烹饪-旅游大类
- 人民邮电版说课稿-2025-2026学年中职中职专业课物流类73 财经商贸大类
- Lesson 11 I Like All Seasons!教学设计小学英语六年级上册冀教版(一起)
- 2025版权授权合同(独家授权)
- 测评保障合同9篇
- 轮机概论-大连海事大学
- 题型06 函数的性质之周期性及蛙跳函数(解析版)
- YY/T 1851-2022用于增材制造的医用纯钽粉末
- GB/T 5163-2006烧结金属材料(不包括硬质合金)可渗性烧结金属材料密度、含油率和开孔率的测定
- GB/T 19575-2004农产品批发市场管理技术规范
- 《管理沟通实务(第四版)》课件第一章 沟通与管理沟通
- GA 36-2014中华人民共和国机动车号牌
- 人教七年级历史上第一单元 史前时期:中国境内人类的活动测试题word版含答案
- 2023年乐山新沐港航投资运营有限公司招聘笔试题库及答案解析
- 监理事故案例分析课件
- 我国大型基建工程材料供应的特点
评论
0/150
提交评论