• 
    

    
    

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

      基于C/S結(jié)構(gòu)票務(wù)信息系統(tǒng)的設(shè)計與實現(xiàn)

      2013-10-10 02:15:48陳捷南昌航空大學現(xiàn)代教育中心南昌市330063
      江西通信科技 2013年2期
      關(guān)鍵詞:檢票員班次售票員

      陳捷 南昌航空大學現(xiàn)代教育中心 南昌市 330063

      0、引言

      在傳統(tǒng)的人工票務(wù)管理中,由于人工的因素,往往帶來成本大、處理速度特慢不足,同時出錯的幾率比較大,效率是很低的?,F(xiàn)在,在世界各國,長途客運票務(wù)管理使用的基本上都是員工操作計算機的模式,計算機主要是借助軟件用來存儲、更新數(shù)據(jù)的。嚴格的說,這并不是智能化,但是,這樣的處理模式比已往的人工處理的好處顯然還是很明顯的,所有的數(shù)據(jù)都由數(shù)據(jù)庫管理,可以隨時動態(tài)的提取、存儲數(shù)據(jù),并可以將修改后的數(shù)據(jù)覆蓋掉原有的數(shù)據(jù)。以計算機為工具,數(shù)據(jù)庫為核心,用計算機技術(shù)和方法,綜合應(yīng)用管理工程技術(shù),行為科學技術(shù)等現(xiàn)代化科學技術(shù),建立一個管理信息平臺,提高企業(yè)的工作效率,減輕勞動強度。最終為用戶(乘客)提供更快捷周到的服務(wù),提高客運站的服務(wù)質(zhì)量,使企業(yè)在現(xiàn)有的人、財、物條件下,獲得最佳的工作效率及社會、經(jīng)濟效益。

      長途客運票務(wù)系統(tǒng)簡單易用,菜單簡潔,具有完善的操作,提示和初始化向?qū)?;查詢靈活、全面,統(tǒng)計數(shù)據(jù)清晰,簡明;有些還配圖形化顯示,一目了然。通過此票務(wù)系統(tǒng),能夠更好的協(xié)同好管理員、售票員和檢票員三者之間的工作,方便了長途客運站的管理。

      1、系統(tǒng)功能分析

      本系統(tǒng)是基于C/S結(jié)構(gòu)所開發(fā)的管理軟件,實現(xiàn)了多個客戶端共用一個擁有數(shù)據(jù)庫的服務(wù)器,這樣使得車票信息可以同步更新。系統(tǒng)可以選擇三種不同的角色登錄,如管理員、售票員和檢票員。

      系統(tǒng)中的售票查詢模塊可對日常售票情況進行統(tǒng)計分析,為管理員的生成車票和班次設(shè)置提供強有力的依據(jù),管理員可以根據(jù)當前情況進行調(diào)整,從而節(jié)約社會資源,同時提高了企業(yè)的經(jīng)濟效益。系統(tǒng)中的檢票查詢模塊可對班次的檢票情況進行統(tǒng)計分析,方便了管理員進行發(fā)車調(diào)度。

      1.1、登錄

      管理員、售票員和檢票員共用一個登錄界面,不同角色登錄后進入各自不同的操作界面。

      1.2、用戶管理

      選擇不同的用戶可以顯示出不同的用戶列表,并且可以添加、刪除用戶(售票員、管理員)。

      1.3、票面設(shè)置

      設(shè)置車票標題,可以通過復選框設(shè)置車票所要顯示的基本信息的選項,設(shè)置完成后可保存該票樣。

      1.4、生成車票

      管理員每天必須要生成第二天的車票,因為該系統(tǒng)發(fā)售兩日內(nèi)的車票;車票生成時可根據(jù)班次、路線或者全部來生成。

      1.5、班次設(shè)置

      管理員可根據(jù)實際情況來添加、刪除和修改具體班次信息。

      1.6、票價調(diào)整、

      管理員可根據(jù)當前情況調(diào)整票價,可單線調(diào)整,也可調(diào)整所有。

      1.7、售票管理

      售票員根據(jù)乘客需求,選擇班次或終點站和車票日期(只能是當天、第二天)聯(lián)合查詢所剩車票的詳細列表,雙擊具體車票可將車票添加到購票單中,付款后即可購票,并能產(chǎn)生出實體車票。

      1.8、退票管理

      售票員輸入退票的票號,選擇退款比例,系統(tǒng)自行計算出退款金額。

      管理員登錄后,可以選擇修改密碼、人員管理、票面設(shè)置、生成車票、線路設(shè)置、班次設(shè)置、票價調(diào)整、退出系統(tǒng)等功能來進行具體操作;售票員登錄后,可以選擇修改密碼、售票、退票、售票查詢、退出系統(tǒng)等功能來進行具體操作;檢票員登錄后,可以選擇修改密碼、檢票、檢票查詢、退出系統(tǒng)等功能來進行具體操作。系統(tǒng)流程圖如圖1所示:

      圖1 系統(tǒng)流程圖

      2、數(shù)據(jù)庫設(shè)計

      本系統(tǒng)數(shù)據(jù)庫采用Microsoft公司設(shè)計的關(guān)系數(shù)據(jù)庫SQL Server2000。長途客運票務(wù)系統(tǒng)中所使用到的數(shù)據(jù)表有:管理員信息表、售票員信息表、檢票員信息表、班次信息表、線路信息表、車票信息表、售票信息表、檢票信息表、退票信息表。

      2.1、管理員信息表:該數(shù)據(jù)表用于存儲管理員信息。包括管理員編號、管理員姓名、管理員密碼、管理員狀態(tài)、管理員最后登錄時間等。

      2.2、售票員信息表:該數(shù)據(jù)表用于存儲售票員信息。包括售票員編號、售票員姓名、售票員密碼、售票員狀態(tài)、售票員最后登錄時間等。

      2.3、檢票員信息表:該數(shù)據(jù)表用于存儲檢票員信息。包括檢票員編號、檢票員姓名、檢票員密碼、檢票員狀態(tài)、檢票員最后登錄時間等。

      2.4、線路信息表:該數(shù)據(jù)表用于儲存線路信息。包括線路名稱、起點站、終點站、總里程、時長、原始票價、當前票價等。

      2.5、班次信息表:該數(shù)據(jù)表用于存儲班次信息。包括班次名稱、線路名稱、發(fā)車時間、檢票口號、汽車類型、汽車牌照、座位總數(shù)、是否生成車票標識等。

      2.6、車票信息表:該數(shù)據(jù)表用于儲存車票信息。包括車票編號、班次名稱、車票日期、發(fā)車時間、起點站、終點站、車票價格、座位號、檢票口號、是否售出標識、是否檢票表示等。

      2.7、售票信息表:該數(shù)據(jù)表用于存儲售票信息,包括售票編號、車票編號、售票時間、售票員編號等。

      2.8、檢票信息表:該數(shù)據(jù)表用于存儲檢票信息,包括檢票編號、車票編號、檢票時間、檢票員編號等。

      2.9、退票信息表:該數(shù)據(jù)表用于存儲退票信息,包括退票編號、車票編號、退票時間、售票員編號等。

      3、系統(tǒng)構(gòu)架與設(shè)計

      在系統(tǒng)的設(shè)計過程中,將系統(tǒng)設(shè)計分為服務(wù)器端和客戶端,服務(wù)器端負責接收客戶請求并完成對數(shù)據(jù)庫的操作后將操作結(jié)果返回客戶端;客戶端負責發(fā)出請求并將接收到服務(wù)器的操作結(jié)果以圖形化界面顯示出來。客戶端設(shè)計分成三大模塊:管理員模塊、售票員模塊、檢票員模塊,各大模塊完成各自所需功能。

      客戶端與服務(wù)器端通過套接字來進行連接,套接字連接示意圖如圖2所示:

      圖2 套接字連接示意圖

      3.1、建立數(shù)據(jù)庫連接

      編寫一個類DBPool來實現(xiàn)數(shù)據(jù)庫連接,這里采用連接池的方式來實現(xiàn),用到該連接池須引入c3p0-0.9.0.4.jar包和jtds-1.2.2.jar包。實現(xiàn)代碼如下:

      public class DBPool{

      private static DBPool dbPool;

      private ComboPooledDataSource dataSource;

      static{

      dbPool = new DBPool();

      }

      public DBPool(){

      try{

      dataSource = new ComboPooledDataSource();

      dataSource.setUser("sa"); //訪問數(shù)據(jù)用戶名

      dataSource.setPassword("");//訪問數(shù)據(jù)庫密碼

      dataSource.setJdbcUrl("jdbc:jtds:sqlserver://localhost/Coach"); //數(shù)據(jù)庫所在位置和數(shù)據(jù)庫名字

      dataSource.setDriverClass("net.sourceforge.jtds.jdbc.Driver"); //驅(qū)動器名稱

      dataSource.setInitialPoolSize(2);

      //初始化連接數(shù)

      dataSource.setMinPoolSize(1);

      //最小連接數(shù)

      dataSource.setMaxPoolSize(1000);

      //最大連接數(shù)

      dataSource.setMaxStatements(5000);

      //連接到數(shù)據(jù)庫最多SQL語句數(shù)

      dataSource.setMaxIdleTime(60);

      }catch(PropertyVetoException e){

      throw new RuntimeException(e);

      }

      }

      public final static DBPool getInstance(){

      return dbPool;

      }

      public final synchronized

      Connection getConnection(){

      //關(guān)鍵字實現(xiàn)同步

      try {

      return dataSource.getConnection();

      }catch(SQLException e){

      throw new RuntimeException( "無法從數(shù)據(jù)源獲取連接 ",e);

      }

      }

      }

      3.2、售票子模塊

      3.2.1、功能介紹

      售票員登錄后,通過本操作界面可以完成售票工作。售票員輸入乘客所需班次名稱或到站(終點站)名稱查詢出所有剩余車票,根據(jù)乘客所需票數(shù)將車票添加到售票單中,結(jié)帳后完成售票并打印出實體車票。界面如圖3所示:

      圖3 售票界面

      3.2.2、設(shè)計過程

      a)可視化編程設(shè)計好售票界面,為各按鈕添加ActionEvent監(jiān)聽事件,分別為兩個JTable添加鼠標監(jiān)聽事件,這里事件監(jiān)聽分為單擊事件和雙擊事件兩種類型。為JSpinner添加監(jiān)聽。

      b)兩個“查詢”按鈕默認設(shè)置無效,只有選擇日期后,通過監(jiān)聽該JSpinner對象得到所需購票日期后才可以進行剩余車票查詢,得到剩余車票列表。選擇車票日期用JSpinner來實現(xiàn),通過創(chuàng)建SpinnerDateModel時的參數(shù)設(shè)置來限定日期只能選擇當天和第二天,這樣就限制了所售車票的日期。并為其添加監(jiān)聽事件,以便獲得JSpinner中的時間對象,通過字符轉(zhuǎn)換后截取相應(yīng)字符串即可獲得日期。

      c)鼠標選中剩余車票列表中的某數(shù)據(jù)行后,通過鼠標雙擊事件監(jiān)聽就可以將該車票添加到售票單列表中,不能添加重復的車票,進行此不合法操作彈出對話框進行警告。限定一次性售票張數(shù)不能超過5張,當售票單中數(shù)據(jù)行已為5張時,雙擊剩余車票中的某數(shù)據(jù)行時,彈出對話框提示已到售票上限。根據(jù)售票單中的數(shù)據(jù)項,系統(tǒng)自動計算所有已購車票價格總和,并將其顯示在應(yīng)收金額的JTextField中。監(jiān)聽鼠標雙擊事件代碼如下:

      if(e.getClickCount() == 2) { //鼠標雙擊事件

      String flag = "Added";

      //設(shè)置標志位

      mousePoint = e.getPoint(); //獲得鼠標位置

      currentRow = table.rowAtPoint(mousePoint);

      //獲得當期鼠標所在行

      DefaultTableModel tableModel_1 =(DefaultTableModel)

      table_1.getModel(); //創(chuàng)建售票單表格

      Object[]obj_1 = new Object[3]; //創(chuàng)建對象數(shù)組,利用該對象創(chuàng)建售票單表格

      .if(table_1.getRowCount()>4) {

      //限定一次購票不超過5張

      JOptionPane.showMessageDialog(this, "一次購票不能超過 5 張!","長途客運票務(wù)系統(tǒng)",

      JOptionPane.WARNING_MESSAGE);

      } else {

      if(table_1.getRowCount() == 0) { //購票單中沒有車票

      tableModel_1.addRow(obj_1); //將車票添加到購票單中

      } else {

      button_3.setEnabled(true);

      for(int =0;i

      flag = "Added"; //該車票已添加

      break;

      } else {

      flag = "NoAdd"; //該車票未添加

      }

      }

      if(flag.equals("Added")) {

      JOptionPane.showMessageDialog(this, "此票已添加到購票單中,不能重復購票!", "長途客運票務(wù)系統(tǒng)", JOptionPane.WARNING_MESSAGE);

      } else if(flag.equals("NoAdd")) {

      tableModel_1.addRow(obj_1); } //將車票添加到購票單中

      } }

      textField_3.setText(""+titprice*table_1.getRowCount()); //計算出所購票的總價格

      }

      4、結(jié)束語

      本文介紹了使用Java和SQL Sever2000設(shè)計一個票務(wù)管理系統(tǒng)的過程,系統(tǒng)實現(xiàn)了票務(wù)管理系統(tǒng)中售票管理、票據(jù)生成等重要功能,具有良好的用戶界面。本系統(tǒng)可以應(yīng)用于長途客運票務(wù)管理的領(lǐng)域。

      [1]耿祥義等.Java2實用教程.北京:清華大學出版社,2006.

      [2]蘇年樂等.Java+SQL Server項目開發(fā)實踐.北京:中國鐵道版社,2006.

      [3]王津濤等.Eclipse SWT/JFace開發(fā)實戰(zhàn)精解.北京:人民郵電出版社,2007.

      [4]王珊等.數(shù)據(jù)庫系統(tǒng)概論.北京:高等教育出版社,2006.

      [5]周緒等.SQL Server2000 中文版.北京:清華大學出版社,2002.

      [6]孫衛(wèi)琴.Java網(wǎng)絡(luò)編程精解.北京:電子工業(yè)出版社,2007.

      [7]林智揚等.深入淺出Java Swing 程序設(shè)計.北京:中國鐵道出版社,2005.

      [8]石志國等.JSP應(yīng)用教程.北京:清華大學出版社、北京交通大學出版社,2004.

      猜你喜歡
      檢票員班次售票員
      考慮編制受限的均衡任務(wù)覆蓋人員排班模型①
      公交車輛班次計劃自動編制探索
      檢票
      破例
      故事會(2017年12期)2017-06-22 23:05:37
      Parcourez la Chine avec des notions de chinois
      辛苦的電車售票員
      帶柔性休息時間的多技能呼叫中心班次設(shè)計
      我的票在這里
      故事大王(2014年5期)2014-06-25 01:42:31
      模范售票員
      買票
      喀喇沁旗| 九江县| 罗城| 商都县| 绩溪县| 利津县| 陆川县| 炎陵县| 天柱县| 蓝山县| 绵竹市| 庆城县| 达孜县| 隆子县| 若尔盖县| 文昌市| 青神县| 嘉黎县| 贵定县| 宝兴县| 桑日县| 闽清县| 梨树县| 延边| 措美县| 大宁县| 平凉市| 长沙市| 宁安市| 谢通门县| 永城市| 额济纳旗| 马关县| 铅山县| 延安市| 合肥市| 黎平县| 海晏县| 安化县| 深水埗区| 崇阳县|