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è)置。此“零本地管理”哲學(xué)也擴展到了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>  1,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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論