2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論