• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于PyQt5+MySQL航班座位自動分配系統(tǒng)設計與實現

      2021-10-29 06:26:32劉秋蘭
      中文信息 2021年9期
      關鍵詞:座位旅客分配

      張 靜 劉秋蘭

      (山東電子職業(yè)技術學院計算機與軟件工程系,山東 濟南 250200)

      目前民航旅客在預定航班后,一般都可以提前自助選擇座位。如果不提前選擇座位,旅客到達機場后,在柜臺值機或自助設備上值機時,可以選擇一個座位,或者由后臺系統(tǒng)隨機分配一個座位。如何正確選座,哪個區(qū)域最好,相信這是很多想乘坐飛機的人,都曾苦惱過的問題。因為飛機座位沒選好,可能整個出行的計劃就被打亂。然而,乘坐飛機出行前選好座位很多問題就可以避免。

      因此,本系統(tǒng)利用Python3.6+Pycharm 2017.3+PyQt5+MySQL5.0平臺,基于大數據平臺,進行個人喜好數據分析,采用自搜索算法、動態(tài)求解算法、隨機分配算法,實現了航班自動分配座位的功能。系統(tǒng)實現的主要目標如下所示。

      第一,采用自搜索算法及隨機分配算法,實現了對單一座位的自動分配。第二,采用動態(tài)求解算法、自搜索算法、隨機分配算法,實現了以“組”為單位的座位以及整機座位自動分配。第三,實現查看座位分配時間與實際分配情況、分配座位的布局、導出分配結果。

      一、系統(tǒng)整體概述

      1.系統(tǒng)總體設計

      結合實際生活場景應用,本系統(tǒng)實現的主要功能可劃分為:選擇航班信息、加載數據文件、開始自動分配座位、查看分配結果、導出報表、查看座位布局。兩種角色:普通用戶、管理員。兩者的不同在于管理員的權限可以對用戶進行有效管理,如添加用戶、刪除用戶、修改用戶等功能。

      2.系統(tǒng)代碼架構

      系統(tǒng)代碼架構主要分為三層:用戶層、中間層、數據層。用戶層主要提供數據展示和用戶操作界面;中間層用于銜接用戶層與數據層之間的數據傳輸;數據層用于存儲數據,將數據存于數據庫中、Json格式的文件中,具體流程如圖1所示。

      圖1 系統(tǒng)代碼架構圖

      3.系統(tǒng)性能需求

      該系統(tǒng)主要從效率性、安全性、穩(wěn)定性、兼容性等方面考慮了性能需求[1],具體包括:效率性:單一座位分配的處理時間不超過1秒,整機旅客重新分配座位的處理時間不超過10秒。安全性:該系統(tǒng)有較強的安全性,能對數據和顧客相關信息進行數據加密處理,能對數據進行有效防護,有較強的安全性。

      二、系統(tǒng)詳細設計

      本系統(tǒng)主要包括系統(tǒng)登錄模塊、座位自動分配模塊、用戶管理模塊。

      1.系統(tǒng)登錄模塊

      本模塊屬于系統(tǒng)的入口界面,通過輸入用戶名和密碼進入座位自動分配系統(tǒng)。在登錄界面中,可以以普通用戶或管理員用戶兩種方式進行登錄界面。

      2.座位自動分配模塊

      該模塊主要實現的功能包括:切換航班號功能,查看航班相關信息功能;航班座位自動分配功能;查看分配結果功能;導出報表功能;查看座位布局功能。模塊界面設計如圖2所示。在該界面中,查看座位布局界面設計,如圖3所示。單擊“查看座位布局”按鈕,將會顯示出該航班座位的具體分配情況,藍色表示未分配的座位,帶小鎖的表示已分配的座位,橙色的表示未滿足旅客需求的座位。同時,將鼠標移到某個座位上,將會顯示出該座位的所有屬性。最后,還可以把這個分配結果以Json格式的文件導出,單擊“導出報表”按鈕,選擇文件存儲位置,輸入文件名,單擊保存即可完成。

      圖2 座位自動分配界面

      圖3 查看座位布局界面

      3.用戶管理模塊

      對于普通用戶,僅允許該用戶修改自己的密碼;對于管理員用戶,可以實現修改所有用戶的密碼和權限、增加用戶、刪除用戶、清空普通用戶等操作。

      三、座位自動分配算法

      座位自動分配流程如下:

      第一,選擇需要分配的Json格式報表文件,該文件存儲的是旅客歷史購票信息。第二,對報表文件進行預處理,具體方法如下:①將旅客信息按照旅客數量進行分類,將旅客數量大于1的旅客放到一個旅客信息表1中;將其他旅客信息放到另外一個旅客信息表2中;②將旅客信息表1里的旅客信息按照旅客數量從大到小的順序排序;③將旅客信息表2里的旅客信息按照座位屬性值的個數從大到小排序。第三,采用動態(tài)優(yōu)化算法,按照旅客信息表1里提供的座位屬性實現自動分配,同時,將已分配到的座位從座位信息列表里刪除。此時,將旅客相關信息存入旅客座位列表中。對于未滿足需求的旅客信息放到變量旅客信息表2里。第四,采用自搜索算法,根據旅客信息表2里的旅客座位屬性實現自動分配,同時,將已分配到的座位從座位信息列表里刪除。此時,將旅客相關信息存入旅客座位列表中。將未滿足需求的旅客信息放入臨時變量tmp_passenger_info_dict內。第五,采用隨機分配算法分配剩余旅客座位,同時,將已分配到的座位從座位信息列表里刪除。此時,將旅客相關信息存入旅客座位列表。將該變量的信息寫入旅客信息列表,同時更新座位屬性表里的座位預定狀態(tài)。第六,給出提示信息,座位自動分配完成。采用兩組數據進行測試,第一組測試數據是單一座位的數據,其中80個靠窗的、80個靠過道的、20個無屬性的、2個VIP的。第二組測試數據是支持以組為單位的座位數據,其中包含40組,30個單一靠窗、30個單一靠過道、10個單一無任何屬性的。

      一是單一座位的自動分配:首先單擊“加載數據報表”按鈕,選擇第1組測試數據(這里僅支持加載Json格式的數據文件);然后,單擊“開始分配座位”按鈕,就實現自動分配座位的功能,同時可以查看分配座位所用的時間。單擊“查看分配結果”按鈕,查看本次座位分配的情況,在分配結果表格中,第一列表示用戶ID(此處用的是按照順序排列的),第二列是座位號,第三列是旅客所需座位數(如果座位數等于1,表示單個分配;如果座位數大于1,表示以組的形式進行分配的),最后一列表示是否滿足旅客需求。二是以組為單位的自動分配:首先清空數據庫中的數據,執(zhí)行database.py。然后單擊“加載數據報表”按鈕,選擇第2組測試數據;再單擊“開始分配座位”按鈕,就實現自動分配座位的功能,同時,可以查看分配座位所用的時間。

      結語

      本系統(tǒng)體現的創(chuàng)新特色之處,包括:動態(tài)處理座位屬性表,提高程序效率;座位屬性值采用一個整型值來存儲,目的是為了減少內存存儲和比較次數;支持加載Json格式的模擬數據報表文件;該系統(tǒng)不僅適用于航班座位自動分配,而且還適用于其他類型的座位自動分配,如火車、電影院等。

      猜你喜歡
      座位旅客分配
      換座位
      哈哈畫報(2022年5期)2022-07-11 05:57:42
      非常旅客意見簿
      應答器THR和TFFR分配及SIL等級探討
      遺產的分配
      一種分配十分不均的財富
      巴士上的座位
      績效考核分配的實踐與思考
      我是人
      故事大王(2018年3期)2018-05-03 09:55:52
      換座位
      給小旅客的禮物
      空中之家(2016年1期)2016-05-17 04:47:43
      融水| 馆陶县| 铜川市| 奉新县| 郧西县| 金寨县| 车致| 德保县| 樟树市| 高陵县| 措勤县| 泾阳县| 横峰县| 睢宁县| 磐石市| 沈丘县| 云浮市| 阳信县| 自治县| 湘西| 榆林市| 江源县| 新闻| 凤城市| 唐山市| 千阳县| 江华| 独山县| 安陆市| 邵阳市| 呼和浩特市| 电白县| 敖汉旗| 荥经县| 阜宁县| 灌云县| 甘孜县| 内丘县| 临江市| 秀山| 名山县|