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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p><b>  BBS管理系統(tǒng)</b></p><p><b>  目錄</b></p><p><b>  1.概述:1</b></p><p>  2.開發(fā)工具和數(shù)據(jù)庫理論基礎(chǔ):1</p><p>  2.1、ASP.NET1</p>&l

2、t;p>  2.1.1什么是ASP.NET1</p><p>  2.1.3使用ADO.NET操縱數(shù)據(jù)庫2</p><p>  3. BBS論壇管理系統(tǒng)5</p><p>  3.1、需求分析5</p><p>  3.2、系統(tǒng)設(shè)計6</p><p>  3.2.1 用例圖6</p>&

3、lt;p>  3.2.2順序圖6</p><p>  3.2.3 加載流程7</p><p>  3.3、系統(tǒng)結(jié)構(gòu)8</p><p>  3.3.1 WEB Server 分層結(jié)構(gòu)8</p><p>  3.3.2 系統(tǒng)結(jié)構(gòu)8</p><p>  3.4、部分模塊及界面設(shè)計9</p>&

4、lt;p>  3.4.1主界面9</p><p>  3.4.1登錄模塊與注冊模塊10</p><p>  3.5、數(shù)據(jù)庫后臺設(shè)計13</p><p>  3.5.1部分數(shù)據(jù)表設(shè)計13</p><p><b>  5.總結(jié):14</b></p><p><b>  1.概

5、述:</b></p><p>  論壇,也被大家稱為BBS,是Internet上常見的用于信息服務(wù)的WEB系統(tǒng),它主要是為了用戶提供相互溝通的平臺。</p><p>  2.開發(fā)工具和數(shù)據(jù)庫理論基礎(chǔ):</p><p>  2.1、ASP.NET</p><p>  2.1.1什么是ASP.NET</p><p&

6、gt;  ASP.NET是建立在公共語言運行庫上的編程框架,可用于在服務(wù)器上生成功能強大的Web應(yīng)用程序。與以前的Web開發(fā)模型相比,ASP.NET提供了數(shù)個重要的優(yōu)點:</p><p>  增強的性能。ASP.NET是在服務(wù)器上運行的編譯好的公共語言運行庫代碼。與被解釋的前輩不同,ASP.NET可利用早期綁定、實時編譯、本機優(yōu)化和盒外緩存服務(wù)。這相當于在編寫代碼行之前便顯著提高了性能。</p>&

7、lt;p>  世界級的工具支持。ASP.NET框架補充了Visual Studio集成開發(fā)環(huán)境中的大量工具箱和設(shè)計器。WYSIWYG編輯、拖放服務(wù)器控件和自動部署只是這個強大的工具所提供功能中的少數(shù)幾種。</p><p>  威力和靈活性。由于ASP.NET基于公共語言運行庫,因此Web應(yīng)用程序開發(fā)人員可以利用整個平臺的威力和靈活性。.NET框架類庫、消息處理和數(shù)據(jù)訪問解決方案都可從Web無縫訪問。ASP.

8、NET也與語言無關(guān),所以可以選擇最適合應(yīng)用程序的語言,或跨多種語言分割應(yīng)用程序。另外,公共語言運行庫的交互性保證在遷移到ASP.NET時保留基于COM的開發(fā)中的現(xiàn)有投資。</p><p>  簡易性。ASP.NET使執(zhí)行常見任務(wù)變得容易,從簡單的窗體提交和客戶端身份驗證到部署和站點配置。例如,ASP.NET頁框架使您可以生成將應(yīng)用程序邏輯與表示代碼清楚分開的用戶界面,和在類似Visual Basic的簡單窗體處理

9、模型中處理事件。另外,公共語言運行庫利用托管代碼服務(wù)(如自動引用計數(shù)和垃圾回收)簡化了開發(fā)。</p><p>  可管理性。ASP.NET采用基于文本的分層配置系統(tǒng),簡化了將設(shè)置應(yīng)用于服務(wù)器環(huán)境和Web應(yīng)用程序。由于配置信息是以純文本形式存儲的,因此可以在沒有本地管理工具幫助的情況下應(yīng)用新設(shè)置。此“零本地管理”哲學也擴展到了ASP.NET框架應(yīng)用程序的部署。只需將必要的文件復(fù)制到服務(wù)器,即可將ASP.NET框架應(yīng)

10、用程序部署到服務(wù)器。不需要重新啟動服務(wù)器,即使是在部署或替換運行的編譯代碼時。</p><p>  可縮放性和可用性。ASP.NET在設(shè)計時考慮了可縮放性,增加了專門用于在聚集環(huán)境和多處理器環(huán)境中提高性能的功能。另外,進程受到ASP.NET運行庫的密切監(jiān)視和管理,以便當進程行為不正常(泄漏、死鎖)時,可就地創(chuàng)建新進程,以幫助保持應(yīng)用程序始終可用于處理請求。</p><p>  自定義性和擴

11、展性。ASP.NET隨附了一個設(shè)計周到的結(jié)構(gòu),它使開發(fā)人員可以在適當?shù)募墑e“插入”代碼。實際上,可以用自己編寫的自定義組件擴展或替換ASP.NET運行庫的任何子組件。實現(xiàn)自定義身份驗證或狀態(tài)服務(wù)一直沒有變得更容易。</p><p>  安全性。借助內(nèi)置的Windows身份驗證和基于每個應(yīng)用程序的配置,可以保證應(yīng)用程序是安全的。</p><p>  2.1.2數(shù)據(jù)綁定概述和語法</p&

12、gt;<p>  ASP.NET引入了新的聲明性數(shù)據(jù)綁定語法。這種非常靈活的語法允許開發(fā)人員不僅可以綁定到數(shù)據(jù)源,而且可以綁定到簡單屬性、集合、表達式甚至是從方法調(diào)用返回的結(jié)果。下表顯示了新語法的一些示例。 </p><p>  盡管該語法看起來與ASP的Response.Write快捷方式 <%= %> 相似,但其行為完全不同。ASP Response.Write快捷方式語法在處理頁時

13、計算,而ASP.NET數(shù)據(jù)綁定語法僅在調(diào)用DataBind方法時計算。DataBind是頁和所有服務(wù)器控件的方法。當在父控件上調(diào)用DataBind時,它級聯(lián)到該控件的所有子控件。例如,DataList1.DataBind() 將因此對DataList模板中的每一控件調(diào)用DataBind方法。在頁上調(diào)用DataBind — Page.DataBind() 或只是DataBind() — 會導(dǎo)致計算頁上的所有數(shù)據(jù)綁定表達式。通常從Page_

14、Load事件調(diào)用DataBind,如果綁定表達式在運行時計算為預(yù)期的數(shù)據(jù)類型,則可以在 .aspx頁的聲明節(jié)中的幾乎任何位置使用綁定表達式。上面的簡單屬性、表達式和方法示例在計算時向用戶顯示文本。這些情況下,數(shù)據(jù)綁定表達式必須計算為String類型的值。在集合示例中,數(shù)據(jù)綁定表達式計算為ListBox的DataSource屬性的有效類型值。您可能會發(fā)現(xiàn)有必要轉(zhuǎn)換綁定表達式中的類型值以產(chǎn)生所需的結(jié)果</p><p>

15、;  2.1.3使用ADO.NET操縱數(shù)據(jù)庫</p><p>  ADO.NET是一組向 .NET程序員公開數(shù)據(jù)訪問服務(wù)的類。ADO.NET為創(chuàng)建分布式數(shù)據(jù)共享應(yīng)用程序提供了一組豐富的組件。它提供了對關(guān)系數(shù)據(jù)、XML和應(yīng)用程序數(shù)據(jù)的訪問,因此是 .NET Framework中不可缺少的一部分。ADO.NET支持多種開發(fā)需求,包括創(chuàng)建由應(yīng)用程序、工具、語言或Internet瀏覽器使用的前端數(shù)據(jù)庫客戶端和中間層業(yè)務(wù)對

16、象。</p><p>  ADO.NET提供了Connection來連接數(shù)據(jù)庫,同時也提供了Command對象來查詢數(shù)據(jù)庫。同Connection對象一樣,Command也有兩種:OleDbCommand和SqlCommand.其區(qū)別同Connection對象。</p><p>  要操縱數(shù)據(jù)庫,必須先使用Connection來連接到數(shù)據(jù)庫,再創(chuàng)建一個Command來查詢。有幾種創(chuàng)建方式,

17、例:</p><p>  SqlCommand cmd;</p><p>  string strCon=”server=localhost;database=Northwind;Trusted_Connection=Yes;”;string strqry=”select * from Categories”;SqlConnection con=new SqlConnection(st

18、rCon);con.Open();cmd=con.CreateCommand();//這里使用用Connection對象的CreateCommand方法來創(chuàng)建一個Command對 象。cmd.CommandText=strqry;cmd=new SqlCommand();?? //直接使用new關(guān)鍵字來創(chuàng)建cmd.CommandText=strqry; cmd.Connecti

19、on=con;?? //設(shè)置與數(shù)據(jù)庫的連接</p><p>  cmd=new SqlCommand(strqry,con); //直接在new的時候帶兩個參數(shù)來創(chuàng)建</p><p>  執(zhí)行方式:(主要有這么幾種,</p><p>  cmd.ExecuteReader();cmd.ExecuteNonQuery();cmd.ExecuteScalar();cmd

20、.ExecuteXmlReader();)</p><p> ?。?,ExecuteReader();返回一個SqlDataReader對象或OleDbDataReader對象,這個看你的程序的需要去  做??梢酝ㄟ^這個對象來檢查查詢結(jié)果,它提供了“游水”式的執(zhí)行方式,即從結(jié)果中讀取一行之后,移動到另一行,則前一行就無法再用。有一點要注意的是執(zhí)行之后,要等到手動去調(diào)用Read()方法之后,DataReader對象才

21、會移動到結(jié)果集的第一行,同時此方法也返回一個Bool值,表明下一行是否可用,返回True則可用,返回False則到達結(jié)果集末尾。</p><p>  使用DataReader可以提高執(zhí)行效率,有兩種方式可以提高代碼的性能:一種是基于序號的查找,一個是使用適當?shù)腉et方法來查找。因為查詢出來的結(jié)果一般都不會改變,除非再次改動查詢語句,因此可以通過定位列的位置來查找記錄。用這種方法有一個問題,就是可能知道一列的名稱而

22、不知道其所在的位置,這個問題的解決方案是通過調(diào)用DataReader對象的GetOrdinal()方法,此方法接收一個列名并返回此列名所在的列號。例:</p><p>  int id=reader.GetOrdinal(“CategoryName”);while(reader.Read()){Response.Write(reader[id]);reader.Close();</p>&l

23、t;p>  至于第二種方式很直觀,例:</p><p>  while(reader.Read()){  ?Response.Write(reader.GetInt32(0).ToString()+” “+reader.GetString(1).ToString()+” ”);}</p><p>  DataReader的GetInt32()和GetString()通過接收一個

24、列號來返回一個列的值,這兩種是最常用的,其中  還有很多其它的類型。</p><p>  (注:DataReader對象在調(diào)用Close()方法即關(guān)閉與數(shù)據(jù)庫的連接,如果在沒有關(guān)閉之前又重新打開第二個連接,則會產(chǎn)生一條異常信息)</p><p>  2.,ExecuteNonQuery()?這個方法并不返回一個DataReader對象,而是返回一個int類型的值,即在執(zhí)行之后在數(shù)據(jù)庫中所影

25、響的行數(shù)。</p><p>  例: int affectrows=cmd.ExecuteNonQuery();Response.Write(affectrows +” 條記錄受影響”);</p><p>  3,ExecuteScalar()這個方法不接受任何參數(shù),僅僅返回查詢結(jié)果集中的第一行第一列,而忽略了其它的行和列,而且返回的是一個object類型,在使用之前必須先將它強制轉(zhuǎn)換為

26、所需類型。如果返回的僅僅是一個單獨的數(shù)據(jù)元,則可以使用此方法來提高代碼的性能。例:</p><p>  string strCon=”server=localhost;database=Northwind;Trusted_Connection=Yes;”;string strqry=”select count(*) from Categories”;SqlConnection con=new SqlConne

27、ction(strCon);con.Open();SqlCommand cmd=con.CreateCommand();int i=Convert.ToInt32(cmd.ExecuteScalar()); //必須強制轉(zhuǎn)換</p><p>  4,ExecuteXmlReader()此方法用于XML操作,返回一個XmlReader對象,由于系統(tǒng)默認沒有引用System.Xml名空間,因此在使用前必須前引入

28、。例:</p><p>  string strCon=”server=localhost;database=Northwind;Trusted_Connection=Yes;”;SqlConnection con=new SqlConnection(strCon);con.Open();SqlCommand cmd = new SqlCommand(“select * from Categories FO

29、R XML AUTO, XMLDATA”, con);XmlReader xr=cmd.ExecuteXmlReader();Response.Write(xr.AttributeCount);  //這里獲取當前節(jié)點上的屬性個數(shù)?</p><p>  xr.Close();</p><p>  執(zhí)行完畢之后,照樣要顯式地調(diào)用Close()方法,否則會拋出異常。</p>

30、<p><b>  使用參數(shù)化的查詢</b></p><p>  先看一段SQL語句:select CategoryID,Description from Categories where CategoryID=? 其中的問號就是一個參數(shù)。但在使用的時候必須是帶有@前綴的命名參數(shù),因為.NET數(shù)據(jù)提供程序不支持這個通用的參數(shù)標記“?”.使用參數(shù)化的查詢可以大大地簡化編程,而且執(zhí)行效

31、率也比直接查詢字符串要高,也更方便,很多情況下都需要更改查詢字符串,這種方式就提供了方便,只需更改參數(shù)的值即可。例:</p><p>  string strCon=”server=localhost;database=Northwind;Trusted_Connection=Yes;”;SqlConnection con=new SqlConnection(strCon);con.Open();strin

32、g strqry=”select * from Categories where CategoryID=@CategoryID”; //帶參數(shù)的查詢SqlCommand cmd=new SqlCommand(strqry,con);cmd.Parameters.Add(“@CategoryID”,SqlDbType.Int,4); //給參數(shù)賦于同數(shù)據(jù)庫中相同的類型cmd.Parameters[”@CategoryID”].Val

33、ue=”3”; //給參數(shù)賦值,可靈活改變SqlDataReader r=cmd.ExecuteReader(); while(r.Read()){Response.Write(r.GetString(2)+””); //取出指定參數(shù)列的值}con.Close(); /</p><p>  使用存儲過程進行查詢</p><p>  先看段存儲過程的形式:create proce

34、dure cateproc (@CategoryID int(4)) as select * from Categories </p><p>  where CategoryID=@CategoryID</p><p>  這個是數(shù)據(jù)庫中的存儲過程實現(xiàn)方式,要在程序中調(diào)用存儲過程,一種方法是使用Command對象的 CommandType屬性來實現(xiàn)。CommandType有三個枚舉值:T

35、ext,TableDirect,StoredProcedure。只需將CommandType屬性設(shè)為第三個值即可實現(xiàn)調(diào)用存儲過程。例:</p><p>  string strCon=”server=localhost;database=Northwind;Trusted_Connection=Yes;”;SqlConnection con=new SqlConnection(strCon);con.Open

36、();SqlCommand cmd=con.CreateCommand();cmd.CommandText=”cateproc”;cmd.CommandType=CommandType.StoredProcedure;cmd.Parameters.Add(“@CategoryID”,SqlDbType.Int,4);cmd.Parameters[”CategoryID”].Value=”2”;SqlDataReader r=

37、cmd.ExecuteReader();while(r.Read()){Response.Write(r.GetString(2)+””);}con.Close();</p><p>  其實在程序中實現(xiàn)調(diào)用存儲過程的方式跟參數(shù)化查詢很類似,有點舊鞋翻新的味道。</p><p>  cmd.CommandType=CommandType.StoredProcedure;這種方式有

38、個缺點,就是當要查詢的表,視圖或存儲過程的名稱中有特殊的字符(如空格)的話,則將無法識別。因此還有一種方式就是: </p><p>  cmd.CommandText=”{Call cateproc(?)}”; //這里是調(diào)用存儲過程,問號為參數(shù)cmd.CommandType=CommandType.Text; //關(guān)鍵是這里。</p><p><b>  設(shè)置命令執(zhí)行超時&l

39、t;/b></p><p>  命令超時是指Command對象在等待結(jié)果的時間,(默認為30秒)如果在30秒內(nèi)沒執(zhí)行查詢,則Command拋出一個異常。也可以自己進行設(shè)置。例:cmd.CommandTimeout=60;</p><p><b>  取消執(zhí)行查詢</b></p><p>  有時因某種原因,需要臨時取消命令的執(zhí)行,可調(diào)用C

40、ommand對象的Cancel()方法來退出執(zhí)行,如果在未執(zhí)行查詢之前,Cancel()將不做任何事。</p><p>  3. BBS論壇管理系統(tǒng)</p><p><b>  3.1、需求分析</b></p><p>  用戶使用論壇的流程一般是,首先注冊登錄進入論壇,然后選擇某個板塊,就某個話題(主題)展開討論,可以發(fā)表新的話題,也可以回復(fù)

41、其他話題;管理員則可以創(chuàng)建新的板塊,對論壇進行管理。</p><p>  用戶可以進入論壇發(fā)表帖子。</p><p>  管理員可以創(chuàng)建新的模塊。</p><p>  本論壇的使用的結(jié)構(gòu)如圖3-1所示。</p><p><b>  圖3-1 結(jié)構(gòu)圖 </b></p><p><b>  

42、3.2、系統(tǒng)設(shè)計</b></p><p><b>  3.2.1 用例圖</b></p><p>  本論壇系統(tǒng)有兩種用戶:瀏覽者和管理員。他們具有不同的權(quán)限。</p><p>  如圖3-2 用例圖所示</p><p><b>  圖3-2 用例圖</b></p><

43、;p>  上面的用例圖只是顯示了系統(tǒng)中兩類用戶的權(quán)限。</p><p><b>  3.2.2順序圖</b></p><p>  在添加板塊的過程中,管理員首先輸入必要的信息,例如板塊的名字,概述等,最后提交給數(shù)據(jù)庫,由數(shù)據(jù)庫將內(nèi)容加入數(shù)據(jù)庫中,而用戶發(fā)表帖子的過程也是相似的,唯一不同的是,系統(tǒng)需要獲得用戶所回帖的ID,然后再將該帖子內(nèi)容加入數(shù)據(jù)庫中。</

44、p><p>  圖3-3是用戶發(fā)貼和管理員添加板塊的順序圖。</p><p><b>  圖3-3順序圖。</b></p><p>  3.2.3 加載流程</p><p>  圖五:. 加載功能模塊的流程</p><p><b>  3.3、系統(tǒng)結(jié)構(gòu)</b></p>

45、<p>  3.3.1 WEB Server 分層結(jié)構(gòu)</p><p>  圖3-4 Net中標準的BS分層式結(jié)構(gòu)</p><p>  該系統(tǒng)將采用ASP.Net Web應(yīng)用程序的典型系統(tǒng)架構(gòu)模式:數(shù)據(jù)庫---數(shù)據(jù)訪問層---業(yè)務(wù)邏輯層--頁面表示層。</p><p> ?、艛?shù)據(jù)庫是應(yīng)用系統(tǒng)的最低層,它保存系統(tǒng)的所有數(shù)據(jù)。本系統(tǒng)使用SQL Server

46、 2005 Express。</p><p> ?、茢?shù)據(jù)訪問層封裝訪問數(shù)據(jù)庫的各種操作,如連接數(shù)據(jù)庫,操作數(shù)據(jù)庫,數(shù)據(jù)轉(zhuǎn)換等。</p><p> ?、菢I(yè)務(wù)邏輯層與應(yīng)用系統(tǒng)的業(yè)務(wù)邏輯相關(guān)聯(lián),它使用數(shù)據(jù)訪問層提供的服務(wù),同時也為上層提供服務(wù)。業(yè)務(wù)邏輯層通過數(shù)據(jù)訪問層實現(xiàn)訪問數(shù)據(jù)庫的功能,同時為上層提供訪問數(shù)據(jù)庫的接口或函數(shù)等服務(wù)。</p><p> ?、软撁姹硎緦訉崿F(xiàn)應(yīng)

47、用系統(tǒng)的具體功能,一般由WEB頁面,控件,組件組成。</p><p>  3.3.2 系統(tǒng)結(jié)構(gòu)</p><p>  圖3-5系統(tǒng)結(jié)構(gòu)圖。</p><p>  3.4、部分模塊及界面設(shè)計</p><p><b>  3.4.1主界面</b></p><p> ?。?)Default.aspx頁面是論

48、壇的主頁面,主要顯示論壇里所有的板塊。如下圖</p><p><b>  圖3-6主界面</b></p><p>  (2)加載頁面代碼如下:</p><p>  3.4.1登錄模塊與注冊模塊</p><p>  (1) Login.aspx頁面是論壇的登錄頁面。如下圖</p><p>  (2)

49、 Region.aspx頁面是論壇的新用戶注冊頁面。如下圖</p><p>  (3)登錄需求流程圖</p><p>  (2)登錄頁面代碼如下:</p><p>  3.5、數(shù)據(jù)庫后臺設(shè)計</p><p>  3.5.1部分數(shù)據(jù)表設(shè)計</p><p>  (1)用戶表 Users</p><p&g

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論