下面為部分內容
近年來隨著信息技術的進步,網絡的快速發展,簡單的現實購票已經滿足不了用戶的需求。通過網上購票系統,避免了傳統購票方式給人們帶來的長途奔波,長時間排隊的疲勞;同時,降低了購票交易時間,提高了工作效率。本系統針對用戶的需求,可以注冊、登錄、查詢車票信息、購票、退票、改簽等,管理員還可以增加和刪除列車信息。通過java EE,將注冊用戶信息存入數據庫,實現了系統的注冊登錄功能,修改信息功能,查詢車票,購買車票功能。
本系統的用戶包括:普通用戶、管理員。
(1)普通用戶可以在網站上完成注冊和登錄。
(2)普通用戶可以根據車站名和車次號查詢列車信息。 ,
(3)普通用戶在登錄后可以在查詢列車信息頁面進行車票購買。。
(4)普通用戶可以查詢自己的車票信息,可以在里面完成改簽和退票的功 能。
(5)管理員也可以使用以上功能, 管理員還可以根據需求添加和刪除列車信息。
(1).后臺業務流程:(管理員操作流程),管理員登錄之后,首頁會比普通用戶多一個“管理”選項, 管理選項下可以執行添加列車信息和刪除列車信息的操作,見下圖:
(2).前臺業務流程:(用戶操作流程),注冊之后登錄會到達首頁,用戶可以在首頁中點擊用戶信息、車次查詢、車站查詢、我的車票等選項跳轉頁面。在用戶信息頁面中,用戶可以進行個人信息的編輯修改。我的車票頁面中,用戶可以查看個人的購票信息,并可以進行退票和改簽。在車次查詢頁面,用戶可以通過車次來查詢列車信息。在車站查詢頁面,用戶可以通過出發站和終點站來查詢列車信息。見下圖:
此系統主要包含兩個方面,一為前臺信息顯示系統即普通用戶空間、二為后臺信息管理系統即管理員管理空間。前者是面向公眾的一個窗口,通過前臺信息顯示系統方便普通游客查詢列車信息,購買車票,查詢已購車票等。后臺信息管理系統在管理員登錄后,管理員可以完成管理員獨有的添加列車信息和刪除列車信息的功能。
系統的基本功能結構圖如圖1.3所示:
用戶模塊:主要是為了讓用戶對網上購票系統平臺有一個基本的了解。通過用戶使用和反饋,管理員可以更好的調整列車信息。起可用模塊的功能有:
查詢列車:可以通過車次或車站名來查詢列車信息。
購買車票:可以在查詢列車的頁面選擇要購買的車票,在購買車票的頁面填寫個人信息實現購買車票的功能。
我的車票:用戶可以查看自己已購車票。
退票、改簽:用戶可以在我的車票頁面實現退票和改簽的功能。
管理員模塊:主要實現對列車信息的添加和刪除。其個管理模塊的功能有:
添加列車信息和 刪除列車信息。
本系統采用Navicat Lite for MySQL開發工具。
根據系統需求分析和保證數據統一、完整和高效的原則,需要對數據庫進行合理的設計。首先先在Navicat Lite for MySQL中建立一個名為“clks”的數據庫來存放本系統所必須的數據表。
本系統數據庫中主要的數據表分別為用戶表(user),管理員表(administrator), 車票表(ticket),列車信息表(traininfo)。其中uid,Aid,tid,taid,是各個表的主鍵,Ptype為乘客類型(學生,成人等)。如表2-1至2-4所示:
//根據車次查詢列車信息
public List<TrainInfo> getTrainNum(String trainNum) {Connection conn = DBUtil.getConn();//連接到數據庫PreparedStatement pstmt = null;//MySQL中的預編譯,減少SQL的編譯錯誤并增加SQL的安全性。ResultSet rs= null; //結果集,起到的作用是完成查詢結果的儲存功能。TrainInfo traininfo = null;//TrainInfo 對象的創建String sql="select taid,trainNum,firstStation,finallyStation,launchTime,duringTime,trainType from traininfo where trainNum= ?";//獲取traininfo 表中trainNum=?的信息List<TrainInfo> list=new ArrayList<TrainInfo>();try {pstmt = conn.prepareStatement(sql);pstmt.setString(1, trainNum);//將最上方傳入的trainNum 放到sql對應的第一個問號中。//查詢是否存在rs = pstmt.executeQuery();while(rs.next()) {int taid = rs.getInt("taid");//獲取信息并存入trainInfo對象中String trainNum2 = rs.getString("trainNum");String firstStation = rs.getString("firstStation");String finallyStation = rs.getString("finallyStation");String launchTime= rs.getString("launchTime");String duringTime = rs.getString("duringTime");String trainType = rs.getString("trainType");traininfo = new TrainInfo(taid,trainNum2,firstStation,finallyStation,launchTime,duringTime,trainType);list.add(traininfo);}} catch (SQLException e) {e.printStackTrace();}return list;}//根據車站查詢列車信息
public List<TrainInfo> getTrainName(String firstStation, String finallyStation) {Connection conn = DBUtil.getConn();//連接到數據庫PreparedStatement pstmt = null;//MySQL中的預編譯,減少SQL的編譯錯誤并增加SQL的安全性。ResultSet rs= null; //結果集,起到的作用是完成查詢結果的儲存功能。//通過 起始站和終點站查詢信息String sql = "select taid,trainNum,firstStation,finallyStation,launchTime,duringTime,trainType from traininfo where firstStation=? and finallyStation=?";List<TrainInfo> list =new ArrayList<TrainInfo>();try {pstmt = conn.prepareStatement(sql);pstmt.setString(1, firstStation);pstmt.setString(2, finallyStation); //查詢是否存在,存在則進行while中的操作rs = pstmt.executeQuery();while(rs.next()) {int taid = rs.getInt("taid");String trainNum=rs.getString("trainNum");String firstStation2 = rs.getString("firstStation");String finallyStation2 = rs.getString("finallyStation");String launchTime = rs.getString("launchTime");String duringTime = rs.getString("duringTime");String trainType = rs.getString("trainType");TrainInfo trainName = new TrainInfo(taid,trainNum,firstStation2,finallyStation2,launchTime,duringTime,trainType);list.add(trainName);}} catch (SQLException e) {e.printStackTrace();}return list;}/*** 獲得車票信息, 傳遞到reserve.jsp 頁面*/public TrainInfo getTrainInfo(int taid) {Connection conn = DBUtil.getConn();//連接到數據庫PreparedStatement pstmt = null;//MySQL中的預編譯,減少SQL的編譯錯誤并增加SQL的安全性。ResultSet rs= null; //結果集,起到的作用是完成查詢結果的儲存功能。TrainInfo trainInfo = null;//通過taid獲取車票信息String sql="select taid,trainNum,firstStation,finallyStation,launchTime,duringTime,trainType from traininfo where taid=?";try {pstmt = conn.prepareStatement(sql);pstmt.setInt(1,taid);rs = pstmt.executeQuery();while(rs.next()) {//獲取信息傳入trainInfo對象中int taid1 = rs.getInt("taid");String trainNum=rs.getString("trainNum");String firstStation = rs.getString("firstStation");String finallyStation = rs.getString("finallyStation");String launchTime = rs.getString("launchTime");String duringTime = rs.getString("duringTime");String trainType = rs.getString("trainType");trainInfo = new TrainInfo(taid1,trainNum,firstStation,finallyStation,launchTime,duringTime,trainType);}} catch (SQLException e) {e.printStackTrace();}return trainInfo;}//用戶訂票
public int Reserve(Ticket ticket){Connection conn = DBUtil.getConn();PreparedStatement pstmt = null;int i = 0;String sql="insert into ticket(trainNum,seatType,launchTime,firstStation,finallyStation,ticketPrice,name,idNum,telNum,email,duringTime,date,trueName) values(?,?,?,?,?,?,?,?,?,?,?,?,?)";try {pstmt = conn.prepareStatement(sql);//將傳入的ticket對象中的相應數值一一對應放進sql語句中。pstmt.setString(1, ticket.getTrainNum());pstmt.setString(2, ticket.getSeatType());pstmt.setString(3, ticket.getLaunchTime());pstmt.setString(4, ticket.getFirstStation());pstmt.setString(5, ticket.getFinallyStation());pstmt.setInt(6, ticket.getTicketPrice());pstmt.setString(7, ticket.getName());pstmt.setString(8, ticket.getIdNum());pstmt.setString(9, ticket.getTelNum());pstmt.setString(10, ticket.getEamil());pstmt.setString(11, ticket.getDuringTime());pstmt.setString(12, ticket.getDate());pstmt.setString(13, ticket.getTrueName());i = pstmt.executeUpdate();//檢測信息更新i=1為更新,=0為更新失敗 } catch (SQLException e) {e.printStackTrace();}return i;}//根據用戶name查詢車票信息public List<Ticket> getTicketById(String name) {Connection conn = DBUtil.getConn();//連接到數據庫PreparedStatement pstmt = null;//MySQL中的預編譯,減少SQL的編譯錯誤并增加SQL的安全性。ResultSet rs= null; //結果集,起到的作用是完成查詢結果的儲存功能。Ticket ticket = null;String sql = "select tid,trainNum,seatType,launchTime,firstStation,finallyStation,ticketPrice,name,duringTime,date,trueName,idNum from ticket where name=?";//獲取 ticket表中name=“?”的所有信息。List<Ticket> list = new ArrayList<Ticket>();try {pstmt = conn.prepareStatement(sql);pstmt.setString(1, name);rs = pstmt.executeQuery();if(rs.next()) {int tid = rs.getInt("tid"); //將獲取的信息傳遞到Ticket對象當中String trainNum= rs.getString("trainNum");String seatType = rs.getString("seatType");String launchTime= rs.getString("launchTime");String firstStation = rs.getString("firstStation");String finallyStation= rs.getString("finallyStation");int ticketPrice= rs.getInt("ticketPrice");String name1= rs.getString("name");String duringTime = rs.getString("duringTime");String date = rs.getString("date");String trueName = rs.getString("trueName");String idNum = rs.getString("idNum");ticket = new Ticket(tid,trainNum,seatType,launchTime,firstStation,finallyStation,ticketPrice,name1,duringTime,date,trueName,idNum);list.add(ticket);}} catch (SQLException e) {e.printStackTrace();}return list;}//退票public int getTicketDelete(int tid) {Connection conn = DBUtil.getConn();//連接到數據庫PreparedStatement pstmt = null;//MySQL中的預編譯,減少SQL的編譯錯誤并增加SQL的安全性。int i = 0;String sql="delete from ticket where tid = ?"; 刪除ticket表中 tid為“?”的信息try {pstmt = conn.prepareStatement(sql);pstmt.setInt(1, tid); //將傳進來的 taid 放到 sql語句的問號中。i = pstmt.executeUpdate();} catch (SQLException e) {e.printStackTrace();}return i;} //管理員刪除列車信息public int deleteTrainInfo(int taid) {Connection conn = DBUtil.getConn();PreparedStatement pstmt = null;ResultSet rs = null;String sql = "delete from trainInfo where taid = ?";//刪除tranInfo表中 taid為“?”的信息int i = 0;try {pstmt = conn.prepareStatement(sql);pstmt.setInt(1, taid);//將傳進來的 taid 放到 sql語句的問號中。 i = pstmt.executeUpdate(); //檢測是否更新 } catch (SQLException e) {e.printStackTrace();}return i;}本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
北京四大火車站稱為北京站、北京西站、北京南站、北京北站,也是北京四大鐵路客運站之一。一個有意思的事情是,北京的四大客運站都位于幾個區的交界處,而且都在東城區、西城區和其他區的交界處。北京鐵路樞紐如圖。北京鐵路樞紐北京鐵路樞紐北京鐵路樞紐為環形鐵路樞紐,其核心區形成內環(北京-北京南-廣安門-北京西)和外環(豐臺、豐西-東南環-雙橋-東北環-西北環-豐沙-豐臺、豐西)雙環。北京最經典火車站——北京站...
(資料圖片)隨著社會越來越發達,大家都選擇在網絡上汲取相關知識內容,比如關于北京五道口,為了更好的解答大家的問題,小編也是翻閱整理了相應內容,下面就一起來看一下吧!由于是從北京北站出發的京包鐵路的第五個道口,故名五道口,而其前后各有四道口,雙清路道口,目前并沒有修建立體道口,所有列車通過時需要圍欄擋住過往車輛行人通行,隨著該地區交通量不斷增大,經常造成交通堵塞。五道口又指中國人民銀行研究生部,學校...
(資料圖)朗坤環境2023年5月11日新股申購,以下為新股介紹:朗坤環境,發行日期為2023年5月11日,申購代碼為301305,擬公開發行A股6089.27萬股,占發行后總股本的比例為25%,網上發行1552.75萬股,單一賬戶申購上限為1.55萬股,頂格申購需配市值為15.5萬元。該新股將于創業板上市。該新股主要承銷商為招商證券股份有限公司,其承銷方式是余額包銷,發行前每股凈資產為10.1元。...