Java课程设计飞机航班管理系统

Java课程设计飞机航班管理系统
Java课程设计飞机航班管理系统

一.引言

1.1项目的名称

飞机航班信息管理系统

1.2项目背景和目标

飞机航班信息管理系统主要能够查询飞机的航班情况,飞行线路,票价,折扣

等等情况,并能够在数据库中更新维护飞机航班的信息,对飞机航班数据库进

行管理,如航班的增加,删除和修改等。我们的目标就是为该系统提供后台连

接数据库程序设计以及前台用户界面设计。

1.3项目的可行性研究

设计此系统需要java面向对象编程基础,数据库应用知识以及功能分析。根据目前所开设的课程,学生已经具备这样的知识,有能力综合java编程知识和数据库应用知识做出一个这样的飞机航班信息管理系统。

二、需求分析

2.1系统概述

此系统提供给系统管理员和用户。系统管理员登陆后可以对飞机航班信息进行管理,如:添加飞机航班信息,删除飞机航班信息,修改飞机航班属性。用户登陆后能进行飞机航班信息查询,订票以及退订。

2.2系统运行环境

Java运行在eclipse软件上,数据库用mysql数据库

2.3功能需求描述

用户选择相关的服务项目可以查看相关航班基本信息,并且可以根据自己需求选择相应服务,系统的信息更新时,相关的信息经过相应处理后,会存入到飞机航班数据库中的航班信息记录表中;系统管理员根据航空公司实际情况可以更新航班信息,并通过修改信息处理后被保存到飞机航班表中。

三、系统设计

开发与设计的总体思想

飞机航班信息管理系统主要分为用户和系统管理员2类,因此也将该系统分为2个相应的大的功能模块。

用户可以通过服务项目选择查询相关航班情况,进行订票,退订等服务项目。系统会将数据库中相应信息反馈给顾客。

系统管理员负责管系统信息的及时更新,可以根据航空公司航班的具体的情况更新数据库。

系统模块结构图

3.3数据库结构设计

为了支持此飞机航班信息管理系统,创建数据库airplane manage,在这个数据库里包含三个表:flight information表,passenger表,managerlogin表,和passengerlogin表,它们的截图如下:

在flight information(飞机航班信息)表中,有8个属性列,分别为id(序列),stime(飞机起飞时间),etime(飞机到达时间),sadd(飞机起始点),eadd(飞机终点),znum(总票数),snum(剩余票数)。其基本数据类型分别为:int,char,char,char,char,char。当查询飞机航班基本信息时,从此表中获取数据。截图如下:

在passenger表中,有两个属性列,分别为:Pname(姓名),Psex(性别),Page(年龄),Pplace(籍贯),number(电话号码)其基本数据类型分别为:char,char,int,char,int。当管理员登录系统时从此表获取数据,其截图如下:

在managerlogin表中,有两个属性列,分别为:Mname(管理员姓名),Mpassword(密码)其基本数据类型分别为:char,char。当管理员登录系统时从此表获取数据,其截图如下:

在passengerlogin表中,有两个属性列,分别为:Pname(用户姓名),Ppassword(密码)其基本数据类型分别为:char,char。当教职工登录系统时从此表获取数据,其截图如下:

3.4模块设计

在整个系统主界面,可以选择登录方式,是用户登录还是系统管理员登录。

如果选择用户,则进入用户登录界面,在这个界面上要求输入用户姓名和密码。输入后单击“确认登录”按钮,若密码正确,则转换到飞机航班信息查询页面,若密码不正确,这提示密码错误。

如果选择是系统管理员登录,则进入管理员登陆界面,在这个界面上输入管理员姓名和密码,输入后单击“飞机航班信息管理”按钮,则进入管理员主界面。在管理员主界面可以选择添加操作,删除操作还是修改操作。

若要查询用户的简介信息,点击查询菜单项则进入用户简介信息检索界面,在此界面的检索方式中选择要检索的数据属性,在检索内容框中输入检索的具体信息,例如,检索“pname”字段时,要输入某个用户的姓名。输入后,单击“检索”按钮,则开始对数据库中数据进行查询。如果数据库检索到所需信息,则生成列表显示检索结构,如果没有所需信息,则页面列表中显示为空。

若要查询飞机航班信息,点击查询菜单项则进入飞机航班信息检索界面,在此界面的检索方式中选择要检索的数据属性,在检索内容框中输入检索的具体信息,例如,检索“飞机对应航班序号的相关信息”字段时,要键入某个飞机航班序号。输入后,单击“检索”按钮,则开始对数据库中数据进行查询。如果数据库检索到所需信息,则生成列

表显示检索结构,如果没有所需信息,则页面列表中显示为空。

如果管理员要对数据库中进行修改操作,则在管理员主界面上选择修改菜单项,在此项中,选择要修改的具体内容,总共有三项修改操作:添加飞机航班信息,删除飞机航班信息,修改飞机航班信息。在添加信息操作中,按照标签提示一次输入要添加的记录值,输入完毕后,单击“添加”按钮,若输入成功,则提示成功,若输入失败,则提示失败。在删除信息操作中,输入要删除的信息,单击“删除”按钮,若删除成功,则提示成功,若删除失败则提示失败。在修改信息操作中,输入要修改的信息,单击“修改”按钮,若修改成功,则提示成功,若修改失败则提示失败。

以上就是该飞机航班管理系统涉及的操作步骤。

3.5系统流程描述

接的数据库。若连接成功,提示:connection success,若连接失败,提示:connection failure DBconnection类源代码

package connection;

public class DBconnection {

public static Connection con=null;

public static Connection getConnection()

{

try {

(dbDriver);

} catch (ClassNotFoundException e) {

();

}

try {

} catch (SQLException e) {

();

}

return con;

}

public static void closeConnection()

{

if(con!=null)

try {

();

} catch (SQLException e) {

();

}

}

public static void main(String args[])

{

}

}

包中的类:

(1)FlightDao类:在该类中有四个方法queryFlight, queryFlight1, addFlight,deleteFlight。作用分别是为用户提供查询航班信息的功能,为管理者用户提供查询航班信息,添加航班信息,删除航班信息功能。

queryFlight()方法中,有一个参数,传给select语句中的Pname(用户姓名),利用select语句,查询航班信息表中的内容。若查询成功,则返回一个ArrayList类的对象lis(表格),否则,异常处理

queryFlight1()方法中,有一个参数,传给select语句中的Pname(用户姓名),这个Pname的用户登录是输入的姓名。即此类的作用是每个用户登陆只能查看本人的航班信息。若查询成功,则返回一个ArrayList类的对象lis(表格),否则,异常处理

addFlight()方法中,有四个参数,分别传给insert语句中的id(序列),stime(飞机起飞时间),etime(飞机到达时间),sadd(飞机起始点),eadd(飞机终点),znum(总票数),snum(剩余票数)。利用insert语句,将这些记录写入flight表中。若插入成功返回true,否则返回false deleteFlight()方法中,有一个参数,传给delete语句中的Pname(用户姓名),利用delete语句,把flight表中相关信息删除。若删除成功,返回 true,否则返回false。

FlightDao类源代码:

package dao;

import ;

import ;

import ;

import ;

public class FlightDao {

public ArrayList queryFlight(String key) {

ArrayList lis = new ArrayList();

Connection con = ();

Statement stm;

try {

stm = ();

String sql = "select * from flight where Pname like '%" + key

+ "%' ";

ResultSet rs = (sql);

while ()) {

Flight flight = new Flight(1), (2), rs

.getString(3),

(4),(5),getInt(6),getInt(7),getInt(8));

(flight);

}

} catch (SQLException e) {

();

}

return lis;

}

public ArrayList queryFlight1(String key) {

ArrayList lis = new ArrayList();

Connection con = ();

Statement stm;

try {

stm = ();

String sql = "select * from flight where Pname like '%" + + "%' ";

ResultSet rs = (sql);

while ()) {

Flight flight = new Flight(1), (2),

(3), (4),(5),getInt(6),getInt(7),getInt(8));

(flight);

}

} catch (SQLException e) {

();

}

return lis;

}

private Object getInt(int i) {

etInt(3), (4), (5));

(passenger);

}

} catch (SQLException e) {

();

}

return lis;

}

public boolean deletePassenger(String key) {

Connection con = ();

Statement stm;

try {

stm = ();

String sql = "delete from passenger where Pname like '%"

+ key + "%' ";

int count = (sql);

if (count == 1)

return true;

else

return false;

} catch (SQLException e) {

();

}

return false;

}

}

包中的类:

(1)Passenger类:此类中有五个成员变量,String Pname, String Psex, int Page, String Pplace,int number,和五个成员方法,类中分别获取和设置了这五个变量,即为passenger表中五个属性的属性名,每个变量都对应了getXXX(),setXXX()方法,还有一个构造方法,用于在调用其对象时对成员变量赋值

Passenger类源代码:

package model;

public class Passenger {

String Pname;

String Psex;

int number;

int Page;

String Pplace;

public int getNumber() {

return number;

}

public void setNumber(int number) {

= number;

}

public String getPname() {

return Pname;

}

public void setPname(String Pname) {

= Pname;

}

public String getPsex() {

return Psex;

}

public void setPsex(String Psex) {

= Psex;

}

public int getPage() {

return Page;

}

public void setPage(int Page) {

= Page;

}

public String getPplace() {

return Pplace;

}

public void setPplace(String Pplace) {

= Pplace;

}

public Passenger( String Pname, String Psex, int Page, String Pplace,int number) {

super();

= Pname;

= Psex;

= Page;

= Pplace;

= number;

}

}

(2)Flight类:此类中有七个成员变量,id(序列),stime(飞机起飞时间),etime(飞机到达时间),sadd(飞机起始点),eadd(飞机终点),znum(总票数),snum(剩余票数)。,和七个成员方法,类中分别获取和设置了这七个变量,即为flight表中七个属性的属性名,每个变量都对应了getXXX(),setXXX()方法,还有一个构造方法,用于在调用其对象时对成员变量赋值Flight类源代码:

package model;

public class Flight {

int id;

String stime;

String etime;

String sadd;

String eadd;

int price;

int znum;

int snum;

public int getId() {

return id;

}

public void setId(int id) {

= id;

}

public String getStime() {

return stime;

}

public void setStime(String stime) {

= stime;

}

public String getEtime() {

return etime;

}

public void setEtime(String etime) {

= etime;

}

public String getSadd() {

return sadd;

}

public void setSadd(String sadd) {

=sadd;

}

public String getEadd() {

return eadd;

}

public void setEadd(String Eadd) {

= eadd;

}

public int getPrice() {

return price;

}

public void setPrice(int Price) {

=price;

}

public int getZnum() {

return znum;

}

public void setZnum(int Znum) {

= znum;

}

public int getSnum() {

return snum;

}

public void setSnum(int Snum) {

= snum;

}

public Flight(int id,String stime,String etime, String sadd,String eadd,int price,int znum,int snum)

{

super();

=id;

=stime;

= etime;

= sadd;

=eadd;

=price;

=znum;

=snum;

}

public Flight(int int1, String string, String string2, String string3, String string4, Object int2, Object int3,

Object int4) {

;

import .*;

public class LoginUI extends JFrame { JLabel l1;

JButton bt1, bt2;

Container cp;

public LoginUI() {

l1 = new JLabel("请选择用户类型");

bt1 = new JButton("管理员");

bt2 = new JButton("用户");

JPanel p1 = new JPanel();

(null);

(150, 150, 120, 40);

(l1);

(120, 230, 80, 30);

(bt1);

(220, 230, 80, 30);

(bt2);

(new ManagerLoginActionListener());; import .*;

import ;

public class ManagerLoginUI extends JFrame {

JLabel l1, l2;

JTextField t1;

JPasswordField t2;

JButton bt1, bt2;

Container cp;

public ManagerLoginUI(){

l1 = new JLabel("管理员姓名");

l2 = new JLabel("密码");

t1 = new JTextField(12);

t2 = new JPasswordField(12);

bt1 = new JButton("登录");

bt2 = new JButton("退出");

JPanel p1 = new JPanel();

(null);

(150, 150, 80, 40);

(l1);

(250, 150, 80, 30);

(t1);

(150, 190, 80, 40);

(l2);

(250, 190, 80, 30);

(t2);

(150, 230, 80, 30);

(bt1);

(250, 230, 80, 30);

(bt2);

(new LoginActionListener());;

import .*;

import ;;

public class PassengerLoginUI extends JFrame{ JLabel l1, l2;

JTextField t1;

JPasswordField t2;

JButton bt1, bt2;

Container cp;

public static String st1;

public String st2;

public PassengerLoginUI(){

l1 = new JLabel("用户姓名");

l2 = new JLabel("密码");

t1 = new JTextField(12);

t2 = new JPasswordField(12);

bt1 = new JButton("航班查询");

bt2 = new JButton("退出");

JPanel p1 = new JPanel();

(null);

(150, 150, 80, 40);

(l1);

(250, 150, 80, 30);

(t1);

(150, 190, 80, 40);

(l2);

(250, 190, 80, 30);

(t2);

(150, 230, 120, 30);

(bt1);

(280, 230, 80, 30);

(bt2);

(new LoginActionListener());;

import .*;

public class ManagerMainUI extends JFrame{

Container ctp;

ManagerMainUI(){

ctp = ();

("欢迎进入管理系统!");

(new BorderLayout());

JMenuBar menuBar = new JMenuBar();

buildMainMenu(menuBar);

(menuBar);

(100, 100, 400, 300);

(true);

}

public void buildMainMenu(JMenuBar menuBar){ JMenu fileMenu=new JMenu("文件");

JMenuItem exitMenuItem=new JMenuItem("退出");

(new ExitActionListener());;

import .*;

import .*;

import ;

import ;

public class PassengerQueryUI extends JFrame{ JLabel selectionLabel;

JComboBox fieldComboBox;

JPanel topPanel;

JButton retrievalButton;

JTextField keywordText;

Container container;

String fieldSelected;

int selectedNum;

JTable table;

JScrollPane bookScrollPane;

JPanel bottomPanel;

public PassengerQueryUI(){

container = ();

selectionLabel = new JLabel("检索方式");

fieldComboBox = new JComboBox();

("请选择...");

("Pname");

("Psex");

("Page");

("Pplace");

("number");

(new SelectedListener()); ;

import .*;

import .*;

import ;

import ;

public class FlightQueryUI extends JFrame{ JLabel selectionLabel;

JPanel topPanel;

JButton retrievalButton;

JTextField keywordText;

Container container;

String fieldSelected;

int selectedNum;

JTable table;

JScrollPane bookScrollPane;

JPanel bottomPanel;

public FlightQueryUI(){

container = ();

selectionLabel = new JLabel("姓名");

keywordText = new JTextField("", 20);

retrievalButton = new JButton("查询");

topPanel = new JPanel();

(new FlowLayout);

() / 2, ());

(selectionLabel);

(keywordText);

(retrievalButton);

, topPanel);

(new RetrievalActionListener());;

import .*;

import .*;

import ;

import ;

public class PassengerFlightUI extends JFrame{ String aa=;

JLabel selectionLabel;

JPanel topPanel;

Container container;

JTable table;

JScrollPane bookScrollPane;

JPanel bottomPanel;

public PassengerFlightUI(){

container = ();

selectionLabel = new JLabel(aa+"所乘航班如下");

topPanel = new JPanel();

(new FlowLayout);

(selectionLabel);

, topPanel);

table = new JTable();

bookScrollPane = new JScrollPane(table);

, bookScrollPane);

bottomPanel = new JPanel();

, bottomPanel);

("用户航班查询");

(600, 450);

(true);

FlightDao oneFlight=new FlightDao();

ArrayList lis = (aa);

Vector head = new Vector();

("id");

("stime");

("etime");

("sadd");

("eadd");

("price");

("znum");

("snum");

Vector content = new Vector();

for (int i = 0; i < (); i++) {

Vector row = new Vector();

Flight oneFlight1 = (Flight) (i);

());

());

());

());

());

());

());

());

(row);

}

DefaultTableModel model = new DefaultTableModel(content, head);

(model);

repaint();

}

}

(8)PassengerAddUI类:此类为添加用户基本信息界面类,在此界面中有五个标签,五个文本框,还有两个按钮“添加”“退出”。根据五个标签的提示,分别在五个文本框中输入信息。当单击“添加”按钮时,通过注册事件,在内部类的actionPerformed()方法中,获取五个文本框中的信息,并转换成相应的基本数据类型,通过PassengerDao类的addPassenger()方法,将数据写入数据库的passenger表中。若添加成功,提示成功,否则提示失败。PassengerAddUI类源代码

package ui;

import .*;

import .*;

import ;

public class PassengerAddUI extends JFrame{ JLabel l1, l2, l3, l4, l5;

JTextField t1, t2, t3, t4, t5;

JButton bt1, bt2;

public PassengerAddUI() {

l1 = new JLabel("Pname");

l2 = new JLabel("Psex");

l3 = new JLabel("Page");

l4 = new JLabel("Pplace");

l5 = new JLabel("number");

t1 = new JTextField(12);

t2 = new JTextField(24);

t3 = new JTextField(24);

t4 = new JTextField(24);

t5 = new JTextField(6);

bt1 = new JButton("添加");

bt2 = new JButton("退出");

JPanel p1 = new JPanel();

(null);

(100, 100, 80, 30);

(l1);

(170, 100, 100, 30);

相关主题
相关文档
最新文档