版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上操作系統(tǒng)課程設(shè)計(jì)設(shè)計(jì)并實(shí)現(xiàn)在線考試系統(tǒng)學(xué)院:信息科學(xué)與工程學(xué)院專業(yè):軟件工程一、前臺(tái)界面設(shè)計(jì)1、用戶注冊、登錄界面圖 用戶注冊界面用戶注冊界面如上圖所示,下面是各項(xiàng)需填寫內(nèi)容的功能:用戶名:標(biāo)示用戶在線身份,可以為真實(shí)姓名,也可為化名,不同用戶可以具有相同的用戶名。郵箱:用于用戶接受系統(tǒng)消息,如用戶忘記密碼時(shí),可以將密碼通過郵件發(fā)送給用戶。每個(gè)用戶的郵箱地址必須是特有的,如果一個(gè)用戶想要有兩個(gè)登錄賬號(hào),必須用兩個(gè)不同的郵箱地址。如果某個(gè)郵箱地址再次被用來注冊,給出提示。設(shè)置密碼:用戶登錄所用密碼。確認(rèn)密碼:用戶需再次輸入密碼,以確認(rèn)上次輸入內(nèi)容。如果兩次輸入密碼不相同
2、,給出提示。性別:針對部分用戶需求而設(shè)定。如:老師在對學(xué)生進(jìn)行測試時(shí),便于核對學(xué)生信息。圖 用戶登錄界面用戶登錄界面如上圖所示,下面是各項(xiàng)需填寫內(nèi)容的功能:郵箱:用戶注冊時(shí)所填寫的郵箱,用于標(biāo)識(shí)用戶身份。密碼:用戶最近一次所設(shè)置的密碼,用于驗(yàn)證用戶身份。記住密碼:用于記錄用戶登錄狀態(tài),若選中此項(xiàng),下次用戶登錄時(shí)系統(tǒng)會(huì)自動(dòng)啟動(dòng)到用戶登錄狀態(tài)。忘記密碼:若用戶忘記登錄密碼,可點(diǎn)擊此鏈接,跳轉(zhuǎn)到用戶注冊郵箱接收郵件,郵件中包含用戶最近一次設(shè)置密碼。2、歡迎界面歡迎界面分兩種形式:一種為未注冊用戶歡迎界面,另一種為已注冊用戶歡迎界面,效果圖如下所示:圖 未注冊用戶歡迎界面頁面內(nèi)容介紹如下:窗口名稱為“
3、XXX在線測試系統(tǒng)”。用戶點(diǎn)擊“注冊”或“登錄”按鈕可彈出注冊窗口或登錄窗口,供用戶注冊或登錄。窗口中間部分內(nèi)容為關(guān)于系統(tǒng)的介紹性文字。用戶點(diǎn)擊“立即進(jìn)入”按鈕后進(jìn)入“題目列表”窗口(“題目列表”窗口設(shè)計(jì)見后面內(nèi)容)。圖 已注冊用戶歡迎界面頁面內(nèi)容介紹如下:已注冊用戶歡迎界面與未注冊用戶歡迎界面基本相同,不同之處在于沒有“注冊”、“登錄”按鈕,而添加了用戶菜單,菜單起初僅顯示用戶名,當(dāng)鼠標(biāo)指向時(shí),顯示二級菜單,分別為“賬戶管理”、“個(gè)人資料”、“退出登錄”。菜單功能如下:賬戶管理:進(jìn)入用戶賬戶管理界面,比如用戶可在此修改登錄密碼、查看歷史測試成績等。詳細(xì)設(shè)計(jì)參見后面內(nèi)容。個(gè)人資料:用戶可在此完
4、善個(gè)人資料。退出登錄:退出登錄狀態(tài),以未登錄狀態(tài)在線。3、題目列表題目列表界面分兩種形式:一種為未注冊用戶歡迎界面,另一種為已注冊用戶歡迎界面,效果圖如下所示:圖 未注冊用戶題目列表界面未登錄用戶(包括未注冊用戶和已注冊但未登錄用戶)進(jìn)入題目列表界面后,首先陳列的是題目類型,即題目所屬的相關(guān)領(lǐng)域。當(dāng)用戶點(diǎn)擊某一題目類型后,向下彈出所有此類型的題目列表。每條題目包括標(biāo)題、上傳人、上傳時(shí)間。圖 已注冊用戶題目列表界面已登錄用戶的題目列表界面與未登錄用戶的相似,不同之處除了顯示用戶名外,在每個(gè)題目類型的后面有一個(gè)“上傳”按鈕,用戶可點(diǎn)擊此按鈕添加此類型的題目。4、在線測試界面在線測試界面有多個(gè),包括
5、題目部分和測試結(jié)果部分。每一套題目都由10個(gè)單項(xiàng)選擇題組成,用戶必須按順序答題,答完全部題目后方可提交。用戶在答題過程中可自行取消本次答題。若由于某些客觀原因程序異常退出,系統(tǒng)可對用戶答題情況進(jìn)行備份,下次登錄時(shí)用戶可繼續(xù)上次答題記錄進(jìn)行答題(此項(xiàng)功能對未登錄用戶無效)。下面是詳細(xì)設(shè)計(jì):圖 第一題界面圖中內(nèi)容區(qū)左上角為題目類型,此處為“Photoshop”類,內(nèi)容區(qū)右上角為當(dāng)前題號(hào),中間部分為題目和選項(xiàng)。內(nèi)容區(qū)左下角為“上一題”按鈕,因?yàn)榇颂帪榈谝活},所以此按鈕為不可用狀態(tài)。內(nèi)容區(qū)右下角為“下一題”按鈕,點(diǎn)擊跳轉(zhuǎn)到下一個(gè)題目,只有用戶對當(dāng)前題目做出選擇后,此按鈕才顯示為可用狀態(tài)。窗口右上角為用
6、戶菜單,點(diǎn)擊“返回”可取消本次答題。若為已登錄用戶,則顯示用戶名。圖 中間題目界面此界面與第一題界面幾乎相同,不同之處在于“上一題”按鈕變?yōu)榭捎脿顟B(tài)。圖 最后一題界面此界面與前面兩個(gè)界面幾乎相同。不同之處在于已經(jīng)沒有“下一題”按鈕,用戶可點(diǎn)擊“完成”按鈕進(jìn)行提交。圖 測試結(jié)果界面此界面顯示用戶答題結(jié)果,包括正確率和每個(gè)題的對錯(cuò)情況。當(dāng)鼠標(biāo)點(diǎn)擊題目時(shí),可彈出窗口顯示原題供用戶回顧。顯示原題窗口如下所示:圖 原題顯示窗口其中,正確答案應(yīng)加粗顯示。若為用戶打錯(cuò)的題目,則選錯(cuò)的選項(xiàng)應(yīng)特別標(biāo)出。二、已登錄用戶權(quán)限界面設(shè)計(jì)1、用戶賬戶管理圖 用戶賬戶管理界面用戶對賬戶的管理功能主要有三項(xiàng):修改密碼、查看題
7、庫、查看歷史成績。用戶點(diǎn)擊三個(gè)按鈕其中之一,就會(huì)進(jìn)入各項(xiàng)管理界面。詳細(xì)設(shè)計(jì)如下:圖 用戶修改密碼界面此處為用戶提供修改登錄密碼功能,而且必須在用戶登錄的前提下。如果用戶忘記了登錄密碼,可點(diǎn)擊“忘記當(dāng)前密碼?”尋回。圖 題庫查看界面用戶可在此查看自己上傳過的所有題目,并可對其進(jìn)行修改或刪除。用戶還可以通過“上傳”按鈕進(jìn)行新題目上傳。圖 題目上傳界面題目標(biāo)題可自行填寫,題目類型可以從已有列表中選擇,也可自行添加。問題、選項(xiàng)內(nèi)容自行填寫,正確答案只能為A、B、C、D其中之一。上傳時(shí)間系統(tǒng)自動(dòng)設(shè)置。點(diǎn)擊“保存”按鈕可將題目提交到系統(tǒng)數(shù)據(jù)庫,并能在題目列表中顯示,供其他用戶進(jìn)行測試。圖 歷史成績界面用戶
8、可在此查看自己所獲得的所有成績,可根據(jù)需求對部分記錄進(jìn)行刪除。2、個(gè)人資料圖 用戶個(gè)人資料界面用戶可以在此修改用戶名、郵箱、性別,并添加簡單的個(gè)人介紹,以便其他用戶查看。圖 個(gè)人資料顯示界面當(dāng)某用戶查看其他用戶資料時(shí),顯示內(nèi)容如圖。三、系統(tǒng)管理員權(quán)限界面設(shè)計(jì)1、管理員登錄界面設(shè)計(jì)圖 管理員登錄界面管理員登錄界面如上圖所示,同用戶一樣,通過郵箱尋回密碼。2、管理系統(tǒng)首頁設(shè)計(jì)圖 系統(tǒng)管理首頁管理員登錄后的首頁,僅是一個(gè)內(nèi)容顯示界面,沒有功能。3、用戶管理界面設(shè)計(jì)圖 用戶管理界面系統(tǒng)管理員可在此處對用戶進(jìn)行管理??晒芾淼挠脩粜畔ㄓ脩裘⑧]箱、密碼、性別、個(gè)人簡介,管理員操作的最小單位為一條記錄,
9、且只能對用戶進(jìn)行刪除操作,無權(quán)限修改用戶的個(gè)人信息。4、題型管理界面設(shè)計(jì)圖 題型管理界面管理員在此處對題型進(jìn)行管理,題型包括名稱和數(shù)量兩項(xiàng)屬性,管理員可以定期刪除題目數(shù)量為0的題型。5、題目管理界面設(shè)計(jì)圖 題目管理界面管理員可在此處對題目進(jìn)行管理,題目屬性包括名稱、上傳人、上傳時(shí)間、所屬類型。管理員操作的最小單位為每一套題目,且只能進(jìn)行刪除操作。6、管理員個(gè)人資料管理界面設(shè)計(jì)圖 管理員個(gè)人資料管理界面管理員在此對自己的個(gè)人信息進(jìn)行管理。用戶名不可變,昵稱可針對不同的系統(tǒng)管理員而改變,郵箱必填,以接收系統(tǒng)消息,如找回密碼等。如要修改登錄密碼,可通過框內(nèi)兩項(xiàng)修改,否則此兩項(xiàng)留空。四、設(shè)計(jì)總結(jié)在本次
10、課程設(shè)計(jì)中,我負(fù)責(zé)整個(gè)系統(tǒng)的流程、界面設(shè)計(jì)。設(shè)計(jì)時(shí),我將重點(diǎn)放在系統(tǒng)功能上,只想著怎樣將系統(tǒng)的功能完全的、有條理的表現(xiàn)出來,忽視了用戶體驗(yàn)這一方面的考慮。直到我們做測試時(shí),我才發(fā)現(xiàn)存在很多問題。比如,用戶在進(jìn)入測試之后,就只能一路走到底,不能返回,這是一個(gè)非常嚴(yán)重的錯(cuò)誤。如果在加一個(gè)返回按鈕的話,那么整個(gè)系統(tǒng)的流程控制要有非常大的變動(dòng),由于時(shí)間緊張,最終還是沒能做出修改。而且,我們用了Java原帶的界面控件,沒有加自己的素材,這使我們的真?zhèn)€系統(tǒng)看起來只是一個(gè)練習(xí),而不是一個(gè)產(chǎn)品。雖然缺陷非常多,但在設(shè)計(jì)的過程中還是有很多的收獲。整個(gè)系統(tǒng)從最初的一個(gè)想法,到簡單的模型,再到詳細(xì)的設(shè)計(jì),置身在這個(gè)
11、過程中,有過迷茫與困惑,但最終都堅(jiān)持過來了,心中有一些小小的成就感。在這個(gè)過程中,我始終都以積極的姿態(tài)投入,并不是以一個(gè)“旁觀者”的姿態(tài)來應(yīng)付一個(gè)課程設(shè)計(jì)。期間,有人向我們提出質(zhì)疑:從無到有的搭起一個(gè)系統(tǒng)框架并不容易,更何況還要加好多功能。而且,我們?nèi)齻€(gè)的編碼能力并不是很強(qiáng),當(dāng)初我也懷疑過,我們到底能做到什么程度。雖然心中非常沒底,但還是表現(xiàn)出樂觀的態(tài)度,因?yàn)榍榫w是會(huì)感染人的,積極的態(tài)度會(huì)使旁邊的人也變得積極。只要我們真的想做、認(rèn)真做,就一定能學(xué)到自己想要的東西,與結(jié)果相比,過程更重要。懷著積極的心態(tài),我們?nèi)齻€(gè)齊心協(xié)力,最終實(shí)現(xiàn)了最主要的功能。我想,我之所以能堅(jiān)持下來,最重要的是老師和同學(xué)的幫
12、助。老師在整個(gè)過程中的細(xì)心指導(dǎo),使我們始終保持向前的姿態(tài);其他兩名同學(xué)的積極態(tài)度,使我能保持一份必勝的信心。我知道,我還差的很遠(yuǎn),需要繼續(xù)更加努力的學(xué)習(xí)、實(shí)踐。我會(huì)奮力向前,總有一天做到心中的那個(gè)自己。. 數(shù)據(jù)庫設(shè)計(jì)在對數(shù)據(jù)庫進(jìn)行分析設(shè)計(jì)時(shí),應(yīng)按照數(shù)據(jù)規(guī)范化理論的設(shè)計(jì),盡量減少冗余數(shù)據(jù),以確保數(shù)據(jù)完整性,統(tǒng)一性。在數(shù)據(jù)庫基本設(shè)計(jì)原則的指導(dǎo)下,數(shù)據(jù)庫設(shè)計(jì)重點(diǎn)應(yīng)考慮下列因素:1數(shù)據(jù)庫表設(shè)計(jì)必須布局合理,層次分明。2數(shù)據(jù)庫必須高度結(jié)構(gòu)化,保證數(shù)據(jù)的結(jié)構(gòu)化,規(guī)范化和標(biāo)準(zhǔn)化,這是建立數(shù)據(jù)庫和進(jìn)行信息交換的基礎(chǔ)。數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)應(yīng)該遵循國家標(biāo)準(zhǔn)和行業(yè)標(biāo)準(zhǔn),尤其要重視編碼的應(yīng)用。3數(shù)據(jù)庫設(shè)計(jì)的時(shí)候,一方面要盡
13、可能地減小數(shù)據(jù)冗余,減小存儲(chǔ)空間降低數(shù)據(jù)一致性問題發(fā)生的可能性,另一方面,還要考慮適當(dāng)?shù)臄?shù)據(jù)冗余,以降低程序開發(fā)難度。4數(shù)據(jù)庫設(shè)計(jì)時(shí)應(yīng)保持?jǐn)?shù)據(jù)庫中數(shù)據(jù)的準(zhǔn)確性和統(tǒng)一性。在系統(tǒng)中,多個(gè)用戶同時(shí)操作數(shù)據(jù)庫中的共享數(shù)據(jù),就會(huì)可能影響到數(shù)據(jù)庫數(shù)據(jù)的一致性產(chǎn)生錯(cuò)誤,因此必須使用“鎖”等方法來確保數(shù)據(jù)庫中數(shù)據(jù)的一致性。5數(shù)據(jù)庫設(shè)計(jì)的時(shí)候,對于數(shù)據(jù)庫中的保密數(shù)據(jù)還必須設(shè)計(jì)一些安全機(jī)制來確保數(shù)據(jù)苦的安全。在數(shù)據(jù)庫設(shè)計(jì)實(shí)際的過程中,確定數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計(jì)是否合理的,主要是依據(jù)數(shù)據(jù)庫中是否有以下特點(diǎn):1數(shù)據(jù)庫是否具有一定的靈活性、適應(yīng)性和可移植性;2數(shù)據(jù)庫是否具有與其系統(tǒng)的兼容性;3數(shù)據(jù)庫是否具有對新環(huán)境的可改變性
14、;4數(shù)據(jù)庫的存儲(chǔ)成本是否夠低;5數(shù)據(jù)庫的設(shè)計(jì)是否有利于系統(tǒng)的實(shí)現(xiàn);6是否具有良好的數(shù)據(jù)庫結(jié)構(gòu),易于維護(hù),易于理解,效率較高。作為一個(gè)具有一定應(yīng)用價(jià)值的在線考試系統(tǒng)的數(shù)據(jù)庫,就要求數(shù)據(jù)庫設(shè)計(jì)人員設(shè)計(jì)出一個(gè)好的結(jié)構(gòu),減少數(shù)據(jù)庫數(shù)據(jù)的冗余的產(chǎn)生。下面就介紹在線考試系統(tǒng)的數(shù)據(jù)庫是如何設(shè)計(jì)的。該系統(tǒng)選用數(shù)據(jù)庫MySQLMySQL是一種開放源代碼的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它與其他大型的數(shù)據(jù)庫例如SQLServer、Oracle相比,MySQL有著其自身的一些缺點(diǎn),例如功能相對簡單、數(shù)據(jù)庫規(guī)模較小等,但這卻一點(diǎn)都沒有影響到它受中小型企業(yè)和一般的個(gè)人使用者歡迎的程度,因?yàn)镸ySQL提供的功能已經(jīng)對他們來說已經(jīng)夠
15、用了,同時(shí)因?yàn)镸ySQL是一個(gè)開源數(shù)據(jù)庫,所以可以大大減少系統(tǒng)成本。MySQL數(shù)據(jù)庫的主要功能只在組織和管理很龐大或復(fù)雜的信息和基于WEB的庫存查詢請求不僅僅為客戶提供信息,而且還可以為您自己使用數(shù)據(jù)庫可以提供如下功能: (1)減少記錄編檔的時(shí)間 (2)減小記錄檢索時(shí)間 (3)靈活的查找序列 (4)靈活的輸出格式 (5)多個(gè)用戶同時(shí)訪問記錄1、數(shù)據(jù)庫需求分析 需求分析是設(shè)計(jì)數(shù)據(jù)庫的起點(diǎn),需求分析的結(jié)果是否準(zhǔn)確地反映了用戶的實(shí)際要求,將直接影響到后面各個(gè)階段的設(shè)計(jì),并影響到設(shè)計(jì)結(jié)果是否合理和實(shí)用。根據(jù)分析,該系統(tǒng)主要涉及到幾種信息的存儲(chǔ),管理員信息的存儲(chǔ),用戶信息的存儲(chǔ),試卷信息的存儲(chǔ)。所以該系
16、統(tǒng)需要建立管理員信息表,用戶信息表,題庫信息表,試卷類型表、試卷表,成績表。2、數(shù)據(jù)庫概要設(shè)計(jì)概念設(shè)計(jì)階段主要是將需求分析階段得到的用戶需求抽象為信息結(jié)構(gòu)(概念模型)的過程,它是整個(gè)數(shù)據(jù)庫設(shè)計(jì)的關(guān)鍵。根據(jù)數(shù)據(jù)庫需求給出該系統(tǒng)的E-R圖3、 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計(jì)完畢以后,現(xiàn)在可以將上面的數(shù)據(jù)庫概念結(jié)構(gòu)轉(zhuǎn)化為某種數(shù)據(jù)庫系統(tǒng)所支持的實(shí)際數(shù)據(jù)模型,也就是數(shù)據(jù)庫的邏輯結(jié)構(gòu)。下面就要設(shè)計(jì)在線考試系統(tǒng)數(shù)據(jù)庫的邏輯結(jié)構(gòu)。以概念結(jié)構(gòu)設(shè)計(jì)中的E-R圖為主要依據(jù)使用powerdesign設(shè)計(jì)出該系統(tǒng)的關(guān)系模式,該系統(tǒng)的數(shù)據(jù)庫邏輯概念關(guān)系模型圖如下圖4.7邏輯概念關(guān)系模型圖4、數(shù)據(jù)庫表設(shè)計(jì)下面列出了
17、設(shè)計(jì)過程中所用到的數(shù)據(jù)庫表及其結(jié)構(gòu)表格名 元素 用戶信息表用戶名、郵箱(主鍵)、密碼、性別、簡介 管理員信息表用戶名、郵箱、密碼 試卷類型表類型名(如操作系統(tǒng)、軟件工程等)、試卷量 題庫表類型名、試卷名(*第一套模擬試題)、上傳人、上傳時(shí)間 試卷表類型名、試卷名、題號(hào)、內(nèi)容、A|、B、C、D、答案 成績表郵箱(主鍵)、類型名、試卷名、成績表1.1 user表 t_user列名類型 長度描述 usernamevarchar10用戶名字useremailvarchar20 用戶郵箱 userpasswordvarchar20用戶密碼usersexenum( 男、女)用戶性別userintroduc
18、evarchar 100用戶簡介表1.2 manager表 t_manager列名類型 長度描述 managernamevarchar10管理員名字emailvarchar20管理員郵箱passwordvarchar20管理員密碼表1.3 question_subject表 t_question_subject列名類型 長度描述subjectnamevarchar20類型名(如操作系統(tǒng)、軟件工程等)paperSumint試卷數(shù)量表1.4 questionsBase表 t_ questionsBase列名類型 長度描述 subjectnamevarchar20試題類型paperNamevarch
19、ar30試卷名(*第一套模擬試題) useremailvarchar20 用戶郵箱joinTimedatetime8加入時(shí)間表1.5 Question表 t_ Question列名類型 長度描述sujectnamevarchar20試題類型paperNamevarchar30試卷名(*第一套模擬試題) Questionnoint題號(hào)Contentvarchar100試題內(nèi)容Avarchar50A選項(xiàng)內(nèi)容Bvarchar50B選項(xiàng)內(nèi)容Cvarchar50C選項(xiàng)內(nèi)容Dvarchar50D選項(xiàng)內(nèi)容answervarchar50答案表1.6 degree表 Tb_degree列名類型 長度描述user
20、emailvarchar20 用戶郵箱 subjectnamevarchar20試題類型paperNamevarchar 30 試卷名 degreeint 成績5、 主要代碼 public DATABASE() throws SQLException, IOException try Class.forName(com.mysql.jdbc.Driver); catch (ClassNotFoundException e) e.printStackTrace();conn = DriverManager.getConnection(jdbc:mysql:/localhost:3306/test
21、systems,root,);public java.sql.Connection conn;public void close() throws SQLException, IOException conn.close();以上為鏈接數(shù)據(jù)庫代碼。以下為個(gè)函數(shù)說明:1、用戶注冊函數(shù):public String userRegister(String username, String email, String password,String sex, String introduce)2、用戶檢測函數(shù)public String userDetection(String useremail, S
22、tring password)3、查看所有用戶信息函數(shù):public String getalluser()4、用戶修改信息函數(shù):public void userupdate(String useremail, String password, String password1)5、管理員檢測函數(shù):public int managerDetection(String manageremail, String managerpassword)6、殺出用戶函數(shù):public void deleteuser(String email)7、請求試題函數(shù):public String getquestio
23、n_subject()8、請求試卷函數(shù):public String getpapername(String ) 9、 請求試卷數(shù)目函數(shù):public int getpape_sum(String s)10、增加試卷數(shù)目函數(shù):public void addsetpape_sum()11、增加科目:public void addsubject(String a1)12、上傳題目:public void addpaper( String subject,String papername, int no, String con, String a,String b, String c, String
24、d, String answer) 13、請求每套試卷的10道題:Public void gettest(String supjectname,String papername,String s1)14、請求答案:public String getanswer(String supjectname,String papername)15、設(shè)置分?jǐn)?shù):public void setdegree(String useremail,String subjectname,String papername, int degree)16、請求分?jǐn)?shù):public int getdegree(String us
25、eremail,String subjectname,String papername)17、減少試卷數(shù)量:public int delsetpape_sum(String s)18、刪除科目:public void delsubject(String s)19、刪除試卷:public void deletetest(String useremail,String subjectname,String papername)7、 感悟通過這次畢業(yè)設(shè)計(jì),對很多東西有了新的認(rèn)識(shí)和新的見解,認(rèn)識(shí)問題的和思考解決辦法有了本質(zhì)上的進(jìn)步,特別是對一個(gè)系統(tǒng)開發(fā)的模式有了更深的認(rèn)識(shí),對專業(yè)技能的運(yùn)用更熟練。 在
26、線考試系統(tǒng)服務(wù)器模塊詳細(xì)設(shè)計(jì)服務(wù)器模塊負(fù)責(zé)人;高秀洋。主要負(fù)責(zé)功能,客戶端、服務(wù)器端socket程序設(shè)計(jì),客戶端與服務(wù)器的通信及請求處理。 系統(tǒng)簡介 在線考試系統(tǒng)是一款可以為某類知識(shí)群體提供知識(shí)技能測評的軟件。用戶只要下載了客戶端軟件,就可以注冊、登陸選擇某一類題目進(jìn)行答題,答題結(jié)束后系統(tǒng)保存用戶成績并返回用戶成績。 服務(wù)器模塊介紹服務(wù)器端應(yīng)用ServerSocket類設(shè)定9084端口為監(jiān)聽端口,為每一個(gè)發(fā)出請求的用戶創(chuàng)建一個(gè)服務(wù)線程。服務(wù)線程根據(jù)客戶端的請求消息做相應(yīng)的處理??蛻舳藨?yīng)用Socket連接服務(wù)器IP和9084端口,與服務(wù)器建立連接,客戶端發(fā)送帶有約定標(biāo)識(shí)的請求消息,服務(wù)器程序根據(jù)
27、此特定標(biāo)識(shí)做出相應(yīng)處理。 服務(wù)器功能介紹1、用戶注冊客戶端用戶輸入個(gè)人信息及密碼,客戶端Socket程序?qū)⒋诵畔l(fā)送至服務(wù)器。此用戶的服務(wù)線程繼而將用戶注冊信息寫入數(shù)據(jù)庫。用戶登錄用戶在登陸界面輸入郵箱與密碼,客戶端Socket程序?qū)⑧]箱與密碼發(fā)送到服務(wù)器,服務(wù)器線程繼而查詢數(shù)據(jù)庫,確認(rèn)此用戶是否已注冊,若注冊則允許登陸,否則拒絕登陸。修改密碼用戶登錄后,修改密碼。服務(wù)器的用戶線程接收到此請求后將客戶端傳來的新密碼寫入數(shù)據(jù)庫代替原來的密碼。傳送試題服務(wù)器線程接收到用戶請求試題的信息后,開始訪問數(shù)據(jù)庫取出題目發(fā)送到客戶端??蛻舳私邮赵囶}并將題目寫入臨時(shí)只讀文件里,以備客戶端讀文件并將試題寫入界面
28、。試卷批閱客戶端將用戶答案傳送至服務(wù)器,服務(wù)器查詢數(shù)據(jù)庫得到正確答案并判斷用戶答案。統(tǒng)計(jì)在線用戶數(shù)量服務(wù)器維護(hù)一個(gè)全局變量NUM,用來保存在線用戶數(shù)量。每當(dāng)一個(gè)用登陸成功,ClientNum就加一,當(dāng)用戶退出,ClientNum就減一。對于多線程的服務(wù)器,程序應(yīng)互斥的訪問ClientNum。此處使用java同步方法如下。 public synchronized static void addClientNum()int n= ClientNum;n+; ClientNum=n; public synchronized static void cutClientNum()int n= Clien
29、tNum; n-; ClientNum=n; 7、客戶端socket程序主要代碼:public class SocketClient private Socket s;private static InputStream instream;private static OutputStream outStream;private static Scanner in;private static PrintWriter out; public SocketClient() throws UnknownHostException, IOException s = new Socket(127.0.
30、0.1, 9084);instream = s.getInputStream();outStream = s.getOutputStream();in = new Scanner(instream);out = new PrintWriter(outStream, true); 8、服務(wù)器程序主要代碼如下,每接收到一個(gè)客戶端請求就新建一個(gè)用戶線程,有此線程響應(yīng)用戶請求。public class ReceiveServer public static int ClientNum=0;/在線用戶數(shù)量final int RECEIVE_PORT = 9084;/ 該服務(wù)器的端口號(hào)/receiveServer的構(gòu)造器p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單位人力資源管理制度精彩大全
- 醫(yī)療合作項(xiàng)目合同管理準(zhǔn)則
- 高層住宅外墻清洗項(xiàng)目招投標(biāo)
- 網(wǎng)絡(luò)營銷企業(yè)薪酬管理
- 居民區(qū)通風(fēng)設(shè)備安裝合同
- 天津市養(yǎng)老社區(qū)物業(yè)醫(yī)療服務(wù)規(guī)范
- 紡織服裝弱電施工合同
- 廣東省廣州市天河區(qū)2023-2024學(xué)年高一上學(xué)期期末考試數(shù)學(xué)試卷(解析版)
- 羅定職業(yè)技術(shù)學(xué)院《田徑AⅡ》2023-2024學(xué)年第一學(xué)期期末試卷
- 酒店工程塔吊施工協(xié)議
- 7-中文標(biāo)點(diǎn)輸入妙公開課
- 窨井抬升施工方案
- 2023內(nèi)蒙古財(cái)經(jīng)大學(xué)輔導(dǎo)員公開招聘(列編招聘)3人及筆試參考題庫(共500題)答案詳解版
- DISC性格(培訓(xùn)用)課件
- 招投標(biāo)評分標(biāo)準(zhǔn)表
- 冠心病雙聯(lián)抗血小板治療中國專家共識(shí)
- 大學(xué)體育與健康課件:體育鍛煉與安全衛(wèi)生保健
- 學(xué)校食堂色標(biāo)管理制度、食品切配工用具色標(biāo)管理操作指南
- 部編語文五年級上冊詞語表注音版
- 1神州謠 課件(共50張PPT)
- 國家開放大學(xué)思想道德與法治社會(huì)實(shí)踐作業(yè)集合6篇
評論
0/150
提交評論