已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
民航订票系统一、设计目的与内容1设计目的熟练掌握数据的存储表示和基本操作的实现,能够利用存储设计算法解决简单的航空订票问题。2设计内容:录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况; 订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;输出:可以按照航班号为顺序输出订票信息。二、 算法的基本思想飞机订票系统 主界面管理员客户录入航班信息查看航班信息查看客户信息修改航班信息查看航班信息查看订票信息订票退票算法的主要思路是:1首先对界面的设计,可以对操作的人员来说简单上手。对系统的应用都能进行相应的操作。(1)设置管理员的功能。(2)设置客户的功能(3)管理员的主要操作界面(4)客户的主要操作界面(5)结束2类dingpiao用来显示客户订票的事件;基本思路如下:(1) 客户提交自己的详细信息。(2) 管理员处理相应的内容并给票给客户。(3) 订票结束3类tuipiao将处客户的退票的信息,释放存储空间,基本思路如下:(1) 客户提交自己的详细信息。(2) 管理员把客户的票取出,(3) 结束三、e-r图系统流程图客户端启动该系统的数据流程图如图3-3:登陆有效数据?noyes出票修改密码航班查询输入查询条件no已查航班?输入新密码no验证有效?输入乘客信息验证有 效noyes验证有效?no封装requset对象yesyes将request对象写向服务器分拣请求登陆请求修改密码请求查询航班请求出票请求调用branchdao调用branchdao调用ticketorderdao调用fligthdao封装response对象将response对象写往客户端解析request对象将结果显示在客户端四、测试数据程序运行实例如下:1 主界面的进入:2 管理员的相应功能3 用户的相应功能4管理员录入订票信息5客户注册模块6 客户添加信息模块10 客户订票界面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 implements actionlistener /* * */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(); jbutton1=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.exit_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(); if(e.getsource()=jbutton2) try new login(); catch (exception e1) / todo auto-generated catch blocke1.printstacktrace();this.dispose(); if(e.getsource()=jbutton4) system.exit(0);public void airportinformation()system.out.println(谢谢光临!);public static void main(string args)suppresswarnings(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;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 jbutton(录入航班信息);jbutton2=new jbutton(查看航班信息);jbutton3=new jbutton(修改航班信息);jbutton4=new jbutton(查看客户信息);jbutton5=new jbutton( 返 回 );getcontentpane().add(jbutton1);getcontentpane().add(jbutton2);getcontentpane().add(jbutton3);getcontentpane().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.addactionlistener(this);public void actionperformed(actionevent e)if(e.getsource()=jbutton1) new insertinfomation();this.dispose(); if(e.getsource()=jbutton2) new queryflight();this.dispose(); if(e.getsource()=jbutton3)new reviseinformation();this.dispose(); if(e.getsource()=jbutton4)new queryclient();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.actionlistener;import java.sql.*;import javax.swing.*;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 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 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 exception 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); this.add(p3); this.add(p4); this.add(p5); setbounds(300, 200, 320, 240); setresizable(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(); string jt3=t3.gettext(); int tt=integer.parseint(jt3); if(tt5)l3.settext(请减少购票数量!); else if(jt1.equals()| jt2.equals()|jt3.equals() l3.settext(所填信息不能为空!); elsetryclass.forname(sun.jdbc.odbc.jdbcodbcdriver);con = drivermanager.getconnection(url, , );stmt = con.createstatement(); int count=stmt.executeupdate(insert into book values(+jt1+,+jt2+,+tt+); rs = stmt.executequery(select * from flight where 航班号=+jt2+); 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-fl4; /计算该航班剩余票数 if(shengyu0) l3.settext(该航班已剩+shengyu+张票!); else for(int i=0;i0) stmt.executeupdate(update flight set 目前人数=+fl4+where 航班号=+jt2+); if(shengyu=0) stmt.executeupdate(update flight set 目前人数=+fl4+是否满仓=是+where 航班号=+jt2+); catch(exception 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 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.println(查询连接成功!);statement sta=cc.createstatement();/查询预定航班的人数,以便获得座位号resultset res=sta.executequery(select * from flight where +航班号=+hangbanhao+);while(res.next()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 piaojia =res.getint(5);system.out.println(票价=+piaojia);max=res.getint(6);system.out.println(最大人数=+max);zuoweihao=res.getint(7);system.out.println(座位号=+zuoweihao); try class.forname(sun.jdbc.odbc.jdbcodbcdriver); connection ccc=drivermanager.getconnection(url, , ); statement stat=ccc.createstatement(); for(int j=0;jmax) 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 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.*;public class queryclient extends jframe implements actionlistener /* * */private 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 jtextfield jd1=new jtextfield(15); private jtextfield jd2=new jtextfield(15); private jtextfield jd3=new jtextfield(15); private jtextfield jd8=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,jl4,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 queryclient() this.settitle(查询客户信息); this.setbounds(300,200,260,365);this.setvisible(true);this.setdefaultcloseoperation(jframe.exit_on_close);this.setresizable(false); this.add(box3); /将横向box容器box3添加到窗体中 box3.add(box.createrigidarea(new dimension(20,20); box3.add(box1); /将纵向box容器box1添加到横向box容器box3中 box3.add(box2); /将纵向box容器box2添加到横向box容器box3中 query.addactionlistener(this);outuran.addactionlistener(this); for(int i=0;i8;i+) box1.add(jli); box1.add(box.createverticalstrut(20); box1.add(query); for(int i=0;i8;i+) box2.add(jti); box2.add(box.createverticalstrut(16); box2.add(outuran); jd1.settext(请输入需查询的姓名!); public void actionperformed(actionevent e) string getflight=null; /定义该客户航班号if(e.getsource()=query) string t1=jd1.gettext();jd3.settext(t1);tryclass.forname(sun.jdbc.odbc.jdbcodbcdriver);con = drivermanager.getconnection(url, , );stmt = con.createstatement();rs = stmt.executequery(select * from client where 姓名= +t1+ );while(rs.next() for(int i=1;i4;i+)jti.settext(rs.getstring(i+1); resultset res = stmt.executequery(select * from book where 姓名= +t1+ );while(res.next()getflight=res.getstring(2); jt4.settext(getflight);resultset ress = stmt.executequery(select * from flight where 航班号= +getflight+ );while(ress.next()jt5.settext(ress.getstring(2);jt6.settext(ress.getstring(3);jt7.settext(ress.getstring(4);catch(exception e2) if(e.getsource()=outuran) try new managementframe(); catch (exception 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.*;import javax.swing.*;public class return extends 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(订单号 : ); jtextfield t1 = new jtextfield(, 12); jtextfield t2 = new jtextfield(, 12); jtextfield t3 = new jtextfield(, 12); jbutton b1 = new jbutton(确认退票); jbutton b2 = new jbutton( 返 回 ); jpanel p1 = new jpanel(); jpanel p2 = new jpanel(); jpanel p3 = new jpanel(); 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 exception 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); b1.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 exception new return(); public void actionperformed(actionevent e) string jt1=t1.gettext(); string jt2=t2.gettext(); string jt3=t3.gettext(); string fli=null; int tt=integer.parseint(jt3); int zuoweihao=0; if(e.getsource() = b2) new enterance(); dispose(); if(e.getsource() = b1)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《阿尔茨海默病汤颖》课件
- 养老院老人生活照料规范制度
- 养老院老人健康饮食营养师培训制度
- 政府委托课题项目合同(2篇)
- 断绝关系协议书
- 2024年度卫生纸品牌授权与区域代理销售合同3篇
- 2025年陕西货运从业资格证实操考试题
- 2025年浙江货运从业资格证500道题目和答案大全
- 2025年临汾货运员初级考试题库
- 《肠杆菌科细菌鉴定》课件
- 电大建筑施工与管理专业毕业作业
- 可比楼盘量化定价法
- xxxxx年猪文化节
- 钢结构项目技术服务和售后服务内容及措施
- 第二语言习得理论概述
- 水景施工工艺(包括防水)
- DAC数模转换实验报告
- 散货船持证清单
- 公路巡查记录表格模板
- 师德师风整改台账23668
- 河海大学水资源规划及利用复习知识点.
评论
0/150
提交评论