课程设计报告民航订票系统

上传人:沈*** 文档编号:99888954 上传时间:2022-06-01 格式:DOC 页数:29 大小:79.50KB
收藏 版权申诉 举报 下载
课程设计报告民航订票系统_第1页
第1页 / 共29页
课程设计报告民航订票系统_第2页
第2页 / 共29页
课程设计报告民航订票系统_第3页
第3页 / 共29页
资源描述:

《课程设计报告民航订票系统》由会员分享,可在线阅读,更多相关《课程设计报告民航订票系统(29页珍藏版)》请在装配图网上搜索。

1、-民航订票系统一、设计目的与容1设计目的熟练掌握数据的存储表示和根本操作的实现,能够利用存储设计算法解决简单的航空订票问题。2设计容:录入:可以录入航班情况数据可以存储在一个数据文件中,数据构造、具体数据自定查询:可以查询*个航线的情况如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓;可以输入起飞抵达城市,查询飞机航班情况;订票:订票情况可以存在一个数据文件中,构造自己设定可以订票,如果该航班已经无票,可以提供相关可选择航班;输出:可以按照航班号为顺序输出订票信息。二、 算法的根本思想飞机订票系统 主界面管理员客户录入航班信息查看航班信息查看客户信息修改航班信息

2、查看航班信息查看订票信息订票退票算法的主要思路是:1首先对界面的设计,可以对操作的人员来说简单上手。对系统的应用都能进展相应的操作。1设置管理员的功能。2设置客户的功能3管理员的主要操作界面4客户的主要操作界面5完毕2类dingpiao用来显示客户订票的事件;根本思路如下:1 客户提交自己的详细信息。2 管理员处理相应的容并给票给客户。3 订票完毕3类tuipiao将处客户的退票的信息,释放存储空间,根本思路如下:1 客户提交自己的详细信息。2 管理员把客户的票取出,3 完毕三、E-R图系统流程图客户端启动该系统的数据流程图如图3-3:登陆有效数据.Noyes出票修改密码航班查询输入查询条件N

3、o已查航班.输入新密码No验证有效.输入乘客信息验证有 效Noyes验证有效.No封装requset对象yesyes将request对象写向效劳器分拣请求登陆请求修改密码请求查询航班请求出票请求调用BranchDao调用BranchDao调用TicketOrderDAO调用FligthDao封装response对象将response对象写往客户端解析request对象将结果显示在客户端四、测试数据程序运行实例如下:1 主界面的进入:2 管理员的相应功能3 用户的相应功能4管理员录入订票信息5客户注册模块6 客户添加信息模块10 客户订票界面11客户退票界面五、源程序及系统文件使用说明1 用ja

4、va写的飞机订票系统的主界面可以直观的观察操作的界面,所应用的代码如下所示:package FlightManagementSystem;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java*.swing.*;public class Wele e*tends JFrame implements ActionListener /* * */private static final long serialVersionUID = 1L;public

5、static final String Flight = null;/声明utton组件对象utton utton1,utton2,utton3,utton4;public Wele()super(欢送进入民航订票系统!);/设置容面板的布局模式为:流动布局getContentPane().setLayout(new FlowLayout();utton1=new utton(管理系统);utton2=new utton(客户系统);utton4=new utton( 退 出 系 统 );getContentPane().add(utton1);getContentPane().add(utt

6、on2);getContentPane().add(utton4);this.setBounds(300,200,240,120);this.setVisible(true);this.setDefaultCloseOperation(JFrame.E*IT_ON_CLOSE);this.setResizable(false);/注册监听器utton1.addActionListener(this);utton2.addActionListener(this);utton4.addActionListener(this);public void actionPerformed(ActionEv

7、ent e)if(e.getSource()=utton1) SuppressWarnings(unused)LoginOfManager s=new LoginOfManager();this.dispose(); if(e.getSource()=utton2) try new Login(); catch (E*ception e1) / TODO Auto-generated catch blocke1.printStackTrace();this.dispose(); if(e.getSource()=utton4) System.e*it(0);public void airpor

8、tInformation()System.out.println(光临!);public static void main(String args)SuppressWarnings(unused)Wele wele=new Wele();2 管理员的操作界面也是简单易懂,利于上手。实现的代码如下所示:package FlightManagementSystem;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;im

9、port java.sql.DriverManager;import java.sql.ResultSet;import java*.swing.*;public class ManagementFrame e*tends JFrame implements ActionListener/声明utton组件对象utton utton1,utton2,utton3,utton4,utton5;public ManagementFrame()super(欢送进入管理系统!);/设置容面板的布局模式为:流动布局getContentPane().setLayout(new FlowLayout();u

10、tton1=new utton(录入航班信息);utton2=new utton(查看航班信息);utton3=new utton(修改航班信息);utton4=new utton(查看客户信息);utton5=new utton( 返 回 );getContentPane().add(utton1);getContentPane().add(utton2);getContentPane().add(utton3);getContentPane().add(utton4);getContentPane().add(utton5);this.setBounds(300,200,360,130);

11、this.setVisible(true);this.setDefaultCloseOperation(JFrame.E*IT_ON_CLOSE);/注册监听器utton1.addActionListener(this);utton2.addActionListener(this);utton3.addActionListener(this);utton4.addActionListener(this);utton5.addActionListener(this);public void actionPerformed(ActionEvent e)if(e.getSource()=utton1

12、) new InsertInfomation();this.dispose(); if(e.getSource()=utton2) new Queryflight();this.dispose(); if(e.getSource()=utton3)new ReviseInformation();this.dispose(); if(e.getSource()=utton4)new Queryclient();this.dispose();if(e.getSource()=utton5)new Wele();this.dispose();public static void main(Strin

13、g args)new ManagementFrame();3 客户进入后的操作界面,可是实现用户的各种操作,例如订票,退票,查询信息等。package FlightManagementSystem;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.*;import java*.swing.*;public class Book e*tends JFrame implements ActionListener /* *

14、*/int dingdannum=10000000; /设置初始订单号; private static final long serialVersionUID = 1L; JLabel l4 = new JLabel(订票数量 :); JLabel l2 = new JLabel( 航 班 号 : ); JLabel l3 = new JLabel(请输入您要订票的航班号和机票数量!一次不能超过5票!); JLabel l1 = new JLabel( 姓 名 : ); JTe*tField t1 = new JTe*tField(, 12); JTe*tField t2 = new JTe*

15、tField(, 12); JTe*tField t3 = new JTe*tField(, 12); utton b1 = new utton(确认订票); utton b2 = new utton( 返 回 ); JPanel p1 = new JPanel(); JPanel p2 = new JPanel(); JPanel p3 = new JPanel(); JPanel p4 = new JPanel(); JPanel p5 = new JPanel(); String flight; Connection con; Statement stmt=null; ResultSet

16、 rs; String url = jdbc:odbc:ylb; Book()throws E*ception super(欢送进入订票界面!); p1.add(l3); p2.add(l1); p2.add(t1); p3.add(l2); p3.add(t2); p4.add(l4); p4.add(t3); p5.add(b1); p5.add(b2); b1.addActionListener(this); b2.addActionListener(this); setLayout(new GridLayout(5,1); this.add(p1); this.add(p2); thi

17、s.add(p3); this.add(p4); this.add(p5); setBounds(300, 200, 320, 240); setResizable(false); setVisible(true); this.setDefaultCloseOperation(JFrame.E*IT_ON_CLOSE); SuppressWarnings(null)public void actionPerformed(ActionEvent e) if(e.getSource() = b2) new Enterance(); this.dispose(); if(e.getSource()

18、= b1) /获取用户输入的信息 String jt1=t1.getTe*t(); String jt2=t2.getTe*t(); String jt3=t3.getTe*t(); int tt=Integer.parseInt(jt3); if(tt5)l3.setTe*t(请减少购票数量!); else if(jt1.equals()| jt2.equals()|jt3.equals() l3.setTe*t(所填信息不能为空!); elsetryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);con = DriverManager.getConn

19、ection(url, , );stmt = con.createStatement(); int count=stmt.e*ecuteUpdate(insert into book values(+jt1+,+jt2+,+tt+); rs = stmt.e*ecuteQuery(select * from flight where 航班号=+jt2+); if(rs.ne*t()System.out.println(查询航班信息成功!); /获取该航班信息 String fl1=null; String fl2=null; String fl3=null; fl1=rs.getString(

20、2); /起飞时间 fl2=rs.getString(3); /起飞地点 fl3=rs.getString(4); String fl5=null; fl5=rs.getString(5); /票价 int fl6=rs.getInt(6); /最大人数 int fl4=rs.getInt(7); /当前人数 int shengyu=fl6-fl4; /计算该航班剩余票数 if(shengyu0) l3.setTe*t(该航班已剩+shengyu+票!); else for(int i=0;i0) stmt.e*ecuteUpdate(update flight set 目前人数=+fl4+w

21、here 航班号=+jt2+); if(shengyu=0) stmt.e*ecuteUpdate(update flight set 目前人数=+fl4+是否满仓=是+where 航班号=+jt2+); catch(E*ception e2)e2.printStackTrace(); /* public void treat(int i,String a,String b) String hangbanhao=a; /获得航班号 System.out.println(航班号为:+hangbanhao); String name=b; int zuoweihao=0; /座位号 int tic

22、ketnum=i; /获得订票数 int ma*=0; /航班最大人数 System.out.println(订票数为:+ticketnum); tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);Connection cc=DriverManager.getConnection(url, , );if(cc!=null)System.out.println(查询连接成功!);Statement sta=cc.createStatement();/查询预定航班的人数,以便获得座位号ResultSet res=sta.e*ecuteQuery(selec

23、t * from flight where +航班号=+hangbanhao+);while(res.ne*t()System.out.println(rs存在!);String shijian=res.getString(2);System.out.println(时间=+shijian);String qifeididian=res.getString(3);System.out.println(起飞地点=+qifeididian);String daodadidian=res.getString(4);System.out.println(到达地点=+daodadidian);int p

24、iaojia =res.getInt(5);System.out.println(票价=+piaojia);ma*=res.getInt(6);System.out.println(最大人数=+ma*);zuoweihao=res.getInt(7);System.out.println(座位号=+zuoweihao); try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection ccc=DriverManager.getConnection(url, , ); Statement stat=ccc.createStatement()

25、; for(int j=0;jma*) this.dispose(); new Book(); l3.setTe*t(该航班:+hangbanhao+票数已超出!);catch(E*ception e) /更新座位号 System.out.println(更改后的人数=+zuoweihao); catch(E*ception e) */ public static void main(String args) throws E*ception new Book(); 4 录入修改航班的代码,对订票信息确实定,并且对相应的信息进展修改。package FlightManagementSystem

26、;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;import java*.swing.*;public class Queryclient e*tends JFrame implements ActionListener /* * */private

27、 static final long serialVersionUID = 1L; JLabel jl1=new JLabel( 姓 名 :); JLabel jl6=new JLabel(登机时间:); JLabel jl7=new JLabel(出发地点: ); JLabel jl8=new JLabel(目的地点:); JLabel jl2=new JLabel(证 件 号 :); JLabel jl5=new JLabel(所乘航班:); JLabel jl3=new JLabel( 性 别 :); JLabel jl4=new JLabel( 年 龄 :);private JTe*t

28、Field jd1=new JTe*tField(15); private JTe*tField jd2=new JTe*tField(15); private JTe*tField jd3=new JTe*tField(15); private JTe*tField jd8=new JTe*tField(15); private JTe*tField jd4=new JTe*tField(15); private JTe*tField jd5=new JTe*tField(15); private JTe*tField jd6=new JTe*tField(15); private JTe*

29、tField jd7=new JTe*tField(15); utton query=new utton( 查 询 ); utton outuran=new utton( 返 回 ); JLabel jl=jl1,jl2,jl3,jl4,jl5,jl6,jl7,jl8; private JTe*tField jt=jd1,jd2,jd3,jd4,jd5,jd6,jd7,jd8; Bo* bo*1=Bo*.createVerticalBo*(); /创立纵向Bo*容器private Bo* bo*2=Bo*.createVerticalBo*();Bo* bo*3=Bo*.createHoriz

30、ontalBo*(); /创立横向Bo*容器 Connection con; Statement stmt; ResultSet rs; String url = jdbc:odbc:ylb; public Queryclient() this.setTitle(查询客户信息); this.setBounds(300,200,260,365);this.setVisible(true);this.setDefaultCloseOperation(JFrame.E*IT_ON_CLOSE);this.setResizable(false); this.add(bo*3); /将横向Bo*容器bo

31、*3添加到窗体中 bo*3.add(Bo*.createRigidArea(new Dimension(20,20); bo*3.add(bo*1); /将纵向Bo*容器bo*1添加到横向Bo*容器bo*3中 bo*3.add(bo*2); /将纵向Bo*容器bo*2添加到横向Bo*容器bo*3中 query.addActionListener(this);outuran.addActionListener(this); for(int i=0;i8;i+) bo*1.add(jli); bo*1.add(Bo*.createVerticalStrut(20); bo*1.add(query)

32、; for(int i=0;i8;i+) bo*2.add(jti); bo*2.add(Bo*.createVerticalStrut(16); bo*2.add(outuran); jd1.setTe*t(请输入需查询的!); public void actionPerformed(ActionEvent e) String getflight=null; /定义该客户航班号if(e.getSource()=query) String t1=jd1.getTe*t();jd3.setTe*t(t1);tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver

33、);con = DriverManager.getConnection(url, , );stmt = con.createStatement();rs = stmt.e*ecuteQuery(select * from client where = +t1+ );while(rs.ne*t() for(int i=1;i4;i+)jti.setTe*t(rs.getString(i+1); ResultSet res = stmt.e*ecuteQuery(select * from book where = +t1+ );while(res.ne*t()getflight=res.getS

34、tring(2); jt4.setTe*t(getflight);ResultSet ress = stmt.e*ecuteQuery(select * from flight where 航班号= +getflight+ );while(ress.ne*t()jt5.setTe*t(ress.getString(2);jt6.setTe*t(ress.getString(3);jt7.setTe*t(ress.getString(4);catch(E*ception e2) if(e.getSource()=outuran) try new ManagementFrame(); catch

35、(E*ception e1) / TODO Auto-generated catch blocke1.printStackTrace();this.dispose(); public static void main(String args)new Queryclient();5 顾客订票退票的代码,package FlightManagementSystem;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.*;im

36、port java*.swing.*;public class Return e*tends JFrame implements ActionListener /* * */ private static final long serialVersionUID = 1L; JLabel l1 = new JLabel( 姓 名 :); JLabel l2 = new JLabel(航班号 : ); JLabel l3 = new JLabel(请输入您要退票的订单号和航班号!); JLabel l4 = new JLabel(订单号 : ); JTe*tField t1 = new JTe*t

37、Field(, 12); JTe*tField t2 = new JTe*tField(, 12); JTe*tField t3 = new JTe*tField(, 12); utton b1 = new utton(确认退票); utton b2 = new utton( 返 回 ); JPanel p1 = new JPanel(); JPanel p2 = new JPanel(); JPanel p3 = new JPanel(); JPanel p4 = new JPanel(); JPanel p5 = new JPanel(); String name; Connection

38、con; Statement stmt; ResultSet rs; ResultSet rs1; String url = jdbc:odbc:ylb; Return()throws E*ception super(欢送进入退票界面!); this.add(p1); this.add(p2); this.add(p3); this.add(p5); this.add(p4); p1.add(l3); p2.add(l1); p2.add(t1); p3.add(l2); p3.add(t2); p5.add(l4); p5.add(t3); p4.add(b1); p4.add(b2); b

39、1.addActionListener(this); b2.addActionListener(this); setLayout(new GridLayout(5,1); this.add(p1); this.add(p2); this.add(p3); this.add(p5); this.add(p4); setBounds(300, 200, 320, 240); setResizable(false); setVisible(true); public static void main(String args) throws E*ception new Return(); public

40、 void actionPerformed(ActionEvent e) String jt1=t1.getTe*t(); String jt2=t2.getTe*t(); String jt3=t3.getTe*t(); String fli=null; int tt=Integer.parseInt(jt3); int zuoweihao=0; if(e.getSource() = b2) new Enterance(); dispose(); if(e.getSource() = b1) if(jt1.equals()| jt2.equals() l3.setTe*t(和航班号不能为空!

41、); elsetryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);con = DriverManager.getConnection(url, , );stmt = con.createStatement();rs = stmt.e*ecuteQuery(select * from ORDER1 where 订单号=+tt);while(rs.ne*t() / login 是要查询表 表中字段名分别有:用户名(name),密码 (password) System.out.println(111111100); name = rs.getString(2

42、); fli=rs.getString(3); System.out.println(name+ ,+fli);/System.out.println(pass); if(pare(fli,jt2)System.out.println( 信息正确!);String sql=DELETE FROM ORDER1 WHERE 订单号=+tt+AND =+jt1+; int count=stmt.e*ecuteUpdate(sql); if(count!=0) l3.setTe*t(退票成功!); tryrs=stmt.e*ecuteQuery(SELECT * FROM flight where

43、航班号=+fli+);catch(E*ception e1) while(rs.ne*t()zuoweihao=rs.getInt(7); System.out.println( MUQIANRENSHU=+zuoweihao); stmt.e*ecuteUpdate(update flight set 目前人数=+(zuoweihao-1)+where 航班号=+fli+);elsel3.setTe*t(抱歉!您的退票没有成功!);catch(E*ception e2) public boolean pare(String a,String b) boolean =false; System

44、.out.println(a=+a); System.out.println(b=+b); if(a.equals(b)=true;System.out.println(您输入的密码正确!); return ; 六、学习心得与体会时至今日,航空订票系统已根本完成,因为本系统是主要用JAVA技术来实现的,所以在JAVA方面有很多的研究和学习,经过自己的一番努力和教师的帮助下,这些问题已经完全解决,系统每一项功能的完善,特别是每一处错误的改正,都加深了我对这一方面的了解。采用了面向对象的设计方法,分析出了本系统的大概数据流程,编写出数据库,画出了表格。世界上没有完美的人,系统也是一样,本系统在经过

45、自己的努力开发后,虽然能够根本实现预期目标,但是也存在一些缺乏之处:1, 由于个人美工水平有限,导致本系统的界面不够友好,界面不够美观。2, 由于作者编程习惯存在问题,导致系统有些代码产生冗余。3, 在系统平安方面,本系统还存在一些漏洞。在本次的毕业设计的过程中我也学习到了很多的知识,以前在课堂上和书本上学到的理论知识得到了具体的应用,加深了对所学知识的理解,并且让我认识到了自己在编程以及美工方面的缺乏。但是我对Word的应用水平都有了不小的提高。可以说这次毕业设计的过程对我的动手能力和实际水平都有很大的提高作用。总结本次课程设计,收获很多,比方为人治学态度方面要严谨、分析画图方面要细心、疑惑不懂要经常问、面对问题要耐心解决等。. z.

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!