中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      機票預訂系統(一)

      時間:2024-05-27 12:55:17 計算機畢業論文 我要投稿
      • 相關推薦

      機票預訂系統(一)

      1.1項目背景
      1.1.1項目名稱    機票預訂系統
      1.1.2任務提出者 
      1.1.3開發者     
      1.1.4產品用戶.1.5機票預定系統的總目標
       在計算機網絡,數據庫和先進的開發平臺上,利用現有的軟件,配置一定的硬件,開發一個具有開放體系結構的、易擴充的、易維護的、具有良好人機交互界面的機票預定系統,實現航空公司的機票銷售的自動化的計算機系統,為企業的決策層提供準確、精細、迅速的機票銷售信息。1.2編寫目的
       一個正常營運的航空公司需要管理所擁有的飛機、航線的設置,客戶的信息等,更重要的還要提供票務管理。面對各種不同種類的信息,需要開發有效的程序結構來管理各種信息。
       而在前一階段(概要設計說明書)中,已解決了實現該系統需求的程序模塊設計問題。包括如何把該系統劃分成若干個模塊、決定各個模塊之間的接口、模塊之間傳遞的信息,以及數據結構、模塊結構的設計等。在以下的詳細設計報告中將對在本階段中對系統所做的所有詳細設計進行說明。
       在本階段中,確定應該如何具體地實現所要求的系統,從而在編碼階段可以把這個描述直接翻譯成用具體的程序語言書寫的程序。主要的工作有:根據在《需求分析說明書》中所描述的數據、功能、運行、性能需求,并依照《概要設計說明書》所確定的處理流程、總體結構和模塊外部設計,設計軟件系統的結構設計、逐個模塊的程序描述(包括各模塊的功能、性能、輸入、輸出、算法、程序邏輯、接口等等),解決如何
       
       1. 接受:航班信息,旅客信息及取票通知和賬單;
       2. 輸出:取票通知和賬單及機票;
       3. 網絡輸出和加密,輸入和解密;
       4. 分辨信息的種類并采取相應的處理步驟;
       5. 判斷信息的正誤并采取相應的處理步驟;
       6. 進行數據庫的查詢、修改工作;
       7. 接受并判斷錯誤,輸出相應的出錯消息;
       
       詳細設計文檔是進行系統編碼的依據,編寫本文檔的目的在于為程序員的編碼提供詳細的說明,使程序員能根據詳細設計的框圖進行正確的編碼。本文檔的讀者對象為程序員,系統設計人員,航空公司管理人員以及參加評審的專家們。
      1.3 軟件定義
       在數據庫建表中,其中:flightnumber為航班號,airlinecompany為航空公司,startstation為始發站,middlestation為中轉站,endstation為終點站,takeofftime為起飛時間,landingtime為到達時間,price1為普通機票單價,memo為備注,flag記為是否售出的標志符,no1為普通艙座位數量,rest為剩余座位數量,buyername為客戶姓名,buyertel為聯系電話,buyeridnum為身份證號碼,contractno為訂單號,bookdate為訂票日期,cancledate為退票日期,buyeremail為客戶郵箱。
      1.4 開發環境
      1.4.1 操作系統
       Windows 98,Windows Me,Windows Me,Windows NT,Windows 2000 Professional,Windows 2000 Sever,Windows XP
      1.4.2 硬件要求
       PC機,小型機,工作站,服務器,內存512M以上,硬盤10G以上
      1.4.3 軟件要求
       應配置SQL Sever,Oracle或其他數據庫
      1.4.5 開發工具
       PowerBuilder  9.0
        第二章  需求分析

      2.1功能要求
      班機基本信息的管理;
      航班信息的管理;
      旅客預定機票、取消預約、付款取票、退票的管理;
      查詢航班信息、航班預定情況、旅客信息,計算航班滿座率。
      統計營業收入。

      2.2系統數據流圖
      2.2.1總體數據流圖
               第三章 數據庫邏輯設計

      3.1 planeticket表設計說明及描述
      3.1.1 定義表及關鍵字
      表1 planeticket
      字段名 數據類型 含義說明 空值情況 
      flightnumber Varchar 航班號 主關鍵字 
       airlinecompany Varchar 航空公司 不能為空 
       startstation Varchar 起飛城市 不能為空 
       middlestation Varchar 中轉城市 可以為空 
       endstation Varchar 到達城市 不能為空 
      takeofftime Time 起飛時間 不能為空 
       landingtime Time 到達時間 不能為空 
       no1 Int 普通艙座位數量 不能為空 
      price1 Long 普通機票單價 不能為空 
      rest int 剩余座位數 不能為空 
      memo Varchar 備        注 可以為空 

      3.1.2表的功能
       本程序主要實現航班信息的輸入和查詢,包括航班號,航空公司,始發站,中轉站,終點站,起飛時間,到達時間,普通艙座位數量,普通機票單價,剩余座位數及備注信息等。

      3.2 buyticket表設計說明及描述
      3.2.1定義表及關鍵字
      表2 buyticket
      字段名 數據類型 含義說明 空值情況 
      flightnumber Varchar 航班號 主關鍵字 
       airlinecompany Varchar 航空公司 不能為空 
       startstation Varchar 起飛城市 不能為空 
       middlestation Varchar 中轉城市 可以為空 
      endstation Varchar 到達城市 不能為空 
      takeofftime Time 起飛時間 不能為空 
       landingtime Time 到達時間 不能為空 
       Number1 Int 普通艙座位數量 不能為空 
       Price1 Long 普通機票單價 不能為空 
      Rest Int 剩余座位數 不能為空 
      memo Varchar 備注 系統調入 
      buyername Varchar 客戶姓名 不能為空 
      buyertel Int 聯系電話 不能為空 
       buyeridnumber Int 身份證號碼 不能為空 
       buyeremail Varchar 郵箱 可以為空 
       contractno Varchar 訂單號 不能為空 
      bookdate Data 訂票日期 不能為空 
      cancledate data 退票日期 不能為空 


      3.2.2 表的功能
        本程序主要實現旅客信息的輸入和查詢,包括航班號,航空公司,始發站,中轉站,終點站,起飛時間,到達時間,普通艙座位數量,普通機票單價,剩余座位數,備注信息,客戶姓名,聯系電話,身份證號碼,郵箱,訂單號,訂票日期,退票日期等

      第四章  軟件功能設計

      4.1  客戶機接受信息模塊結構圖
      4.1.1系統管理員添加航班信息    
       
       圖9添加航班信息
      4.1.2客戶訂票信息錄入
       
       圖10 訂票信息錄入
      4.1.3客戶退票信息錄入
       
       圖11 退票信息錄入
      4.2客戶機輸出信息模塊
      4.2.1繳款取票
       
       圖12 繳費取票
      4.3系統自動更新航班信息模塊
       
       圖13 更新航班信息
       
       第五章  界面設計

      5.1登錄界面
       
       圖14 登錄界面
      5.2主菜單界面
       
       圖15 主菜單界面
      5.3登記航班信息界面
       
       圖16 登記航班信息界面
      5.4訂購機票界面
       
       圖17 訂票界面
      5.5取消訂票界面
       
       圖18 退票界面
      5.6 航班信息維護界面
       
       圖19 更新航班信息界面
      5.7 計算航班滿座率界面
       
       圖20 滿座率計算
      5.8 統計營業收入界面
       
       圖21 統計營業收入界面
       
       
       

       第六章 課程設計心得體會
       這次課程設計做的比較匆忙,也可以說是畢業設計的一個前瞻。
       我用的是PowerBuilder 9.0來設計的,對該軟件還不是很熟悉,尤其是Powerscript語言以及它所自帶的函數,不得甚解,尤其是當某些功能,譬如說刪除,插入我們可以直接用deleterow(0),insertrow()來實現,還比較方便。
       總的來說,數據庫設計與軟件設計有異曲同工之妙,唯一的不同之處就是軟件有一個生命周期。從另一方面講,數據庫設計是軟件設計的基礎,脫離了數據庫設計軟件設計是沒有意義的,而單純的數據庫設計并沒有什么實際意義。
       該軟件需要改進的地方還有很多,譬如說界面不是很友好,數據庫表的設計有點不符合BCNF范式,每次只能實現一次操作訂購一張票等等。

      附錄1:參考文獻

        《PowerBuilder9.0課程設計案例精編》 魏海,黃浩等編著 中國水利水電出版社
        《PowerBuilder9.0開發人員指南》     張長富,李勻等編著 北京希望電子出版社
        《PowerBuilder9.0信息管理系統開發實例導航》何旭洪,傅立宏編著 人民郵電出版社
        《oracle 9i數據庫應用標準教程》 李欣主編 上海科學普及出版社
      附錄2:代碼
      1.planeticket  open()
      /*SQLCA.DBMS = "O90 Oracle9i (9.0.1)"
      SQLCA.LogPass ="manager"
      SQLCA.ServerName = "LAB_b14"
      SQLCA.LogId = "system"
      SQLCA.AutoCommit = false
      //SQLCA.DBParm = "PBCatalogOwner='scott'"*/


      // Profile fly
      SQLCA.DBMS = "ODBC"
      SQLCA.AutoCommit = False
      SQLCA.DBParm = "ConnectString='DSN=plane;UID=sa;PWD=sa'"

      connect Using SQLCA;
      //open (w_main1)
      //open(w_planeticket)
      //open(w_chooseplane)
      //open(w_buyticket)
      open(w_main)

      2..訂購機票界面W_buyticket  open()
      long rn
      string num
      dw_3.settransobject (sqlca)
      dw_3.retrieve()
      dw_3.insertrow(0)
      dw_3.ScrollToRow(rn)
      dw_3.object.bookdate[1]=today()

      String flightnumber,airlinecompany,startstation,middlestation,endstation
      int takeofftime,landingtime, price1,rest
      String memo
      num=message.stringparm
      select airlinecompany,startstation,middlestation,endstation,takeofftime,landingtime,memo,
       price1
      into :airlinecompany,:startstation,:middlestation,:endstation,:takeofftime,:landingtime,:memo,
      :price1
      from planeticket
      where flightnumber=:num
      Using sqlca;

      dw_3.object.flightnumber[1]=num
      dw_3.object.airlinecompany[1]=airlinecompany
      dw_3.object.startstation[1]=startstation
      dw_3.object.middlestation[1]=middlestation
      dw_3.object.endstation[1]=endstation
      dw_3.object.takeofftime[1]=takeofftime
      dw_3.object.landingtime[1]=landingtime
      dw_3.object.price1[1]=price1
      //dw_3.object.price2[1]=price2
      dw_3.object.memo[1]=memo

      3.訂購機票界面訂票成功按鈕 clicked()
      dw_3.update()

      string num
      num=dw_3.GetitemString(1,"flightnumber")
      Update buyticket
      set flag=1
      where flightnumber=:num
      using sqlca;

      update planeticket

      set rest=rest-1
      where flightnumber=:num

      using sqlca;
      close(parent)

      4.退票界面w_cancleticket  open()
      // Profile xuwei
      /*SQLCA.DBMS = "O90 Oracle9i (9.0.1)"
      SQLCA.LogPass = 'manager'
      SQLCA.ServerName = "lab_b14"
      SQLCA.LogId = "system"
      SQLCA.AutoCommit = true
      //SQLCA.DBParm = "PBCatalogOwner='scott'"*/

      // Profile fly
      SQLCA.DBMS = "ODBC"
      SQLCA.AutoCommit = False
      SQLCA.DBParm = "ConnectString='DSN=plane;UID=sa;PWD=sa'"

      connect using sqlca;

      5.退票界面查詢按鈕 clicked()
      string filterStr
      string name
      integer rc
      name=sle_buyername.text
      filterStr="buyername='"+name+"'"
      dw_4.SetTransobject(sqlca)

      dw_4.setFilter(filterStr)

      dw_4.Filter()
      dw_4.Retrieve()

      rc=dw_4.getrow()

       if rc<=0 then
       messagebox("提示:","沒有此顧客訂購機票信息!")
       return 1
      end if
       
      6.退票界面退票按鈕 clicked()
      string num
            num=dw_4.GetitemString(1,"flightnumber")
        update planeticket

            set rest=rest+1
            where flightnumber=:num

            using sqlca;
        
        dw_4.deleterow(0)
        dw_4.update()
            dw_4.retrieve()
        
      messagebox("提示:","退票成功!")

      7選擇機票界面查詢全部航班信息按鈕 clicked()
      disconnect using sqlca;
      // Profile xuwei
      /*SQLCA.DBMS = "O90 Oracle9i (9.0.1)"
      SQLCA.LogPass = 'manager'
      SQLCA.ServerName = "lab_b14"
      SQLCA.LogId = "system"
      SQLCA.AutoCommit = true*/

      // Profile fly
      SQLCA.DBMS = "ODBC"
      SQLCA.AutoCommit = False
      SQLCA.DBParm = "ConnectString='DSN=plane;UID=sa;PWD=sa'"


      connect using sqlca;

      string filterStr
      filterStr="flag=0"

      dw_1.settransobject(sqlca)
      dw_1.setfilter(filterStr)
      dw_1.filter()
      dw_1.retrieve ()

      8.選擇機票界面訂購按鈕 clicked()
      int i
      string selNum
      for i=1 to dw_1.getrow()
       if dw_1.GetItemNumber(i,"flag")=1 then
        selNum=dw_1.GetitemString(i,"flightnumber")
          openwithparm(w_buyticket,selNum)
      //  close(w_chooseplane)
        return
        end if
       next
       
      9.選擇機票界面按目的地查找按鈕 clicked()
      open(w_findplane)

      10.按目的地查找界面w_findplane open()
      // Profile xuwei
      SQLCA.DBMS = "O90 Oracle9i (9.0.1)"
      SQLCA.LogPass = 'manager'
      SQLCA.ServerName = "lab_b14"
      SQLCA.LogId = "system"
      SQLCA.AutoCommit = true
      //SQLCA.DBParm = "PBCatalogOwner='scott'"

      connect using sqlca;

      11.按目的地查找界面查找按鈕 clicked()
      string filterStr
      string name
      integer rc
      name=sle_station.text
      filterStr="endstation='"+name+"'"
      dw_5.SetTransobject(sqlca)

      dw_5.setFilter(filterStr)

      dw_5.Filter()
      dw_5.Retrieve()

      rc=dw_5.getrow()

       if rc<=0 then
       messagebox("提示:","沒有到達此地的航班!")
       return 1
      end if

      12.登錄界面登錄按鈕 clicked()
      string pwd,username

      username=sle_name1.text
      pwd=sle_pwd.text

      SQLCA.LogId = username
      SQLCA.LogPass =pwd

      connect using sqlca;
      if sqlca.sqlcode=-1 then
       messageBox("口令錯誤,請重新輸入!",SQLCA.SQLErrText)
       close(parent)
      else
       open(w_main)
      end if

      13航班信息查詢界面w_plane1 open()
      disconnect using sqlca;
      // Profile xuwei
      /*SQLCA.DBMS = "O90 Oracle9i (9.0.1)"
      SQLCA.LogPass = 'manager'
      SQLCA.ServerName = "lab_b14"
      SQLCA.LogId = "system"
      SQLCA.AutoCommit = true*/

      // Profile fly
      SQLCA.DBMS = "ODBC"
      SQLCA.AutoCommit = False
      SQLCA.DBParm = "ConnectString='DSN=plane;UID=sa;PWD=sa'"


      connect using sqlca;
      dw_7.settransobject(sqlca)
      dw_7.retrieve ()

      14.航班信息維護界面w_planeinfo open()
      dw_4.settransobject (SQLCA)
      dw_4.retrieve ()

      15.航班信息維護界面添加按鈕 clicked()
      long net
      net=dw_4.insertrow(0)
      dw_4.ScrollToRow(net)

      16.航班信息維護界面刪除按鈕 clicked()
      dw_4.deleterow(0)
      dw_4.update()
      dw_4.retrieve()

      17機票信息登記界面確定插入按鈕 clicked()
      int num
      String flightnumber,airlinecompany,startstation,middlestation,endstation,memo,takeofftime,landingtime,no1
      String err

      double price1
      string mysql

      /*SQLCA.DBMS = "O90 Oracle9i (9.0.1)"
      SQLCA.LogPass ="manager"
      SQLCA.ServerName = "lab_b14"
      SQLCA.LogId = "system"
      SQLCA.AutoCommit = true
      //SQLCA.DBParm = "PBCatalogOwner='scott'"*/

      // Profile fly
      SQLCA.DBMS = "ODBC"
      SQLCA.AutoCommit = False
      SQLCA.DBParm = "ConnectString='DSN=plane;UID=sa;PWD=sa'"


      connect Using SQLCA;

       


      flightnumber = sle_number.text
      airlinecompany = sle_airlinecompany.text
      startstation = sle_startstation.text
      middlestation = sle_middlestation.text
      endstation = sle_endstation.text
      memo=mle_memo.text
      takeofftime = sle_takeofftime.text
      landingtime = sle_landingtime.text
      no1=sle_no1.text
      em_price1.getData(price1)


      err=""
      if flightnumber="" then
        err=err+"航班號不能為空!~n"
      end if
      if airlinecompany = "" then
       err=err+"航空公司不能為空!~n"
      end if
      if startstation = "" then
       err=err+"起始站不能為空!~n"
      end if
      if endstation = "" then
       err=err+"終點站不能為空!~n"
      end if
      if takeofftime = "" then
       err=err+"起飛時間不能為空!~n"
      end if
      if landingtime = "" then
       err=err+"到達時間不能為空!~n"
      end if
      if price1<=0 then
       err=err+"單價應該大于0!~n"
      end if
      if err<>"" then
       messagebox("警告!",err)
       return
      end if

      //查詢數據庫,是否有該航班號,如果有則不能重復添加

      select count(flightnumber)
      into :num
      from planeticket
      where flightnumber=:flightnumber
      using sqlca;

      if num>0 then
       messagebox("警告","航班號不能重復")
       return
      end if

      //執行添加記錄操作
      /*mysql = "INSERT INTO planeticket(flightnumber,airlinecompany,startstation,middlestation,endstation,takeofftime,landingtime,price1,price2,memo)  VALUES('"+flightnumber+"','"+airlinecompany+"','"+startstation+"','"+middlestation+"','"+endstation+"','"+takeofftime+"','"+landingtime+"','"+price1+"','"+price2+"','"+memo+"')"
      execute IMMEDIATE :mysql using sqlca;*/
      INSERT INTO planeticket
                  (flightnumber,
           airlinecompany,
           startstation,
           middlestation,
           endstation,
           takeofftime,
           landingtime,
           price1,
           no1,
           memo
           )
      VALUES(      :flightnumber,
           :airlinecompany,
           :startstation,
           :middlestation,
           :endstation,
           :takeofftime,
           :landingtime,
           :price1,
           :no1,
           :memo 
          
           )
      USING SQLCA;
      if sqlca.sqlcode<>0 then
        messagebox("",sqlca.sqlerrtext)
      //else
      //    messagebox("已經成功添加航班信息!~n")
      //  return
      end if

      //disconnect using SQLCA;

      18.旅客訂票信息界面查詢按鈕 clicked()
      string filterStr
      string name
      integer rc
      name=sle_buyername.text
      filterStr="buyername='"+name+"'"
      dw_6.SetTransobject(sqlca)

      dw_6.setFilter(filterStr)

      dw_6.Filter()
      dw_6.Retrieve()

      rc=dw_6.getrow()

       if rc<=0 then
       messagebox("提示:","沒有此顧客訂購機票信息!")
       return 1
      end if

      【機票預訂系統(一)】相關文章:

      ASP交友系統設計(一)03-07

      delphi題庫系統(一)03-07

      ASP人才招聘系統(一)03-07

      ASP網絡購物系統(一)03-07

      消防聯動控制系統(一)12-26

      考務和成績管理系統(一)03-26

      VB+教學輔助系統(一)11-22

      談機電一體化系統中的軟件系統設計03-12

      探究機電一體化系統中的軟件系統設計及討論03-14

      主站蜘蛛池模板: 德昌县| 亚洲图片第二页| 亚洲av乱码专区国产乱码| 国产精品亚洲一区二区三区| 久久精品熟女亚洲av艳妇| 伊人影院在线观看不卡| 精品视频在线观看一区二区三区| 威远县| 亚洲av优女天堂熟女| 人人爽亚洲aⅴ人人爽av人人片| 亚洲美女av一区二区| 成人爱爱视频在线观看| 人妻少妇精品系列一区二区| 新乡县| 成人影院激情av在线| 精品黄色av一区二区三区 | 亚洲无人一区二区蜜桃| 少妇一级aa一区二区三区片| 绿帽人妻被插出白浆免费观看| 青青草视频在线网站观看| 彰化市| 少妇特殊按摩高潮惨叫无码| 亚洲国产高清在线视频| 甘南县| 精品亚洲一区二区99| 亚洲欧洲无码精品ⅤA| 亚洲不卡av不卡一区二区| 日韩偷拍视频一区二区三区| 美女精品国产一区二区三区| 国产精品女同学| 最近亚洲精品中文字幕| 免费人妻精品一区二区| 精品一区二区三区不卡少妇av| 国产亚洲视频在线观看播放 | 少妇高潮惨叫久久久久电影| 亚洲乱码中文字幕综合| 亚洲乱码精品中文字幕| 久久久精品国产亚洲麻色欲| 无码人妻专区一区二区三区| 亚洲成av人片在线播放| 小13箩利洗澡无码免费视频|