收藏 分销(赏)

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

上传人:丰**** 文档编号:9770960 上传时间:2025-04-07 格式:DOC 页数:55 大小:699.54KB 下载积分:14 金币
下载 相关 举报
Java课程设计飞机航班管理系统.doc_第1页
第1页 / 共55页
Java课程设计飞机航班管理系统.doc_第2页
第2页 / 共55页


点击查看更多>>
资源描述
一.引言 1.1 项目的名称 飞机航班信息管理系统 1.2 项目背景和目标 飞机航班信息管理系统主要能够查询飞机的航班情况,飞行线路,票价,折扣等等情况,并能够在数据库中更新维护飞机航班的信息,对飞机航班数据库进行管理,如航班的增加,删除和修改等。我们的目标就是为该系统提供后台连接数据库程序设计以及前台用户界面设计。 1.3 项目的可行性研究 设计此系统需要java面向对象编程基础,数据库应用知识以及功能分析。根据目前所开设的课程,学生已经具备这样的知识,有能力综合java编程知识和数据库应用知识做出一个这样的飞机航班信息管理系统。 二、 需求分析 2.1系统概述 此系统提供给系统管理员和用户。系统管理员登陆后可以对飞机航班信息进行管理,如:添加飞机航班信息,删除飞机航班信息,修改飞机航班属性。用户登陆后能进行飞机航班信息查询,订票以及退订。 2.2系统运行环境 Java运行在eclipse软件上,数据库用mysql数据库 2.3功能需求描述 用户选择相关的服务项目可以查看相关航班基本信息,并且可以根据自己需求选择相应服务,系统的信息更新时,相关的信息经过相应处理后,会存入到飞机航班数据库中的航班信息记录表中;系统管理员根据航空公司实际情况可以更新航班信息,并通过修改信息处理后被保存到飞机航班表中。 三、系统设计 3.1开发与设计的总体思想 飞机航班信息管理系统主要分为用户和系统管理员2类,因此也将该系统分为2个相应的大的功能模块。 用户可以通过服务项目选择查询相关航班情况,进行订票,退订等服务项目。系统会将数据库中相应信息反馈给顾客。 系统管理员负责管系统信息的及时更新,可以根据航空公司航班的具体的情况更新数据库。 3.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系统流程描述 开始 登陆 系统管理员 用户 成功 成功功 NO NO 密码错误 密码错误 YES YES 飞机航班主界面 信息查询 查询 订票 退订 修改 用户信息 修改飞机航班信息 添加飞机航班信息 航班信息 删除飞机航班信息 选择检索方式和数据 航班序号 成功 成功 成功 成功 NO 成功 修改成功 删除成功 添加成功 NO NO NO NO YES 不显示任何信息 失败 失败 YES YES YES 对应的用户信息 对应的航班信息 不显示任何信息 失败 YES 四、系统实现 1.Connection包中的类: (1)DBconnection类:此类设置程序与数据库的连接,通过设置驱动类型和数据源来确定要连接的数据库。若连接成功,提示:connection success,若连接失败,提示:connection failure DBconnection类源代码 package connection; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DBconnection { public static Connection con=null; public static Connection getConnection() { try { String dbDriver="com.mysql.jdbc.Driver"; Class.forName(dbDriver); System.out.println("Driver Suceess"); } catch (ClassNotFoundException e) { System.out.println("Driver not found"); e.printStackTrace(); } try { con=DriverManager.getConnection("jdbc:mysql://localhost:3306/airplane manage","root","123"); System.out.println("Connection Suceess"); } catch (SQLException e) { System.out.println("Connetion failure"); e.printStackTrace(); } return con; } public static void closeConnection() { if(con!=null) try { con.close(); System.out.println("database close success"); } catch (SQLException e) { System.out.println("close failure"); e.printStackTrace(); } } public static void main(String args[]) { } } 2.dao包中的类: (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 java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import ui.PassengerLoginUI; import model.Flight; import model.Passenger; import connection.DBconnection; public class FlightDao { public ArrayList queryFlight(String key) { ArrayList lis = new ArrayList(); Connection con = DBconnection.getConnection(); Statement stm; try { stm = con.createStatement(); String sql = "select * from flight where Pname like '%" + key + "%' "; System.out.println(sql); ResultSet rs = stm.executeQuery(sql); while (rs.next()) { Flight flight = new Flight(rs.getInt(1), rs.getString(2), rs .getString(3), rs.getString(4),rs.getString(5),getInt(6),getInt(7),getInt(8)); lis.add(flight); } } catch (SQLException e) { e.printStackTrace(); } return lis; } public ArrayList queryFlight1(String key) { ArrayList lis = new ArrayList(); Connection con = DBconnection.getConnection(); Statement stm; try { stm = con.createStatement(); String sql = "select * from flight where Pname like '%" + PassengerLoginUI.st1 + "%' "; System.out.println(sql); ResultSet rs = stm.executeQuery(sql); while (rs.next()) { Flight flight = new Flight(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4),rs.getString(5),getInt(6),getInt(7),getInt(8)); lis.add(flight); } } catch (SQLException e) { e.printStackTrace(); } return lis; } private Object getInt(int i) { // TODO Auto-generated method stub return null; } public boolean addFlight(int id, String stime ,String etime, String sadd , String eadd,int price,int znum,int snum ) { Connection con = DBconnection.getConnection(); PreparedStatement pst; try { pst = con.prepareStatement("insert into flight values(?,?,?,?,?,?,?,?)"); pst.setInt(1, id); pst.setString(2, stime); pst.setString(3, etime); pst.setString(4, sadd); pst.setString(5,eadd); pst.setInt(6,price); pst.setInt(7, znum); pst.setInt(8, snum); int count = pst.executeUpdate();// 返回修改的记录数 if (count == 1) return true; else return false; } catch (SQLException e) { e.printStackTrace(); } return false; } public boolean deleteFlight(String key) { Connection con = DBconnection.getConnection(); Statement stm; try { stm = con.createStatement(); String sql = "delete from flight where Pname like '%" + key + "%' "; System.out.println(sql); int count = stm.executeUpdate(sql); if (count == 1) return true; else return false; } catch (SQLException e) { e.printStackTrace(); } return false; } public boolean addFlight(String id, String stime, String etime, String sadd, String eadd, String price, String znum, String snum) { // TODO Auto-generated method stub return false; } } (2)ManagerDao类:此类中有一个方法:queryManager (),作用是控制管理员登陆 queryManager()方法中,有两个参数,分别传给select语句中的Mname(管理员姓名)和Mpassword(登陆密码),利用select语句在manager表中检索管理员登陆信息。若存在此信息,返回true,否则返回false ManagerDao类源代码: package dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import connection.DBconnection; public class ManagerDao { public boolean queryManager(String Mname,String Mpassword) { DBconnection db=new DBconnection(); Connection con=db.getConnection(); boolean isfound=false; PreparedStatement pst; try { pst = con.prepareStatement("select * from managerlogin where Mname=? and Mpassword=?"); pst.setString(1, Mname); pst.setString(2,Mpassword); ResultSet rs=pst.executeQuery(); if(rs.next()) isfound=true; } catch (SQLException e) { e.printStackTrace(); } System.out.println(isfound); return isfound; } public static void main(String[] args) { } } (3)PassengerDao类:此类中有四个方法PassengerLogin,addPassenger,queryPassenger,deletePassenger,作用分别是控制用户登陆系统,增加用户基本信息,查询用户基本信息,删除用户基本信息。 PassengerLogin()方法中,有两个参数,分别传给select语句中的pname(用户姓名)和password(登录密码),利用select语句在passengerlogin表中检索用户登录信息。若存在此信息,返回true,否则返回false addPassenger()方法中,有五个参数,分别传给insert语句中的pname(用户名称), psex(性别),page(年龄),pplace(籍贯),number(电话号码)。利用insert语句向passenger用户信息表中插入记录。若插入成功,返回true,否则返回false。 queryWorker()方法中,有两个参数,分别传给select语句中的field(查找方式)和key(查找内容),利用select语句,从passenger表中检索用户简介信息。若存在此信息,则返回一个ArrayList类的对象lis(表格),否则,异常处理。 deletePassenger()方法中,有一个参数,传给delete语句中的pname(用户姓名),利用delete语句,把passenger表中相关用户信息删除。若删除成功,返回true,否则返回false。 package dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import model.Passenger; import connection.DBconnection; public class PassengerDao { public boolean PassengerLogin(String pname,String password) { DBconnection db=new DBconnection(); Connection con=db.getConnection(); boolean isfound=false; PreparedStatement pst; try { pst = con.prepareStatement("select * from passengerlogin where pname=? and password=?"); pst.setString(1, pname); pst.setString(2,password); ResultSet rs=pst.executeQuery(); if(rs.next()) isfound=true; } catch (SQLException e) { e.printStackTrace(); } System.out.println(isfound); return isfound; } public boolean addPassenger(String pname, String psex, int page, String pplace,int number) { Connection con = DBconnection.getConnection(); PreparedStatement pst; try { pst = con.prepareStatement("insert into passenger values(?,?,?,?,?)"); pst.setString(1, pname); pst.setString(2, psex); pst.setInt(3, page); pst.setString(4, pplace); pst.setInt(5, number); int count = pst.executeUpdate();// 返回修改的记录数 if (count == 1) return true; else return false; } catch (SQLException e) { e.printStackTrace(); } return false; } public ArrayList queryPassenger(String field, String key) { ArrayList lis = new ArrayList(); Connection con = DBconnection.getConnection(); Statement stm; try { stm = con.createStatement(); String sql = "select * from passenger where " + field + " like '%" + key + "%' "; System.out.println(sql); ResultSet rs = stm.executeQuery(sql); while (rs.next()) { Passenger passenger = new Passenger(rs.getString(1), rs.getString(2), rs .getInt(3), rs.getString(4), rs.getInt(5)); lis.add(passenger); } } catch (SQLException e) { e.printStackTrace(); } return lis; } public boolean deletePassenger(String key) { Connection con = DBconnection.getConnection(); Statement stm; try { stm = con.createStatement(); String sql = "delete from passenger where Pname like '%" + key + "%' "; System.out.println(sql); int count = stm.executeUpdate(sql); if (count == 1) return true; else return false; } catch (SQLException e) { e.printStackTrace(); } return false; } } 3.model包中的类: (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) { this.number = number; } public String getPname() { return Pname; } public void setPname(String Pname) { this.Pname = Pname; } public String getPsex() { return Psex; } public void setPsex(String Psex) { this.Psex = Psex; } public int getPage() { return Page; } public void setPage(int Page) { this.Page = Page; } public String getPplace() { return Pplace; } public void setPplace(String Pplace) { this.Pplace = Pplace; } public Passenger( String Pname, String Psex, int Page, String Pplace,int number) { super(); this.Pname = Pname; this.Psex = Psex; this.Page = Page; this.Pplace = Pplace; this.number = 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) { this.id = id; } public String getStime() { return stime; } public void setStime(String stime) { this.stime = stime; } public String getEtime() { return etime; } public void setEtime(String etime) { this.etime = etime; } public String getSadd() { return sadd; } public void setSadd(String sadd) { this.sadd =sadd; } public String getEadd() { return eadd; } public void setEadd(String Eadd) { this.eadd = eadd; } public int getPrice() { return price; } public void setPrice(int Price) { this.price =price; } public int getZnum() { return znum; } public void setZnum(int Znum) { this.znum = znum; } public int getSnum() { return snum; } public void setSnum(int Snum) { thi
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服