【正文】
本科畢業(yè)論文(設(shè)計(jì))模板本科畢業(yè)論文(設(shè)計(jì))論文題目:在線考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 學(xué)生姓名:羅 偉 學(xué) 號(hào):1205290203專 業(yè): 軟 件 工 程 班 級: 軟 件 1202 指導(dǎo)教師: 王 命 宇 完成日期: 2016年 5 月 30 日 在線考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)內(nèi) 容 摘要學(xué)生在線考試系統(tǒng)旨在提高考試的質(zhì)量和效率,充分發(fā)揮網(wǎng)上考試的靈活性,不局限于考生所在地理位置,同時(shí),在大規(guī)??忌瑫r(shí)線上考試的環(huán)境和壓力下,以提升考試系統(tǒng)的高并發(fā)連接、大數(shù)據(jù)處理的性能。這也是順應(yīng)國內(nèi)O2O線上線下服務(wù)的潮流,如阿里巴巴的淘寶、京東商城、1號(hào)店、蘑菇街等幾大線上線下巨頭,促進(jìn)社會(huì)經(jīng)濟(jì)的快速發(fā)展。為了適應(yīng)在大規(guī)??忌瑫r(shí)在線參與考試的壓力下,既保證后端服務(wù)器的性能和效率,又能良好地處理大量客戶連接來保證高并發(fā)。系統(tǒng)采用C++編寫在Linux環(huán)境下運(yùn)行的后端服務(wù)器,使用輕量級的nginx反向代理服務(wù)器,nginx相對于Apache的好處在近幾年O2O概念下應(yīng)運(yùn)而生并取得壓倒性的優(yōu)勢取代用Apache作為web反向代理服務(wù)器。nginx的高性能、高并發(fā)、大數(shù)據(jù)處理方面表現(xiàn)極佳。采用fcgi框架來支撐動(dòng)態(tài)網(wǎng)站的開發(fā),比jsp開發(fā)動(dòng)態(tài)網(wǎng)站有更加充分的依據(jù),比如服務(wù)器可以更高效地與客戶端瀏覽器交互,而不需要安裝JVM(java虛擬機(jī))。另外,對于一些html web文檔,不需要開發(fā)者大量手動(dòng)的編輯,而使用模板引擎在cgi程序中就可以幫我們完成,大大提高了開發(fā)效率。此外,任何項(xiàng)目沒有絕對的好壞優(yōu)劣之分,系統(tǒng)的大部分功能都可以在現(xiàn)有技術(shù)下完成。一些其他功能也可以通過日后的需求而完善??傊到y(tǒng)的可擴(kuò)展性也是值得肯定的。關(guān)鍵詞:C++nginxfcgi框架模板引擎O2ODesign and Implementation of Online Examination SystemAbstractStudents online examination system aimed at improving the quality and efficiency of the examination, give full play to the flexibility of the online exam, the candidates are not limited to geographical location, while at the same time a largescale environment and pressure candidates online exam to improve examination system high concurrent connections, the performance of large data processing. This is the tide domestic O2O online and offline services, such as Taobao, Jingdong Mall, Shop No. 1, Street giant mushrooms at several major online and offline Alibaba, promote the rapid development of social economy.In order to meet the candidates at the same time under the pressure of largescale participation in the online exam, both to ensure the performance and efficiency of the backend servers, and can handle a large number of customers with good connections to ensure high concurrency. System written in C ++ backend servers running the Linux environment, the use of lightweight nginx reverse proxy server, nginx Apache with respect to benefits in recent years, O2O concept came into being and made an overwhelming advantage substituted with Apache as a web reverse proxy server. nginx highperformance, high concurrency, high data processing performance is excellent. Using fcgi framework to support the development of dynamic websites, there are more than sufficient basis jsp development of dynamic Web sites, such as server more efficiently interact with the client browser, without the need to install the JVM (java virtual machine).In addition, for some html web documents, the developer does not need a lot of manual editing, and using a template engine cgi program can help us to plete, greatly improving the efficiency of development. In addition, any project there is no absolute good or bad points, most of the functions of the system can be done in the prior art under. Some other features can also improve future needs. In short, the system39。s scalability is also worthy of recognition.Key words: CPlusPlusNginxFrameworkoffcgiTemplateEngineOTO 目 錄緒 論 1(一)系統(tǒng)開發(fā)的目的 1(二)系統(tǒng)開發(fā)的意義 1一、系統(tǒng)簡介 2(一)環(huán)境簡介 2(二)nginx簡介 3(三)cgi與fcgi原理簡介 4(四)memcached簡介 4(五)mysql數(shù)據(jù)庫簡介 5二、可行性研究 6(一)經(jīng)濟(jì)可行性 6(二)技術(shù)可行性 6(三)法律可行性 6(四)系統(tǒng)流程圖 7(五)數(shù)據(jù)流圖DFD 7(六)數(shù)據(jù)字典DD 9三、需求分析 12(一)功能需求 12(二)性能需求 12(三)ER圖 13四、總體設(shè)計(jì)(概要設(shè)計(jì)) 14(一)系統(tǒng)概要設(shè)計(jì) 14 14 14(二)數(shù)據(jù)庫概要設(shè)計(jì) 15 15 15五、詳細(xì)設(shè)計(jì) 17(一)功能設(shè)計(jì) 17(StudentModule) 17(AdminModule) 21(二)數(shù)據(jù)庫表詳細(xì)設(shè)計(jì) 26六、編碼與單元測試 29(一)單元編碼 29(二)界面展示 30(三)單元測試 33七、系統(tǒng)測試 35八、系統(tǒng)維護(hù) 37(一)項(xiàng)目部署與網(wǎng)站發(fā)布 37(二)性能調(diào)優(yōu)和運(yùn)維 37結(jié) 論 38參 考 文 獻(xiàn) 39 緒 論(一)系統(tǒng)開發(fā)的目的隨著C++、java、C等面向?qū)ο缶幊陶Z言的出現(xiàn)。OOP的編程模式深入軟件工程師們的內(nèi)心。但是在大多數(shù)網(wǎng)站應(yīng)用似乎被java structs框架、jsp框架、.net框架所壟斷,盡管如此,這些框架在一些領(lǐng)域因?yàn)槠鋱?zhí)行效率的低下而被用戶詬病。比如,java需要在JVM環(huán)境下運(yùn)行,對大量內(nèi)置數(shù)據(jù)類型進(jìn)行過度封裝,其在效率、性能方面的不足也體現(xiàn)出來。C/C++一直在效率方面表現(xiàn)出色,被廣泛應(yīng)用于系統(tǒng)、驅(qū)動(dòng)、服務(wù)器和游戲行業(yè)軟件的開發(fā)。C++同樣也適合于開發(fā)網(wǎng)站,并因其效率方面的優(yōu)點(diǎn),本系統(tǒng)就是為了在這方面做進(jìn)一步嘗試。C++對開發(fā)者的技術(shù)要求高、難度大,所以在開發(fā)web應(yīng)用方面,應(yīng)用極少。通過本系統(tǒng)介紹用C++進(jìn)行開發(fā)web應(yīng)用,期望可以推廣C++在web領(lǐng)域得到程序員們的青睞,激發(fā)廣大編程初學(xué)者對C++的熱愛,敢于迎難而上,攻克難關(guān),推動(dòng)我國乃至世界軟件業(yè)的發(fā)展。除了為了推廣C++在不同的領(lǐng)域、業(yè)務(wù)中的應(yīng)用外。開發(fā)此系統(tǒng)是為那些打算開發(fā)出高并發(fā)、高性能、穩(wěn)定健壯網(wǎng)站的程序員們提供一個(gè)示例和樣本。改善大量用戶同時(shí)在線訪問時(shí),出現(xiàn)的服務(wù)器崩潰、宕機(jī)、響應(yīng)延時(shí)高、不穩(wěn)定、產(chǎn)生錯(cuò)誤的瓶頸。(二)系統(tǒng)開發(fā)的意義本系統(tǒng)開發(fā)的意義不僅僅在其對C++語言的推廣,鼓勵(lì)更過的后來者勇于登上計(jì)算機(jī)科學(xué)的高峰,解決一個(gè)接一個(gè)的難題,最終推動(dòng)計(jì)算機(jī)科學(xué)的發(fā)展的學(xué)術(shù)性意義。更重要的是,它也具有很大的商業(yè)價(jià)值和實(shí)際意義。相對于傳統(tǒng)的線下考試,在線考試不需要安排實(shí)際的‘物理考場’。安排大量的考場,設(shè)置過多的考點(diǎn)、密切關(guān)注對考場秩序的調(diào)度。這會(huì)帶來大量的人力資源成本,并且效率低下,不符合信息時(shí)代對效率的要求。在線考試也不局限于地理位置的分布而呈現(xiàn)出任何差異,所有參加考試的考生只需登錄到系統(tǒng)就可以進(jìn)行答題。這方便了考生合理安排自己的答題環(huán)境。對教師而言,減輕了大量手工批閱試卷的負(fù)擔(dān),客觀題部分完全自動(dòng)化閱卷。主觀題則只需和管理員溝通制定相應(yīng)的評分細(xì)則,系統(tǒng)采用類似于標(biāo)準(zhǔn)答案關(guān)鍵詞匹配比例的算法即可比較公正地批改試卷。非常輕松簡捷,方便,降低了人工閱卷的難度。 一、系統(tǒng)簡介隨著大數(shù)據(jù)、云存儲(chǔ)、云計(jì)算、高并發(fā)、集群與分布式計(jì)算這些新技術(shù)的出現(xiàn),使得人