基于WEB的企業(yè)人事管理系統(tǒng)的設(shè)計與實現(xiàn)
基于WEB的企業(yè)人事管理系統(tǒng)的設(shè)計與實現(xiàn),基于,web,企業(yè),人事管理系統(tǒng),設(shè)計,實現(xiàn)
摘 要
在這個信息蓬勃發(fā)展的時代,各個企業(yè)的規(guī)模也都越來越大,企業(yè)內(nèi)部人事發(fā)生變動的頻率也在不斷增加。人們需要不斷的學(xué)習(xí)補(bǔ)充知識,而傳統(tǒng)的人事管理中因為人力有限并受到時間空間的限制,已經(jīng)不能滿足人們的要求了。隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,計算機(jī)漸漸成為人們獲取資源的重要方式之一。而對于各大公司而言,計算機(jī)化得公司人事系統(tǒng)正在一步一步的普及,不管是中小型公司還是大型公司都已經(jīng)開始引進(jìn)或者自己著手研發(fā)公司人事管理系統(tǒng)。
本系統(tǒng)主要基于 MVC 模式的 B/S 架構(gòu),由 JSP+Servlet 實現(xiàn)的,并且是在 Java 的編譯環(huán)境下執(zhí)行的,由于 Java 是面向?qū)ο缶幊?,所以在開發(fā)的時候具有 很好的面向?qū)ο笮裕瑫r使用 Dreamware 來進(jìn)行網(wǎng)頁設(shè)計,這給我們的系統(tǒng)頁面 設(shè)計帶來了很大的方便,減輕了工作量。在設(shè)計過程中,參考 12306 網(wǎng)站的功能 和模塊進(jìn)行設(shè)計,主要功能有用戶注冊登陸、管理聯(lián)系人、查詢車次、車票預(yù)訂、 后臺管理等。
關(guān)鍵詞:車票預(yù)訂系統(tǒng);JSP;Oracle
ABSTRACT
With the improvement of modern science and technology, the Internet has also developed rapidly, especially in recent years, the Internet has penetrated into people's daily life gradually. With the scope of people's activities increasing, travelling becomes a big problem. The majority of people now are traveling by train, they want to be able to buy a ticket without going out, and view the train departure time and remaining tickets, all of these need a suitable system to buy train tickets urgently, using this system can save resources and time for passengers, what’s more, it can improve work efficiency to easy people's travel.
This system is mainly based on the MVC pattern of B / S architecture which is implemented by the JSP and Servlet, the compiling environment is JAVA, Java is an object-oriented programming language, it have the object-oriented nature, using Dreamware for web design can bring convenience to us when designing web page, During the designing process, refer to the features and modules design of 12306, the main functions: user register, userlogin, contact management, trip inquiries, tickets booking background management.
Key words: ticket reservation system; JSP; Oracle
目 錄
1 緒論 1
1.1 研究的背景及意義 1
1.1.1 選題的背景 1
1.1.2 研究的意義 1
1.1.3 國內(nèi)外發(fā)展現(xiàn)狀 1
1.2 論文的組織結(jié)構(gòu) 2
2 需求分析 3
2.1 可行性分析 3
2.2 功能需求 3
2.2.1 子系統(tǒng)/模塊說明 3
2.3 非功能需求 4
2.3.1 性能需求 4
2.3.2 其它需求 4
2.3 開發(fā)工具簡介 5
2.3.1 Oracle 數(shù)據(jù)庫 5
2.3.2 Tomcat 服務(wù)器 5
2.3.3 Myeclipse10.0 5
3 總體設(shè)計 6
3.1 設(shè)計思想 6
3.2 系統(tǒng)整體框架 6
3.3 功能模塊設(shè)計 6
3.3.1 前臺操作模塊 6
3.3.2 后臺操作模塊 7
4 數(shù)據(jù)庫設(shè)計 9
4.1 概念結(jié)構(gòu)設(shè)計 9
4.1.1 設(shè)計思路 9
4.1.2 E-R 圖 9
4.2 邏輯結(jié)構(gòu)設(shè)計 10
4.2.1 設(shè)計思路 10
4.2.2 邏輯模型 10
4.3 物理結(jié)構(gòu)設(shè)計 13
4.3.1 存儲結(jié)構(gòu) 13
5 詳細(xì)設(shè)計 18
5.1 系統(tǒng)主要功能模塊介紹 18
5.1.1 前臺操作模塊 18
5.1.2 后臺操作模塊 18
5.2 前臺模塊設(shè)計 19
5.2.1 用戶注冊 19
5.2.2 用戶登錄 19
5.2.3 列車信息查詢 20
5.2.4 車票預(yù)訂 21
5.3 后臺模塊設(shè)計 22
5.3.1 管理員登錄 22
5.3.2 后臺管理操作 23
6 系統(tǒng)測試 25
6.1 測試內(nèi)容 25
6.2 測試方法 25
6.3 測試用例 25
6.3.1 系統(tǒng)登錄測試 25
6.3.2 注冊用戶輸入信息測試 26
6.3.3 系統(tǒng)用戶登錄測試 27
6.3.4 車次信息黑盒測試 28
6.4 測試結(jié)果 28
7 總結(jié) 28
參考文獻(xiàn) 30
致 謝 31
1 緒論
1.1 研究的背景及意義
1.1.1 選題的背景
隨著現(xiàn)在科技的越來越快速的發(fā)展,計算機(jī)學(xué)科也越來越被人們所接受,計 算機(jī)與人們的生活也開始息息相關(guān)起來,它已深入到人類社會的各個領(lǐng)域之中, 并且發(fā)揮著越來越重要的作用,與人們的衣食住行已經(jīng)密不可分,對于使用計算 機(jī)和網(wǎng)絡(luò)的形式對火車信息進(jìn)行處理和管理的方式是非??尚械?,因為使用軟件 的方式對火車信息進(jìn)行管理具有人工管理所沒有的優(yōu)點(diǎn),例如:查詢方便,保存簡 單,存儲量大,可靠性高,成本低,壽命長等,使用軟件對火車信息進(jìn)行管理, 極大地提高了管理效率,并且也比較科學(xué),比較正規(guī),這也是與世界先進(jìn)國家接 軌的重要條件.
1.1.2 研究的意義
從古至今,出行一直是與人們的生活密不可分的,特別是現(xiàn)在中國擁有龐大 的人口基數(shù),所以擁有一個好的售票軟件是非常有必要的,現(xiàn)在我們國家也已經(jīng) 擁有了比較先進(jìn)的,發(fā)達(dá)的鐵路網(wǎng),但是售票系統(tǒng)卻還是上個世紀(jì) 60 年代左右
開發(fā)的一個系統(tǒng),這就有點(diǎn)跟不上社會前進(jìn)的腳步了,特別是在 2003 年之后, 國家開始加快發(fā)展現(xiàn)代化建設(shè)的腳步,中國的鐵路網(wǎng)也越來越全面,基本上覆蓋 了全國各地,這樣,售票問題需要解決就變成了一個非常嚴(yán)峻的問題,由于售票 問題一直得不到解決,每年到了節(jié)假日,特別是春運(yùn)期間,全國人民都會因為買 票而非常苦惱,更有一些人由于買不到車票而不能回家過年,雖然現(xiàn)在鐵道部也 推出了電話訂票,但由于電話訂票比較麻煩,人們還是比較傾向于網(wǎng)上購票。由 于大量的人都在網(wǎng)上購票,這就對系統(tǒng)維護(hù)和運(yùn)行構(gòu)成了極大的挑戰(zhàn),所以,研 發(fā)一個好的售票系統(tǒng)是非常重要的,這也對我們實施國家惠民利民政策具有極其 重要的意義。
1.1.3 國內(nèi)外發(fā)展現(xiàn)狀
目前,使用售票軟件對交通運(yùn)輸信息進(jìn)行管理已經(jīng)在國內(nèi)外都得到了非常 廣泛的應(yīng)用,不管是對飛機(jī)信息,火車信息,汽車信息,輪船信息等,這些售票 方式現(xiàn)在都能夠在網(wǎng)上進(jìn)行訂票,退票,改簽的操作,這也極大的方便了人們的 出行,由于國外的各種售票系統(tǒng)都比國內(nèi)的運(yùn)用的較早,并且由于國外的通信條 件比國內(nèi)先進(jìn),所以國內(nèi)的售票系統(tǒng)與國外的還是有較大的區(qū)別的,國外的大多
9
數(shù)使用的主機(jī)/終端方式,由于我們國家的各種售票系統(tǒng)才剛剛大范圍的投入使 用,還有許多不足的地方,所以也還需要我們不斷的去修改和完善,由于我們國 家的人口比較多,這樣也就導(dǎo)致變化基數(shù)比較大,特別是在節(jié)假日,春運(yùn)期間, 各種售票系統(tǒng)就能很明顯的顯示出設(shè)計不足的地方,在春運(yùn)期間,大多數(shù)人都會 使用火車出行,而黃牛的各種壟斷車票的手段,使得很多人出現(xiàn)買票難的問題。 但總體還說,我國的鐵路售票系統(tǒng)還是很不錯的,因為具有非常廣的覆蓋范圍、 交易的量也大、實時性非常強(qiáng)、席位精確管理、安全可靠性高,系統(tǒng)復(fù)雜程度高 等特點(diǎn),這也是國外任何一個國家的鐵路售票系統(tǒng)所不能比擬的。
1.2 論文的組織結(jié)構(gòu)
第一章 緒論:主要介紹選題背景、國內(nèi)外發(fā)展現(xiàn)狀及選題意義。
第二章 需求分析:根據(jù)系統(tǒng)需求進(jìn)行分析,包括功能需求、非功能需求和 可行性分析。同時也包括對開發(fā)工具的介紹。
第三章 總體設(shè)計:介紹系統(tǒng)設(shè)計思想、整體框架和系統(tǒng)功能模塊設(shè)計。 第四章 數(shù)據(jù)庫設(shè)計:主要體現(xiàn)該系統(tǒng)的表的結(jié)構(gòu)和存儲方式,以及表與表
之間的關(guān)系。
第五章 詳細(xì)設(shè)計:對系統(tǒng)的主要模塊進(jìn)行分模塊詳細(xì)的介紹。
第六章 系統(tǒng)測試:對各個模塊進(jìn)行黑盒白盒測試,對測試結(jié)果進(jìn)行分析。 第七章 總結(jié)與展望:對設(shè)計該項目與論文的編寫的總結(jié)和對自己未來的規(guī)
劃期望。
2 需求分析
2.1 可行性分析
(1)技術(shù)可行性分析 在完成該項目過程中所使用的軟硬件工具要求不是很高。對于硬件方面,由
于軟件開發(fā)所需要的工具比較少,只需要一臺電腦就能完成開發(fā)工作,所以在開 發(fā)過程中使用自己的電腦就能進(jìn)行開發(fā)。在軟件資源方面,大學(xué)期間,也學(xué)過各 種語言,開發(fā)過一些軟件項目,對于代碼編寫有一定的能力,對系統(tǒng)的開發(fā)也比 較熟悉,同時對數(shù)據(jù)庫知識的也有一定的了解。但是由于本人開發(fā)項目經(jīng)驗不足, 有些問題不能得到及時的解決,所以開發(fā)速度會比較慢。
(2)經(jīng)濟(jì)可行性分析 從市場上面來看,購票系統(tǒng)還是比較少的,所以開發(fā)這樣的一個購票網(wǎng)站在
市場上還是會有很大用途,擁有較好的前景。待系統(tǒng)開發(fā)出來后,進(jìn)行推廣運(yùn)營, 利潤也是非常可觀。
(3)運(yùn)行可行性分析 運(yùn)行可行性是指系統(tǒng)能夠很好的運(yùn)行,不會在運(yùn)行上出現(xiàn)較大的錯誤。在該
項目完成之后,能夠適用于不同的瀏覽器,并且具有很好的兼容性,能夠適用于 所有的用戶,并且該項目操作簡單,適用性強(qiáng),在運(yùn)行過程中不會對其他軟件產(chǎn) 生任何影響。
2.2 功能需求
2.2.1 子系統(tǒng)/模塊說明
訂票系統(tǒng)的主要對象有:用戶,票務(wù)管理。針對這些不同的對象應(yīng)劃分相應(yīng) 的子系統(tǒng)進(jìn)行管理。
(1)用戶管理子系統(tǒng) 針對平臺的用戶分為注冊用戶、普通游客和后臺管理員,子系統(tǒng)需要完成對
注冊用戶的信息注冊審核,以及對普通游客的權(quán)限限制。游客只能查詢車次的信 息不能購票,如果需要購買必須注冊才能在訂票系統(tǒng)內(nèi)購票。作為訂票系統(tǒng)的一 個重要組成部分,用戶管理子系統(tǒng)是以通過用戶管理提升購票的可靠性和整體水 平從而提升用戶的體驗度為目標(biāo),同時也是為了保證系統(tǒng)的安全性和可靠性。
(2)票務(wù)管理子系統(tǒng) 作為訂票系統(tǒng)的最大子系統(tǒng),最核心的功能是能夠查詢票務(wù)信息,供用戶訂
票,同時也包括后臺管理員對票務(wù)信息的發(fā)布,管理員可以查詢所有的用戶訂票 的信息,方便后臺管理員進(jìn)行管理。用戶在訂票后,生成訂單,供用戶支付或退 票。在整個過程中,票務(wù)管理子系統(tǒng)需要嚴(yán)格的做到座位分布的嚴(yán)謹(jǐn)性和出票的 一致性。
2.3 非功能需求
2.3.1 性能需求
用戶在軟件響應(yīng)速度、結(jié)果精度、運(yùn)行時資源消耗量等方面的要求。
(1)系統(tǒng)響應(yīng)時間,在一般情況下保證在 1s 以內(nèi),在使用高峰期情況下保證在 3S 以內(nèi)。
(2)系統(tǒng)吞吐量,保證每日 150000 條數(shù)據(jù)的吞吐量(具體待定)。
(3)保證數(shù)據(jù)的可用性和準(zhǔn)確性。
(4)保證系統(tǒng)能在 24 小時內(nèi)回復(fù)。
2.3.2 其它需求
為了能夠保證系統(tǒng)順利運(yùn)行,除了性能需求分析外還要分析其他的需求,因 為一款好的軟件是多方面的。所以在開發(fā)過程中,我們還應(yīng)注意如下幾點(diǎn):
(1)可擴(kuò)展性
可擴(kuò)展性是指能夠?qū)ο到y(tǒng)進(jìn)行功能擴(kuò)展,意思就是能夠增加一些該項目中原 來沒有的功能,能夠根據(jù)用戶的需求增加不同的功能,這樣才能保證系統(tǒng)被用戶 所喜愛而不被淘汰。
(2)兼容性
兼容性是指一個軟件能夠在不同的操作系統(tǒng)中和不同的瀏覽器下都能夠順 利的運(yùn)行,兼容性是判斷一個軟件是否成功的一個重要標(biāo)志。因為如果一個軟件 只能在固定的瀏覽器中使用或者在固定的操作系統(tǒng)使用,這很難被用戶所接受, 這個軟件也不能迅速的得到推廣。
(3)易用性
易用性是指一個軟件有很好的操作界面,易于用戶操作,并且符合用戶的操 作習(xí)慣,每一個功能都能被用戶所熟悉。
(4)可維護(hù)性 可維護(hù)性是指一個軟件在被推廣之后,能夠利于維護(hù),出現(xiàn)問題能夠及時修
護(hù),可維護(hù)性是系統(tǒng)成功的一個重要標(biāo)志。
(5)可靠性和安全性
可靠性和安全性對每一個軟件都適用,因為每一個系統(tǒng)里面都保存了大量了 用戶信息,這些用戶的信息都是保密的,如果我們所開發(fā)的系統(tǒng)安全性不高,可 能就會出現(xiàn)問題,導(dǎo)致用戶信息泄露。所以系統(tǒng)開發(fā)過程中,我們也要盡可能的 考慮到系統(tǒng)安全性問題和可靠性問題。
2.3 開發(fā)工具簡介
2.3.1 Oracle 數(shù)據(jù)庫
Oracle 是甲骨文公司的一款關(guān)系數(shù)據(jù)庫管理系統(tǒng)。它是在數(shù)據(jù)庫領(lǐng)域一直處 于領(lǐng)先地位。Oracle 有很好的移植性,并且功能強(qiáng)大,使用也很方便,能夠使 用于各種操作環(huán)境,現(xiàn)在大多開發(fā)者都在使用 Oracle,并且 Oracle 數(shù)據(jù)庫的安 全性也比較高,相比于 Mysql、Sql Server 這些數(shù)據(jù)庫 Oracle 具有明顯的優(yōu)點(diǎn), 對開發(fā)者有更大的吸引力??梢哉f Oracle 是世界上使用最廣泛的數(shù)據(jù)庫之一。
2.3.2 Tomcat 服務(wù)器
Tomcat 是 Apache 軟件基金會(Apache Software Foundation)的 Jakarta 項目中的一個核心項目,由 Apache、Sun 和其他一些公司及個人共同開發(fā)而成。 由于有了 Sun 的參與和支持,最新的 Servlet 和 JSP 規(guī)范總是能在 Tomcat 中 得到體現(xiàn),Tomcat 5 支持最新的 Servlet 2.4 和 JSP 2.0 規(guī)范。因為 Tomcat 技 術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深受 Java 愛好者的喜愛并得到了部分軟件 開發(fā)商的認(rèn)可,成為目前比較流行的 Web 應(yīng)用服務(wù)器。
2.3.3 Myeclipse10.0
該系統(tǒng)采用的代碼編寫工具是 Myeclipse10.0,基于以往的開發(fā)也使用的是 該工具,所以開發(fā)起來比較容易。MyEclipse 是一個十分強(qiáng)大的編譯工具,并且 MyEclipse 集成了許多功能,web 所需要的工具都被 MyEclipse 集成,所以該開 發(fā)工具能夠很好的支持 web 項目的開發(fā)。并且 MyEclipse 可以支持 JavaServlet, AJAX,JSP,JDBC 數(shù)據(jù)庫鏈接工具等多項功能。
3 總體設(shè)計
3.1 設(shè)計思想
網(wǎng)站的前臺讀取數(shù)據(jù)庫的數(shù)據(jù)并展示,網(wǎng)站的后臺用于更新整個網(wǎng)站的數(shù) 據(jù),數(shù)據(jù)庫用以來存放網(wǎng)站的數(shù)據(jù)。用戶根據(jù)自己的需求選擇票務(wù)信息,完成整 個訂票過程,則在前臺就需要將客戶所需要的票信息通過查詢數(shù)據(jù)庫全部顯示在 前臺??紤]到整個系統(tǒng)的價值意義和前臺的美觀,在布局方面要合理,界面設(shè)計 要符合用戶的操作習(xí)慣。
3.2 系統(tǒng)整體框架
系統(tǒng)模塊圖如圖 1 所示:
圖 1 系統(tǒng)功能模塊圖
3.3 功能模塊設(shè)計
3.3.1 前臺操作模塊
前臺界面采用統(tǒng)一的風(fēng)格,展現(xiàn)訂票系統(tǒng)獨(dú)有的特點(diǎn),同時方便今后的維護(hù) 與拓展;整個風(fēng)格以藍(lán)色為主,體現(xiàn)訂票系統(tǒng)簡約的風(fēng)格;界面設(shè)計簡潔大方, 體現(xiàn)目前大多數(shù)網(wǎng)站主流的設(shè)計理念;采用 javascript 人機(jī)交互,實現(xiàn)動態(tài)美 感。
用戶在首次進(jìn)入該系統(tǒng),則會先進(jìn)行注冊,再進(jìn)行登錄,若未進(jìn)行登錄就如 系統(tǒng),則會自動跳到登錄界面。登錄系統(tǒng)后,用戶進(jìn)行查詢,訂票,生成訂單后, 用戶可以進(jìn)入我的 12306 查看訂單信息,可以選擇是退票還是付款兩種方式來完
整個訂票流程。 前臺操作流程圖如圖 2 所示:
圖 2 網(wǎng)站前臺流程圖
3.3.2 后臺操作模塊
在后臺的管理中,管理員可以完成網(wǎng)站首頁公告的發(fā)布、新聞動態(tài)的發(fā)布、 對用戶訂單的查詢、車次的添加和刪除,同時擁有對用戶管理、票務(wù)管理和維護(hù) 等的功能。系統(tǒng)開發(fā)基于 javabean+servlet+jsp 的 J2EE 框架實現(xiàn),將頁面顯 示和后臺業(yè)務(wù)處理分開,從而簡化頁面設(shè)計和編程之間的開發(fā)工作。
后臺是完成對整個網(wǎng)站系統(tǒng)的各項操作與維護(hù),它的功能相比于前臺復(fù)雜。 整個后臺界面采用 jsp+css 負(fù)責(zé)整個網(wǎng)頁界面的布局。根據(jù)需求,大致可以分為 添加和修改模塊,比如新聞動態(tài)、車次的添加與修改,為了保證網(wǎng)頁內(nèi)容的美觀 性,使用所見即所得的富文本編輯器,類似 word 操作,輕巧快捷方便。 管理員 在登錄后臺系統(tǒng)后,可以對用戶信息、車次信息、新聞動態(tài)和常見問題進(jìn)行維護(hù) 和管理,同時管理員也可以修改自身的密碼。
后臺操作流程圖如圖 3 所示:
圖 3 網(wǎng)站后臺流程圖
4 數(shù)據(jù)庫設(shè)計
4.1 概念結(jié)構(gòu)設(shè)計
4.1.1 設(shè)計思路
概念結(jié)構(gòu)設(shè)計的目標(biāo)是通過對用戶需求進(jìn)行綜合、歸納與抽象,形成一個獨(dú) 立于具體 DBMS 的概念模型。
(1)一個管理員可以維護(hù)多條問題信息,一條問題信息只能被一個管理員維護(hù)。
(2)一個管理員可以維護(hù)多條新聞動態(tài),一條新聞動態(tài)只能被一個管理員維護(hù)。
(3)一個注冊用戶下可以擁有多個聯(lián)系人,一個聯(lián)系人也可屬于多個用戶。
(4)一個用戶可以擁有多張車票信息,一張車票只能被一個用戶所擁有。
(5)一輛車次可以擁有多個車票信息,一張車票只能擁有一輛車次的信息。 (6) 一個管理員可以維護(hù)多輛車次信息,一輛車次只能被一個管理員維護(hù)。
4.1.2 E-R 圖
車票預(yù)訂 E-R 圖如圖 4 所示:
圖 4 車票預(yù)訂 E-R 圖
4.2 邏輯結(jié)構(gòu)設(shè)計
4.2.1 設(shè)計思路
數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計就是把概念結(jié)構(gòu)設(shè)計階段設(shè)計好的基本 E-R 圖轉(zhuǎn) 換為與選用的 DBMS 產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。
對于一對多關(guān)系,將一的一方的主鍵作為多的一方的外鍵。 對于多對多的關(guān)系,進(jìn)行拆分,分成兩個一對多關(guān)系,添加一張關(guān)聯(lián)表,
將兩個實體的主鍵作為關(guān)聯(lián)表的外鍵。
4.2.2 邏輯模型
(1)管理員表的 E-R 圖如圖 5 所示:
圖 5 管理員 E-R 圖
(2)用戶表的 E-R 圖如圖 6 所示:
圖 6 用戶信息 E-R 圖
19
(3)常用聯(lián)系人表的 E-R 圖如圖 7 所示:
圖 7 常用聯(lián)系人 E-R 圖
(4)車次表的 E-R 圖如圖 8 所示:
圖 8 車次信息 E-R 圖
(5)列車車次表的 E-R 圖如圖 9 所示:
車站
車次id
天數(shù)
站序
到站時間
TRAIN
離站時間
里程
狀態(tài)
列車車次信息
圖 9 列車車次信息 E-R 圖
(6)車票信息表的 E-R 圖如圖 10 所示:
圖 10 車票信息 E-R 圖
(7)新聞表的 E-R 圖如圖 11 所示:
圖 11 新聞信息 E-R 圖
(8)常見問題表的 E-R 圖如圖 12 所示:
圖 12 常見問題信息 E-R 圖
4.3 物理結(jié)構(gòu)設(shè)計
4.3.1 存儲結(jié)構(gòu)
表 1:管理員表(管理員 id,名稱,密碼)。
表 2:新用戶表(用戶 id,用戶名,用戶 密碼,密保問題,密保答案, 真實姓名,性別,國家,證件類型,證件號碼,生日,郵件,電話,狀態(tài), 學(xué)校所在省份,學(xué)校名稱,所在院系,班級,學(xué)號,學(xué)號,學(xué)制,入學(xué)年份, 優(yōu)惠 id,優(yōu)惠區(qū)間起點(diǎn),優(yōu)惠區(qū)間終點(diǎn))。
表 3:常用聯(lián)系人表(常用聯(lián)系人 id,真實姓名,性別,國家,證件類 型,證件號碼,生日,郵件,電話,狀態(tài),學(xué)校所在省份,學(xué)校名稱,所在 院系,班級,學(xué)號,學(xué)號,學(xué)制,入學(xué)年份,優(yōu)惠 id,優(yōu)惠區(qū)間起點(diǎn),優(yōu)惠 區(qū)間終點(diǎn),新用戶 id)。
表 4:車次信息表(車次 id,列車車次號,車次等級,始發(fā)站,始發(fā)時 間,終點(diǎn)站,終到時間)。
表 5:列車車次表(列車車次 id,站序,車站,車次 id,天數(shù),到站時 刻,出站時刻,狀態(tài),里程)。
表 6:車票信息表(車票 id,票主,車次,座位號,座位類型,車票類 型,票價,發(fā)車日期,起點(diǎn),終點(diǎn),發(fā)車時間,到站時間,身份證號碼,手 機(jī)號碼,購買時間,票的狀態(tài),票的購買者)。
表 7:新聞表(新聞 id,標(biāo)題,出版時間,圖片路徑,作者,內(nèi)容)。 表 8:問題管理表(問題 id,標(biāo)題,問題類型,添加時間,圖片路徑,
作者,內(nèi)容)。
(1)管理員表如表 1 所示:
表 1 管理員表(admin)
字段名
字段類型
字段長度
允許空值
主鍵
自動增長
備注
AID TANAME
INT VARCHAR2
20
Y
Y
管理員 id
管理員名稱
TAPWD
VARCHAR2
20
密碼
(2)用戶表如表 2 所示:
表 2 用戶表(userinfo)
字段名
字段類型
字段長度
允許空值
主鍵
自動增長
備注
USERID
INT
否
Y
Y
用戶 id
TUNAME
VARCHAR2
40
是
用戶名稱
TUPWD
VARCHAR2
40
是
密碼
TQUESTION
VARCHAR2
100
是
密保問題
TANSWER
VARCHAR2
100
是
密保答案
TREALNAME
VARCHAR2
20
是
真實姓名
TSEX
VARCHAR2
10
是
性別
TCOUNTRY
VARCHAR2
40
是
國家
TIDTYPE
VARCHAR2
40
是
證件類型
TIDCARD
VARCHAR2
20
是
證件號碼
TBIRTHDAY
VARCHAR2
20
是
生日
TEMAIL
VARCHAR2
50
是
郵件
TELEPHONE
VARCHAR2
20
是
電話
TSTATUS
VARCHAR2
20
是
狀態(tài)
TPROVINCE
VARCHAR2
40
是
學(xué)校省份
TCOLLEGE
VARCHAR2
40
是
學(xué)校名稱
TDEPARTMENT
VARCHAR2
40
是
所在院系
TBANJI
VARCHAR2
20
是
班級
TSNO
VARCHAR2
20
是
學(xué)號
TSCHOOLING
VARCHAR2
20
是
學(xué)制
續(xù)表 2
字段名 字段類型
字段長度
允許空值
主鍵
自動增長 備注
TINYEAR VARCHAR2
20
是
入學(xué)年份
TYOUHUIID VARCHAR2
20
是
優(yōu)惠 id
TSTARTLOCATION VARCHAR2
20
是
優(yōu)惠區(qū)間起點(diǎn)
TENDLOCATION VARCHAR2
20
是
優(yōu)惠區(qū)間終點(diǎn)
TEMP1 VARCHAR2
40
是
附加字段 1
TEMP2 VARCHAR2
40
是
附加字段 2
(3)常用聯(lián)系人表如表 3 所示:
表 3 常用聯(lián)系人表(contact)
字段名
字段類型
字段長度
允許空值
主鍵
自動增長 備注
CONID
INT
否
Y
Y 用戶 id
TREALNAME
VARCHAR2
20
是
真實姓名
TSEX
VARCHAR2
10
是
性別
TCOUNTRY
VARCHAR2
40
是
國家
TIDTYPE
VARCHAR2
40
是
證件類型
TIDCARD
VARCHAR2
20
是
證件號碼
TBIRTHDAY
VARCHAR2
20
是
生日
TEMAIL
VARCHAR2
50
是
郵件
TELEPHONE
VARCHAR2
20
是
電話
TSTATUS
VARCHAR2
20
是
狀態(tài)
TPROVINCE
VARCHAR2
40
是
學(xué)校省份
TDEPARTMENT
VARCHAR2
40
是
所在院系
TBANJI
VARCHAR2
20
是
班級
TSNO
VARCHAR2
20
是
學(xué)號
TSCHOOLING
VARCHAR2
20
是
學(xué)制
TINYEAR
VARCHAR2
20
是
入學(xué)年份
TYOUHUIID
VARCHAR2
20
是
優(yōu)惠 id
TSTARTLOCATION VARCHAR2
20
是
優(yōu)惠區(qū)間起點(diǎn)
TENDLOCATION VARCHAR2
20
是
優(yōu)惠區(qū)間終點(diǎn)
TUSERID VARCHAR2
40
否
用戶 id
TDEPARTMENT VARCHAR2
40
是
所在院系
TBANJI VARCHAR2
20
是
班級
TSNO VARCHAR2
20
是
學(xué)號
TSCHOOLING VARCHAR2
20
是
學(xué)制
TINYEAR VARCHAR2
20
是
入學(xué)年份
TYOUHUIID VARCHAR2
20
是
優(yōu)惠 id
TSTARTLOCATION VARCHAR2
20
是
優(yōu)惠區(qū)間起點(diǎn)
TENDLOCATION VARCHAR2
20
是
優(yōu)惠區(qū)間終點(diǎn)
(4)車次信息表如表 4 所示:
表 4 車次信息表(trainno)
字段名 字段類型
字段長度
允許空值
主鍵
自動增長
備注
TRAINNOID INT
否
Y
Y
車次 id
TRAINNUM VARCHAR2
20
是
列車車次號
TAINTYPE VARCHAR2
20
是
車次等級
TSTARTSTATION VARCHAR2
20
是
始發(fā)站
TSTARTTIME DTAE
是
始發(fā)時間
TENDSTATION VARCHAR2
20
是
終點(diǎn)站
TENDTIME DATE
是
終到時間
TEMP1 VARCHAR2
20
是
附加字段 1
TEMP2 VARCHAR2
20
是
附加字段 2
(5)列車車次表如表 5 所示:
表 5 列車車次表(train)
字段名
字段類型
字段長度
允許空值
主鍵
自動增長 備注
TRAINID
INT
否
Y
Y 列車車次 id
TSTATIONID
INT
是
站序
TSTATION
VARCHAR2
20
車站
TRAINNOID
INT
是
車次 id
TDAYS
INT
是
天數(shù)
TARRIVETIME
DTAE
是
到站時刻
TLEAVETIME
DATE
是
出站時刻站
TMARK
INT
是
狀態(tài)
TDISTANCE
INT
是
里程
TEMP1
VARCHAR2
20
是
附加字段 1
TEMP2
VARCHAR2
20
附加字段 2
(6)車票信息表如表 6 所示:
表 6 車票信息表(ticket)
字段名
字段類型
字段長度
允許空值
主鍵
自動增長
備注
TICKETID
INT
否
Y
Y
車票 id
TREALNAME
VARCHAR2
20
是
票主
TRAINNUM
VARCHAR2
20
是
車次
TSEATNO
VARCHAR2
20
是
座位號
TSEATTYPE
VARCHAR2
20
是
座位類型
TICKETTYPE
VARCHAR2
20
是
車票類型
TPRICE
VARCHAR2
20
是
票價
TSTARTDATE
VARCHAR2
20
是
發(fā)車日期
TSTATION1
VARCHAR2
20
是
起點(diǎn)
續(xù)表 6
字段名
字段類型
字段長度
允許空值
主鍵
自動增長
備注
TSTATION2
VARCHAR2
20
是
終點(diǎn)
TIME1
VARCHAR2
20
是
發(fā)車時間
TIME2
VARCHAR2
20
是
到站時間
TSFZ
VARCHAR2
20
是
身份證號碼
TPHONE
VARCHAR2
20
是
手機(jī)號碼
TBUYTIME
VARCHAR2
20
是
購買時間
TSTATUS
INT
是
票的狀態(tài)
TUSERID
INT
否
票的購買者
(7)新聞表如表 7 所示:
表 7 新聞表(news)
字段名 字段類型
字段長度
允許空值
主鍵
自動增長
備注
NEWSID INT
否
Y
Y
新聞 id
TNTITLE VARCHAR2
300
是
標(biāo)題
TPUBLISHTIME VARCHAR2
20
是
出版時間
TNPIC VARCHAR2
20
是
圖片路徑
TNAUTHOR VARCHAR2
40
是
作者
TNCONTENT VARCHAR2
4000
是
內(nèi)容
(8)常見問題表如表 8 所示:
表 8 常見問題表(questions)
字段名
字段類型
字段長度
允許空值
主鍵
自動增長
備注
QID
INT
否
Y
Y
問題 id
TQTITLE
VARCHAR2
300
是
標(biāo)題
TQTYPE
VARCHAR2
20
是
添加類型
TADDTIME
VARCHAR2
20
是
添加時間
TQPIC
VARCHAR2
40
是
圖片路徑
TQAUTHOR
VARCHAR2
20
是
作者
TQCONTENT
VARCHAR2
4000
是
內(nèi)容
5 詳細(xì)設(shè)計
5.1 系統(tǒng)主要功能模塊介紹
5.1.1 前臺操作模塊
(1)用戶注冊登錄:用戶如果需要購票,就必須先進(jìn)行注冊,只有注冊之后再 登錄才能在該系統(tǒng)中購票。
(2)網(wǎng)上訂票:作為系統(tǒng)的最核心的功能,同時也包括退票和付款兩大部分。 用戶在訂票后可以經(jīng)過退票進(jìn)行退訂,同時也可進(jìn)行支付,完成用戶的整個訂票 流程。
a. 車次查詢:通過列車信息查詢,用戶可以獲得自身需求的票務(wù)信息,包括車 次,發(fā)車日期,發(fā)車時間,座位信息等,從而方便用戶進(jìn)行購票。
b. 車票預(yù)訂:點(diǎn)擊預(yù)訂按鈕,進(jìn)行車票預(yù)訂,可以選擇票主、座位級別、票種 等信息,便可提交訂單。
c. 查看訂單:用戶訂票后,進(jìn)入我的 12306,查看訂單,可以選擇退票或者付 款兩種方式。
(3)通知發(fā)布:前臺顯示的兩個模塊包括動態(tài)發(fā)布和系統(tǒng)通知發(fā)布,所有通知 在前臺進(jìn)行顯示,由管理員在后臺進(jìn)行添加,方便用戶進(jìn)入系統(tǒng)進(jìn)行操作。
5.1.2 后臺操作模塊
(1)后臺管理員登錄:只有管理員才能登錄后臺系統(tǒng),對后臺系統(tǒng)進(jìn)行操作。
(2)用戶管理:前臺所有用戶的注冊信息,包括用戶的常用聯(lián)系人,顯示在表 格內(nèi),管理員擁有對注冊用戶的維護(hù)權(quán)限,同時管理員還可以修改自身密碼,擁 有對用戶訂單信息的維護(hù)。
(3)車次管理:管理員需要不定時的對車次信息進(jìn)行更新,顯示在前臺,方便 前臺用戶能夠及時的查看最新的車票信息。
(4)動態(tài)管理:管理員能夠?qū)囕v信息進(jìn)行管理,在后臺添加車輛信息,然后 在前臺顯示。
(5)問題管理:為了解決用戶在購票過程中遇到的問題,管理員在后臺可分類 對問題進(jìn)行添加和刪除,顯示在前臺,方便用戶進(jìn)行查看。
5.2 前臺模塊設(shè)計
5.2.1 用戶注冊
用戶進(jìn)入注冊頁面,輸入用戶名、密碼、真實姓名、性別、身份證號碼等注 冊信息,在頁面進(jìn)行判斷,若信息有誤,則提示“信息有誤,請重新填寫”信息, 若全部符合輸入要求,點(diǎn)擊注冊,若未將同意 12306 協(xié)議進(jìn)行勾選,也不能成功 進(jìn)行注冊,勾選后,將數(shù)據(jù)提交到后臺操作類,添加到數(shù)據(jù)庫,提示“注冊成功!”, 成功后,用戶進(jìn)入登錄頁面進(jìn)行登錄,方可購票。注冊頁面如圖 13 所示:
關(guān)鍵代碼如下所示:
圖 13 用戶注冊頁面
int result=userInfoBiz.insertUserInfo(uf); if(result>0){
out.print("");
}else {
out.print("");
}
5.2.2 用戶登錄
點(diǎn)擊登錄,提交登錄信息,頁面提交到響應(yīng)的 js 里面的 ajax 里面,調(diào)用后 臺的操作類,系統(tǒng)根據(jù)提交的用戶名及密碼對數(shù)據(jù)庫相應(yīng)的用戶表進(jìn)行查詢,若
未返回任何記錄,則不存在該用戶名,提示登錄失敗,不存在此用戶。若返回該 用戶的相關(guān)記錄,再將登錄信息中密碼與返回記錄中密碼字段的值進(jìn)行對比,若 相同,則提示登陸成功,若不相同,則提示密碼不正確。若驗證碼不正確,系統(tǒng) 提示驗證碼錯誤。登錄頁面如圖 14 所示:
29
關(guān)鍵代碼如下所示:
$.ajax({
圖 14 用戶登錄頁面
dataType:"html", url:"user.do",
type:"POST", data:"op=login&uname="+uname+"&upwd="+pwd+"&yzm="+yzm, success:function(data){
if(data==1){ alert("驗證碼錯誤,請重新輸入");
$("#yzm").val(""); return;
}else if(data==2){ location.href="trainOrder.jsp"; return;
}else if(data==3){ alert("用戶名或者密碼錯誤,請重新登陸"); return;
}
}
});
5.2.3 列車信息查詢
根據(jù)用戶輸入的起始點(diǎn)、終點(diǎn)和出發(fā)日期,先從前臺頁面進(jìn)行判斷這三個字 段是否為空,若為空則提示“請將信息填寫完整”,填完信息后,前臺通過 Ajax 進(jìn)行請求,傳送到后臺操作類,異步刷新,將獲得的數(shù)據(jù)封裝成 json 數(shù)據(jù),從
數(shù)據(jù)庫查詢出所有符合條件的信息,前臺進(jìn)行解析和顯示,按照車票和價格對應(yīng) 顯示。車票查詢頁面如圖 15 所示:
關(guān)鍵代碼如下所示:
圖 15 車票查詢頁面
JSONArray jsonArray=JSONArray.fromObject(listTrainView); JSONArray jsonArray1=JSONArray.fromObject(listPriceView);
Map jsonArrayMap = new HashMap();
jsonArrayMap.put("train", jsonArray); jsonArrayMap.put("price", jsonArray1);
JSONObject json = JSONObject.fromObject(jsonArrayMap);
5.2.4 車票預(yù)訂
查詢出所有的票務(wù)信息后,用戶點(diǎn)擊訂票按鈕,若該用戶還沒有登錄,則提 示須先登錄才能購票。若已經(jīng)登錄,則直接跳轉(zhuǎn)到訂票信息頁面,頁面顯示車輛 的詳細(xì)信息和余票信息,用戶可以勾選聯(lián)系人,選擇票主信息,座位,票種信息, 填寫正確的驗證碼后,提交訂單,繼而生成訂單。訂單顯示車次信息、座位信息、 旅客信息,票價信息。用戶可以通過支付完成整個訂票流程,也可以進(jìn)行退票操 作。關(guān)鍵代碼如下所示,車票預(yù)訂如圖 16 所示:
已完成訂單頁面如圖 17 所示:
圖 16 車票預(yù)訂頁面
圖 17 已完成訂單頁面
關(guān)鍵代碼如下所示:
TrainView tv=trainViewBiz.getTrainViewByStation(station1, station2, cfdate, cntime, trainNum, trainType).get(0);//查詢余票
PriceView pv=priceBiz.getTrainPriceInfo(station1, station2, cfdate, trainNum, trainType).get(0);//查詢票價
5.3 后臺模塊設(shè)計
5.3.1 管理員登錄
點(diǎn)擊登錄,提交登錄信息,系統(tǒng)根據(jù)提交的用戶名及用戶類型對數(shù)據(jù)庫相應(yīng) 的管理員表進(jìn)行查詢,若未返回任何記錄,則不存在該管理員,提示登錄失敗, 不存在此用戶。若返回該用戶的相關(guān)記錄,再將登錄信息中密碼與返回記錄中密
碼字段的值進(jìn)行對比,若相同,則提示登錄成功,若不相同,則提示密碼不正確。 管理員登錄頁面如圖 18 所示:
關(guān)鍵代碼如下所示:
$.ajax({
dataType:"html", url:"admin.do",
type:"POST",
圖 18 管理員登錄頁面
data:"op=login&aname="+$("#aname").val()+"&apwd="+$("#apwd").v al()+"&ayzm="+$("#ayzm").val(),
success:function(data){ if(data==1){
alert("驗證碼錯誤,請重新輸入");
}else if(data==2){ location.href="admin/index.jsp";
}else if(data==3){ alert("用戶名或者密碼錯誤,請重新登陸");
}
}
});
5.3.2 后臺管理操作
管理員擁有對用戶信息、常用聯(lián)系人、車次信息、動態(tài)信息、問題信息的查 看、添加和刪除的權(quán)限,直接操作于數(shù)據(jù)庫,然后在前臺頁面進(jìn)行顯示。管理員
登錄后臺管理系統(tǒng)后,顯示首頁。管理員可以管理注冊用戶信息,同時管理員可 以添加車輛信息,刪除車輛信息,對車輛信息進(jìn)行維護(hù),管理員還可以添加和刪 除最新動態(tài)信息、常見問題信息等,通過添加到數(shù)據(jù)庫,然后在前臺頁面進(jìn)行顯 示。后臺首頁如圖 19 所示:
圖 19 后臺管理首頁
關(guān)鍵代碼如下所示:
function delInfo(newsid){
$.ajax({
dataType:"html", url:"news.do",
type:"POST", data:"op=delInfo&newsid="+newsid, success:function(data){
if(data==1){ alert("刪除成功");
location.href="/yan12306/admin/dongtai.jsp";
}else if(data==2){ alert("刪除失敗");
}
}
});
}
6 系統(tǒng)測試
系統(tǒng)測試是我們完成項目的最后一步,也是最重要的一步。系統(tǒng)測試是保證 我們的項目能夠順利運(yùn)行的最后一道保障。我們會對在測試過程中發(fā)現(xiàn)的問題進(jìn) 行修改,盡可能的完善我們的系統(tǒng)。
6.1 測試內(nèi)容
系統(tǒng)測試主要是測試系統(tǒng)的主要功能,在該項目中我們主要測試系統(tǒng)登錄、 注冊用戶、系統(tǒng)用戶登錄、車輛信息管理等,在測試過程中,要盡可能的用準(zhǔn)確 的數(shù)據(jù)去測試,要盡量的站在用戶的角度去思考問題,去測試,只有這樣才能測 試出最真實的效果,也才能滿足用戶的需要。
6.2 測試方法
測試過程中使用的最多的方法是白盒測試與黑盒測試,白盒測試顧名思義, 是能夠看見系統(tǒng)的最底層的東西,所以白盒測試是更加注重代碼結(jié)構(gòu)和邏輯結(jié) 構(gòu),主要關(guān)注系統(tǒng)邏輯結(jié)構(gòu)是否合理,代碼結(jié)構(gòu)是否規(guī)范。所以,很多人又把白 盒測試稱為結(jié)構(gòu)測試和邏輯測試。而黑盒測試主要是關(guān)注外在的東西,他不需要 了解系統(tǒng)功能是怎么樣實現(xiàn)的,他只關(guān)注最后的功能是否完成,功能是夠滿足用 戶的需求,所以又把黑盒測試稱為功能測試。由于現(xiàn)在人們使用的測試方法主要 是黑盒測試方法,所以在本次測試過程中,我們使用的也主要是黑盒測試方法。
在使用黑盒測試過程中,我們主要注意如下幾點(diǎn):
(1) 功能是否滿足用戶的需求。
(2) 功能是否完全實現(xiàn)。
(3) 獲取的數(shù)據(jù)是否符合用戶要求。
(4) 系統(tǒng)是否操作得當(dāng)。
6.3 測試用例
6.3.1 系統(tǒng)登錄測試
在系統(tǒng)中,共分為兩種角色——用戶和管理員,每種角色對應(yīng)一個模塊,用 戶只能進(jìn)入前臺界面,對前臺界面進(jìn)行操作,管理員不僅能夠?qū)η芭_界面操作還 能對后臺界面進(jìn)行操作,并且還能對用戶的信息進(jìn)行管理。不同的角色根據(jù)不同 的登陸界面進(jìn)入到不同的操作界面,根據(jù)上面所述來進(jìn)行不同的測試。具體情況 如表 9 所示:
表 9 測試用例表
用例 ID 場景 測試步驟 預(yù)期結(jié)果 備注
用例描述
系統(tǒng)登錄 用戶名存在、密碼正確的情況下登錄系統(tǒng) 頁面信息包含:頁面背景顯示
用戶名和密碼錄入接口,輸入數(shù)據(jù)后的登入系統(tǒng)接口
用例入口
TC1 初始頁面顯示 從用例入口進(jìn)入
頁面元素完整,顯示與詳細(xì) 設(shè)計一致
登錄失敗, 返回登錄 頁面
TC2
用戶名錄入-驗 證
輸入已存在的用 戶 a
輸入成功
TC3
用戶名-容錯性 驗證
輸入 aaaaaaabbbbbbbc ccccddddd
輸入用戶名后,系統(tǒng)不能通 過驗證,提示錯誤
TC4 密碼-密碼錄入
輸入與用戶名相 關(guān)聯(lián)的數(shù)據(jù),a
輸入成功
TC5 系統(tǒng)登錄-成功
TC2,TC4 單擊登錄 按鈕
登錄系統(tǒng)成功
TC6
系統(tǒng)登錄-用戶 名、密碼校驗
沒有輸入用戶名、 密碼,單擊登錄按 鈕
登錄系統(tǒng)失敗。提示:用戶 名或者密碼錯誤
TC7
系統(tǒng)登錄-密碼 校驗
輸入用戶名,不輸 入密碼,單擊登錄
登錄系統(tǒng)失敗。并提示:請 輸入密碼
TC8
系統(tǒng)登錄-密碼 有效性登錄
輸入用戶名,輸入 密碼與用戶名不 一致
系統(tǒng)登錄失敗,并提示用戶 名或者密碼錯誤
TC9
系統(tǒng)登錄-輸入 有效性驗證
輸入不存在的用 戶名密碼,單擊登 錄
系統(tǒng)登錄失敗,并提示:用 戶名或者密碼錯誤
6.3
收藏