Java課程設(shè)計報告報告-----飛機(jī)航班管理系統(tǒng)_第1頁
Java課程設(shè)計報告報告-----飛機(jī)航班管理系統(tǒng)_第2頁
Java課程設(shè)計報告報告-----飛機(jī)航班管理系統(tǒng)_第3頁
Java課程設(shè)計報告報告-----飛機(jī)航班管理系統(tǒng)_第4頁
Java課程設(shè)計報告報告-----飛機(jī)航班管理系統(tǒng)_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、-. z.一引言項目的名稱飛機(jī)航班信息管理系統(tǒng)項目背景和目標(biāo)飛機(jī)航班信息管理系統(tǒng)主要能夠查詢飛機(jī)的航班情況,飛行線路,票價,折扣等等情況,并能夠在數(shù)據(jù)庫中更新維護(hù)飛機(jī)航班的信息,對飛機(jī)航班數(shù)據(jù)庫進(jìn)行管理,如航班的增加,刪除和修改等。我們的目標(biāo)就是為該系統(tǒng)提供后臺連接數(shù)據(jù)庫程序設(shè)計以及前臺用戶界面設(shè)計。項目的可行性研究設(shè)計此系統(tǒng)需要java面向?qū)ο缶幊袒A(chǔ),數(shù)據(jù)庫應(yīng)用知識以及功能分析。根據(jù)目前所開設(shè)的課程,學(xué)生已經(jīng)具備這樣的知識,有能力綜合java編程知識和數(shù)據(jù)庫應(yīng)用知識做出一個這樣的飛機(jī)航班信息管理系統(tǒng)。需求分析21系統(tǒng)概述此系統(tǒng)提供給系統(tǒng)管理員和用戶。系統(tǒng)管理員登陸后可以對飛機(jī)航班信息進(jìn)行管

2、理,如:添加飛機(jī)航班信息,刪除飛機(jī)航班信息,修改飛機(jī)航班屬性。用戶登陸后能進(jìn)行飛機(jī)航班信息查詢,訂票以及退訂。22系統(tǒng)運(yùn)行環(huán)境 Java運(yùn)行在eclipse軟件上,數(shù)據(jù)庫用mysql數(shù)據(jù)庫23功能需求描述用戶選擇相關(guān)的服務(wù)項目可以查看相關(guān)航班基本信息,并且可以根據(jù)自己需求選擇相應(yīng)服務(wù),系統(tǒng)的信息更新時,相關(guān)的信息經(jīng)過相應(yīng)處理后,會存入到飛機(jī)航班數(shù)據(jù)庫中的航班信息記錄表中;系統(tǒng)管理員根據(jù)航空公司實際情況可以更新航班信息,并通過修改信息處理后被保存到飛機(jī)航班表中。三、系統(tǒng)設(shè)計3.1開發(fā)與設(shè)計的總體思想 飛機(jī)航班信息管理系統(tǒng)主要分為用戶和系統(tǒng)管理員2類,因此也將該系統(tǒng)分為2個相應(yīng)的大的功能模塊。用戶

3、可以通過服務(wù)項目選擇查詢相關(guān)航班情況,進(jìn)行訂票,退訂等服務(wù)項目。系統(tǒng)會將數(shù)據(jù)庫中相應(yīng)信息反饋給顧客。系統(tǒng)管理員負(fù)責(zé)管系統(tǒng)信息的及時更新,可以根據(jù)航空公司航班的具體的情況更新數(shù)據(jù)庫。 3.2系統(tǒng)模塊結(jié)構(gòu)圖飛機(jī)航班信息管理系統(tǒng) 用戶登錄 系統(tǒng)管理員登錄 用戶模塊 系統(tǒng)管理員模塊退訂信息查詢訂票修改飛機(jī)航班信息刪除飛機(jī)航班信息添加飛機(jī)航班信息33數(shù)據(jù)庫結(jié)構(gòu)設(shè)計 為了支持此飛機(jī)航班信息管理系統(tǒng),創(chuàng)建數(shù)據(jù)庫airplane manage,在這個數(shù)據(jù)庫里包含三個表:flight information表,passenger表,managerlogin表,和passengerlogin表,它們的截圖如下:在

4、flight information(飛機(jī)航班信息)表中,有8個屬性列,分別為id(序列),stime(飛機(jī)起飛時間),etime(飛機(jī)到達(dá)時間),sadd(飛機(jī)起始點),eadd(飛機(jī)終點),znum(總票數(shù)),snum(剩余票數(shù))。其基本數(shù)據(jù)類型分別為:int,char,char,char,char,char。當(dāng)查詢飛機(jī)航班基本信息時,從此表中獲取數(shù)據(jù)。截圖如下: 在passenger表中,有兩個屬性列,分別為:Pname(),Pse*(性別),Page(年齡),Pplace(籍貫),number()其基本數(shù)據(jù)類型分別為:char,char,int,char,int。當(dāng)管理員登錄系統(tǒng)時從此

5、表獲取數(shù)據(jù),其截圖如下: 在managerlogin表中,有兩個屬性列,分別為:Mname(管理員),Mpassword(密碼)其基本數(shù)據(jù)類型分別為:char,char。當(dāng)管理員登錄系統(tǒng)時從此表獲取數(shù)據(jù),其截圖如下: 在passengerlogin表中,有兩個屬性列,分別為:Pname(用戶),Ppassword(密碼)其基本數(shù)據(jù)類型分別為:char,char。當(dāng)教職工登錄系統(tǒng)時從此表獲取數(shù)據(jù),其截圖如下:34模塊設(shè)計在整個系統(tǒng)主界面,可以選擇登錄方式,是用戶登錄還是系統(tǒng)管理員登錄。 如果選擇用戶,則進(jìn)入用戶登錄界面,在這個界面上要求輸入用戶和密碼。輸入后單擊確認(rèn)登錄”按鈕,若密碼正確,則轉(zhuǎn)換

6、到飛機(jī)航班信息查詢頁面,若密碼不正確,這提示密碼錯誤。如果選擇是系統(tǒng)管理員登錄,則進(jìn)入管理員登陸界面,在這個界面上輸入管理員和密碼,輸入后單擊飛機(jī)航班信息管理”按鈕,則進(jìn)入管理員主界面。在管理員主界面可以選擇添加操作,刪除操作還是修改操作。若要查詢用戶的簡介信息,點擊查詢菜單項則進(jìn)入用戶簡介信息檢索界面,在此界面的檢索方式中選擇要檢索的數(shù)據(jù)屬性,在檢索容框中輸入檢索的具體信息,例如,檢索pname”字段時,要輸入*個用戶的。輸入后,單擊檢索”按鈕,則開始對數(shù)據(jù)庫中數(shù)據(jù)進(jìn)行查詢。如果數(shù)據(jù)庫檢索到所需信息,則生成列表顯示檢索結(jié)構(gòu),如果沒有所需信息,則頁面列表中顯示為空。 若要查詢飛機(jī)航班信息,點擊

7、查詢菜單項則進(jìn)入飛機(jī)航班信息檢索界面,在此界面的檢索方式中選擇要檢索的數(shù)據(jù)屬性,在檢索容框中輸入檢索的具體信息,例如,檢索飛機(jī)對應(yīng)航班序號的相關(guān)信息”字段時,要鍵入*個飛機(jī)航班序號。輸入后,單擊檢索”按鈕,則開始對數(shù)據(jù)庫中數(shù)據(jù)進(jìn)行查詢。如果數(shù)據(jù)庫檢索到所需信息,則生成列表顯示檢索結(jié)構(gòu),如果沒有所需信息,則頁面列表中顯示為空。 如果管理員要對數(shù)據(jù)庫中進(jìn)行修改操作,則在管理員主界面上選擇修改菜單項,在此項中,選擇要修改的具體容,總共有三項修改操作:添加飛機(jī)航班信息,刪除飛機(jī)航班信息,修改飛機(jī)航班信息。在添加信息操作中,按照標(biāo)簽提示一次輸入要添加的記錄值,輸入完畢后,單擊添加”按鈕,若輸入成功,則提

8、示成功,若輸入失敗,則提示失敗。在刪除信息操作中,輸入要刪除的信息,單擊刪除”按鈕,若刪除成功,則提示成功,若刪除失敗則提示失敗。在修改信息操作中,輸入要修改的信息,單擊修改”按鈕,若修改成功,則提示成功,若修改失敗則提示失敗。以上就是該飛機(jī)航班管理系統(tǒng)涉及的操作步驟。35系統(tǒng)流程描述開始 登陸系統(tǒng)管理員 用戶成功成功功NO NO密碼錯誤密碼錯誤 YES YES飛機(jī)航班主界面信息查詢查詢訂票退訂修改用戶信息修改飛機(jī)航班信息添加飛機(jī)航班信息航班信息刪除飛機(jī)航班信息選擇檢索方式和數(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(飛機(jī)起飛時間),etime(飛機(jī)到達(dá)時間),sadd(飛機(jī)起始點),eadd(飛機(jī)終點),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(飛機(jī)起飛時間),etime(飛機(jī)到達(dá)時間),sadd(飛機(jī)起始點),eadd(飛機(jī)終點),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中的默認(rèn)方法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類的對象,即打開總界面進(jìn)行操作,若不存在,則提示密碼錯誤。 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)閉,若點擊否,回復(fù)原界面。查詢”菜單中有用戶基本信息”和航班基本信息

60、”兩個菜單項:當(dāng)點擊用戶基本信息”時,通過注冊事件,創(chuàng)建PassengerQueryUI類的對象,即打開查詢用戶基本信息的窗口,當(dāng)點擊航班信息”時,通過注冊事件,創(chuàng)建FlightQueryUI類的對象,即打開查詢用戶航班信息的窗口。修改菜單中有增加用戶信息”刪除用戶信息”增加航班信息”和刪除航班信息”四個菜單項,當(dāng)點擊增加用戶信息”時,通過注冊事件,創(chuàng)建PassengerAddUI類的對象,即打開添加用戶基本信息的窗口,當(dāng)點擊刪除用戶信息”時,通過注冊事件,創(chuàng)建PassengerDeleteU I類的對象,即打開刪除用戶基本信息的窗口,當(dāng)點擊增加航班信息”時,通過注冊事件,創(chuàng)建FlightAd

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論