java课程设计 航空订票管理系统设计.docx

上传人:牧羊曲112 文档编号:4885660 上传时间:2023-05-21 格式:DOCX 页数:41 大小:601.83KB
返回 下载 相关 举报
java课程设计 航空订票管理系统设计.docx_第1页
第1页 / 共41页
java课程设计 航空订票管理系统设计.docx_第2页
第2页 / 共41页
java课程设计 航空订票管理系统设计.docx_第3页
第3页 / 共41页
java课程设计 航空订票管理系统设计.docx_第4页
第4页 / 共41页
java课程设计 航空订票管理系统设计.docx_第5页
第5页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《java课程设计 航空订票管理系统设计.docx》由会员分享,可在线阅读,更多相关《java课程设计 航空订票管理系统设计.docx(41页珍藏版)》请在三一办公上搜索。

1、学号xxXX面向对象程序设计课程设计报告题目: xx 专业: xx 班级: x姓名:xx指导教师: xxxxx年x月x日目录1设计内容及要求11.1设计任务及要求11.2硬件可靠性11.3系统运行的稳定性11.4系统功能齐全、开放性好12需求分析22.1数据的输入22.2数据的修改22.3数据的删除22.4数据的查询23概要设计33.1系统用例图33.2用例描述33.3 基本描述43.4 功能43.5算法 53.5流程逻辑64系统数据结构设计114.1逻辑结构设计要点114.2物理结构设计要点114.3数据结构及程序的关系124.4 数据库分析124.5程序系统的组织结构146系统运行效果及操

2、作16参考文献:361设计内容及要求1.1设计任务及要求对航空公司来说,航空订票管理系统既能扩大服务范围,扩大公司影响,减 少营业费用,又对稳固航空公司的客源有着重要的辅助作用;站在旅客的角度, 航空公司提供的这种服务提供了更多的方便,节省了很多时间。建设航空订票管 理系统是体现和提高航空公司领导业绩的一条捷径,此外还具有重要意义:1、改善航空公司服务质量;2、创造和提升航空公司的品牌优势;3、优化航空公司的服务流程;4、提升信息化的水平;1.2硬件可靠性数据库服务器:数据库服务器用于存放用户及航班信息等资料,配一台专用服务器,安装数据库SQL server2000。1.3系统运行的稳定性系统

3、支持操作系统如下:Windows vista、Windows XP (服务器版本)(推荐)或 Windows 2000,系统运 行稳定可靠,可以保证365天*24小时的不间断运行,并安装杀毒软件,防止病毒的 干扰,保证系统的运行稳定。SQL Server数据库服务器版,可以存储管理大量数据信息1.4系统功能齐全、开放性好订票,退票,查询,管理等业务,全部使用软件来控制,因此今后功能变动、业 务改动很灵活。2需求分析2.1数据的输入管理员根据需要来输入航班、订票人、乘客等信息的具体数据,但必须保证其正 确性和准确性。2.2数据的修改管理员根据需要对指定的数据进行修改,由于记录繁多,因此用户首先要

4、输入一 定的查询条件,缩小记录范围,然后再从该范围中找到指定的记录进行修改,保 证修改的内容的正确性和准确性后可更新数据库的数据。2.3数据的删除管理员根据需要对指定的数据进行删除,由于记录繁多,因此用户首先要输入一 定的查询条件,缩小记录范围,然后再从该范围中找到制定的记录进行删除,保 证将要删除的内容的正确性和准确性后可删除掉数据库中的数据。2.4数据的查询管理员根据需要查询数据库中的所有数据,输入一定的查询条件,然后可按照输 入的查询依据查询新数据库的数据。3概要设计3.1系统用例图图1系统用例图3.2用例描述(1) 航班查询查看航班信息基本查询,从下拉列表中选择航班或起点或终点信息 综

5、合查询,手动输入航班的基本信息3 / 38(2)订票输入航班信,显示航班信息,以及打折后的票价信息,询问信息是否正确输入个人信息完成订票不正确 返回订票初始界面(3)退票输入将退票的序号显示票的具体信息,并询问是否退票退票成功,更新顾客数据库(4)管理登陆k进入管理界面k选择添加、更新、删除航班,或查看航班具体信息等业务添加k输入添加航班的具体信息更新航班数据库更新k输入所要更改航班的具体信息更新航班数据库删除选择所要删除的航班更新航班数据库查看航班具体信息k显示数据库中所有航班的具体信息3.3基本描述(1)服务器端程序:本套航空订票系统软件的服务器端应用程序,使用java编写前台控制软件,

6、管理员通过使用该软件来进行对数据库中的数据进行管理。(2)后台数据库:本套航空订票系统软件的后台数据库使用Microsoft SQL Server 2000来搭建 后台数据库服务器,用来存放所有的数据。3.4功能(1)服务器端的主要功能订票信息的查询功能:1)查询航班信息包括航班号、地点等信息。2)查询及票价格包括起始地、抵达地、机票价格等信息。3)查询订票人的详细信息:精确查询:输入订票人身份证号码查询订票人详细信息。模糊查询:输入订票人的姓名(或订票人的姓或是年龄或是性别)查询出一系 列相关的信息,然后可从小范围内找到订票人的详细信息。4)查询乘客的详细信息:输入乘客的身份证号码查询乘客的

7、详细信息。1)填写订票人的详细信息其中包括:姓名、身份证号码、联系电话、地址等信息。2)填写订票的详细信息,其中包括:航班编号、订票时间、订票数量等信息。录入信息功能1)取票功能:根据输入的订票人身份证号验证订票人身份后,输入详细的乘客 信息并进行保存。2)直接购票:直接输入乘客详细信息并保存(不通过订票人)。3)录入航班信息:录入航班的相关信息。4)订票人取消订票:保存订票人取消订票信息。 修改功能1)修改乘客信息:将查找到的乘客信息,进行修改,然后进行保存。2)修改订票人信息:将查找到的订票人的信息进行修改然后进行保存。3)修改航班信息:将查找到的航班信息进行修改后保存。 删除功能1)删除

8、乘客信息:将查找到的乘客信息,进行删除。2)删除订票人信息:将查找到的订票人的信息进行删除。3)删除航班信息:将查找到的航班信息进行删除。3.5算法1)将管理员输入的数据,按字段保存到数据库中。2)将数据库中的数据,按字段提取到用户界面中。3)必要的去除重复项的算法。4)按条件修改、删除数据中的数据。5)保持表间数据的一致性。3.5流程逻辑(1)服务器端各模块的流程图查询模块流程图+显示查询到的数结束查询功能图2服务器查询模块添加模块流程图图3服务器添加模块是否继续运行是判断数据是否符合规定开始运行程序初始修改信息更新数据库图4服务器修改模块结束删除功能图5服务器删除模块查询模块的流程图图6客

9、户端查询模块订票模块的流程图图7客户端添加模块4系统数据结构设计4.1逻辑结构设计要点按照需求分析设计数据库中的字段,建立一个逻辑上的数据库的结构。4.2物理结构设计要点在数据库软件(SQL Server2000)中建立数据库,并要保证数据库最低要符合第二 范式。4.3数据结构及程序的关系(1)静态数值需求12支持并行操作的用户。12处理多条记录数据。12表或文件的最小为2048字节,最大无限制。(2)精度需求在进行提取数据库数据时,要求数据记录定位准确,在向数据库中添加数据时, 要求输入数据准确。主要的精度适应系统要求,不接受违规操作。(3)时间特性需求12响应时间应在人的感觉和视觉事件范围

10、内;12更新处理时间,随着应用软件的版本升级,以及网络的定期维护更新。(4)灵活性当需求发生某些变化时,管理应用软件操作方式、数据结构、运行环境 基本不会发生变化,变化只是将对应的数据库文件内的记录改变,或将过滤条件 改变即可。(5)数据管理能力需求本应用软件可管理多条记录,本应用软件基本约用1,300千字节空间,所有 文件均放置在数据库中调用,查询数据、文件、记录时,通过库文件名直接进行 操作或通过存储过程来完成操作。4.4数据库分析(1)数据表建立需将数据库设计成关系模式最低符合第二范式的标准。按照需求分析,确 定系统的实体。根据实体分析的结果,在数据库中应建立如下数据表:adtor (管

11、理员表)Flight (航班信息表)idTi-UCEl l ghilc onp uiyEtarttimacurrantpipn cacmmmgDD2就南泯L0.00saa3000.004ooa.aan24D3中麻tl本奥大利牡7.00saa4000.00sooa.aaLLLUJjjjjb2DD4琢=14.9. OU9ELllJLl. LHJ6000.00rarnmn50-国碗七卓、3 30妇L200.00&aa.aaBD5谶Irfj安士5BD4DD.DDido.qonjirrr.irir.-.irrr.i/ iKinrirmr.-.iNT.-.Irrr.i.ET.T.rnn.iV1T.T.de

12、stine(客户信息表)user (用户信息表)idJi:=LEEWCfil00000000001t皿莒1234:4:NULLNULL(HULL)(2)数据库设计说明destine(订票人信息表)在该信息表中包含以下字段:destine_id(订票人身份证号码)、flight_no(航班号)、 destine_count (订票数量)、destine_date (定票日期)、destine_status(订票状态)、destine _id (订票人身份证号码)、destine_phone(订票人联系电话)、destine_address(订票 人地址)、destine_sex(订票人性别)、d

13、estine_age(订票人年龄)等字段。flight (航班信息表)在该信息表中包含以下字段:flight_no(航班号)、begin_from(起飞地点)、end_address (降落地点)、begin_time(起飞时间)、end_time (降落时间)ticket_price (机 票价格)等字段。(3)数据库ER图图8数据库ER图4.5程序系统的组织结构(1)系统组织结构图服务器端的组织结构图6系统运行效果及操作图10主操作界面代码如下: package flight;import java.awt.GridLayout;import javax.swing.*;import ja

14、va.awt.event.*;public class Register extends JFrame implements ActionListener(JTextField user;JPasswordField psw1,psw2;JLabel a,b,c;JButton ok,no;public Register()(a=new JLabel(订票);a. setBounds(70,70,60,25);b=new JLabel(管理);b. setBounds(77,130,60,25);c=new JLabel(退出);c. setBounds(60,190,60,25);user=

15、new JTextField(20);user.setBounds(130,70,180,25);psw1=new JPasswordField(20);psw1.setBounds(130,130,180,25);psw2=new JPasswordField(20);psw2.setBounds(130,190,180,25);add(a);add(user);add(b);add(psw1);add(c);add(psw2);setLayout(null);setBounds(100,200,500,350);setDefaultCloseOperation(JFrame.EXIT_ON

16、_CLOSE);setResizable(false);setVisible(true);public void actionPerformed(ActionEvent e)(String a,b,c;if (e.getSource() = ok) (a=user.getText();b=psw1.getText();c=psw2.getText();dispose(); 关闭窗口System.exit(0); /退出程序图11用户登录界面代码如下:public class AdminLogin extends JFrame implements ActionListenerdatabase

17、datalink;JTextField input1;JPasswordField input2;JLabel prompt1;JLabel prompt2;JButton ok;public AdminLogin() (super(管理员登陆);setSize(400, 100);Dimension size = Toolkit.getDefaultToolkit().getScreenSize();setLocation(size.width - getWidth() / 2,(size.height - getHeight() / 2);setLayout(new FlowLayout(

18、);prompt1 = new JLabel(账号:);prompt2 = new JLabel(密码:);inputl = new JTextField(8);input2 = new JPasswordField(8);ok = new JButton( 确定);ok.setSize(50, 100);ok.addActionListener(this);add(prompt1);add(input1);add(prompt2);add(input2);add(ok);datalink二new database();setVisible(true);public void actionPe

19、rformed(ActionEvent e)(if(e.getSource()=ok)if(input1.getText().length()=0|input2.getText().length()=0) (JOptionPane.showMessageDialog(this,请输入用户名或密码!,提示错误 ,JOptionPane.ERROR_MESSAGE);else (try(boolean b=true;Connection con二datalink.getCon();Statement stm=datalink.getStm();ResultSet rs=stm.executeQue

20、ry(SELECT * FROM admin_info);if(rootPaneCheckingEnabled)(while(rs.next() (String us=input1.getText();String ps=input2.getText();if(us.equals(rs.getString(admtor)&ps.equals(rs.getString(admpsw )(new Manager();this.dispose();b=false;InetAddressaddress=InetAddress.getLocalHost(); String IP_name = addre

21、ss.getHostAddress(); Calendar E=Calendar.getInstance(); int year = E.get(Calendar.YEAR); int month 二E.get(Calendar.MONTH)+1; int day = E.get(Calendar.DAY_OF_MONTH); int hour = E.get(Calendar.HOUR_OF_DAY);FileWriter out;out = new FileWriter(D:Adminfile.txt);out = new FileWriter(D:Adminfile.txt);out.w

22、rite(登陆用户:+input1.getText()+ 密 码: +ps+登 陆时 间 +year+-+month+-+day+ +hour+IP:+IP_name);out.close();if(b)(JOptionPane.showMessageDialog(this, 请输入正确的用户名或密码! /提示错误,JOptionPane.ERROR_MESSAGE);/con.close();catch (IOException ex) (Logger.getLogger(Login.class.getName().log(Level.SEVERE, null, ex); catch (SQ

23、LException ex) (Logger.getLogger(AdminLogin.class.getName().log(Level.SEVERE, null, ex);public static void main(String args) ( new AdminLogin();图13按终始站查询图12和图13代码如下: public class FTable extends AbstractTableModel(private Object口 data;private String: head = 航班号,航班公司,始发站,终点站, 最大乘客数,现有乘客数,起飞时间,普通舱,商务舱;

24、public FTable(List list)(data = new Objectlist.size();for(int i = 0;i list.size();i+)ticktInfo f = list.get(i);datai=newObjectf.getFlightID(),f.getCompany(),f.getSstation(),f.getEstation (),getStartTime(),f.getMax(),f.getCurrent(),f.getPutongcang(),f.getShang wucang();public int getColumnCount()(ret

25、urn head.length;public int getRowCount()(return data.length;public String getColumnName(int col)( return headcol;public Object getValueAt(int row,int col)( return datarowcol;public Class getColumnClass(int c)(return getValueAt(0,c).getClass();tCompo图14添加航班代码如下:public class AddF extends JFrame implem

26、ents ActionListener(String: title = 航班号,航班公司,起飞地点,到达地点,起飞 时间,最大乘客数,现有乘客数,普通舱/商务舱;JTextFieldtxtl=newJTextField(20);JTextFieldtxt2=newJTextField(20);JTextFieldtxt3=newJTextField(20);JTextFieldtxt4=newJTextField(20);JTextFieldtxt5=newJTextField(20);JTextFieldtxt6=newJTextField(10);JTextFieldtxt7=newJTe

27、xtField(10);JTextFieldtxt8=newJTextField(10);JTextFieldtxt9=newJTextField(10);JButton OK = new JButton(保存”);JButton Cancel = new JButton(取消”);ticktInfo flight;ArrayList plst=null;boolean success;public AddF()(Dimension size = Toolkit.getDefaultToolkit().getScreenSize();setLocation(size.width - getWi

28、dth() / 3,(size.height - getHeight() / 3);Container con = getContentPane();con.setLayout(new GridLayout(9,1);JPanel p = new JPanel9;for (int i=0;i9;i+)(pi = new JPanel(new FlowLayout(FlowLayout.LEFT);pi.add(new JLabel(titlei+:);p0.add(txt1);p1.add(txt2);p2.add(txt3);p3.add(txt4);p4.add(txt5);p5.add(

29、txt6);p6.add(txt7);p7.add(txt8);p8.add(txt9);for (int i=0;i9;i+)con.add(pi);JPanel bottom = new JPanel();bottom.add(OK);bottom.add(Cancel);con.add(bottom);OK.addActionListener(this);Cancel.addActionListener(this);setTitle(航班信息添加窗口 );setSize(800,500);setVisible(true);public void actionPerformed(Actio

30、nEvent e) (if(e.getSource()=OK)String a=txt1.getText();String b=txt2.getText();String c=txt3.getText();String d=txt4.getText();String e1=txt5.getText();String f=txt6.getText();String g=txt7.getText();String h=txt8.getText();String j=txt9.getText();Solution.AddFlight(a, b, c, d, el, f, g, h, j); disp

31、ose();else if(e.getSource()=Cancel) dispose();public static void main(String args) ( new AddF();图15删除航班代码如下:public class DeletF extends JFrame implements ActionListener(String口 title = 航班号,航班公司,起飞地点,到达地点,起飞 时间,最大乘客数,现有乘客数,普通舱/商务舱;JTextFieldtxt1=newJTextField(20);JTextFieldtxt2=newJTextField(20);JTex

32、tFieldtxt3=newJTextField(20);JTextField txt4 = new JTextField(20);JTextField txt5 = new JTextField(20);JTextField txt6 = new JTextField(10);JTextField txt7 = new JTextField(10);JTextField txt8 = new JTextField(10);JTextField txt9 = new JTextField(10);JButton OK = new JButton(保存”);JButton Cancel = ne

33、w JButton(取消”);ticktInfo flight;ArrayList plst=null;boolean success;public AddF()(Dimension size = Toolkit.getDefaultToolkit().getScreenSize();setLocation(size.width - getWidth();Container con = getContentPane();con.setLayout(new GridLayout(9,1);JPanel p = new JPanel9;for (int i=0;i9;i+)(pi = new JP

34、anel(new FlowLayout(FlowLayout.LEFT);pi.delete(new JLabel(titlei+:);p0.delete(txt1);p1.delete(txt2);p2.delete(txt3);p3.delete(txt4);p4.delelte(txt5);p5.delete(txt6);for (int i=0;i6;i+)( con.add(pi);JPanel bottom = new JPanel();bottom.delete(OK);bottom.delete(Cancel);con.delete(bottom);OK.deleteActio

35、nListener(this);Cancel.deleteActionListener(this);setTitle(航班信息删除窗口:” );setVisible(true);setSize(800,500);public void actionPerformed(ActionEvent e) ( if(e.getSource()=OK)String a=txt1.getText();String b=txt2.getText();String c=txt3.getText();String d=txt4.getText();String e1=txt5.getText();String f

36、=txt6.getText();String g=txt7.getText();String h=txt8.getText();String j=txt9.getText();Solution.AddFlight(a, b, c, d, e1, f, g, h, j); dispose();else if(e.getSource()=Cancel) dispose();public static void main(String args) (new deleteF();确走取消座位号取消I - H喜1丁襄倍息垣与宝口航班M: r宇熹壹匚起点-上海航邛王号:T缪点一北京航明公司:信息辑与成攻I

37、由8 箱-1126:购买票数.1起丐尸!垃日漩口裁涓球J湿方侑言a.起始站:上海南航图16乘客购票信息图17购票成功代码如下:class ClientInfo extends JFrame implements ActionListenerString title口 = 航班号,起点,终点,起飞日期,姓名,身份证 ,联系电话,邮箱,座位号,购买票数;JTextField txtFid = new JTextField(10);JTextField txtStart = new JTextField(10);JTextField txtEnd = new JTextField(10);JText

38、Field txtTime = new JTextField(10);JTextField txtName = new JTextField(10);JTextField txtID = new JTextField(20);JTextField txtTelNum = new JTextField(20);JTextField txtEmail = new JTextField(20);JTextField txtSeatNum = new JTextField(10);JTextField txtCount = new JTextField(10);JButton btnOK = new

39、JButton( 确定);JButton btnCancel = new JButton( 取消);public ClientInfo() (Container con = getContentPane();con.setLayout(new GridLayout(11,1);JPanel p = new JPanel10;for (int i=0;i10;i+)(pi = new JPanel(new FlowLayout(FlowLayout.LEFT);pi.add(new JLabel(titlei+:);p0.add(txtFid);p1.add(txtStart);p2.add(t

40、xtEnd);p3.add(txtTime);p4.add(txtName);p5.add(txtID);p6.add(txtTelNum);p7.add(txtEmail);p8.add(txtSeatNum);p9.add(txtCount);for (int i=0;i10;i+)(con.add(pi);JPanel bottom = new JPanel();bottom.add(btnOK);bottom.add(btnCancel);con.add(bottom);btnOK.addActionListener(this);btnCancel.addActionListener(

41、this);Dimension size =Toolkit.getDefaultToolkit().getScreenSize();setLocation(size.width - getWidth();setTitle(-乘客订票信息填写窗口 );setSize(450,600);setVisible(true);public void actionPerformed(ActionEvent e) (if(e.getSource()=btnOK)try(String a = txtName.getText();String b = txtID.getText();String c = txt

42、TelNum.getText();String d = txtEmail.getText();String e1 = txtSeatNum.getText();String f = txtFid.getText();String g = txtStart.getText();String h = txtEnd.getText();String i = txtTime.getText();Solution.AddClientInfo(a, b, c, d, e1, f, g, h, i);database link=new database();Connection con=link.getCo

43、n();Statement stm=link.getStm();String sql=select max,current from flight_info whereflightID=+txtFid.getText().trim()+;try(int max=0,cur=0;int udrem=0;ResultSet rs二stm.executeQuery(sql);String s1=txtFid.getText().trim();int ct=Integer.parseInt(txtCount.getText().trim();while(rs.next()max二rs.getInt(max); cur=rs.getInt(current);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号