版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、-. z.一引言項目的名稱飛機航班信息管理系統(tǒng)項目背景和目標飛機航班信息管理系統(tǒng)主要能夠查詢飛機的航班情況,飛行線路,票價,折扣等等情況,并能夠在數(shù)據(jù)庫中更新維護飛機航班的信息,對飛機航班數(shù)據(jù)庫進行管理,如航班的增加,刪除和修改等。我們的目標就是為該系統(tǒng)提供后臺連接數(shù)據(jù)庫程序設(shè)計以及前臺用戶界面設(shè)計。項目的可行性研究設(shè)計此系統(tǒng)需要java面向?qū)ο缶幊袒A(chǔ),數(shù)據(jù)庫應(yīng)用知識以及功能分析。根據(jù)目前所開設(shè)的課程,學生已經(jīng)具備這樣的知識,有能力綜合java編程知識和數(shù)據(jù)庫應(yīng)用知識做出一個這樣的飛機航班信息管理系統(tǒng)。需求分析21系統(tǒng)概述此系統(tǒng)提供給系統(tǒng)管理員和用戶。系統(tǒng)管理員登陸后可以對飛機航班信息進行管
2、理,如:添加飛機航班信息,刪除飛機航班信息,修改飛機航班屬性。用戶登陸后能進行飛機航班信息查詢,訂票以及退訂。22系統(tǒng)運行環(huán)境 Java運行在eclipse軟件上,數(shù)據(jù)庫用mysql數(shù)據(jù)庫23功能需求描述用戶選擇相關(guān)的服務(wù)項目可以查看相關(guān)航班基本信息,并且可以根據(jù)自己需求選擇相應(yīng)服務(wù),系統(tǒng)的信息更新時,相關(guān)的信息經(jīng)過相應(yīng)處理后,會存入到飛機航班數(shù)據(jù)庫中的航班信息記錄表中;系統(tǒng)管理員根據(jù)航空公司實際情況可以更新航班信息,并通過修改信息處理后被保存到飛機航班表中。三、系統(tǒng)設(shè)計3.1開發(fā)與設(shè)計的總體思想 飛機航班信息管理系統(tǒng)主要分為用戶和系統(tǒng)管理員2類,因此也將該系統(tǒng)分為2個相應(yīng)的大的功能模塊。用戶
3、可以通過服務(wù)項目選擇查詢相關(guān)航班情況,進行訂票,退訂等服務(wù)項目。系統(tǒng)會將數(shù)據(jù)庫中相應(yīng)信息反饋給顧客。系統(tǒng)管理員負責管系統(tǒng)信息的及時更新,可以根據(jù)航空公司航班的具體的情況更新數(shù)據(jù)庫。 3.2系統(tǒng)模塊結(jié)構(gòu)圖飛機航班信息管理系統(tǒng) 用戶登錄 系統(tǒng)管理員登錄 用戶模塊 系統(tǒng)管理員模塊退訂信息查詢訂票修改飛機航班信息刪除飛機航班信息添加飛機航班信息33數(shù)據(jù)庫結(jié)構(gòu)設(shè)計 為了支持此飛機航班信息管理系統(tǒng),創(chuàng)建數(shù)據(jù)庫airplane manage,在這個數(shù)據(jù)庫里包含三個表:flight information表,passenger表,managerlogin表,和passengerlogin表,它們的截圖如下:在
4、flight information(飛機航班信息)表中,有8個屬性列,分別為id(序列),stime(飛機起飛時間),etime(飛機到達時間),sadd(飛機起始點),eadd(飛機終點),znum(總票數(shù)),snum(剩余票數(shù))。其基本數(shù)據(jù)類型分別為:int,char,char,char,char,char。當查詢飛機航班基本信息時,從此表中獲取數(shù)據(jù)。截圖如下: 在passenger表中,有兩個屬性列,分別為:Pname(),Pse*(性別),Page(年齡),Pplace(籍貫),number()其基本數(shù)據(jù)類型分別為:char,char,int,char,int。當管理員登錄系統(tǒng)時從此
5、表獲取數(shù)據(jù),其截圖如下: 在managerlogin表中,有兩個屬性列,分別為:Mname(管理員),Mpassword(密碼)其基本數(shù)據(jù)類型分別為:char,char。當管理員登錄系統(tǒng)時從此表獲取數(shù)據(jù),其截圖如下: 在passengerlogin表中,有兩個屬性列,分別為:Pname(用戶),Ppassword(密碼)其基本數(shù)據(jù)類型分別為:char,char。當教職工登錄系統(tǒng)時從此表獲取數(shù)據(jù),其截圖如下:34模塊設(shè)計在整個系統(tǒng)主界面,可以選擇登錄方式,是用戶登錄還是系統(tǒng)管理員登錄。 如果選擇用戶,則進入用戶登錄界面,在這個界面上要求輸入用戶和密碼。輸入后單擊確認登錄”按鈕,若密碼正確,則轉(zhuǎn)換
6、到飛機航班信息查詢頁面,若密碼不正確,這提示密碼錯誤。如果選擇是系統(tǒng)管理員登錄,則進入管理員登陸界面,在這個界面上輸入管理員和密碼,輸入后單擊飛機航班信息管理”按鈕,則進入管理員主界面。在管理員主界面可以選擇添加操作,刪除操作還是修改操作。若要查詢用戶的簡介信息,點擊查詢菜單項則進入用戶簡介信息檢索界面,在此界面的檢索方式中選擇要檢索的數(shù)據(jù)屬性,在檢索容框中輸入檢索的具體信息,例如,檢索pname”字段時,要輸入*個用戶的。輸入后,單擊檢索”按鈕,則開始對數(shù)據(jù)庫中數(shù)據(jù)進行查詢。如果數(shù)據(jù)庫檢索到所需信息,則生成列表顯示檢索結(jié)構(gòu),如果沒有所需信息,則頁面列表中顯示為空。 若要查詢飛機航班信息,點擊
7、查詢菜單項則進入飛機航班信息檢索界面,在此界面的檢索方式中選擇要檢索的數(shù)據(jù)屬性,在檢索容框中輸入檢索的具體信息,例如,檢索飛機對應(yīng)航班序號的相關(guān)信息”字段時,要鍵入*個飛機航班序號。輸入后,單擊檢索”按鈕,則開始對數(shù)據(jù)庫中數(shù)據(jù)進行查詢。如果數(shù)據(jù)庫檢索到所需信息,則生成列表顯示檢索結(jié)構(gòu),如果沒有所需信息,則頁面列表中顯示為空。 如果管理員要對數(shù)據(jù)庫中進行修改操作,則在管理員主界面上選擇修改菜單項,在此項中,選擇要修改的具體容,總共有三項修改操作:添加飛機航班信息,刪除飛機航班信息,修改飛機航班信息。在添加信息操作中,按照標簽提示一次輸入要添加的記錄值,輸入完畢后,單擊添加”按鈕,若輸入成功,則提
8、示成功,若輸入失敗,則提示失敗。在刪除信息操作中,輸入要刪除的信息,單擊刪除”按鈕,若刪除成功,則提示成功,若刪除失敗則提示失敗。在修改信息操作中,輸入要修改的信息,單擊修改”按鈕,若修改成功,則提示成功,若修改失敗則提示失敗。以上就是該飛機航班管理系統(tǒng)涉及的操作步驟。35系統(tǒng)流程描述開始 登陸系統(tǒng)管理員 用戶成功成功功NO NO密碼錯誤密碼錯誤 YES YES飛機航班主界面信息查詢查詢訂票退訂修改用戶信息修改飛機航班信息添加飛機航班信息航班信息刪除飛機航班信息選擇檢索方式和數(shù)據(jù)航班序號成功成功成功成功 NO成功修改成功刪除成功添加成功 NO NO NO NO YES 不顯示任何信息失敗失敗
9、YESYESYES對應(yīng)的用戶信息對應(yīng)的航班信息不顯示任何信息失敗YES四、系統(tǒng)實現(xiàn)1.Connection包中的類: (1)DBconnection類:此類設(shè)置程序與數(shù)據(jù)庫的連接,通過設(shè)置驅(qū)動類型和數(shù)據(jù)源來確定要連接的數(shù)據(jù)庫。若連接成功,提示:connection success,若連接失敗,提示:connection failureDBconnection類源代碼package connection;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLE*ception;public clas
10、s DBconnection public static Connection con=null; public static Connection getConnection() try String dbDriver=.mysql.jdbc.Driver;Class.forName(dbDriver);System.out.println(Driver Suceess); catch (ClassNotFoundE*ception e) System.out.println(Driver not found);e.printStackTrace();try con=DriverManage
11、r.getConnection(jdbc:mysql:/localhost:3306/airplane manage,root,123);System.out.println(Connection Suceess); catch (SQLE*ception e) System.out.println(Connetion failure);e.printStackTrace();return con; public static void closeConnection() if(con!=null)try con.close();System.out.println(database clos
12、e success); catch (SQLE*ception e) System.out.println(close failure);e.printStackTrace(); public static void main(String args) 2.dao包中的類:(1)FlightDao類:在該類中有四個方法queryFlight, queryFlight1, addFlight,deleteFlight。作用分別是為用戶提供查詢航班信息的功能,為管理者用戶提供查詢航班信息,添加航班信息,刪除航班信息功能。queryFlight()方法中,有一個參數(shù),傳給select語句中的Pnam
13、e(用戶),利用select語句,查詢航班信息表中的容。若查詢成功,則返回一個ArrayList類的對象lis(表格),否則,異常處理queryFlight1()方法中,有一個參數(shù),傳給select語句中的Pname(用戶),這個Pname的用戶登錄是輸入的。即此類的作用是每個用戶登陸只能查看本人的航班信息。若查詢成功,則返回一個ArrayList類的對象lis(表格),否則,異常處理addFlight()方法中,有四個參數(shù),分別傳給insert語句中的id(序列),stime(飛機起飛時間),etime(飛機到達時間),sadd(飛機起始點),eadd(飛機終點),znum(總票數(shù)),snu
14、m(剩余票數(shù))。利用insert語句,將這些記錄寫入flight表中。若插入成功返回true,否則返 回falsedeleteFlight()方法中,有一個參數(shù),傳給delete語句中的Pname(用戶),利用delete語句,把flight表中相關(guān)信息刪除。若刪除成功,返回 true,否則返回false。 FlightDao類源代碼: package dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLE*ception;im
15、port 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();Statem
16、ent stm;try stm = con.createStatement();String sql = select * from flight where Pname like % + key+ % ;System.out.println(sql);ResultSet rs = stm.e*ecuteQuery(sql);while (rs.ne*t() Flight flight = new Flight(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4),rs.getString(5),getInt(6),ge
17、tInt(7),getInt(8);lis.add(flight); catch (SQLE*ception 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
18、 like % + PassengerLoginUI.st1+ % ;System.out.println(sql);ResultSet rs = stm.e*ecuteQuery(sql);while (rs.ne*t() 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 (SQLE*ception e) e.printStac
19、kTrace();return lis;private Object getInt(int i) / TODO Auto-generated method stubreturn 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.prepare
20、Statement(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.e*ecuteUpdate();/ 返回修改的記錄數(shù)if (count = 1)return true;elsereturn false; catc
21、h (SQLE*ception 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.e*ecuteUpdate(
22、sql);if (count = 1)return true;elsereturn false; catch (SQLE*ception 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 stubreturn false;(2)ManagerDao類:此類中有一
23、個方法:queryManager (),作用是控制管理員登陸 queryManager()方法中,有兩個參數(shù),分別傳給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.SQLE*ception;import
24、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 managerlo
25、gin where Mname= and Mpassword=);pst.setString(1, Mname); pst.setString(2,Mpassword);ResultSet rs=pst.e*ecuteQuery(); if(rs.ne*t() isfound=true; catch (SQLE*ception e) e.printStackTrace(); System.out.println(isfound); return isfound;public static void main(String args) (3)PassengerDao類:此類中有四個方法Passe
26、ngerLogin,addPassenger,queryPassenger,deletePassenger,作用分別是控制用戶登陸系統(tǒng),增加用戶基本信息,查詢用戶基本信息,刪除用戶基本信息。PassengerLogin()方法中,有兩個參數(shù),分別傳給select語句中的pname(用戶)和password(登錄密碼),利用select語句在passengerlogin表中檢索用戶登錄信息。若存在此信息,返回true,否則返回falseaddPassenger()方法中,有五個參數(shù),分別傳給insert語句中的pname(用戶名稱),pse*(性別),page(年齡),pplace(籍貫),nu
27、mber()。利用insert語句向passenger用戶信息表中插入記錄。若插入成功,返回true,否則返回false。queryWorker()方法中,有兩個參數(shù),分別傳給select語句中的field(查找方式)和key(查找容),利用select語句,從passenger表中檢索用戶簡介信息。若存在此信息,則返回一個ArrayList類的對象lis(表格),否則,異常處理。deletePassenger()方法中,有一個參數(shù),傳給delete語句中的pname(用戶),利用delete語句,把passenger表中相關(guān)用戶信息刪除。若刪除成功,返回true,否則返回false。pack
28、age dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLE*ception;import java.sql.Statement;import java.util.ArrayList;import model.Passenger;import connection.DBconnection;public class PassengerDao public boolean PassengerLogin(String pname,
29、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.e*ecuteQuery()
30、; if(rs.ne*t() isfound=true; catch (SQLE*ception e) e.printStackTrace(); System.out.println(isfound); return isfound;public boolean addPassenger(String pname, String pse*, int page, String pplace,int number)Connection con = DBconnection.getConnection();PreparedStatement pst;try pst = con.prepareStat
31、ement(insert into passenger values(,);pst.setString(1, pname);pst.setString(2, pse*);pst.setInt(3, page);pst.setString(4, pplace);pst.setInt(5, number);int count = pst.e*ecuteUpdate();/ 返回修改的記錄數(shù)if (count = 1)return true;elsereturn false; catch (SQLE*ception e) e.printStackTrace();return false;public
32、 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.e*ecuteQuer
33、y(sql);while (rs.ne*t() Passenger passenger = new Passenger(rs.getString(1), rs.getString(2), rs.getInt(3), rs.getString(4), rs.getInt(5);lis.add(passenger); catch (SQLE*ception e) e.printStackTrace();return lis;public boolean deletePassenger(String key) Connection con = DBconnection.getConnection()
34、;Statement stm;try stm = con.createStatement();String sql = delete from passenger where Pname like %+ key + % ;System.out.println(sql);int count = stm.e*ecuteUpdate(sql);if (count = 1)return true;elsereturn false; catch (SQLE*ception e) e.printStackTrace();return false; 3.model包中的類:(1)Passenger類:此類中
35、有五個成員變量,String Pname, String Pse*, int Page, String Pplace,int number,和五個成員方法,類中分別獲取和設(shè)置了這五個變量,即為passenger表中五個屬性的屬性名,每個變量都對應(yīng)了get*(),set*()方法,還有一個構(gòu)造方法,用于在調(diào)用其對象時對成員變量賦值Passenger類源代碼:package model;publicclass Passenger String Pname;String Pse*;intnumber;intPage;String Pplace;publicint getNumber() return
36、number;publicvoid setNumber(intnumber) this.number = number;public String getPname() returnPname;publicvoid setPname(String Pname) this.Pname = Pname;public String getPse*() returnPse*;publicvoid setPse*(String Pse*) this.Pse* = Pse*;publicint getPage() returnPage;publicvoid setPage(intPage) this.Pa
37、ge = Page;public String getPplace() returnPplace;publicvoid setPplace(String Pplace) this.Pplace = Pplace;public Passenger( String Pname, String Pse*, intPage, String Pplace,intnumber) super();this.Pname = Pname;this.Pse* = Pse*;this.Page = Page;this.Pplace = Pplace;this.number = number;(2)Flight類:此
38、類中有七個成員變量,id(序列),stime(飛機起飛時間),etime(飛機到達時間),sadd(飛機起始點),eadd(飛機終點),znum(總票數(shù)),snum(剩余票數(shù))。,和七個成員方法,類中分別獲取和設(shè)置了這七個變量,即為flight表中七個屬性的屬性名,每個變量都對應(yīng)了get*(),set*()方法,還有一個構(gòu)造方法,用于在調(diào)用其對象時對成員變量賦值Flight類源代碼:package model;publicclass Flight intid;String stime;String etime;String sadd;String eadd;intprice;intznum;i
39、ntsnum;publicint getId() returnid;publicvoid setId(intid) this.id = id;public String getStime() returnstime;publicvoid setStime(String stime) this.stime = stime;public String getEtime() returnetime;publicvoid setEtime(String etime) this.etime = etime;public String getSadd() returnsadd;publicvoid set
40、Sadd(String sadd) this.sadd =sadd;public String getEadd() returneadd;publicvoid setEadd(String Eadd) this.eadd = eadd;publicint getPrice() returnprice;publicvoid setPrice(intPrice) this.price =price;publicint getZnum() returnznum;publicvoid setZnum(intZnum) this.znum = znum;publicint getSnum() retur
41、nsnum;publicvoid setSnum(intSnum) this.snum = snum;public Flight(intid,String stime,String etime, String sadd,String eadd,intprice,intznum,intsnum) super();this.id=id;this.stime =stime;this.etime = etime;this.sadd = sadd;this.eadd=eadd;this.price=price;this.znum=znum;this.snum=snum;public Flight(int
42、int1, String string, String string2, String string3, String string4, Object int2, Object int3,Object int4) / TODO Auto-generated constructor stubpublicvoid Flight1(intint1, String string2, Stringstring3, String string4, String string5,intint6,intint7,intint8) / TODO Auto-generated constructor stubui
43、包中的類: (1)LoginUI類:此類為登陸主界面類,在這個界面上,設(shè)置有兩個按鈕,管理員按鈕和用戶按鈕。給這兩個按鈕注冊事件addActionListener,分別在部類ManagerLoginActionListene和PassengerLoginActionListener中的默認方法actionPerformed()中創(chuàng)建ManagerLoginUI類和PassengerLoginUI類的對象,即打開用戶登陸界面和管理員登錄界面,并將原登陸界面關(guān)閉。 LoginUI類源代碼:package ui;import java.awt.*;import java.awt.event.*;im
44、port java*.swing.*;public class LoginUI e*tends JFrame JLabel l1;utton bt1, bt2;Container cp;public LoginUI() l1 = new JLabel(請選擇用戶類型);bt1 = new utton(管理員);bt2 = new utton(用戶);JPanel p1 = new JPanel();p1.setLayout(null);l1.setBounds(150, 150, 120, 40);p1.add(l1);bt1.setBounds(120, 230, 80, 30);p1.ad
45、d(bt1);bt2.setBounds(220, 230, 80, 30);p1.add(bt2);bt1.addActionListener(new ManagerLoginActionListener();/注冊事件bt2.addActionListener(new PassengerLoginActionListener();/注冊事件cp = getContentPane();this.setBounds(200, 200, p1.getHeight(), p1.getHeight();cp.add(p1);this.setTitle(用戶登錄界面);this.setSize(400
46、, 400);this.setVisible(true);this.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.e*it(0););class ManagerLoginActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e)new ManagerLoginUI();dispose(); class PassengerLoginActionListener imp
47、lements ActionListener public void actionPerformed(ActionEvent e) new PassengerLoginUI(); dispose(); public static void main(String args) new LoginUI(); ManagerLoginUI類:此類為管理員登陸界面,在這個界面上有兩個文本框,分別輸入管理員和登錄密碼,還有兩個按鈕,登陸和退出。輸入后,從兩個文本框中獲取用戶輸入的容,點擊登陸”按鈕時,調(diào)用ManagerDao類中的queryManager()方法驗證是否存在該用戶。若存在,則創(chuàng)建Mana
48、gerMainUI類的對象,即打開總界面進行操作,若不存在,則提示密碼錯誤。 ManagerLoginUI類源代碼:package ui;import java.awt.*;import java.awt.event.*;import java*.swing.*;import dao.ManagerDao;public class ManagerLoginUI e*tends JFrame JLabel l1, l2;JTe*tField t1;JPasswordField t2;utton bt1, bt2;Container cp;public ManagerLoginUI()l1 = n
49、ew JLabel(管理員);l2 = new JLabel(密碼);t1 = new JTe*tField(12);t2 = new JPasswordField(12);bt1 = new utton(登錄);bt2 = new utton(退出);JPanel p1 = new JPanel();p1.setLayout(null);l1.setBounds(150, 150, 80, 40);p1.add(l1);t1.setBounds(250, 150, 80, 30);p1.add(t1);l2.setBounds(150, 190, 80, 40);p1.add(l2);t2.
50、setBounds(250, 190, 80, 30);p1.add(t2);bt1.setBounds(150, 230, 80, 30);p1.add(bt1);bt2.setBounds(250, 230, 80, 30);p1.add(bt2);bt1.addActionListener(new LoginActionListener();/注冊事件bt2.addActionListener(new E*itActionListener();/注冊事件cp = getContentPane();this.setBounds(200, 200, p1.getHeight(), p1.ge
51、tHeight();cp.add(p1);this.setTitle(管理員登錄界面);this.setSize(400, 400);this.setVisible(true);this.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e)System.e*it(0); );class LoginActionListener implements ActionListener public void actionPerformed(ActionEvent e) String st1 = t1
52、.getTe*t();String st2 = t2.getTe*t();ManagerDao oneManagerDao = new ManagerDao();boolean isSuccess = oneManagerDao.queryManager(st1, st2);if (isSuccess) new ManagerMainUI();dispose(); elseJOptionPane.showMessageDialog(null, 用戶名密碼錯誤, 提示信息,JOptionPane.INFORMATION_MESSAGE);class E*itActionListener impl
53、ements ActionListener public void actionPerformed(ActionEvent e) System.e*it(0);public static void main(String args) new ManagerLoginUI();PassengerLoginUI類:此類為用戶登陸界面,在這個界面上有兩個文本框,分別輸入用戶和登錄密碼,還有兩個按鈕,登陸和退出。輸入后,從兩個文本框中獲取用戶輸入的容,點擊登陸”按鈕時,調(diào)用PassengerDao類中的PassengerLoginUI()方法驗證是否存在該用戶。若存在,則創(chuàng)建PassengerFlig
54、htUI類的對象,即打開用戶航班界面,顯示此登陸用戶的信息,若不存在,則提示密碼錯誤。package ui;import java.awt.*;import java.awt.event.*;import java*.swing.*;import dao.PassengerDao;public class PassengerLoginUI e*tends JFrameJLabel l1, l2;JTe*tField t1;JPasswordField t2;utton bt1, bt2;Container cp;public static String st1;public String st
55、2;public PassengerLoginUI()l1 = new JLabel(用戶);l2 = new JLabel(密碼);t1 = new JTe*tField(12);t2 = new JPasswordField(12);bt1 = new utton(航班查詢);bt2 = new utton(退出);JPanel p1 = new JPanel();p1.setLayout(null);l1.setBounds(150, 150, 80, 40);p1.add(l1);t1.setBounds(250, 150, 80, 30);p1.add(t1);l2.setBound
56、s(150, 190, 80, 40);p1.add(l2);t2.setBounds(250, 190, 80, 30);p1.add(t2);bt1.setBounds(150, 230, 120, 30);p1.add(bt1);bt2.setBounds(280, 230, 80, 30);p1.add(bt2);bt1.addActionListener(new LoginActionListener();/注冊事件bt2.addActionListener(new E*itActionListener();/注冊事件cp = getContentPane();this.setBou
57、nds(200, 200, p1.getHeight(), p1.getHeight();cp.add(p1);this.setTitle(用戶登錄界面);this.setSize(400, 400);this.setVisible(true);this.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e)System.e*it(0); );class LoginActionListener implements ActionListener public void actionPerfor
58、med(ActionEvent e) st1 = t1.getTe*t();st2 = t2.getTe*t();PassengerDao onePassengerDao = new PassengerDao();boolean isSuccess = onePassengerDao.PassengerLogin(st1, st2);if (isSuccess) new PassengerFlightUI();dispose(); elseJOptionPane.showMessageDialog(null, 用戶名密碼錯誤, 提示信息,JOptionPane.INFORMATION_MESS
59、AGE);class E*itActionListener implements ActionListener public void actionPerformed(ActionEvent e) System.e*it(0);public static void main(String args) new PassengerLoginUI();ManagerMainUI類:此類為管理員主界面類,在此界面上有一個菜單欄,三個菜單:文件,查詢,修改。其中文件”菜單中有退出”菜單項,點擊時跳出對話框問是否真的退出,若點擊是,窗口關(guān)閉,若點擊否,回復原界面。查詢”菜單中有用戶基本信息”和航班基本信息
60、”兩個菜單項:當點擊用戶基本信息”時,通過注冊事件,創(chuàng)建PassengerQueryUI類的對象,即打開查詢用戶基本信息的窗口,當點擊航班信息”時,通過注冊事件,創(chuàng)建FlightQueryUI類的對象,即打開查詢用戶航班信息的窗口。修改菜單中有增加用戶信息”刪除用戶信息”增加航班信息”和刪除航班信息”四個菜單項,當點擊增加用戶信息”時,通過注冊事件,創(chuàng)建PassengerAddUI類的對象,即打開添加用戶基本信息的窗口,當點擊刪除用戶信息”時,通過注冊事件,創(chuàng)建PassengerDeleteU I類的對象,即打開刪除用戶基本信息的窗口,當點擊增加航班信息”時,通過注冊事件,創(chuàng)建FlightAd
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025正式鐵路運輸代理合同模板
- 2025廠房租賃合同版
- 上海思博職業(yè)技術(shù)學院《設(shè)計史》2023-2024學年第一學期期末試卷
- 2025訂餐服務(wù)合同參考范文
- 冰球教練述職報告范文
- 危險因素報告范文大全
- 上海師范大學《化工安全與環(huán)?!?023-2024學年第一學期期末試卷
- 上海思博職業(yè)技術(shù)學院《刑法案例研討》2023-2024學年第一學期期末試卷
- 課題申報書:高校思想政治理論課提升大學生歷史自信的機制與路徑研究
- 課題申報書:非洲區(qū)域性國際組織語言政策研究
- 2024年執(zhí)業(yè)醫(yī)師考試-中醫(yī)執(zhí)業(yè)助理醫(yī)師筆試歷年真題薈萃含答案
- 2024年工貿(mào)行業(yè)安全知識考試題庫500題(含答案)
- 2024版國開電大法學本科《合同法》歷年期末考試案例分析題題庫
- 產(chǎn)婦產(chǎn)后心理障礙的原因分析及心理護理措施
- T-ZJASE 024-2023 呼吸閥定期校驗規(guī)則
- T-SHNA 0004-2023 有創(chuàng)動脈血壓監(jiān)測方法
- 提高學生學習策略的教學方法
- 小學開學第一課《筑夢新起點 一起向未來》課件
- 客服招聘策劃方案
- 發(fā)掘無限潛能成就最好的自己主題班會課件
- 主動呼吸循環(huán)技術(shù)方案
評論
0/150
提交評論