民航訂票系統數據庫課程設計_第1頁
已閱讀1頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  學生課程設計(論文)</p><p>  題 目: 民航訂票系統開發(fā) </p><p>  學生姓名: </p><p>  學 號: </p><p>  所在院(系): 數學與計算機學院 </p&g

2、t;<p>  專 業(yè): 計算機科學與技術 </p><p>  班 級: </p><p>  指 導 教 師: 職稱: 講師 </p><p>  2015年 6 月 25 日</p><p><b>  課程設計任務書</b></p&

3、gt;<p>  注:任務書由指導教師填寫。</p><p>  課程設計(論文)指導教師成績評定表</p><p><b>  摘要</b></p><p>  隨著社會發(fā)展的不斷進步,民航事業(yè)的壯大,人們消費水平的提高,乘坐民航的消費著也越來越多。預定查詢系統因此在各機票預定網點中的作用也越顯重要 伴隨著人們更多的使

4、用飛機作為交通工具,國內機票票務市場也在快速發(fā)展。據預測,我國2006年機票票務市場將比2005年增長10.5%,達710億元人民幣。而與此同時,人們希望機票銷售手段也能相應地有所調整,并對如何能經濟、方便和及時地購買到自己所需要的機票表現出極大的關注,于是,傳統的購票方式開始面臨變革。</p><p><b>  目 錄</b></p><p>  1. 概念

5、結構設計階段1</p><p>  1.1. 概念結構設計的目標1</p><p>  1.2. 具體任務1</p><p>  1.3. 階段結果1</p><p>  2. 邏輯結構設計階段4</p><p>  2.1 邏輯結構設計階段的任務和目標4</p><p>  2.2

6、 數據組織4</p><p>  2.2.1將E-R圖轉換為關系模型4</p><p>  2.2.2數據庫模式定義5</p><p>  2.2.3數據處理5</p><p>  2.2.4算法的主要思路6</p><p>  3. 物理設計階段8</p><p>  3.1 物理

7、階段設計的目標8</p><p>  3.2 物理階段設計的任務8</p><p>  3.3 數據存儲方面8</p><p>  4. 數據庫實施階段9</p><p>  4.1 數據庫實施階段的目標9</p><p>  4.2 數據庫實施階段的任務9</p><p>  4.

8、2.1.建立數據庫9</p><p>  4.2.2.建立數據表9</p><p>  4.2.3.數據入庫9</p><p>  5. 數據庫測試與調試12</p><p><b>  6. 總結13</b></p><p>  附錄一、 數據庫邏輯結構定義14</p>

9、<p>  附錄二、 JAVA程序設計15</p><p>  參 考 文 獻32</p><p><b>  概念結構設計階段</b></p><p><b>  概念結構設計的目標</b></p><p>  概念設計階段是進行數據庫設計的關鍵階段,它是將需求階段得到的用戶需求

10、抽象為信息世界的結構,并能更好的、更準確的用某一DBMS實現這些需求,主要通過E-R模型來描述,將需求分析階段的設計真實的、充分的反應出來,包括事物和事物之間的聯系,能滿足用戶對數據處理的要求,將現實世界的需求通過一個個真實模型表現出來。</p><p><b>  具體任務</b></p><p>  1.選擇中層數據流為切入點,通常選擇實際系統中的子系統;<

11、/p><p>  2.設計分E-R圖,即各子模塊的E-R圖;</p><p>  3.生成初步E-R圖,通過合并方法,做到各子系統實體、屬性、聯系統一;</p><p>  4.生成全局E-R圖,消除沖突。</p><p><b>  階段結果</b></p><p>  1. 各實體及屬性:實體是客

12、觀存在并可相互區(qū)分的事物,它可以是具體的人、物、事,也可以是抽象的概念關系,屬性是某一實體所具有的某一特性,一個實體可以由若干個屬性來刻畫。本系統的實體及其屬性如下圖所述:</p><p>  每個實體屬性解釋如下:</p><p>  客戶: CU(CNAME,CNO,SEX,AGE)</p><p>  航班: FL(FNO,FT,SP,EP)</

13、p><p>  機票: BT(BNO,SPATY)</p><p>  4. 合并各分E-R圖,消除各類沖突,得到初步E-R圖,再消除不必要冗余,得到的基本E-R圖。具體實現如下:</p><p><b>  1).消除沖突</b></p><p>  合并分E-R圖時并不能簡單地將各個分E-R圖畫到一起,而是必須著力消

14、除各個分E-R圖中的不一致,以形成一個能為全系統中所有的用戶共同理解和接受的統一的概念模型。合并分E-R圖的主要工作與關鍵是合理消除各分E-R圖的沖突,沖突主要有三類:屬性沖突、命名沖突和結構沖突。</p><p><b>  2).消除冗余</b></p><p>  在E-R 圖中,可能存在一些冗余的數據和實體間的聯系。冗余數據和冗余聯系容易破壞數據庫的

15、完整性,給數據庫的維護增加困難,應予以消除。但并不是所有的冗余數據與冗余聯系都必須加以消除,有時為了提高效率,不得不以冗余信息作為代價。消除冗余主要采用分析法和規(guī)范化理論。</p><p>  經過以上分析,將得到一個系統的總E-R圖:</p><p><b>  邏輯結構設計階段</b></p><p>  邏輯結構設計階段的任務和目標<

16、;/p><p>  以上的概念設計階段是獨立于任何一種數據模型的,但是邏輯設計階段就與選用的DBMS產品發(fā)生關系了,系統邏輯設計的任務就是將概念設計階段設計好的基本E-R圖轉換為選用DBMS產品所支持的數據模型相符合的邏輯結構。具體內容包括數據組織(將E-R圖轉換成關系模型、模型優(yōu)化、數據庫模式定義、用戶子模式設計)、數據處理(畫出系統功能模塊圖)兩大任務。</p><p> ?。?)將ER圖

17、轉化為關系模型。</p><p>  (2)對關系進行優(yōu)化組織。</p><p><b>  數據組織</b></p><p>  2.2.1將E-R圖轉換為關系模型</p><p>  實體型轉換為關系模式。實體的屬性就是關系的屬性,實體的碼就是關系的碼。對于實體間的聯系則有以下不同的情況:一個m:n聯系轉換為一個

18、關系模式。與該聯系相連的各實體的碼以及聯系本身的屬性均轉換為關系的屬性,而關系的碼為各實體碼的組合。</p><p>  一個1:n聯系可以轉換為一個獨立的關系模式,也可以與n端對應的關系模式合并。如果轉換為一個獨立的關系模式,則與該聯系相連的各實體的碼以及聯系本身的屬性均轉換為關系的屬性,而關系的碼為n端實體的碼。 一個1:1聯系可以轉換為一個獨立的關系模式,也可以與任意一端對應的關系模式合并。三個或三

19、個以上實體間的一個多元聯系可以轉換為一個關系模式。與該多元聯系相連的各實體的碼以及聯系本身的屬性均轉換為關系的屬性,而關系的碼為各實體碼的組合,具有相同碼的關系模式可合并。</p><p>  機場根據飛機與航線制定航班,屬于多對多的關系,取個實體的碼以及聯系本身的屬性轉化為關系的屬性,而關系的碼為各實體碼的組合。</p><p>  客戶訂閱航班的關系同樣也是一對多的聯系,將其轉化為獨立

20、的關系模式,關系的屬性包含兩端的主碼構成外碼。</p><p>  對關系模式CU,FL,BT進行優(yōu)化設計,使之滿足3NF的要求,即不存在部分函數依賴和傳遞函數依賴,減少數據的冗余。所以根據ER圖,轉化的關系如下所示:</p><p>  客戶:(客戶姓名、證件號、性別、年齡)</p><p>  航班:(航班編號、登機時間、起始地點,目的地)</p>

21、<p>  訂票:(客戶姓名、訂票數量、所付票價,航班編號)</p><p><b>  【別名表示】</b></p><p>  客戶: CU ( CNAME,CNO, SEX, AGE)</p><p>  航班: FL (FNO, FT, SP, EP)</p><p>  機票: BT (

22、CNAME,BNUM, SPAIY,FNO)</p><p>  2.2.2數據庫模式定義</p><p>  數據庫模式定一主要包括各模式的邏輯結構定義、關系的完整性和安全性等內容。一個關系模式應當是一個五元組R< U, D, dom, F >,而一般只將其看作一個三元組R<U, F>。(關系模式圖參考附錄1)</p><p>  

23、表2-1 數據庫模式定義表</p><p><b>  2.2.3數據處理</b></p><p>  系統共分為以下幾個模塊:機場管理員子系統,客戶子系統。機場管理員子系統又分為查看航班信息,查看客戶信息功能,客戶子系統分為訂票、退票等功能。所以系統功能模塊圖如下所示:</p><p>  2-3 民航訂票管理系統功能圖</p>

24、<p>  2.2.4算法的主要思路</p><p>  1.首先對界面的設計,可以對操作的人員來說簡單上手。對系統的應用都能進行相應的操作。</p><p> ?。?)設置管理員的功能。</p><p> ?。?)設置客戶的功能</p><p> ?。?)管理員的主要操作界面</p><p> ?。?)

25、客戶的主要操作界面</p><p><b>  (5)結束</b></p><p>  2.用來顯示客戶訂票的事件;</p><p><b>  基本思路如下:</b></p><p>  (1) 客戶提交自己的詳細信息。</p><p> ?。?) 管理員處理相應的內容并給

26、票給客戶。</p><p><b> ?。?) 訂票結束</b></p><p>  3.將處客戶的退票的信息,釋放存儲空間,基本思路如下:</p><p> ?。?) 客戶提交自己的詳細信息。</p><p> ?。?) 管理員把客戶的票取出,</p><p><b>  (3) 結

27、束</b></p><p><b>  物理設計階段</b></p><p><b>  物理階段設計的目標</b></p><p>  物理設計階段的目標是根據SQL Server2000具體的功能,設計優(yōu)化的物理數據庫結構,使得在數據庫上運行的各種事務響應時間最小,存儲空間利用率高,事務吞吐量大。</

28、p><p><b>  物理階段設計的任務</b></p><p>  物理設計階段為邏輯數據模型選取得一個最合適應有環(huán)境的物理結構的過程,也就是數據庫的物理設計。數據庫的物理設計通常分為兩個步驟:</p><p>  1.確定數據庫的物理結構,在關系數據庫中主要指存取方法和存儲結構;</p><p>  2.對物理結構進行

29、評價,評價的重點是時間和空間效率。</p><p>  系統功能模塊:本系統主要包括三個子系統模塊,分別為管理子系統模塊、客戶信息子系統模塊和訂票信息子系統模塊。</p><p><b>  數據存儲方面</b></p><p>  為數據庫中各基本表建立的索引如下:</p><p>  由于基本表CU的主碼CNO經常在

30、查詢條件和連接操作的連接條件中出現,且它們的值唯一,考慮屬性上建立唯一性索引;</p><p>  FL的主碼FNO,在查詢條件和連接操作的連接條件中出現,且它們的值唯一,考慮屬性上建立唯一性索引;</p><p><b>  數據庫實施階段</b></p><p>  數據庫實施階段的目標</p><p>  通過用D

31、BMS所提供的數據定義語言和其他實用程序將數據庫邏輯設計和物理設計結果描述出來,成為DBMS可以接受的源代碼,在經過調試后生成目標模式。</p><p>  數據庫實施階段的任務</p><p>  4.2.1.建立數據庫</p><p>  CREATE DATABASE MA</p><p>  4.2.2.建立數據表</p>

32、<p><b>  (1)建立客戶表</b></p><p>  CREATE TABLE CU(</p><p>  CNAME CHAR(20) NOT NULL,</p><p>  CNO CHAR(10) PRIMARY KEY,</p><p>  SEX CHAR(10),</p>

33、<p><b>  AGE INT</b></p><p><b>  ) </b></p><p>  (2)建立航班信息表</p><p>  CREATE TABLE FL(</p><p>  FNO CHAR(10) PRIMARY KEY,</p><

34、;p>  FT DATETIME NOT NULL,</p><p>  SP CHAR(20),</p><p>  EP CHAR(20),</p><p><b>  )</b></p><p><b>  (3)建立機票表</b></p><p>  CREAT

35、E TABLE BT(</p><p>  CNAME CHAR(10) PRIMARY KEY,</p><p><b>  BNUM INT,</b></p><p>  SPATY INT,</p><p>  FNO CHAR(10),</p><p>  constraint fkr f

36、oreign key(FNO) references FL(FNO)</p><p>  4.2.3.數據入庫</p><p>  insert into CU values('張三','110','男','23');</p><p>  insert into CU values('李四

37、9;,'111','男','25');</p><p>  insert into CU values('王五','112','男','63');</p><p>  insert into CU values('李麗','113','女&

38、#39;,'54');</p><p>  insert into CU values('張雪','114','女','32');</p><p>  insert into CU values('王浩','115','男','35');</

39、p><p>  insert into CU values('何夕','116','女','26');</p><p>  insert into CU values('香菌柯','117','女','36');</p><p>  inser

40、t into CU values('梵蒂岡','118','男','33');</p><p>  insert into CU values('華國鋒','119','男','31');</p><p>  SELECT * FROM CU </p>

41、;<p>  insert into FL values('3U8881','12:30','天津','三亞');</p><p>  insert into FL values('3Z3453','12:45','成都','上海');</p><p&g

42、t;  insert into FL values('FR3456','7:45','重慶','上海');</p><p>  insert into FL values('4R5677','6:43','成都','北京');</p><p>  insert i

43、nto FL values('5H6784','20:56','昆明','長沙');</p><p>  insert into FL values('HJ6897','23:45','長春','???#39;);</p><p>  insert into FL val

44、ues('23ET67','21:56','長沙','北京');</p><p>  insert into FL values('RG5657','11:34','廈門','桂林');</p><p>  insert into FL values('D

45、FH346','11:53','南京','南寧');</p><p>  insert into FL values('346DF5','9:45','沈陽','青島');</p><p>  SELECT * FROM FL</p><p>  

46、insert into BT values('張三','1','1460','3U8881');</p><p>  insert into BT values('李四','11','1230','3Z3453');</p><p>  insert into B

47、T values('王五','2','1220','FR3456');</p><p>  insert into BT values('李麗','3','1500','4R5677');</p><p>  insert into BT values('

48、張雪','4','1400','5H6784');</p><p>  insert into BT values('王浩','5','1349','HJ6897');</p><p>  insert into BT values('何夕','6

49、','1190','23ET67');</p><p>  insert into BT values('香菌柯','7','980','RG5657');</p><p>  insert into BT values('梵蒂岡','8','16

50、89','DFH346');</p><p>  insert into BT values('華國鋒','9','1789','346DF5');</p><p>  SELECT *FROM BT</p><p><b>  數據庫測試與調試</b>&l

51、t;/p><p>  測試與調試主要是對數據庫應用程序的實際運行,以及執(zhí)行對數據的各種操作,測試應用程序功能是否滿足設計要求,如果不滿足,則要對應用程序部分進行修改和調整,直到達到設計要求為止。</p><p><b>  總結</b></p><p>  通過本次民航訂票系統開發(fā)與測試,從開始的系統需求分析、概念設計、邏輯設計、物理設計,再到數據

52、庫實施、系統的測試和調試,都是借助網絡、書籍和同學共同完成,能做出的系統的大概框架,并沒有開發(fā)出具體應用的軟件和界面,但對于項目(系統)開發(fā)的大致流程有了一定的了解,為以后的系統的開發(fā)打下了良好的基礎。同時加深了對SQL SERVER 2008 的了解,基本能夠在相應的環(huán)境下組織SQL語句,完成java與sql sever數據庫的連接,在java界面下完成數據庫的操作,這是一個很大的進步。</p><p>  附

53、錄一、 數據庫邏輯結構定義</p><p>  1、客戶(CU)基本信息表, 用于記錄客戶的信息</p><p>  附表1-1 客戶基本信息表</p><p>  2、航班(FL)基本信息表</p><p>  附表1-2 航班基本信息表</p><p>  3、機票(BT)信息表</p><p

54、>  附表1-3 機票基本信息表</p><p>  附錄二、 JAVA程序設計</p><p>  Java與SQL Sever數據庫連接程序:</p><p>  package JDBCtool;</p><p>  import java.sql.Connection;</p><p>  import

55、java.sql.DriverManager;</p><p>  import java.sql.ResultSet;</p><p>  import java.sql.SQLException;</p><p>  import java.sql.Statement;</p><p>  import javax.swing.JOpti

56、onPane;</p><p>  public class JDBCTools {</p><p><b>  //連接數據庫</b></p><p>  public static Connection getConnection(String user,String password){</p><p>  Con

57、nection conn=null;</p><p>  String JDriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";</p><p>  String connectDB = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=MA";<

58、;/p><p><b>  try {</b></p><p>  Class.forName(JDriver);</p><p>  System.out.println("加載數據庫驅動成功!");</p><p>  conn = DriverManager.getConnection(connec

59、tDB,</p><p>  user, password);</p><p>  } catch (ClassNotFoundException e) {</p><p>  // TODO Auto-generated catch block</p><p>  // e.printStackTrace();</p><

60、;p>  JOptionPane.showMessageDialog(null, "加載數據庫驅動失敗!", "警告對話框",</p><p>  JOptionPane.WARNING_MESSAGE);</p><p>  }catch(SQLException e){</p><p>  e.printStackT

61、race();</p><p>  JOptionPane.showMessageDialog(null, "用戶名或者密碼不正確,登陸失敗!",</p><p>  "警告對話框", JOptionPane.WARNING_MESSAGE);</p><p><b>  }</b></p>

62、<p>  return conn;</p><p><b>  }</b></p><p><b>  //斷開數據庫連接</b></p><p>  public static void releaseDB(ResultSet resultSet, Statement statement,</p>

63、;<p>  Connection connection) {</p><p>  if (resultSet != null) {</p><p><b>  try {</b></p><p>  resultSet.close();</p><p>  } catch (SQLException e)

64、 {</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p><b>  }</b></p><p>  if (statement != null) {</p><p><b>  try {</

65、b></p><p>  statement.close();</p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p><b>  }</b

66、></p><p>  if (connection != null) {</p><p><b>  try {</b></p><p>  connection.close();</p><p>  } catch (SQLException e) {</p><p>  e.print

67、StackTrace();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  登錄界

68、面程序:</b></p><p>  package Mainview;</p><p>  import java.awt.*;</p><p>  import java.awt.event.ActionEvent;</p><p>  import java.awt.event.ActionListener;</p&g

69、t;<p>  import javax.swing.*;</p><p>  public class Logview extends JFrame implements ActionListener{</p><p>  private static final long serialVersionUID = 1L;</p><p>  publ

70、ic static final String Flight = null;</p><p>  //聲明JButton組件對象</p><p>  JButton jbutton1,jbutton2,jbutton3,jbutton4;</p><p>  public Logview()</p><p><b>  {</b

71、></p><p>  super("歡迎進入民航訂票系統!");</p><p>  //設置內容面板的布局模式為:流動布局</p><p>  getContentPane().setLayout(new FlowLayout());</p><p>  jbutton1=new JButton("管理

72、系統");</p><p>  jbutton2=new JButton("訂票系統");</p><p>  jbutton3=new JButton("退票系統");</p><p>  jbutton4=new JButton("退出系統");</p><p>  g

73、etContentPane().add(jbutton1);</p><p>  getContentPane().add(jbutton2);</p><p>  getContentPane().add(jbutton3);</p><p>  getContentPane().add(jbutton4);</p><p>  this.

74、setBounds(300,200,240,120);</p><p>  this.setVisible(true);</p><p>  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);</p><p>  this.setResizable(false);</p><p><

75、b>  //注冊監(jiān)聽器</b></p><p>  jbutton1.addActionListener(this);</p><p>  jbutton2.addActionListener(this);</p><p>  jbutton3.addActionListener(this);</p><p>  jbutt

76、on4.addActionListener(this);</p><p><b>  }</b></p><p>  public void actionPerformed(ActionEvent e){</p><p>  if(e.getSource()==jbutton1)</p><p><b>  {

77、</b></p><p>  LoginOfManager s=new LoginOfManager();</p><p>  this.dispose();</p><p><b>  }</b></p><p>  if(e.getSource()==jbutton2)</p><p&

78、gt;<b>  {</b></p><p><b>  try {</b></p><p>  new Book();</p><p>  } catch (Exception e1) {</p><p>  // TODO Auto-generated catch block</p>

79、<p>  e1.printStackTrace();</p><p><b>  }</b></p><p>  this.dispose();</p><p><b>  }</b></p><p>  if(e.getSource()==jbutton3)</p>

80、<p><b>  {</b></p><p><b>  try {</b></p><p>  new Return();</p><p>  } catch (Exception e1) {</p><p>  // TODO Auto-generated catch block&l

81、t;/p><p>  e1.printStackTrace();</p><p><b>  }</b></p><p>  this.dispose();</p><p><b>  }</b></p><p>  if(e.getSource()==jbutton4){<

82、;/p><p>  System.exit(0);</p><p><b>  }</b></p><p><b>  }</b></p><p>  public void airportInformation(){</p><p>  System.out.println(&

83、quot;謝謝光臨!");</p><p><b>  }</b></p><p>  public static void main(String[] args){</p><p>  @SuppressWarnings("unused")</p><p>  Logview welcom

84、e=new Logview();</p><p><b>  }</b></p><p><b>  }</b></p><p>  管理員系統界面程序:</p><p>  package Mainview;</p><p>  import java.awt.*;&l

85、t;/p><p>  import java.awt.event.ActionEvent;</p><p>  import java.awt.event.ActionListener;</p><p>  import java.sql.Connection;</p><p>  import java.sql.DriverManager;&l

86、t;/p><p>  import java.sql.ResultSet;</p><p>  import javax.swing.*;</p><p>  public class LoginOfManager extends JFrame implements ActionListener{</p><p>  //聲明JButton組件對

87、象</p><p>  JButton jbutton1,jbutton2,jbutton3;</p><p>  public LoginOfManager()</p><p><b>  {</b></p><p>  super("歡迎進入管理系統!");</p><p>

88、;  //設置內容面板的布局模式為:流動布局</p><p>  getContentPane().setLayout(new FlowLayout());</p><p>  jbutton1=new JButton("查看航班信息");</p><p>  jbutton2=new JButton("查看客戶信息");&l

89、t;/p><p>  jbutton3=new JButton(" 返 回 ");</p><p>  getContentPane().add(jbutton1);</p><p>  getContentPane().add(jbutton2);</p><p>  getContentPane()

90、.add(jbutton3);</p><p>  this.setBounds(300,200,360,130);</p><p>  this.setVisible(true);</p><p>  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);</p><p><b>

91、  //注冊監(jiān)聽器</b></p><p>  jbutton1.addActionListener(this);</p><p>  jbutton2.addActionListener(this);</p><p>  jbutton3.addActionListener(this);</p><p><b>  }

92、</b></p><p>  public void actionPerformed(ActionEvent e){</p><p>  if(e.getSource()==jbutton1)</p><p><b>  {</b></p><p>  new QueryFilght();</p>

93、<p>  this.dispose();</p><p><b>  }</b></p><p>  if(e.getSource()==jbutton2){</p><p>  new Queryclient();</p><p>  this.dispose();</p><p&g

94、t;<b>  }</b></p><p>  if(e.getSource()==jbutton3){</p><p>  new Logview();</p><p>  this.dispose();</p><p><b>  }</b></p><p><

95、b>  }</b></p><p>  public static void main(String[] args){</p><p>  new LoginOfManager();</p><p><b>  }</b></p><p><b>  }</b></p>

96、;<p><b>  訂票界面程序:</b></p><p>  package Mainview;</p><p>  import java.awt.GridLayout;</p><p>  import java.awt.event.ActionEvent;</p><p>  import jav

97、a.awt.event.ActionListener;</p><p>  import java.sql.*;</p><p>  import javax.swing.*;</p><p>  import JDBCtool.JDBCTools;</p><p>  public class Book extends JFrame imp

98、lements ActionListener{</p><p>  int dingdannum=10000000; //設置初始訂單號;</p><p>  JLabel l4 = new JLabel("訂票數量 :");</p><p>  JLabel l2 = new JLabel(" 航 班

99、 號 : ");</p><p>  JLabel l3 = new JLabel("請輸入您要訂票的航班號和機票數量!一次不能超過5張票!");</p><p>  JLabel l1 = new JLabel(" 姓 名 : ");</p><p>  JLabel l5=new JLab

100、el(" 證件號 :");</p><p>  JLabel l6=new JLabel(" 性 別 :");</p><p>  JLabel l7=new JLabel(" 年 齡 :");</p><p>  JTextField t1 =

101、new JTextField("", 12);</p><p>  JTextField t2 = new JTextField("", 12);</p><p>  JTextField t3 = new JTextField("", 12);</p><p>  JTextField t4=new JT

102、extField("",12);</p><p>  JTextField t5=new JTextField("",12);</p><p>  JTextField t6=new JTextField("",12);</p><p>  JButton b1 = new JButton("確認

103、訂票");</p><p>  JButton b2 = new JButton(" 返 回 ");</p><p>  JPanel p1 = new JPanel();</p><p>  JPanel p2 = new JPanel();</p><p>  JPanel p3 = new JPa

104、nel();</p><p>  JPanel p4 = new JPanel();</p><p>  JPanel p5 = new JPanel();</p><p>  JPanel p6=new JPanel();</p><p>  JPanel p7=new JPanel();</p><p>  JPa

105、nel p8=new JPanel();</p><p>  String flight;</p><p>  Connection con;</p><p>  Statement stmt=null; </p><p>  ResultSet rs;</p><p>  Book()throws Except

106、ion{</p><p>  super("歡迎進入訂票界面!");</p><p>  p1.add(l3); </p><p>  p2.add(l1); p2.add(t1);</p><p>  p6.add(l5);p6.add(t4);</p><p>  p7.add(l6);p7

107、.add(t5);</p><p>  p8.add(l7);p8.add(t6);</p><p>  p3.add(l2); p3.add(t2);</p><p>  p4.add(l4); p4.add(t3);</p><p>  p5.add(b1); p5.add(b2);</p><p>  b1.ad

108、dActionListener(this);</p><p>  b2.addActionListener(this);</p><p>  setLayout(new GridLayout(8,1));</p><p>  this.add(p1); </p><p>  this.add(p2);</p><p&

109、gt;  this.add(p6);</p><p>  this.add(p7);</p><p>  this.add(p8);</p><p>  this.add(p3);</p><p>  this.add(p4);</p><p>  this.add(p5);</p><p> 

110、 setBounds(300, 200, 320, 380);</p><p>  setResizable(false);</p><p>  setVisible(true);</p><p>  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);</p><p><b> 

111、 }</b></p><p>  @SuppressWarnings("null")</p><p>  public void actionPerformed(ActionEvent e) {</p><p>  if(e.getSource() == b2){</p><p>  new Logview()

112、; </p><p>  this.dispose();</p><p><b>  }</b></p><p>  if(e.getSource() == b1){</p><p>  //獲取用戶輸入的信息</p><p>  String jt1=t1.

113、getText();</p><p>  String jt2=t2.getText();</p><p>  String jt3=t3.getText();</p><p>  int tt=Integer.parseInt(jt3);</p><p>  if(tt>5){l3.setText("請減少購票數量!&quo

114、t;);}</p><p><b>  else{</b></p><p>  if(jt1.equals("")|| jt2.equals("")||jt3.equals("")){</p><p>  l3.setText("所填信息不能為空!");</p

115、><p><b>  }</b></p><p><b>  else{</b></p><p><b>  try{</b></p><p>  con = JDBCTools.getConnection("king", "1230");&

116、lt;/p><p>  stmt = con.createStatement();</p><p>  int price=tt*420;</p><p>  String sql="insert into BT values('"+jt1+"','"+tt+"','"+

117、price</p><p>  +"','"+jt2+"')";</p><p>  stmt.executeUpdate(sql);</p><p>  JDBCTools.releaseDB(rs, stmt, con);</p><p>  con=JDBCTools.ge

118、tConnection("king", "1230");</p><p>  stmt=con.createStatement();</p><p>  String sql2="insert into CU values('"+jt1+"','"+t4.getText()+</p

119、><p>  "','"+t5.getText()+"','"+t6.getText()+"')";</p><p>  stmt.executeUpdate(sql2);</p><p>  JDBCTools.releaseDB(rs, stmt, con);<

120、/p><p>  l3.setText("訂票成功!");</p><p>  }catch(Exception e2){e2.printStackTrace();}</p><p><b>  }</b></p><p><b>  }</b></p><p&

121、gt;<b>  } </b></p><p><b>  }</b></p><p>  public static void main(String[] args) throws Exception {</p><p>  new Book(); </p><p><b>  } &

122、lt;/b></p><p><b>  }</b></p><p>  查詢航班信息界面程序:</p><p>  package Mainview;</p><p>  import java.awt.*;</p><p>  import java.awt.event.ActionEv

123、ent;</p><p>  import java.awt.event.ActionListener;</p><p>  import java.sql.Connection;</p><p>  import java.sql.DriverManager;</p><p>  import java.sql.ResultSet;<

124、/p><p>  import java.sql.Statement;</p><p>  import javax.swing.*;</p><p>  import JDBCtool.JDBCTools;</p><p>  public class QueryFilght extends JFrame implements ActionL

125、istener{</p><p>  JLabel jl1=new JLabel(" 航班號 :");</p><p>  JLabel jl2=new JLabel("登機時間:");</p><p>  JLabel jl3=new JLabel("出發(fā)地點: ");</p><

126、;p>  JLabel jl4=new JLabel("目的地點:");</p><p>  private JTextField jd1=new JTextField(15);</p><p>  private JTextField jd2=new JTextField(15);</p><p>  private JTextField

127、 jd3=new JTextField(15);</p><p>  private JTextField jd4=new JTextField(15);</p><p>  JButton query=new JButton(" 查 詢 ");</p><p>  JButton outuran=new JButton(" 返 回

128、 ");</p><p>  JLabel[] jl={jl1,jl2,jl3,jl4};</p><p>  private JTextField[] jt={jd1,jd2,jd3,jd4};</p><p>  Box box1=Box.createVerticalBox(); //創(chuàng)建縱向Box容器</p><p&g

129、t;  private Box box2=Box.createVerticalBox();</p><p>  Box box3=Box.createHorizontalBox(); //創(chuàng)建橫向Box容器</p><p>  Connection con;</p><p>  Statement stmt;</p><p>  Re

130、sultSet rs;</p><p>  public QueryFilght(){</p><p>  this.setTitle("查詢航班信息");</p><p>  this.setBounds(300,200,260,215);</p><p>  this.setVisible(true);</p&

131、gt;<p>  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);</p><p>  this.setResizable(false);</p><p>  query.addActionListener(this);</p><p>  outuran.addActionListener(th

132、is);</p><p>  for(int i=0;i<4;i++)</p><p><b>  {</b></p><p>  box1.add(jl[i]);</p><p>  box1.add(Box.createVerticalStrut(20));</p><p><b&

133、gt;  }</b></p><p>  box1.add(query);</p><p>  for(int i=0;i<4;i++)</p><p><b>  {</b></p><p>  box2.add(jt[i]);</p><p>  box2.add(Box.c

134、reateVerticalStrut(16));</p><p><b>  }</b></p><p>  box2.add(outuran);</p><p>  this.add(box3); //將橫向Box容器box3添加到窗體中</p><p>  box3.add(B

溫馨提示

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

評論

0/150

提交評論