课程设计报告-民航订票系统_第1页
课程设计报告-民航订票系统_第2页
课程设计报告-民航订票系统_第3页
课程设计报告-民航订票系统_第4页
免费预览已结束,剩余23页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、票票航航客航航订班班户班班票信信信信信信息息息息息息算法的主要思路是:。1欢迎下载精品文档1首先对界面的设计,可以对操作的人员来说简单上手。对系统的应用都能进行相应的操作。( 1)设置管理员的功能。( 2)设置客户的功能( 3)管理员的主要操作界面( 4)客户的主要操作界面( 5)结束2类 dingpiao用来显示客户订票的事件;基本思路如下:( 1) 客户提交自己的详细信息。( 2) 管理员处理相应的内容并给票给客户。( 3) 订票结束3类 tuipiao将处客户的退票的信息,释放存储空间,基本思路如下:( 1) 客户提交自己的详细信息。( 2) 管理员把客户的票取出,( 3) 结束三、 E

3、-R 图。2欢迎下载精品文档系统流程图该系统的数据流程图如图3-3:客户端启登陆No有效数据?yes。3欢迎下载精品文档出票航班查询修改密码No输入查询条件已查航班?输入新密码验证有效?No输入乘客信息Noyes验 证有 效No验证有效?yes封装 requset 对yes象将 request 对象写向服务分拣请求出票请求查询航班请求修改密码请求登陆请求调用调用调用调用封装 response 对象将 response 对象写往客户解析request 对象将结果显示在客四、测试数据程序运行实例如下:1 主界面的进入:。4欢迎下载精品文档2 管理员的相应功能3 用户的相应功能4 管理员录入订票信息

4、5 客户注册模块。5欢迎下载精品文档6 客户添加信息模块10 客户订票界面。6欢迎下载精品文档11 客户退票界面五、源程序及系统文件使用说明1 用 java 写的飞机订票系统的主界面可以直观的观察操作的界面,所应用的代码如下所示:package FlightManagementSystem;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;public class Welcome extends JFrame implemen

5、ts ActionListener。7欢迎下载精品文档/*/private static final long serialVersionUID = 1L;public static final String Flight = null;/ 声明 JButton 组件对象JButton jbutton1,jbutton2,jbutton3,jbutton4;public Welcome()super(" 欢迎进入民航订票系统 !");/ 设置内容面板的布局模式为:流动布局 getContentPane().setLayout(new FlowLayout();jbutton

6、1=new JButton("管理系统 ");jbutton2=new JButton("客户系统 ");jbutton4=new JButton("退出系统 ");getContentPane().add(jbutton1);getContentPane().add(jbutton2);getContentPane().add(jbutton4);this.setBounds(300,200,240,120);this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXI

7、T_ON_CLOSE);this.setResizable(false);/ 注册监听器 jbutton1.addActionListener(this); jbutton2.addActionListener(this);jbutton4.addActionListener(this);public void actionPerformed(ActionEvent e)if(e.getSource()=jbutton1)SuppressWarnings("unused")LoginOfManager s=new LoginOfManager();this.dispose(

8、);。8欢迎下载精品文档if(e.getSource()=jbutton2)try new Login(); catch (Exception e1) / TODO Auto-generated catch block e1.printStackTrace();this.dispose();if(e.getSource()=jbutton4)System.exit(0);public void airportInformation()System.out.println("谢谢光临! ");public static void main(String args)Suppre

9、ssWarnings("unused")Welcome welcome=new Welcome();2 管理员的操作界面也是简单易懂,利于上手。实现的代码如下所示:package FlightManagementSystem;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;。9欢迎下

10、载精品文档import javax.swing.*;public class ManagementFrame extends JFrame implements ActionListener / 声明 JButton 组件对象JButton jbutton1,jbutton2,jbutton3,jbutton4,jbutton5;public ManagementFrame()super(" 欢迎进入管理系统 !");/ 设置内容面板的布局模式为:流动布局 getContentPane().setLayout(new FlowLayout();jbutton1=new JB

11、utton("录入航班信息 ");jbutton2=new JButton("查看航班信息 ");jbutton3=new JButton("修改航班信息 ");jbutton4=new JButton("查看客户信息 ");jbutton5=new JButton("返回 ");getContentPane().add(jbutton1);getContentPane().add(jbutton2);getContentPane().add(jbutton3);getContentPane()

12、.add(jbutton4);getContentPane().add(jbutton5);this.setBounds(300,200,360,130);this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/ 注册监听器 jbutton1.addActionListener(this);jbutton2.addActionListener(this);jbutton3.addActionListener(this);jbutton4.addActionListener(this);jbutton5

13、.addActionListener(this);public void actionPerformed(ActionEvent e)if(e.getSource()=jbutton1)new InsertInfomation();this.dispose();。10欢迎下载精品文档if(e.getSource()=jbutton2)new Queryflight();this.dispose();if(e.getSource()=jbutton3)new ReviseInformation();this.dispose();if(e.getSource()=jbutton4)new Quer

14、yclient();this.dispose();if(e.getSource()=jbutton5)new Welcome();this.dispose();public static void main(String args)new ManagementFrame();3 客户进入后的操作界面,可是实现用户的各种操作,例如订票,退票,查询信息等。package FlightManagementSystem;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionLis

15、tener;import java.sql.*;import javax.swing.*;。11欢迎下载精品文档public class Book extends JFrame implements ActionListener /*/int dingdannum=10000000;/设置初始订单号 ;private static final long serialVersionUID = 1L;JLabel l4 = new JLabel("订票数量:");JLabel l2 = new JLabel("航班号: ");JLabel l3 = new

16、JLabel("请输入您要订票的航班号和机票数量! 一次不能超过 5 张票! ");JLabel l1 = new JLabel("姓名: ");JTextField t1 = new JTextField("", 12);JTextField t2 = new JTextField("", 12);JTextField t3 = new JTextField("", 12);JButton b1 = new JButton("确认订票 ");JButton b2 = new

17、 JButton("返回");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 rs;String url = "jdbc:odbc:ylb"Book()throws Exceptionsuper("欢迎进入订票界面! "

18、);p1.add(l3);p2.add(l1); p2.add(t1);p3.add(l2); p3.add(t2);p4.add(l4); p4.add(t3);。12欢迎下载精品文档p5.add(b1); p5.add(b2);b1.addActionListener(this);b2.addActionListener(this);setLayout(new GridLayout(5,1);this.add(p1);this.add(p2);this.add(p3);this.add(p4);this.add(p5);setBounds(300, 200, 320, 240);setRe

19、sizable(false);setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);SuppressWarnings("null")public void actionPerformed(ActionEvent e) if(e.getSource() = b2)new Enterance();this.dispose();if(e.getSource() = b1)/ 获取用户输入的信息String jt1=t1.getText();String jt2=t2.getText();Strin

20、g jt3=t3.getText();int tt=Integer.parseInt(jt3);if(tt>5)l3.setText("请减少购票数量! ");elseif(jt1.equals("")| jt2.equals("")|jt3.equals("")l3.setText("所填信息不能为空! ");。13欢迎下载精品文档elsetryClass.forName("sun.jdbc.odbc.JdbcOdbcDriver");con = DriverMana

21、ger.getConnection(url, "", "");stmt = con.createStatement();int count=stmt.executeUpdate("insert into book values('"+jt1+"','"+jt2+"',"+tt+")");rs= stmt.executeQuery("select* from flightwhere 航班号 ='"+jt2+"

22、'");if(rs.next()System.out.println("查询航班信息成功! ");/获取该航班信息String fl1=null;String fl2=null;String fl3=null;fl1=rs.getString(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

23、-fl4;/计算该航班剩余票数if(shengyu<0)l3.setText("该航班已剩 "+shengyu+" 张票! ");elsefor(int i=0;i<tt;i+)fl4=fl4+1;。14欢迎下载精品文档dingdannum=dingdannum+1;dingdannum=dingdannum+fl4+fl6*i;String sql="insert into ORDER1 values ("+dingdannum+",'"+jt1+"','"

24、+jt2+"',"+fl4+",'"+fl5+"','"+fl1+"','"+fl2+"','"+fl3+"')"stmt.executeUpdate(sql);if(shengyu>0)stmt.executeUpdate("updateflightset目前 人数="+fl4+"where航班号 ='"+jt2+"'")

25、;if(shengyu=0)stmt.executeUpdate("updateflightset目前 人数="+fl4+"是否满仓 =' 是'"+"where航班号 ='"+jt2+"'"); catch(Exception e2)e2.printStackTrace();/* public void treat(int i,String a,String b)String hangbanhao=a;/获得航班号System.out.println("航班号为: &quo

26、t;+hangbanhao);String name=b;int zuoweihao=0;/座位号int ticketnum=i;/获得订票数int max=0;/航班最大人数System.out.println("订票数为: "+ticketnum);tryClass.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection cc=DriverManager.getConnection(url, "", "");if(cc!=null)System.out.print

27、ln("查询连接成功! ");Statement sta=cc.createStatement();。15欢迎下载精品文档/ 查询预定航班的人数,以便获得座位号ResultSetres=sta.executeQuery("select*fromflightwhere " +" 航班号 ='"+hangbanhao+"'"); while(res.next()System.out.println("rs存在! ");String shijian=res.getString(2);S

28、ystem.out.println("时间 ="+shijian);String qifeididian=res.getString(3);System.out.println("起飞地点 ="+qifeididian);String daodadidian=res.getString(4);System.out.println(" 到达地点 ="+daodadidian); int piaojia =res.getInt(5);System.out.println("票价 ="+piaojia);max=res.

29、getInt(6);System.out.println("最大人数 ="+max);zuoweihao=res.getInt(7);System.out.println("座位号 ="+zuoweihao);tryClass.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectionccc=DriverManager.getConnection(url, "", "");Statement stat=ccc.createStatement();for(

30、int j=0;j<ticketnum;j+)String sqll="insert into ORDER1 values('"+name+"','"+hangbanhao+"',"+(zuoweihao+1)+","+piaojia+",'"+shijian+"','"+qifeididian+"','"+daodadidian+"'"while(m

31、ax!=0) if(max!=zuoweihao)stat.executeUpdate("updateflightset目前人数 ="+zuoweihao+"where航班号='"+hangbanhao+"'");elsestat.executeUpdate("updateflightset目前人数 ="+zuoweihao+",是 否 满 仓 =' 是 '"+"where航 班 号='"+hangbanhao+"'&

32、quot;);。16欢迎下载精品文档zuoweihao=zuoweihao+i;if(zuoweihao+i)>max)this.dispose();new Book();l3.setText("该航班 :"+hangbanhao+" 票数已超出! ");catch(Exception e)/更新座位号System.out.println("更改后的人数 ="+zuoweihao);catch(Exception e)*/public static void main(String args) throws Exception

33、new Book();4 录入修改航班的代码,对订票信息的确定,并且对相应的信息进行修改。 package FlightManagementSystem;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 javax.swing.*;pub

34、lic class Queryclient extends JFrame implements ActionListener /*/。17欢迎下载精品文档private static final long serialVersionUID = 1L;JLabel jl1=new JLabel("姓名:");JLabel jl6=new JLabel("登机时间: ");JLabel jl7=new JLabel("出发地点 : ");JLabel jl8=new JLabel("目的地点: ");JLabel jl

35、2=new JLabel("证件 号: ");JLabel jl5=new JLabel("所乘航班: ");JLabel jl3=new JLabel("性别:");JLabel jl4=new JLabel("年龄:");private JTextField jd1=new JTextField(15);private JTextField jd2=new JTextField(15);private JTextField jd3=new JTextField(15);private JTextField jd

36、8=new JTextField(15);private JTextField jd4=new JTextField(15);private JTextField jd5=new JTextField(15);private JTextField jd6=new JTextField(15);private JTextField jd7=new JTextField(15);JButton query=new JButton("查询 ");JButton outuran=new JButton("返回 ");JLabel jl=jl1,jl2,jl3,j

37、l4,jl5,jl6,jl7,jl8;private JTextField jt=jd1,jd2,jd3,jd4,jd5,jd6,jd7,jd8;Box box1=Box.createVerticalBox();/创建纵向 Box 容器private Box box2=Box.createVerticalBox();Box box3=Box.createHorizontalBox();/创建横向 Box 容器Connection con;Statement stmt;ResultSet rs;String url = "jdbc:odbc:ylb"public Queryc

38、lient()this.setTitle("查询客户信息 ");this.setBounds(300,200,260,365);this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setResizable(false);。18欢迎下载精品文档this.add(box3);/将横向 Box容器 box3 添加到窗体中box3.add(Box.createRigidArea(new Dimension(20,20);box3.add(box1);/将纵向 Box容器 box

39、1 添加到横向 Box 容器 box3 中box3.add(box2);/将纵向 Box容器 box2 添加到横向 Box 容器 box3 中query.addActionListener(this);outuran.addActionListener(this);for(int i=0;i<8;i+)box1.add(jli);box1.add(Box.createVerticalStrut(20);box1.add(query);for(int i=0;i<8;i+)box2.add(jti);box2.add(Box.createVerticalStrut(16);box2.

40、add(outuran);jd1.setText("请输入需查询的姓名!");public void actionPerformed(ActionEvent e) String getflight=null; / 定义该客户航班号 if(e.getSource()=query)String t1=jd1.getText();jd3.setText(t1);。19欢迎下载精品文档tryClass.forName("sun.jdbc.odbc.JdbcOdbcDriver");con = DriverManager.getConnection(url, &q

41、uot;", "");stmt = con.createStatement();rs = stmt.executeQuery("select * from client where姓名 ='"+t1+ "'");while(rs.next()for(int i=1;i<4;i+)jti.setText(rs.getString(i+1);ResultSet res = stmt.executeQuery("select * from book where姓名 ='" +t1+

42、 "'");while(res.next()getflight=res.getString(2);jt4.setText(getflight);ResultSet ress = stmt.executeQuery("select * from flightwhere 航班号 ='" +getflight+ "'");while(ress.next()jt5.setText(ress.getString(2);jt6.setText(ress.getString(3);jt7.setText(ress.getSt

43、ring(4);catch(Exception e2)if(e.getSource()=outuran)try new ManagementFrame(); catch (Exception e1) / TODO Auto-generated catch block e1.printStackTrace();。20欢迎下载精品文档this.dispose();public static void main(String args)new Queryclient();5 顾客订票退票的代码,package FlightManagementSystem;import java.awt.GridLa

44、yout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.*;import javax.swing.*;public class Return extends JFrame implements ActionListener /*/private static final long serialVersionUID = 1L;JLabel l1= new JLabel("姓 名:");JLabel l2 = new JLabel("航班号

45、: ");JLabel l3 = new JLabel("请输入您要退票的订单号和航班号 !");JLabel l4 = new JLabel("订单号 : ");JTextField t1 = new JTextField("", 12);JTextField t2 = new JTextField("", 12);JTextField t3 = new JTextField("", 12);JButton b1= new JButton("确认退票 ");JBu

46、tton b2= new JButton("返回 ");JPanel p1 = new JPanel();JPanel p2 = new JPanel();JPanel p3 = new JPanel();。21欢迎下载精品文档JPanel p4 = new JPanel();JPanel p5 = new JPanel();String name;Connection con;Statement stmt;ResultSet rs;ResultSet rs1;String url = "jdbc:odbc:ylb"Return()throws Exce

47、ptionsuper("欢迎进入退票界面! ");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);b1.addActionListener(this);b2.addActionListener(this);setLayout(new GridLayout(5,1);this.add(p1);

48、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 Exception new Return();public void actionPerformed(ActionEvent e) String jt1=t1.getText();String jt2=t2.getText();String jt3=t3.getText()

49、;。22欢迎下载精品文档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.setText("姓名和航班号不能为空!");elsetryClass.forName("sun.jdbc.odbc.JdbcOdbcDriver");con = DriverManager.getConnection(url, "", "");stmt = con.createStatement();rs = stmt.

温馨提示

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

评论

0/150

提交评论