版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 《C#程序設(shè)計》課程設(shè)計</p><p> 題 目: 在線留言 </p><p> 專 業(yè): 計算機(jī)科學(xué)與技術(shù) </p><p> 學(xué) 號: </p><p> 姓 名: </p>&
2、lt;p> 指導(dǎo)老師: </p><p> 完成日期: 2012-12-26 </p><p><b> 目 錄</b></p><p><b> 1 前言1</b></p><p><b> 2 需求分析1
3、</b></p><p><b> 2.1要求1</b></p><p><b> 2.2任務(wù)1</b></p><p><b> 2.3運行環(huán)境1</b></p><p><b> 2.4開發(fā)工具1</b></p>
4、<p> 3 概要設(shè)計與詳細(xì)設(shè)計1</p><p> 3.1系統(tǒng)流程圖1</p><p> 3.2查詢函數(shù)流程圖2</p><p><b> 4 編碼與實現(xiàn)2</b></p><p><b> 4.1分析2</b></p><p> 4.2
5、具體代碼實現(xiàn)3</p><p> 5 課程設(shè)計總結(jié)3</p><p><b> 參考文獻(xiàn)3</b></p><p><b> 致 謝3</b></p><p><b> 1 前言</b></p><p> 隨著計算機(jī)的普及,人們可以更
6、方便的借助計算機(jī)這一平臺實現(xiàn)各種生活需求,此次的設(shè)計,就是為了設(shè)計一個留言本,其中包括了用戶留言,回復(fù),管理員對留言信息的管理等基本功能,其中管理員可以刪除用戶留言,或者對用戶的留言進(jìn)行回復(fù)等,這些功能都能方便的為大家所使用。給人們創(chuàng)造一個愉快的交流平臺。</p><p><b> 2 需求分析</b></p><p><b> 2.1需求分析</
7、b></p><p> 開發(fā)一個在線留言系統(tǒng),首先需要確定留言的功能是什么,也就是用戶想要的留言所能做的工作。用戶使用留言是按照一定的流程來進(jìn)行的:用戶注冊登錄進(jìn)入留言,可以就某個話題展開討論,通過留言功能發(fā)布新的話題,通過回帖的功能回復(fù)已有的話題;管理員要管理留言,系統(tǒng)需要具有的功能有創(chuàng)建、刪除留言的版塊,管理注冊的用戶,管理留言,設(shè)置留言基本參數(shù)。這樣的流程就決定了留言所應(yīng)具有的功能。</p&g
8、t;<p> 觀察留言所有功能需求,按不同實體分類,可以分為四類實體對象:版塊、留言、用戶和留言。這四類對象,可以設(shè)計為四個數(shù)據(jù)實體,如果使用數(shù)據(jù)庫存儲它們,即可以設(shè)計四個基本數(shù)據(jù)表的集合來存儲這些實體的基本信息;它們可以設(shè)計為四個基本表,映射四個實體的基本數(shù)據(jù)。這些基本對象只是留言系統(tǒng)中最為基本的要素,對于一個完整的留言還需要其它相關(guān)的表來記錄相關(guān)的信息,即實體之間的相互關(guān)系信息。</p><p&g
9、t; 留言一般存在兩種用戶,注冊用戶和管理員。用戶的權(quán)限是向下覆蓋的,即上級權(quán)限包含下級權(quán)限,在這個留言中,管理員的權(quán)限是上級權(quán)限。</p><p> 留言系統(tǒng)的用戶瀏覽信息功能,是用戶討論問題的平臺,發(fā)帖、瀏覽、回帖一直貫穿用戶的整個活動。同時,由于留言系統(tǒng)的留言管理是管理員在留言瀏覽時進(jìn)行的,因此編輯、刪除等功能也安排在瀏覽信息時實現(xiàn),只是一般用戶沒有權(quán)限做這些動作。其它與管理員相關(guān)的功能,包括版塊管理、
10、用戶管理和留言設(shè)置的都是需要管理員在管理模塊進(jìn)行操作。</p><p><b> 2.2任務(wù)</b></p><p> 下面就管理員所做的管理進(jìn)行介紹: </p><p> 查看留言:任何用戶可以根據(jù)發(fā)言者留下的郵箱地址發(fā)郵件。</p><p> 刪除留言:如果用戶發(fā)表了不符合留言規(guī)則的留言,則需要管理員刪除這些
11、留言。</p><p> 管理版塊:留言版塊需要先創(chuàng)建,才能被使用,管理員還可以刪改版塊的相關(guān)信息。</p><p> 設(shè)置參數(shù):留言一般有一些初始化信息,比如留言名稱、每頁顯示留言數(shù)量等參數(shù)信息,管理員可以在后臺界面自行設(shè)置。</p><p><b> 模塊設(shè)計:</b></p><p> (1)登錄功能模塊:
12、用戶個人注冊、登錄,管理員登錄;</p><p> (2)瀏覽功能模塊:用戶瀏覽版塊、瀏覽主題帖列表、查看留言;</p><p> (3)發(fā)帖回帖功能模塊:用戶發(fā)帖,管理員回帖;</p><p> (4)留言管理功能模塊:管理員編輯、刪除;</p><p> (5)留言設(shè)置功能模塊:管理員設(shè)置留言參數(shù);</p><
13、p> (6)用戶管理模塊:管理員添加、刪除。</p><p> 用戶注冊、登陸以及修改個人的注冊信息組合成注冊登錄模塊;用戶瀏覽版塊、瀏覽主體帖列表、查看留言組合成瀏覽模塊;用戶發(fā)帖;管理員編輯留言、刪除留言。以上四個模塊組成用戶使用的基本功能模塊。擴(kuò)展功能模塊都是與管理員相關(guān)的,設(shè)置留言參數(shù)單獨為留言設(shè)置模塊;創(chuàng)建、修改和刪除版塊為管理版塊模塊;刪除和回復(fù)為管理用戶模塊。</p><
14、;p> 從以上分析,可以得到留言的功能框架,即系統(tǒng)的各個部分已經(jīng)確定,對于留言系統(tǒng)來說,各個模塊之間用一條主線串聯(lián)起來,才能構(gòu)建完整的系統(tǒng)。聯(lián)系各個模塊的主線是使用者的權(quán)限,用戶能使用留言的哪些功能是由用戶的權(quán)限決定的。留言權(quán)限相對應(yīng)。同一類用戶使用的功能模塊,是以使用者為中心連接起來的。另外,操作同一類事物的功能模塊,也是有相互關(guān)系的。因此,瀏覽模塊與發(fā)帖回帖模塊、管理留言模塊關(guān)聯(lián),是由留言的系統(tǒng)流程決定的。而管理版塊模塊與瀏
15、覽模塊關(guān)聯(lián),是由留言與版塊的父子關(guān)系決定的,留言附于版塊,先有版塊,后有留言,留言必須發(fā)表在某個版塊中。還有管理用戶模塊與注冊登錄模塊關(guān)聯(lián),是由同一類對象(用戶)決定的,用戶注冊后獲得留言的身份,成為用戶,所有的用戶需要接受管理員的管理,用戶登錄證明自己的留言中身份。</p><p><b> 2.3運行環(huán)境</b></p><p> ?。?)WINDOWS2000
16、/XP系統(tǒng)</p><p> ?。?)TurboC2.0編譯環(huán)境</p><p><b> 2.4開發(fā)工具</b></p><p><b> C#語言</b></p><p> 3 概要設(shè)計與詳細(xì)設(shè)計</p><p><b> 3.1系統(tǒng)流程圖</b&
17、gt;</p><p> 留言功能流程如圖3.1.1所示。</p><p> 圖3.1.1 留言功能流程圖 </p><p> 留言的模塊體系圖如圖3.1.2所示。</p><p> 圖3.1.2 留言的模塊圖</p><p> 3.2查詢函數(shù)流程圖</p><p>
18、 該系統(tǒng)的實體有:管理員信息實體、用戶信息實體、留言實體、版面信息實體。實體之間的E-R圖如圖3.2所示。</p><p> 圖3.2 實體間的關(guān)系E-R圖</p><p> 考慮到將來功能上的完整性,設(shè)計如下面所示的數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu):</p><p> 用戶信息:包括數(shù)據(jù)項有用戶名、密碼、頭銜、頭像、用戶等。</p><p>
19、 留言信息:包括數(shù)據(jù)項有所屬版面、父留言的編號、子留言的編號、用戶、主題、內(nèi)容、發(fā)表時間等。</p><p> 基于上面的內(nèi)容,設(shè)計了下列表,這些表之間相互關(guān)聯(lián),共同存儲著系統(tǒng)所需要的數(shù)據(jù)。在設(shè)計數(shù)據(jù)庫表的過程中,一般要遵循幾條原則:數(shù)據(jù)庫設(shè)計一個表最好只存儲一個實體或?qū)ο蟮南嚓P(guān)信息,不同的實體最好存儲在不同的數(shù)據(jù)表中,如果實體還可以再劃分,實體的劃分原則是最好能夠比當(dāng)前系統(tǒng)要開發(fā)的實體的復(fù)雜度??;數(shù)據(jù)表的信息
20、結(jié)構(gòu)一定要合適,表的字段的數(shù)量一般不要過多;擴(kuò)展信息和動態(tài)變化的信息一定要分開在不同的表里;多對多這樣的表關(guān)系盡量不出現(xiàn)等。</p><p> 留言版面表note_comment: 記錄所有的留言版面的信息。</p><p> 版塊表note_comment2:版塊信息。</p><p> 后臺留言配置表note:對留言的某些信息進(jìn)行配置,如留言URL地址、公
21、司名稱、主頁URL地址等,進(jìn)行這些設(shè)置是為了盡可能最大地利用使用有限的資源,同時更有效地管理留言,對訪問留言的用戶量信息也有一個很好的記錄。</p><p> 用戶表users:記錄了用戶的基本且必要的信息。</p><p> 管理員表note_admin:記錄了管理員賬號、密碼、回復(fù)。</p><p> 設(shè)計數(shù)據(jù)表間的關(guān)系為雙層對應(yīng),就是簡單的針對某一留言管
22、理員進(jìn)行回復(fù)</p><p><b> 4 編碼與實現(xiàn)</b></p><p><b> 4.1分析</b></p><p> 4.1.1數(shù)據(jù)庫表的設(shè)計</p><p> 設(shè)計數(shù)據(jù)庫表的字段時,需要充分考慮到留言的應(yīng)用特點。數(shù)據(jù)庫表的設(shè)計要求簡單易于理解,擴(kuò)展性好。 其中記錄留言發(fā)表文章的數(shù)
23、據(jù)庫表note_comment</p><p> 主要有以下的以下幾個描述字段:</p><p> subject留言主題</p><p> Name: 發(fā)貼者姓名</p><p> Comment: 留言內(nèi)容</p><p> Email: 郵箱地址</p><p
24、> url: 主頁</p><p> communication 其他聯(lián)系方式</p><p> IP IP 地址</p><p> PostDate 留言提交時間</p><p> 4.1.2數(shù)據(jù)庫的連接</p><p> Access是文件型數(shù)
25、據(jù)庫,一個文件就是一個數(shù)據(jù)庫,可以利用ASP中的語法直接連接。在連接數(shù)據(jù)庫之前,必須先聲明一個對象來當(dāng)作數(shù)據(jù)庫與ASP程序之間的媒介,具體連接方式如下:</p><p> set rs=Server.CreateObject("ADODB.RecordSet")'創(chuàng)建RecordSet 對象 </p><p> rs.open "select
26、 * from note_comment order by id desc",conn,1,3 '從數(shù)據(jù)庫中讀取留言,并保存在rs 中</p><p> if rs.eof and rs.bof then '不存在留言記錄</p><p> response.redirect "book_write.asp"
27、9;轉(zhuǎn)到撰寫留言頁面</p><p> else '存在記錄</p><p> if counts=0 or counts="" then counts=10'每頁留言條數(shù) </p><p> rs.pageSize = counts'每頁記錄數(shù)</p><
28、;p> allpages = rs.pageCount'總頁數(shù)</p><p> page = Request("page")'從瀏覽器取得當(dāng)前頁 </p><p> If not isNumeric(page) then page=1 'page不是數(shù)字</p><p>
29、 if isEmpty(page) or Cint(page) < 1 then'page 為空或小于1</p><p> page = 1 </p><p> elseif Cint(page) >= allPages then 'page 值大于總頁數(shù)</p><p> page = allPages <
30、;/p><p><b> end if </b></p><p> rs.AbsolutePage = page'轉(zhuǎn)到某頁頭部 </p><p> Do While Not rs.eof </p><p> UserName=rs("Name")'用戶
31、名 </p><p> Comments=rs("Comment")'內(nèi)容 </p><p> Reply=rs("Reply")'回復(fù) </p><p> Usermail=rs("Email")'郵件 </p><p
32、> url=rs("Url")'主頁 </p><p> replyname = rs("ReplyName")'回復(fù)人姓名</p><p> I=I+1'留言序號</p><p> temp=RS.RecordCount-(page-1)*rs.
33、pageSize-I+1 </p><p><b> %> </b></p><p> 在打開數(shù)據(jù)庫并完成相應(yīng)的操作后,應(yīng)關(guān)閉數(shù)據(jù)庫連接。當(dāng)不再需要連接時將其關(guān)閉,可以減少對數(shù)據(jù)庫服務(wù)器的要求并可以使其他用戶能夠使用該連接。</p><p> 用Connection對象的Close方法終止Connection對象和數(shù)據(jù)庫之間的
34、連接。下面的腳本打開連接,然后將其關(guān)閉:</p><p><b> <%</b></p><p><b> End If</b></p><p> conn.CLose'關(guān)閉數(shù)據(jù)庫</p><p> Set conn = nothing</p&g
35、t;<p><b> %></b></p><p><b> 4.2具體代碼實現(xiàn)</b></p><p><b> 數(shù)據(jù)添加</b></p><p> rs.Addnew'添加一條記錄</p><p> rs(&
36、quot;Name")=Request.Form("username")'姓名</p><p> rs("Comment")=Request.Form("comments")'留言內(nèi)容</p><p> rs("Email")=Request.For
37、m("usermail")'郵箱地址</p><p> rs("url")=Request.Form("url")'主頁</p><p> rs("Communication")=Request.Form("communication"
38、;)'其他聯(lián)系方式</p><p> rs("IP")=Request.serverVariables("REMOTE_ADDR")'IP 地址</p><p> rs("PostDate") = now()'留言提交時間</p><p&g
39、t; rs("Subject") = Request.Form("subject")'留言主題</p><p> rs.Update'更新數(shù)據(jù)庫</p><p><b> 數(shù)據(jù)刪除</b></p><p> sub delfeedbac
40、k()'留言刪除</p><p> if delid="" or isnull(delid) then'要刪除的記錄id 為空則給出提示</p><p> response.write "<script>alert('操作失敗,沒有選擇合適參數(shù),請單擊“確定”返回!');</script>
41、"</p><p> response.redirect "admin_main.asp"'返回到留言管理界面</p><p> response.end</p><p> else'id 存在</p><p> '執(zhí)行數(shù)據(jù)庫中的刪除操作,刪除數(shù)據(jù)庫中id
42、 列的值在delid數(shù)組中的記錄</p><p> conn.Execute("delete * from note_comment where ID in ("&delid&")")</p><p> '刪除成功,給出提示</p><p> response.write "<sc
43、ript>alert('留言刪除成功,請單擊“確定”返回!');</script>"</p><p> response.redirect "admin_main.asp"'返回到留言管理界面</p><p> response.end</p><p><b> end
44、 if</b></p><p><b> end sub</b></p><p> <!--留言變量設(shè)置-基本變量設(shè)置頁面代碼--></p><p> <!--#include file="conn.asp"--></p><p><b> <
45、;%</b></p><p> If Request.QueryString("action")="setup" then</p><p> call setup()</p><p><b> Else</b></p><p> If Session("
46、;id")<>"" Then</p><p> Set rs = server.createobject("ADODB.RecordSet")</p><p> rs.Open "Select * from note_Admin where id="&Session("id")
47、,conn,1,3</p><p><b> %> </b></p><p><b> <%</b></p><p> Sub setup()</p><p> if request("save")="ok" then
48、'保存設(shè)置</p><p> '創(chuàng)建RecordSet 對象</p><p> Set NArs=Server.CreateObject("ADODB.Recordset")</p><p> '從數(shù)據(jù)庫note_admin中查詢id 列的值為Session("id") 的記錄,并保存在NArs
49、中</p><p> NArs.open "select * from note_admin where id="&Session("id"),conn,1,3</p><p> '創(chuàng)建RecordSet 對象</p><p> Set WBrs = Server.CreateObject("
50、ADODB.RecordSet")</p><p> '從數(shù)據(jù)庫web 中查詢所有記錄,并保存在WBrs 中</p><p> WBrs.Open "Select * from web",conn,1,3</p><p><b> '資料填寫不完整</b></p><p&
51、gt; if trim(request.form("sitename"))="" or trim(request.form("admin"))="" or trim(request.form("maxlength"))="" or trim(request.form("counts"))=&quo
52、t;" or trim(request.form("replycolor"))="" or trim(request.form("isreply"))="" or trim(request.form("distance"))="" then</p><p> '給出提示,并返
53、回到前一頁</p><p> response.write "<script>alert('資料填寫不完整或有錯誤,請檢查后重新提交。');history.back();</script>"</p><p> response.end</p><p><b> end if</b>
54、;</p><p> '輸入的留言主題最大長度、留言內(nèi)容最大長度、每頁留言數(shù)和表格間距不是數(shù)字</p><p> if (not isNumeric(request.form("subjectmaxlength"))) or (not isNumeric(request.form("maxlength"))) or (not isNume
55、ric(request.form("counts"))) or (not isNumeric(request.form("distance"))) then</p><p> '給出提示,并返回到前一頁</p><p> response.write "<script>alert('資料填寫不完整或有錯誤,請
56、檢查后重新提交。');history.back();</script>"</p><p> response.end</p><p><b> end if</b></p><p> WBrs("sitename")=Request.Form("sitename")
57、'站點名稱</p><p> NArs("admin")=Request.Form("admin")'管理員姓名</p><p> if trim(request("password"))<>"" then </p><
58、p> NArs("pwd")=trim(Request.Form("pwd"))'密碼</p><p><b> End If</b></p><p> WBrs("SubjectMaxLength") = Request.Form("subjectmaxlen
59、gth")'留言主題最大長度</p><p> WBrs("maxlength")=Request.Form("maxlength")'留言內(nèi)容最大長度</p><p> WBrs("counts")=Request.Form("counts")
60、'每頁留言數(shù)</p><p> WBrs("mail")=Request.Form("mail")'是否必填郵箱</p><p> NArs("isreply")=trim(Request.Form("isreply"))'回復(fù)提示&
61、lt;/p><p> NArs("replycolor")=trim(Request.Form("replycolor"))'回復(fù)顏色</p><p> WBrs("distance")=Request.Form("distance")'表格間距</p>
62、;<p> NArs.update'更新數(shù)據(jù)庫</p><p> WBrs.update'更新數(shù)據(jù)庫</p><p> NArs.Close'關(guān)閉RecordSet 對象</p><p> Set NArs = noth
63、ing</p><p> WBrs.Close'關(guān)閉RecordSet 對象</p><p> Set WBrs = nothing</p><p> '保存成功,給出提示,并返回到管理選項界面</p><p> response.write "<script>a
64、lert('您提交的設(shè)置已保存。');location.href='admin_set.asp';</script>"</p><p> response.end</p><p><b> End If</b></p><p><b> End Sub</b>&
65、lt;/p><p> conn.CLose'關(guān)閉數(shù)據(jù)庫連接</p><p> Set conn = nothing</p><p><b> %></b></p><p><b> 5 課程設(shè)計總結(jié)</b></p><p&g
66、t; 通過本次畢業(yè)設(shè)計,我熟練的掌握了開發(fā)程序的一些流程及規(guī)劃,在此特別感謝我的指導(dǎo)老師李老師,在他嚴(yán)格的要求下我懂得了開發(fā)軟件要有一種極其認(rèn)真負(fù)責(zé)的態(tài)度。從學(xué)做這個在線留言系統(tǒng)中,體會到C#的簡單實用,也感受到編程的樂趣。編寫出了這個在線留言系統(tǒng),雖然有很多不足之處,但是我學(xué)到了更多的學(xué)習(xí)方法以及學(xué)習(xí)的態(tài)度。在以后道路上,這種困難是不可避免的。但我相信,這次的課程設(shè)計這將對我以后的工作和學(xué)習(xí)產(chǎn)生了很大的促進(jìn)作用。無論做什么事都要大膽
67、的去想去做,這樣會有好的創(chuàng)意,才能更有作為。</p><p> 在這里我還要感謝我的同學(xué),在學(xué)習(xí)上給了我很大的幫助。感謝所有協(xié)助我完成課程設(shè)計的朋友,有了你們的支持,才會讓我更加圓滿的完成此次課題的設(shè)計。</p><p><b> 參考文獻(xiàn)</b></p><p> 吉根林,崔海源《 Web程序設(shè)計》 電子工業(yè)出版社,2010.</
68、p><p> 2、相萬讓,趙怡,高愛乃《網(wǎng)頁設(shè)計與制作》2007. </p><p> 3、 庫少平,張毅《網(wǎng)頁設(shè)計基礎(chǔ)教程[M]》北京郵電大學(xué)出版社,2010</p><p> 4、 譚浩強《ASP程序設(shè)計》清華大學(xué)出版社,2000</p><p> 5、 王晟 韓澤坤編著《Access數(shù)據(jù)庫開發(fā)經(jīng)典案例解析[M]》清華大學(xué)出版社,2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c_語言程序設(shè)計課程設(shè)計-- 記事本
- 課程設(shè)計--linux c 程序設(shè)計
- c語言程序設(shè)計課程設(shè)計
- c課程設(shè)計報告-- c語言程序設(shè)計
- c_程序設(shè)計課程程序設(shè)計報告---媒體播放器的設(shè)計與實現(xiàn)
- 《c語言程序設(shè)計》課程設(shè)計報告
- 課程設(shè)計報告-- linux c 程序設(shè)計
- c語言程序設(shè)計課程設(shè)計報告
- c++程序設(shè)計課程設(shè)計報告
- 《c++程序設(shè)計課程設(shè)計——復(fù)數(shù)類》
- 《c++語言程序設(shè)計》課程設(shè)計報告
- 《c語言程序設(shè)計》課程設(shè)計推箱子
- 《程序設(shè)計語言(c++)》課程設(shè)計
- c課程設(shè)計報告-- windows程序設(shè)計報告
- c語言程序設(shè)計課程設(shè)計(論文)-迷宮
- 《c語言程序設(shè)計》課程設(shè)計指導(dǎo)手冊()
- c++課程設(shè)計--c++程序設(shè)計語言
- c++課程設(shè)計-- c++面向?qū)ο蟪绦蛟O(shè)計
- 《c語言程序設(shè)計課程設(shè)計》-課程教學(xué)大綱
- 課程設(shè)計--unix程序設(shè)計課程設(shè)計
評論
0/150
提交評論