版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 信息管理系統(tǒng)分析與設(shè)計(jì)課程設(shè)計(jì)題 目 在線問答系統(tǒng) 班 級(jí) 信息111 學(xué) 號(hào) 201152275113/201152275117 學(xué)生姓名 XXX 同組成員 XXX 指導(dǎo)教師 XX 編寫日期 2014.7.10 目錄1 開發(fā)計(jì)劃21.2開發(fā)背景21.3 原系統(tǒng)概述21.4目標(biāo)系統(tǒng)概述21.5 可行性分析21.6 項(xiàng)目計(jì)劃32 需求分析32.1需求定義說明書42.2數(shù)據(jù)流程圖42.3 數(shù)據(jù)字典53 概要設(shè)計(jì)73.1系統(tǒng)功能模塊結(jié)構(gòu)圖73.2數(shù)據(jù)庫概要設(shè)計(jì)73.3代碼設(shè)計(jì)103.4輸入/輸出界面設(shè)計(jì)104 提問模塊設(shè)計(jì)(XXX)124.1 提問模塊主頁展示124.2 提問模塊技術(shù)分析135 發(fā)
2、布信息界面(XXX)145.1 代碼設(shè)計(jì)145.2 代碼設(shè)計(jì)技術(shù)分析166 提問模塊設(shè)計(jì)(XXX)176.1提問模塊測(cè)試設(shè)計(jì)176.2 提問模塊實(shí)際測(cè)試操作176.3 測(cè)試評(píng)價(jià)184 回復(fù)模塊設(shè)計(jì)(XXX)184.1 問題回復(fù)模塊分析185 編碼(XXX)205.1 回復(fù)模塊的關(guān)鍵技術(shù)205.2 回復(fù)模塊相關(guān)代碼216 測(cè)試與調(diào)試(XXX)246.1 回復(fù)模塊測(cè)試設(shè)計(jì)246.2 回復(fù)模塊實(shí)際測(cè)試操作247 對(duì)軟件分析、設(shè)計(jì)及實(shí)施方面的評(píng)價(jià)及體會(huì)258 組長對(duì)小組工作及成員的評(píng)價(jià)261 開發(fā)計(jì)劃1.1項(xiàng)目名稱在線問答系統(tǒng)1.2開發(fā)背景讀者朋友們對(duì)國內(nèi)知名的大型搜索引擎網(wǎng)站百度比較熟悉,其中“百度
3、知道”這個(gè)功能非常吸引人,我們?cè)诎俣壬纤阉鞯馁Y料幾乎都是來自于“百度知道”根據(jù)現(xiàn)行社會(huì)大多數(shù)用戶的相關(guān)需求,因此開發(fā)了“明日知道問答系統(tǒng)”這個(gè)網(wǎng)站,實(shí)現(xiàn)的功能及流程操作和“百度知道”相似。在網(wǎng)絡(luò)應(yīng)用中,互動(dòng)性、人性化的網(wǎng)絡(luò)服務(wù)已成為吸引訪問者、提高網(wǎng)站訪問量、增加客戶轉(zhuǎn)發(fā)度的一種手段,也是未來網(wǎng)絡(luò)服務(wù)發(fā)展的趨勢(shì)。1.3 原系統(tǒng)概述 在沒有互聯(lián)網(wǎng)的情況下,人們尋求解決問題的方案唯一途徑是來自于尋求朋友或親人的幫助,這種方式給詢問者帶來極大的不便且答復(fù)效率較低,往往不能及時(shí)得到最佳答案。此外不同人會(huì)針對(duì)同一問題多次咨詢,造成了嚴(yán)重的資源浪費(fèi)。 1.4目標(biāo)系統(tǒng)概述明日知道在線問答系統(tǒng)主要是為了解決編
4、程愛好者在編程過程中遇到的問題而開發(fā)的一個(gè)在線問答平臺(tái)。該系統(tǒng)為用戶提供一個(gè)問題交流的平臺(tái),可以注冊(cè)用戶、提出問題、回答問題、關(guān)閉問題、設(shè)置最佳答案、設(shè)置懸賞積分等功能。對(duì)于明日知道在線問答系統(tǒng)在設(shè)計(jì)時(shí)應(yīng)該滿足以下幾個(gè)目標(biāo):(1)要求是一個(gè)互動(dòng)性很強(qiáng)的網(wǎng)站,需要多方參與、多方協(xié)作完成。參與者越多,發(fā)揮的作用就越大、效果越好。(2)有良好的人機(jī)交互功能:用戶界面直觀、友好,數(shù)據(jù)錄入靈活、簡(jiǎn)便。(3)功能強(qiáng)大,拓展性強(qiáng),穩(wěn)定性高。(4)系統(tǒng)無操作系統(tǒng)限制,方便不同平臺(tái)之間的移植。(5)網(wǎng)站最大限度地實(shí)現(xiàn)易維護(hù)性和易操作性。(6)網(wǎng)站運(yùn)行穩(wěn)定、安全可靠。 1.5 可行性分析可行性分析的任務(wù),并不是所
5、有問題都有簡(jiǎn)單明顯的解決辦法,事實(shí)上,許多問題不可能在預(yù)定的系統(tǒng)規(guī)模之內(nèi)解決。如果問題沒有可行的解,那么花費(fèi)這項(xiàng)開發(fā)工程上的任何時(shí)間、資源、人力和經(jīng)費(fèi)都是無謂的浪費(fèi)??尚行匝芯康哪康木褪怯米钚〉拇鷥r(jià)在盡可能短的時(shí)間內(nèi)確定問題是否能夠解決??尚行匝芯繉?shí)質(zhì)上是要進(jìn)行一次大大壓縮簡(jiǎn)化了的系統(tǒng)分析和設(shè)計(jì)的過程,也就是在較高層次上以較抽象的方式進(jìn)行的系統(tǒng)分析和設(shè)計(jì)的過程。所以從以上的分析原則來看,所設(shè)計(jì)的在線問答管理系統(tǒng)是一個(gè)規(guī)模不太大的系統(tǒng),但是目標(biāo)明確,清晰的描述了對(duì)目標(biāo)系統(tǒng)的一切限制和約束。在使用過程中,要看它能不能帶來效益,畢竟在現(xiàn)今社會(huì)效率是第一位的。21世紀(jì)是計(jì)算機(jī)的時(shí)代,它必然取代一部分人
6、的工作,高科技的信息系統(tǒng)進(jìn)入社會(huì)生活的方方面面是發(fā)展的趨勢(shì)。本設(shè)計(jì)從以下三個(gè)方面進(jìn)行可行性研究:1.5.1技術(shù)可行性分析目前有很多程序語言和相應(yīng)的開發(fā)工具都可以適用于本系統(tǒng)的開發(fā),例如VB、ASP、PHP等,數(shù)據(jù)庫有DB2、Oracle、Informix、SQL Server等,基本所有的軟件程序都是用這些工具開發(fā)的,本系統(tǒng)網(wǎng)站開發(fā)環(huán)境運(yùn)用的是Microsoft Visual Studio2008集成開發(fā)環(huán)境,網(wǎng)站開發(fā)語言及核心技術(shù)是ASP.NET+C#+LINQ數(shù)據(jù)庫訪問技術(shù),網(wǎng)站的后臺(tái)數(shù)據(jù)庫是SQLServer2005,這些技術(shù)都是成熟可靠的,所以在技術(shù)上本程序的開始時(shí)可行的。1.5.2經(jīng)
7、濟(jì)可行性分析開發(fā)本系統(tǒng)操作系統(tǒng)采用Windows Server2003(SPI),在開發(fā)過程中只需要一臺(tái)PC,估算新系統(tǒng)的成本效益分析,其中包括估計(jì)項(xiàng)目開發(fā)的成本,開發(fā)費(fèi)用和今后的運(yùn)行、維護(hù)費(fèi)用也不高,所以在經(jīng)濟(jì)上具有一定的可行性。 1.5.3操作可行性分析本系統(tǒng)的操作對(duì)象主要是在線問答系統(tǒng)管理員或經(jīng)身份認(rèn)證的問答用戶,對(duì)于他們不需要復(fù)雜的操作,而且此系統(tǒng)采用圖形界面,界面美觀大方形象,操作十分方便。適合普通人群使用,對(duì)于錯(cuò)誤操作或者操作頻繁者會(huì)有相應(yīng)的提示操作,所以操作可行。1.6 項(xiàng)目計(jì)劃表 1-1 項(xiàng)目計(jì)劃任務(wù)/時(shí)間分配(1天)人員分配詳細(xì)任務(wù)原型系統(tǒng)研究(1天)XXX、XXX搜索尋找合
8、適的原型系統(tǒng)開發(fā)計(jì)劃/需求分析(1天)XXX、XXX項(xiàng)目名稱、開發(fā)背景、對(duì)原系統(tǒng)概述、目標(biāo)系統(tǒng)概述、項(xiàng)目計(jì)劃、可行行分析、需求分析、數(shù)據(jù)流程圖、數(shù)據(jù)字典數(shù)據(jù)庫設(shè)計(jì)/詳細(xì)設(shè)計(jì)(1天)XXX、XXX系統(tǒng)功能模塊圖、數(shù)據(jù)庫概要設(shè)計(jì)(E-R圖)、代碼設(shè)計(jì)、輸入/輸出界面設(shè)計(jì)、個(gè)人詳細(xì)設(shè)計(jì)編碼/測(cè)試/分析(1天)XXX、XXX實(shí)現(xiàn)主要界面/測(cè)試系統(tǒng)/分析系統(tǒng)優(yōu)缺點(diǎn)2 需求分析 2.1需求定義說明書2.1.1用戶功能需求分析通過對(duì)系統(tǒng)需求進(jìn)行分析,我們可以確定系統(tǒng)中有兩類用戶:管理員、用戶。各類用戶的具體描述如下: 管理員:管理員維護(hù)整個(gè)系統(tǒng),包括查看用戶信息、管理問題、刪除問題。 具體功能解釋如下:(1
9、)管理員功能是對(duì)用戶提出的問題進(jìn)行管理及用戶相關(guān)信息(如積分、獲得最佳答案數(shù)等)的查詢。 用戶:搜索問題、注冊(cè)賬戶、提出問題、回答問題、關(guān)閉問題、設(shè)置最佳答案; 具體功能解釋如下:(1)用戶搜索各個(gè)編程語言的相關(guān)知識(shí)(2)提問者可以發(fā)布某一編程語言的問題,回復(fù)者給出答案。(3)提問者在眾多答案中評(píng)選最佳答案,被評(píng)為最佳答案的回復(fù)者可以獲得規(guī)定的積分獎(jiǎng)勵(lì)。(4)如果沒有正確的答案,提問者可以關(guān)閉該問題。(5)用戶可以在前臺(tái)網(wǎng)站的搜索引擎中查找待解決或自己感興趣的各個(gè)編程語言問題及最佳答案。2.1.2 性能需求分析(1)安全性高:本系統(tǒng)需要進(jìn)過身份認(rèn)證的人員才可以登錄,安全性高; (2)可靠性:該
10、系統(tǒng)應(yīng)該運(yùn)行正常,可靠性很好;(3)穩(wěn)定性:該系統(tǒng)應(yīng)該輸出結(jié)果無誤,穩(wěn)定性很好;(4)便捷性:該系統(tǒng)采用圖形界面,操作方便快速,便捷性好。2.2數(shù)據(jù)流程圖根據(jù)系統(tǒng)調(diào)查階段的數(shù)據(jù)資料,并依據(jù)用戶的要求,確定該在線問答系統(tǒng)的基本功能和工作過程如下:(1) 頂層圖根據(jù)用戶與該系統(tǒng)的交互可得出,用戶主要就是提出問題和回答問題,管理員則管理問題。如圖2-1所示:圖 2-1 在線問答系統(tǒng)頂層圖(2) 一層圖首先用戶可根據(jù)自己的需求搜索問題尋找答案,也可直接選擇提出問題,其他用戶可根據(jù)此問題做出回復(fù),原用戶在眾多回復(fù)中選擇最優(yōu)答案,若無滿意答案或其他情況可隨時(shí)關(guān)閉此問題。管理員可對(duì)問題進(jìn)行管理,刪除不適當(dāng)?shù)?/p>
11、問題。根據(jù)相應(yīng)的功能要求,我們繪制系統(tǒng)的一層數(shù)據(jù)流程圖,如圖2-2所示:圖 2-2 在線問答系統(tǒng)一層圖2.3 數(shù)據(jù)字典數(shù)據(jù)字典是對(duì)描述數(shù)據(jù)流程圖中的數(shù)據(jù)項(xiàng)、數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)、加工處理邏輯等組成部分的嚴(yán)格定義,下面是本系統(tǒng)的數(shù)據(jù)字典。 數(shù)據(jù)項(xiàng)的定義數(shù)據(jù)項(xiàng)編號(hào):1-01數(shù)據(jù)項(xiàng)名稱:用戶代碼別名:無簡(jiǎn) 述:某個(gè)用戶的編號(hào)類型:字符串型長度:50字節(jié) 數(shù)據(jù)流的定義數(shù)據(jù)流名稱:?jiǎn)栴}編號(hào):F1簡(jiǎn)述:用戶提出的問題數(shù)據(jù)流來源:用戶數(shù)據(jù)流去向:?jiǎn)栴}記錄系統(tǒng)數(shù)據(jù)流組成:日期 + 提問標(biāo)題+ 提問內(nèi)容流通量:無限制高峰流通量:無限制 數(shù)據(jù)存儲(chǔ)的定義數(shù)據(jù)存儲(chǔ)的名稱:答題信息數(shù)據(jù)存儲(chǔ)編號(hào):D1簡(jiǎn)述:記錄回復(fù)主題、回復(fù)
12、內(nèi)容、回復(fù)時(shí)間等信息數(shù)據(jù)存儲(chǔ)組成:回復(fù)代碼 + 回復(fù)主題 + 回復(fù)內(nèi)容+回復(fù)時(shí)間關(guān)鍵字: 回復(fù)內(nèi)容 處理邏輯的定義處理名:在線用戶提問編號(hào):P1輸入:從用戶輸入輸出:從回答問題過程輸出描述:當(dāng)用戶將問題發(fā)布至系統(tǒng)時(shí),其他用戶可自行選擇是否回復(fù)問題 外部實(shí)體的定義外部實(shí)體名稱:用戶外部實(shí)體編號(hào):1外部實(shí)體組成:用戶代碼+用戶名+性別+郵件+密碼+積分簡(jiǎn) 述:用來描述外部實(shí)體的基本信息情況3 概要設(shè)計(jì)3.1系統(tǒng)功能模塊結(jié)構(gòu)圖明日知道網(wǎng)分為前臺(tái)操作和后臺(tái)管理兩個(gè)網(wǎng)站。前臺(tái)網(wǎng)站主要由提問模塊、恢復(fù)模塊、設(shè)置最佳答案模塊、關(guān)閉問題模塊、搜索問題模塊、用戶注冊(cè)模塊和用戶登錄模塊7部分組成。后臺(tái)管理網(wǎng)站主要
13、由用戶管理模塊和問題管理模塊組成。明日知道問答系統(tǒng)的功能結(jié)構(gòu)如圖3-1所示。圖 3-3 在線問答系統(tǒng)功能結(jié)構(gòu)圖3.2數(shù)據(jù)庫概要設(shè)計(jì)數(shù)據(jù)庫是數(shù)據(jù)庫應(yīng)用程序的核心。數(shù)據(jù)庫設(shè)計(jì)是建立一個(gè)應(yīng)用程序最重要的步驟之一。數(shù)據(jù)庫設(shè)計(jì)一般要在需求分析和數(shù)據(jù)分析的基礎(chǔ)上進(jìn)行概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)。3.2.1 概念設(shè)計(jì)經(jīng)過對(duì)該系統(tǒng)的研究我們了解到系統(tǒng)中的實(shí)體類型有:用戶、問題、答案、管理員,這些實(shí)體之間的相互關(guān)系有:管理員與問題之間存在“管理”聯(lián)系,是一對(duì)多的。問題與答案之間存在“回答問題”關(guān)系,是一對(duì)多的。用戶和問題之間存在“提問”關(guān)系,是多對(duì)多的。用戶和答案之間存在“回答”關(guān)系,是多對(duì)多的。每個(gè)實(shí)體的屬性
14、分別是:用戶:用戶代碼,用戶名,密碼,性別,郵件,用戶積分,獲得懸賞積分,發(fā)出懸賞積分,回復(fù)問題數(shù),被評(píng)為“最優(yōu)問題”數(shù),已解決問題數(shù),未解決問題數(shù),已關(guān)閉問題數(shù),注冊(cè)時(shí)間;問題:提問代碼,提問目錄,用戶代碼,提問標(biāo)題,提問內(nèi)容,懸賞分?jǐn)?shù),發(fā)布時(shí)間;答案:回復(fù)代碼,提問代碼,回復(fù)者代碼,回復(fù)主題,回復(fù)內(nèi)容,是否為最佳答案,好投票計(jì)數(shù),不好投票計(jì)數(shù);畫出在線問答系統(tǒng)的ER圖如圖3-2所示。圖 3-4 在線問答系統(tǒng)E-R圖3.2.2 物理設(shè)計(jì)物理設(shè)計(jì)的目的是根據(jù)具體DBMS的特征,確定數(shù)據(jù)庫的物理結(jié)構(gòu)(存儲(chǔ)結(jié)構(gòu))。關(guān)系數(shù)據(jù)庫的物理設(shè)計(jì)任務(wù)包括兩個(gè)方面,一是確定所有數(shù)據(jù)庫文件的名稱及其所含字段的名稱
15、、類型和寬度;二是確定各數(shù)據(jù)庫文件需要建立的索引,在什么字段上建立索引等。各表結(jié)構(gòu)如下表所示。tb_Question(問題表),用于保存用戶的提問信息,新建提問時(shí)狀態(tài)為“未解決”;提問者設(shè)置最佳答案是狀態(tài)變?yōu)椤耙呀鉀Q”;提問關(guān)閉時(shí)狀態(tài)為“已關(guān)閉”。表結(jié)構(gòu)如表3-1顯示。 表 3-2 問題表字段名數(shù)據(jù)類型長度是否主鍵描述Codevarchar50是提問代碼CatalogCodevarchar50否目錄代碼UserCodevarchar50否用戶代碼Titlenvarchar200否提問標(biāo)題Textntext16否提問內(nèi)容Markint4否懸賞分?jǐn)?shù)PostDatetimedatetime8否發(fā)布時(shí)
16、間Stateint4否狀態(tài)(0-未解決;1-已解決;2-已關(guān)閉) tb_Answer(答案表),用于保存答案的回復(fù)信息,提問者設(shè)置最佳答案時(shí),將是否為最佳答案設(shè)置為真。表結(jié)構(gòu)如表3-2顯示。 表 3-3 答案表字段名數(shù)據(jù)類型長度是否主鍵描述Codevarchar50是回復(fù)代碼QuestionCodevarchar50否提問代碼UserCodevarchar50否回復(fù)者代碼Titlenvarchar200否回復(fù)主題Textntext16否回復(fù)內(nèi)容BestAnswerbit1否是否為最佳答案PostDatetimedatetime8否回復(fù)時(shí)間VoteNiceint4否好投票計(jì)數(shù)VoteBadint
17、4否不好投票計(jì)數(shù) tb_UserInfo(用戶信息表),用于保存用戶注冊(cè)的信息。表結(jié)構(gòu)如表3-3所示。 表 3-4 用戶信息表字段名數(shù)據(jù)類型長度是否主鍵描述Codevarchar50是用戶代碼UserNamenvarchar200否用戶名Passwordvarchar20否密碼Sexchar2否性別Emailvarchar100否郵件Markint4否用戶積分RewardMarkint4否獲得懸賞積分PaidMarkint4否發(fā)出懸賞積分ACountint4否回復(fù)問題數(shù)AAcceptCountint4否被評(píng)為“最優(yōu)答案”數(shù)QSolvedCountint4否已解決問題數(shù)QUnsolveCount
18、int4否未解決問題數(shù)QCancelledCountint4否已關(guān)閉問題數(shù)CreatedCountdatetime8否注冊(cè)時(shí)間3.3代碼設(shè)計(jì) 3.3.1 問題代碼設(shè)計(jì)為了方便對(duì)管理員對(duì)問題的管理,用戶提問的信息編碼以字符串表示。根據(jù)在線問答系統(tǒng)的管理,“*”為小寫的英文字母和數(shù)字來表示,用“-”來連接,格式固定。問題代碼設(shè)計(jì)方案如圖3-3所示。圖 3-5 問題代碼設(shè)計(jì) 3.4輸入/輸出界面設(shè)計(jì) 3.4.1明日知道前臺(tái)首頁 如圖3-4所示:(1) 網(wǎng)頁首尾部:網(wǎng)頁頭部比較簡(jiǎn)單,但是卻很精簡(jiǎn),使明日知道搜索的LOGO一目了然。在底部放置企業(yè)郵箱、傳真、公司地址等信息,方便用戶咨詢。(2) 內(nèi)容:為
19、增強(qiáng)用戶體驗(yàn)度,該頁面利用TextBox控件制作搜索文本框,方便用戶搜索問題。為了使用戶更加精確搜索,特地在搜索框上方添加導(dǎo)航條,縮小搜索范圍。搜索框下方為熱門搜索,可直接點(diǎn)擊,簡(jiǎn)略輸入操作。(3) 配色:本頁面以綠色為主,綠色與人類息息相關(guān),是永恒的欣欣向榮的自然之色,代表了生命和希望,也充滿了青春與活力,是尋求知識(shí)的最佳顏色,給人舒適與安寧,同時(shí)有緩解眼部疲勞的作用。圖 3-6 明日知道系統(tǒng)首頁3.4.2 后臺(tái)管理員問題界面(1) 布局:在背景色主要為綠色的情況下,上方圖片是雙手打字的背景,可體現(xiàn)出用此軟件搜索或發(fā)布或回答問題;左側(cè)導(dǎo)航列特地選用白色背景,黑色字體,使管理員一眼就能找到系統(tǒng)
20、的主要功能;在右側(cè)問題顯示表中淡綠色和白色間隔的形式,使管理員查看問題更加清晰明了。(2) 顯示列表:在管理員管理問題時(shí)最主要的就是問題類別、提問者以及提問標(biāo)題,其他附加懸賞時(shí)間、發(fā)布時(shí)間及狀態(tài),方便管理員查看,每一行后面都有刪除問題的按鈕,管理員可根據(jù)行中信息決定是否刪除問題。在問題管理上方有搜索提問標(biāo)題的文本框,管理員可輸入敏感詞匯更加方便查詢是否存在這類的問題,方便刪除。圖 3-7 管理員后臺(tái)界面4 提問模塊設(shè)計(jì)(XXX)4.1 提問模塊主頁展示提問模塊實(shí)現(xiàn)的功能是保存用戶的提問信息。用戶首先在提問頁面錄入主題、內(nèi)容、類別、懸賞分?jǐn)?shù),其中主題、類別、內(nèi)容為必填項(xiàng),然后單擊“發(fā)送帖子”即可
21、發(fā)布問題。在加載提問頁面時(shí),程序首先會(huì)判斷用戶是否登錄,如果沒有登錄先跳轉(zhuǎn)到登錄提示頁面。登錄提示頁面如圖所示。如果沒有登錄帳號(hào),則可注冊(cè)帳號(hào)再登錄,若已經(jīng)注冊(cè)帳號(hào),則直接登錄即可發(fā)布信息。如圖4-1所示。 提問模塊實(shí)現(xiàn)步驟:(1)創(chuàng)建一個(gè)Web實(shí)體,命名為Qustion.aspx (2)Answer.aspx頁面運(yùn)用的主要控件:DropDownList控件、TextBox控件、ValidateCode控件、ImageButton控件圖 4-8 發(fā)布界面 4.2 提問模塊技術(shù)分析 在模塊功能的展示上,繪制了提問模塊的流程圖。如圖4-2所示。圖 4-9 提問模塊流程圖 在上圖中,執(zhí)行提問主要用到
22、LINQ TO SQ中對(duì)數(shù)據(jù)庫的插入和修改操作。數(shù)據(jù)庫的插入:tb_Question question = new tb_Question(); /創(chuàng)建提問信息question.Title = txtTitle.Text; /給實(shí)體成員賦值DC.tb_Question.InsertOnSubmit(question); /保存提問信息DC.SubmitChanges(); /提交至服務(wù)端數(shù)據(jù)庫的修改操作:tb_UserInfo user = DC.tb_UserInfo.FirstOrDefault(itm => itm.Code = ClientHelper.UserCode);use
23、r.QUnsolveCount = user.QUnsolveCount + 1; /未解決問題數(shù)+1DC.SubmitChanges(); /提交至服務(wù)器端5 發(fā)布信息界面(XXX)5.1 代碼設(shè)計(jì)在該系統(tǒng)中由于提問問題、回復(fù)問題、設(shè)置最佳答案及關(guān)閉問題都涉及到分?jǐn)?shù)的分配或問題數(shù)量的統(tǒng)計(jì)操作,所以必須先以注冊(cè)會(huì)員的身份登錄,然后才可以將提問者、回復(fù)者的信息與數(shù)據(jù)庫中存儲(chǔ)的信息進(jìn)行核對(duì),才可以有操作權(quán)限的判斷及積分的分配。圖 5-10 發(fā)布界面圖5-1的主要實(shí)現(xiàn)代碼如下: (1)在提問頁面的加載時(shí)間Page_load中,主要實(shí)現(xiàn)兩個(gè)功能:一個(gè)是判斷用戶是否登錄,如果沒有登錄將提示登錄;二是將數(shù)
24、據(jù)類別數(shù)據(jù)庫表中的內(nèi)容填充到下拉列表框中,具體代碼如下: DataClassesDataContext DC = new DataClassesDataContext(); protected void Page_Load(object sender, EventArgs e) if (!Page.IsPostBack) if (string.IsNullOrEmpty(ClientHelper.UserCode)/提問前判斷用戶是否登陸 Session"RedirectFrom" = Request.Url; /記住當(dāng)前的Url Response.Redirect(&qu
25、ot;NotLogin.aspx"); /跳轉(zhuǎn)到登陸提示頁 var query = from item in DC.tb_Catalog /取類別數(shù)據(jù)表中的數(shù)據(jù) select new Code = item.Code, Name = item.Name ; ddlCatalogCode.DataSource = query; /將類別數(shù)據(jù)表中的數(shù)據(jù)綁定到類別下拉列表框 ddlCatalogCode.DataTextField = "Name" ddlCatalogCode.DataValueField = "Code" ddlCatalogCo
26、de.DataBind(); (2)輸入提問信息后,單擊發(fā)送帖子按鈕將提問信息保存到數(shù)據(jù)庫中,由于提交了一個(gè)未解決的問題,所以提問者的未解決數(shù)加1,全局設(shè)置表中未解決總數(shù)也加1。主要代碼如下: /保存提問信息 protected void ibtnPostQuestion_Click(object sender, ImageClickEventArgs e) if (!ValidateCode1.CheckSN(txtCheckCode.Text) /判斷驗(yàn)證碼是否正確 lblMessage.Text = "輸入驗(yàn)證碼不正確!" return; if (Page.IsVal
27、id) tb_UserInfo user = DC.tb_UserInfo.FirstOrDefault(itm => itm.Code = ClientHelper.UserCode); if (txtMark.Text.Trim() != "" && user.Mark < Convert.ToInt32(txtMark.Text) Response.Write("<Script>window.alert('用戶的分?jǐn)?shù)不足!')</Script>"); return; tb_Ques
28、tion question = new tb_Question(); /創(chuàng)建提問信息實(shí)體 question.Code = ClientHelper.BuildCode(); /調(diào)用公共類生成唯一號(hào) /給實(shí)體成員賦值 question.CatalogCode = ddlCatalogCode.SelectedValue; question.UserCode = ClientHelper.UserCode; question.Title = txtTitle.Text; question.Text = txtText.Text; if (txtMark.Text.Trim() !="&q
29、uot;) question.Mark = Convert.ToInt32(txtMark.Text); question.PostDatetime = ClientHelper.ServerDate; question.State = 0; /狀態(tài)默認(rèn)為0(未解決) DC.tb_Question.InsertOnSubmit(question); /保存提問信息 /用戶信息表中提問者的"未解決問題數(shù)"+1 user.QUnsolveCount = user.QUnsolveCount + 1; /全局配置表中"未解決問題數(shù)"+1 tb_Config c
30、onfig = DC.tb_Config.FirstOrDefault(); config.UnSolved = config.UnSolved + 1; DC.SubmitChanges(); /提交結(jié)果到服務(wù)器端 txtTitle.Text = "" /清空輸入內(nèi)容 ddlCatalogCode.SelectedIndex = 0; txtText.Text = "" txtMark.Text = "" txtCheckCode.Text = "" Response.Write("<Script
31、>window.alert('保存成功!')</Script>"); 5.2 代碼設(shè)計(jì)技術(shù)分析LINQ TO SQL可直接對(duì)數(shù)據(jù)庫進(jìn)行插入、查找、修改、刪除、排序、聚合、分分區(qū)等操作。在使用LINQ TO SQL查詢和操作數(shù)據(jù)庫之前,首先創(chuàng)建自動(dòng)生成的數(shù)據(jù)上下文類的實(shí)例。其代碼如下: DataClassesDataContext DC = new DataClassesDataContext();創(chuàng)建上下文類實(shí)例后可以查詢數(shù)據(jù)庫中的數(shù)據(jù),與傳統(tǒng)的SQL存儲(chǔ)過程相比,使用此方法獲取數(shù)據(jù)更加簡(jiǎn)潔。在提問模塊主要是發(fā)布問題,用到的是向數(shù)據(jù)庫中添加數(shù)據(jù),實(shí)現(xiàn)
32、該功能主要通過InsertOnSubmit()方法和SubmitChange()方法實(shí)現(xiàn),其中,InsertOnSubmit()方法將單個(gè)實(shí)體的集合添加到Table(T)類的實(shí)例中,SubmitChange()方法計(jì)算要插入、更新或刪除的以修改對(duì)象的集,并執(zhí)行相應(yīng)命令以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的修改。6 提問模塊設(shè)計(jì)(XXX) 6.1提問模塊測(cè)試設(shè)計(jì)表 6-5 提問模塊測(cè)試設(shè)計(jì)檢測(cè)項(xiàng)測(cè)試條件測(cè)試數(shù)據(jù)預(yù)計(jì)測(cè)試結(jié)果發(fā)布問題未登錄發(fā)布未登錄發(fā)布跳轉(zhuǎn)到提示頁面提示:您需要登錄才可以參與本站活動(dòng)。沒有帳號(hào)?注冊(cè)登錄用戶密碼賬號(hào)正確lyl,110110,egk3登錄成功用戶錯(cuò)誤ly,110110,egk3該用戶名不存
33、在用戶為空“”,110110,egk3請(qǐng)輸入登錄昵稱密碼錯(cuò)誤lyl,110111,egk3密碼不正確,請(qǐng)重新輸入密碼為空lyl,“”,egk3輸入密碼不能為空!驗(yàn)證碼錯(cuò)誤lyl,110110,egk2輸入驗(yàn)證碼不正確!驗(yàn)證碼為空lyl,110110,“”輸入驗(yàn)證碼不正確!登錄成功主題、類別、內(nèi)容、懸賞分?jǐn)?shù)、驗(yàn)證碼正確程序設(shè)計(jì),ASP.NET,尋找程序源碼,10,egk3發(fā)布成功類別為空程序設(shè)計(jì),“”,尋找程序源碼,10,egk3懸賞分?jǐn)?shù)為空程序設(shè)計(jì),ASP.NET,尋找程序源碼,“”,egk3主題為空“”,ASP.NET,尋找程序源碼,10,egk3請(qǐng)輸入主題內(nèi)容為空程序設(shè)計(jì),ASP.NET,
34、“”,10,egk3請(qǐng)輸入要發(fā)表的內(nèi)容驗(yàn)證碼錯(cuò)誤程序設(shè)計(jì),ASP.NET,尋找程序源碼,10,egk1輸入驗(yàn)證碼不正確!驗(yàn)證碼為空程序設(shè)計(jì),ASP.NET,尋找程序源碼,10,“”請(qǐng)輸入驗(yàn)證碼6.2 提問模塊實(shí)際測(cè)試操作表 6-6 提問模塊測(cè)試操作檢測(cè)項(xiàng)測(cè)試條件測(cè)試數(shù)據(jù)預(yù)計(jì)測(cè)試結(jié)果實(shí)際測(cè)試結(jié)果發(fā)布問題未登錄發(fā)布未登錄發(fā)布跳轉(zhuǎn)到提示頁面提示:您需要登錄才可以參與本站活動(dòng)。沒有帳號(hào)?注冊(cè)發(fā)布失敗登錄用戶密碼賬號(hào)正確lyl,110110,egk3登錄成功登錄成功用戶錯(cuò)誤ly,110110,egk3該用戶名不存在登錄失敗用戶為空“”,110110,egk3請(qǐng)輸入登錄昵稱登錄失敗密碼錯(cuò)誤lyl,1101
35、11,egk3密碼不正確,請(qǐng)重新輸入登錄失敗密碼為空lyl,“”,egk3輸入密碼不能為空!登錄失敗驗(yàn)證碼錯(cuò)誤lyl,110110,egk2輸入驗(yàn)證碼不正確!登錄失敗驗(yàn)證碼為空lyl,110110,“”輸入驗(yàn)證碼不正確!登錄失敗登錄成功主題、類別、內(nèi)容、懸賞分?jǐn)?shù)、驗(yàn)證碼正確程序設(shè)計(jì),ASP.NET,尋找程序源碼,10,egk3發(fā)布成功發(fā)布成功類別為空程序設(shè)計(jì),“”,尋找程序源碼,10,egk3懸賞分?jǐn)?shù)為空程序設(shè)計(jì),ASP.NET,尋找程序源碼,“”,egk3主題為空“”,ASP.NET,尋找程序源碼,10,egk3請(qǐng)輸入主題發(fā)布失敗內(nèi)容為空程序設(shè)計(jì),ASP.NET,“”,10,egk3請(qǐng)輸入要
36、發(fā)表的內(nèi)容發(fā)布失敗驗(yàn)證碼錯(cuò)誤程序設(shè)計(jì),ASP.NET,尋找程序源碼,10,egk1輸入驗(yàn)證碼不正確!發(fā)布失敗驗(yàn)證碼為空程序設(shè)計(jì),ASP.NET,尋找程序源碼,10,“”請(qǐng)輸入驗(yàn)證碼發(fā)布失敗6.3 測(cè)試評(píng)價(jià)首先點(diǎn)擊“我要提問”,當(dāng)未登錄時(shí)跳轉(zhuǎn)到提示登錄頁面,當(dāng)已登錄時(shí)成功跳轉(zhuǎn)到問題發(fā)布頁面,主題、內(nèi)容、驗(yàn)證碼為必填項(xiàng),類別、懸賞分?jǐn)?shù)選填,操作正常則發(fā)布成功!在此界面上,仍然存在不足之處,在類別選項(xiàng)中若不選則會(huì)默認(rèn)為第一個(gè),也就是自動(dòng)選擇類別!當(dāng)全部為空時(shí),錯(cuò)誤提示只是在當(dāng)前頁面提示,并沒有以彈出框的形式出現(xiàn),不能引人矚目!4 回復(fù)模塊設(shè)計(jì)(XXX)4.1 問題回復(fù)模塊分析 4.1.1 回復(fù)模塊實(shí)
37、現(xiàn)前提 回復(fù)模塊實(shí)現(xiàn)的功能是對(duì)提問模塊提出的問題進(jìn)行回復(fù),并不是所有地提問都允許回復(fù),回復(fù)問題的前提如下。(1) 該問題沒有被提問或者關(guān)閉(或管理員刪除)。(2) 該問題還沒有最佳答案。(3) 該用戶沒有回復(fù)過該問題。 4.1.2 回復(fù)模塊實(shí)現(xiàn)方式在回復(fù)面錄入回復(fù)主題、回復(fù)內(nèi)容及正確的驗(yàn)證碼后,單擊“發(fā)送帖子”按鈕,將回復(fù)信息保存到數(shù)據(jù)庫的答案表中。如圖4-1回復(fù)模塊。圖 4-11 回復(fù)模塊 4.1.3回復(fù)模塊實(shí)現(xiàn)流程 為了更加清晰地理解回復(fù)模塊的總體設(shè)計(jì)思路,詳見如圖4-2回復(fù)模塊的流程圖。圖 4-12 回復(fù)模塊流程圖 4.1.4 回復(fù)模塊實(shí)現(xiàn)步驟(1)創(chuàng)建一個(gè)Web實(shí)體,命名為Answer
38、.aspx (2)Answer.aspx頁面運(yùn)用的主要控件 控件類型:DataList控件、TextBox控件、ValidateCode控件、ImageButton控件5 編碼(XXX)要求選用特定程序設(shè)計(jì)語言對(duì)所選的數(shù)據(jù)管理、查詢、報(bào)表幾個(gè)模塊進(jìn)行代碼實(shí)現(xiàn),并復(fù)制主要的實(shí)現(xiàn)界面,描述實(shí)現(xiàn)中的關(guān)鍵技術(shù)和技術(shù)難點(diǎn)(著明制作人,制作時(shí)間)5.1 回復(fù)模塊的關(guān)鍵技術(shù) 在回復(fù)模塊執(zhí)行“進(jìn)入提問”操作時(shí)主要應(yīng)用了查詢字符串傳值技術(shù)和Session傳值技術(shù)。執(zhí)行“提交答案”操作應(yīng)用了LINQ to SQL中對(duì)SQL Server數(shù)據(jù)庫的修改和刪除操作。(1)獲得查詢字符串中指定參數(shù)值的實(shí)例代碼 if (R
39、equest.QueryString"QuestionCode" != null) /提問唯一號(hào)不為空 QuestionCode = Request.QueryString"QuestionCode".ToString();(2)從Session中取出指定對(duì)象的實(shí)例代碼 Session"RedirectFrom" = Request.Url;(3)應(yīng)用LINQ to SQL中對(duì)SQL Server數(shù)據(jù)庫刪除操作的代碼tb_Answer answer = DC.tb_Answer.FirstOrDefault(itm => itm
40、.Code = code); DC.tb_Answer.DeleteOnSubmit(answer);/刪除回復(fù)信息DC.SubmitChanges();/提交刪除操作5.2 回復(fù)模塊相關(guān)代碼(1)在回復(fù)問題頁面有兩個(gè)DataList控件,分別用來顯示提問信息回復(fù)信息。在初始化這兩個(gè)DataList數(shù)據(jù)時(shí)都調(diào)用了一個(gè)自定義LoadData()方法,主要代碼如下:private void LoadData() var questionQuery = from item in DC.tb_Question/使用LINQ查詢提問信息 where item.Code = QuestionCode jo
41、in user in DC.tb_UserInfo on item.UserCode equals user.Code join catalog in DC.tb_Catalog on item.CatalogCode equals catalog.Code select new Code = item.Code, Title = item.Title, Text = item.Text, QuestionMark = item.Mark, PostDatetime = item.PostDatetime, UserCode = user.UserName, Mark = user.Mark,
42、 AAcceptCount = user.AAcceptCount, CreatedDate = user.CreatedDate, CatalogCode = item.CatalogCode, CatalogName = catalog.Name ; if (questionQuery != null) dlQuestion.DataSource = questionQuery; /將提問信息綁定到DataList dlQuestion.DataBind(); var answerQuery = from item in DC.tb_Answer/使用LINQ查詢回復(fù)信息 where it
43、em.QuestionCode = QuestionCode join user in DC.tb_UserInfo on item.UserCode equals user.Code select new Code = item.Code, QuestionCode = item.QuestionCode, Title = item.Title, Text = item.Text, PostDatetime = item.PostDatetime, UserCode = user.UserName, Mark = user.Mark, AAcceptCount = user.AAcceptC
44、ount, CreatedDate = user.CreatedDate ; dlAnswer.DataSource = answerQuery; /將回復(fù)信息綁定到DataList dlAnswer.DataBind(); (2)雙擊問題回復(fù)頁(Answer.aspx)中的“發(fā)送帖子”按鈕,觸發(fā)其Click事件,在該事件中科將回復(fù)信息保存到數(shù)據(jù)庫中,并且當(dāng)回復(fù)了一個(gè)問題時(shí)回復(fù)者的回復(fù)問題數(shù)+1。主要代碼如下:protected void ibtnPostAnswer_Click(object sender, ImageClickEventArgs e) int cnt = DC.tb_Ans
45、wer.Count(itm => itm.QuestionCode = QuestionCode && itm.UserCode = ClientHelper.UserCode); if (cnt > 0) lblMessage.Text = "不能重復(fù)回復(fù)同一問題" return; int cnt2 = DC.tb_Question.Count(itm => itm.Code = QuestionCode && itm.UserCode = ClientHelper.UserCode); if (cnt2 > 0)
46、lblMessage.Text = "不能回復(fù)自已提出的問題" return; if (!CurrencyCheck(QuestionCode) return; /判斷不能修改其他用戶的帖子/? if (!ValidateCode1.CheckSN(txtCheckCode.Text) lblMessage.Text = "輸入驗(yàn)證碼不正確!" return; if (Page.IsValid) if (AnswerCode = "")/傳入的查詢字符串為空,是新建回復(fù)信息操作 tb_Answer answer = new tb_Answer(); answer.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 六盤水職業(yè)技術(shù)學(xué)院《典型零件的工藝設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 金肯職業(yè)技術(shù)學(xué)院《微機(jī)原理含實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 新蘇教版一年級(jí)下冊(cè)數(shù)學(xué)第1單元第3課時(shí)《8、7加幾》作業(yè)
- 懷化學(xué)院《影視創(chuàng)作前沿技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖北理工學(xué)院《人力資源管理咨詢與診斷》2023-2024學(xué)年第一學(xué)期期末試卷
- 資陽口腔職業(yè)學(xué)院《測(cè)試與傳感器技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 小學(xué)黨員聯(lián)系群眾、服務(wù)群眾制度
- 長沙學(xué)院《材料加工過程多尺度模擬》2023-2024學(xué)年第一學(xué)期期末試卷
- 寒露節(jié)氣策劃講座模板
- 職業(yè)導(dǎo)論-房地產(chǎn)經(jīng)紀(jì)人《職業(yè)導(dǎo)論》名師預(yù)測(cè)卷3
- 藝術(shù)品捐贈(zèng)協(xié)議
- 網(wǎng)絡(luò)安全系統(tǒng)運(yùn)維方案
- 2024年標(biāo)準(zhǔn)溝渠回填工程承包協(xié)議版B版
- 2024年專用:物業(yè)安全管理協(xié)議3篇
- 【公開課】同一直線上二力的合成+課件+2024-2025學(xué)年+人教版(2024)初中物理八年級(jí)下冊(cè)+
- 《政府采購業(yè)務(wù)培訓(xùn)》課件
- 《醫(yī)療器械召回管理辦法》培訓(xùn)2024
- 網(wǎng)絡(luò)安全培訓(xùn)內(nèi)容課件
- 通信線路維護(hù)安全培訓(xùn)
- 專業(yè)微信小程序開發(fā)協(xié)議范例版
- 高職組全國職業(yè)院校技能大賽(嬰幼兒照護(hù)賽項(xiàng))備賽試題庫(含答案)
評(píng)論
0/150
提交評(píng)論