九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

實(shí)驗(yàn)指導(dǎo)書(shū) C實(shí)驗(yàn)指導(dǎo)書(shū)

上傳人:無(wú)*** 文檔編號(hào):75972925 上傳時(shí)間:2022-04-17 格式:DOC 頁(yè)數(shù):33 大?。?.34MB
收藏 版權(quán)申訴 舉報(bào) 下載
實(shí)驗(yàn)指導(dǎo)書(shū) C實(shí)驗(yàn)指導(dǎo)書(shū)_第1頁(yè)
第1頁(yè) / 共33頁(yè)
實(shí)驗(yàn)指導(dǎo)書(shū) C實(shí)驗(yàn)指導(dǎo)書(shū)_第2頁(yè)
第2頁(yè) / 共33頁(yè)
實(shí)驗(yàn)指導(dǎo)書(shū) C實(shí)驗(yàn)指導(dǎo)書(shū)_第3頁(yè)
第3頁(yè) / 共33頁(yè)

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《實(shí)驗(yàn)指導(dǎo)書(shū) C實(shí)驗(yàn)指導(dǎo)書(shū)》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《實(shí)驗(yàn)指導(dǎo)書(shū) C實(shí)驗(yàn)指導(dǎo)書(shū)(33頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、實(shí)驗(yàn)一 C#集成開(kāi)發(fā)環(huán)境實(shí)驗(yàn)?zāi)康?1)熟悉Visual Studio 2005的開(kāi)發(fā)環(huán)境。(2)操作工具欄和項(xiàng)目工作區(qū)窗口。(3)創(chuàng)建控制臺(tái)應(yīng)用項(xiàng)目。實(shí)驗(yàn)準(zhǔn)備和說(shuō)明實(shí)驗(yàn)報(bào)告采用A4紙,封面一般包含實(shí)驗(yàn)?zāi)看?、?shí)驗(yàn)題目、班級(jí)、姓名、日期和機(jī)構(gòu)名稱(chēng)。報(bào)告內(nèi)容一般包括實(shí)驗(yàn)?zāi)康暮鸵?、?shí)驗(yàn)步驟、實(shí)驗(yàn)思考和總結(jié)。 Visual Studio 2005 是Microsoft公司基于.NET框架和多語(yǔ)言開(kāi)發(fā)推出的目前極為流行的可視化編程環(huán)境。目前最新版本是Visual Studio 2008,該環(huán)境靈活性、完全可擴(kuò)展以及具有強(qiáng)有力的Internet支持。實(shí)驗(yàn)步驟 啟動(dòng)Windows操作系統(tǒng) 啟動(dòng)和操作Visu

2、al Studio 2005選擇“開(kāi)始”菜單里面的Microsoft Visual Studio 2005,啟動(dòng)Visual Studio 2005,進(jìn)入開(kāi)發(fā)環(huán)境。 由于Visual Studio.NET所包括的各個(gè)語(yǔ)言工具,都使用相同的集成開(kāi)發(fā)環(huán)境,所以在啟動(dòng)C#之前,要啟動(dòng)整個(gè)Visual Studio.NET。在開(kāi)始菜單中選擇Microsoft Visual Studio 2005進(jìn)行啟動(dòng),啟動(dòng)完畢后,打開(kāi)“起始頁(yè)Microsoft Visual Studio”窗口。要啟動(dòng)C#開(kāi)發(fā)環(huán)境有兩種方式,一種是單擊“起始頁(yè)”上的“打開(kāi)項(xiàng)目”,選擇現(xiàn)在已存在的C#項(xiàng)目文件;另一種是單擊“起始頁(yè)”上

3、的“創(chuàng)建項(xiàng)目”,則打開(kāi)一個(gè)“新建項(xiàng)目”對(duì)話(huà)框,如下圖。在“項(xiàng)目類(lèi)型”框中選擇“Visual C#項(xiàng)目”,然后在“模板”框中任意選擇一個(gè)項(xiàng)目模板(若是開(kāi)發(fā)Windows應(yīng)用項(xiàng)目,則選擇“Windows應(yīng)用程序”),并在下面“名稱(chēng)”文本框中設(shè)置新項(xiàng)目名稱(chēng),然后單擊“確定”按鈕,一個(gè)新的C#的項(xiàng)目就創(chuàng)建了,并進(jìn)入Visual StudioNET的集成開(kāi)發(fā)環(huán)境。 C# 集成開(kāi)發(fā)環(huán)境介紹C#的集成開(kāi)發(fā)環(huán)境集成了設(shè)計(jì)、開(kāi)發(fā)、編輯、測(cè)試和調(diào)試的多種功能,使得開(kāi)發(fā)人員 能夠方便、快速地開(kāi)發(fā)應(yīng)用程序。集成開(kāi)發(fā)環(huán)境標(biāo)題下面是菜單欄和工具欄。中央工作區(qū)是用來(lái)設(shè)計(jì)程序界面的窗體設(shè) 計(jì)器和代碼編輯窗口。除此之外,即成開(kāi)

4、發(fā)環(huán)境的四周,有很多浮動(dòng)窗口。菜單欄在菜單欄中,有若干個(gè)菜單標(biāo)題,每個(gè)菜單標(biāo)題都有一個(gè)下拉式菜單,主要菜單標(biāo)題 如下。文件:主要包括新建、打開(kāi)、保存、新建項(xiàng)目以及打開(kāi)和關(guān)閉解決方案等命令。l 編輯:主要包含一些符合Windows操作風(fēng)格的進(jìn)行文件編輯的各項(xiàng)命令。如撤銷(xiāo)、復(fù)制、粘貼、刪除、查找和替換等命令。l 視圖:包含顯示與隱藏工具欄、工具箱(Toolbox)和各種獨(dú)立的工具窗口的所有命令。l 項(xiàng)目:包括向當(dāng)前項(xiàng)目添加、改變和刪除組件、引用Windows對(duì)象和添加部件等命令。l 生成:包含代碼生成的有關(guān)命令。l 調(diào)試:包含調(diào)試程序的命令,啟動(dòng)和中止當(dāng)前應(yīng)用程序運(yùn)行的命令。l 數(shù)據(jù):包含顯示數(shù)據(jù)

5、源和添加新數(shù)據(jù)源命令。l 格式:包括改變窗體上控件大小和對(duì)齊方式等命令。l 工具:包括進(jìn)程調(diào)試、數(shù)據(jù)庫(kù)連接、宏和外接程序管理、設(shè)置工具箱和選項(xiàng)等命令。l 窗口:包含一些屏幕窗口布局的命令。l 幫助:包含方便開(kāi)發(fā)人員使用幫助信息的命令。工具欄工具欄是由多個(gè)圖標(biāo)按鈕組成的,可提供對(duì)常用命令的快速訪(fǎng)問(wèn)。除了在菜單欄下面 顯示的標(biāo)準(zhǔn)工具欄外,還有Web工具欄、控件布局工具欄等多種特定功能的工具欄。要顯 示或隱藏這些工具欄,可選擇“視圖”菜單中的“工具欄”命令,或者在標(biāo)準(zhǔn)工具欄單擊鼠 標(biāo)右鍵,在彈出的菜單中選定所需的工具欄。標(biāo)準(zhǔn)工具欄各按鈕如下圖所示。 在C#的集成開(kāi)發(fā)環(huán)境中,可以顯示很多具有特定功能的

6、窗口。為了方便程序開(kāi)發(fā)人員的使用,通??梢詫⒁汛蜷_(kāi)的功能窗口重疊在同一位置上,通過(guò)切換其頂部或底部的選項(xiàng)標(biāo)簽就可以在不同的窗口之間切換??梢赃x擇“視圖”菜單下的相關(guān)命令顯示或關(guān)閉這些功能窗口。單擊窗口右上角的按鈕可以把窗口固定在所在的位置,這時(shí)該按鈕變成,再次單擊這個(gè)按鈕,可以使窗口重新浮動(dòng)。例如,集成開(kāi)發(fā)環(huán)境中間的工作區(qū)通常用來(lái)顯示窗體設(shè)計(jì)器和代碼編輯窗口(當(dāng)然也可以將別的功能窗口拖動(dòng)到這個(gè)位置上來(lái)),在此例中,單擊其上方的“Form1.cs設(shè)計(jì)標(biāo)簽可以切換到代碼窗口,單擊“Form1.cs”標(biāo)簽可以切換到窗體設(shè)計(jì)器。工作區(qū)左側(cè)的兩個(gè)浮動(dòng)功能窗口是工具箱與服務(wù)器資源管理器,可以單擊窗口下面的

7、標(biāo)簽在兩個(gè)窗口之間切換。下面簡(jiǎn)要介紹一下C#集成開(kāi)發(fā)環(huán)境中的主要功能窗口。 工具箱工具箱中包含了建立應(yīng)用程序的各種控件以及非圖形化的組件,如圖110所示。 工具箱由不同的選項(xiàng)卡組成,各類(lèi)控件、組件分別放在“數(shù)據(jù)”、“組件”、“所有 Windows窗體”、“對(duì)話(huà)框”、“常規(guī)”等選項(xiàng)卡下面。l “數(shù)據(jù)”選項(xiàng)卡中主要放置訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的控件。l “組件”選項(xiàng)卡中放置一些系統(tǒng)提供的組件,如報(bào)表、消息隊(duì)列等。l “對(duì)話(huà)框”選項(xiàng)卡中放置一些系統(tǒng)提供的對(duì)話(huà)框,如顏色、打開(kāi)文件等。l “常規(guī)”選項(xiàng)卡默認(rèn)為空,可以在這里保存常用的空間,包括自定義控件。l “所有Windows窗體”選項(xiàng)卡是最常用的選項(xiàng)卡,這個(gè)選項(xiàng)卡

8、主要放置開(kāi)發(fā)Windows應(yīng)用程序所使用的控件,如文本框、標(biāo)簽框等,以后會(huì)陸續(xù)介紹這些控件。 解決方案資源管理器在C#中,項(xiàng)目是一個(gè)獨(dú)立的編程單位,其中包含有窗體文件和其他一些相關(guān)的文件, 若干個(gè)項(xiàng)目就組成了一個(gè)解決方案?!敖鉀Q方案管理器”對(duì)話(huà)框如下圖所示。它以樹(shù)狀的結(jié)構(gòu)顯示整個(gè)解決方案中包括哪些項(xiàng)目以及每個(gè)項(xiàng)目的組成信息。在C#中所有包含C#代碼的源文件都是以*.cs為擴(kuò)展名,而不管它們是包含窗體還是普通代碼,在解決方案資源管理器中顯示這個(gè)文件,然后就可以編輯它了。在每個(gè)項(xiàng)目的下面顯示了一個(gè)引用,在這里列出了該項(xiàng)目引用的組件。解決方案資源管理器窗口的上邊有幾個(gè)選項(xiàng)按鈕,例如“刷新”、“顯示”

9、和“屬性”等。通常,解決方案資源管理器隱藏了一些文件,單擊“顯示”選項(xiàng)按鈕,可以顯示出這些 隱藏的文件?!八⑿隆边x項(xiàng)按鈕的作用是可以對(duì)沒(méi)有保存的項(xiàng)目文件進(jìn)行刷新。單擊“屬性”選項(xiàng)按鈕,則可以打開(kāi)“屬性”窗口,顯示所選擇對(duì)象的屬性。 屬性窗口屬性窗口如下圖所示,它用于顯示和設(shè)置所選定的控件或者窗體等對(duì)象的屬性。在應(yīng)用程序設(shè)計(jì)時(shí),可通過(guò)屬性窗口設(shè)置或修改對(duì)象的屬性。屬性窗口由以下部分組成。(1)對(duì)象列表框:標(biāo)識(shí)當(dāng)前所選定對(duì)象的名稱(chēng)及所屬的類(lèi)。單擊其右邊的下拉按鈕,可列出所含對(duì)象的列表,從中選擇要設(shè)置屬性的對(duì)象。(2)選項(xiàng)按鈕:常用的左邊兩個(gè)分別是“按分類(lèi)順序”、“按字母順序”選項(xiàng)按鈕,可選擇其中一

10、種排列方式,顯示所選對(duì)象的屬性?!鞍捶诸?lèi)順序”是根據(jù)屬性的性質(zhì),分類(lèi)列出對(duì)象的各個(gè)屬性;“按字母順序”是按字母順序列出所選對(duì)象的所有屬性。(3)屬性列表框:屬性列表框由中間一條直線(xiàn)將其分為兩部分,左邊列出所選對(duì)象的屬性名稱(chēng),右邊列出的是對(duì)應(yīng)的屬性值,可對(duì)該屬性值進(jìn)行設(shè)置或修改。如果屬性值右側(cè)有“”或 按鈕,表示都有預(yù)定值可供選擇。 代碼編輯窗口 代碼編輯窗口是專(zhuān)門(mén)用來(lái)進(jìn)行代碼設(shè)計(jì)的窗口,各種事件過(guò)程、模塊和類(lèi)等源程序代碼的編寫(xiě)和修改均在此窗口進(jìn)行,如下圖所示。從“視圖”菜單中選擇“代碼”命令、按F7鍵、用鼠標(biāo)雙擊窗體或者窗體上的一個(gè)控件均可以打開(kāi)代碼編輯窗口。代碼編輯窗口左上方為對(duì)象列表框,單

11、擊其下拉按鈕,可顯示項(xiàng)目中全部對(duì)象的名 稱(chēng)。右上方是事件、方法列表框,列出了所選定對(duì)象相關(guān)的事件、方法。通常,在編寫(xiě)事件 過(guò)程時(shí),在“對(duì)象列表框”中選擇對(duì)象名稱(chēng),然后在“事件、方法列表框”中選擇對(duì)應(yīng)的事 件過(guò)程名稱(chēng),即可在代碼編寫(xiě)區(qū)域中構(gòu)成所選定對(duì)象的事件過(guò)程模板,可在該事件過(guò)程模板 中編寫(xiě)事件過(guò)程代碼。在C#的代碼編輯窗口中有兩個(gè)顯著的特點(diǎn)。其一是表示項(xiàng)目窗體和控件的代碼,現(xiàn)在 均是可見(jiàn)的,上圖所示的代碼編輯器窗口中“Public Class Form1”就是窗體Form1的代碼段。其二是C#的代碼窗口就像Windows資源管理器左邊的樹(shù)狀目錄結(jié)構(gòu)一樣,一個(gè)代碼塊、一個(gè)過(guò)程,甚至是一段注釋都

12、可以疊為一行,例如,在上圖代碼編輯窗口中,可以看到有幾行代碼左邊有個(gè)“+”號(hào)或“-”號(hào),單擊“-”號(hào)可以將一段代碼隱藏起來(lái),只顯示第一行,而單擊“+”號(hào),可以將其展開(kāi)。這樣使得程序結(jié)構(gòu)一目了然,方便了代碼的管理,更有利于程序的開(kāi)發(fā)和設(shè)計(jì)。窗體設(shè)計(jì)器當(dāng)創(chuàng)建和打開(kāi)一個(gè)C#項(xiàng)目時(shí),在其集成開(kāi)發(fā)環(huán)境中的中間工作區(qū)域,將顯示一個(gè)窗體 設(shè)計(jì)器。窗體是一個(gè)容器,能夠放置應(yīng)用程序所需要的所有控件以及圖形、圖片,并可隨意 改變大小和移動(dòng)方向。窗體設(shè)計(jì)器是用于設(shè)計(jì)和編制應(yīng)用程序的用戶(hù)接口,即設(shè)計(jì)應(yīng)用程序 的界面。C#應(yīng)用程序的設(shè)計(jì),是以窗體為依托進(jìn)行設(shè)計(jì)的。應(yīng)用程序中的每一個(gè)窗口都有 它自己的窗體設(shè)計(jì)器,其中最常

13、用的窗體設(shè)計(jì)器是Windows窗體設(shè)計(jì)器。在這個(gè)窗體設(shè)計(jì) 器上可以拖動(dòng)各種控件,創(chuàng)建Windows應(yīng)用程序界面。除此之外,在C#中創(chuàng)建項(xiàng)目時(shí),還 會(huì)遇到用于創(chuàng)建Web界面的Web窗體設(shè)計(jì)器。 動(dòng)態(tài)幫助窗口動(dòng)態(tài)幫助窗口是通過(guò)“幫助”菜單下的“動(dòng)態(tài)幫助”命令打開(kāi)的,這是一個(gè)與上下文相關(guān)的的幫助系統(tǒng)。當(dāng)單擊不同的控件或者將光標(biāo)在代碼的不同關(guān)鍵字上移動(dòng)時(shí),動(dòng)態(tài)幫助窗口中顯示的內(nèi)容將會(huì)隨之發(fā)生變化。對(duì)于C#的初學(xué)者來(lái)說(shuō),利用這種“動(dòng)態(tài)幫助”功能是非常有用的。 其他窗口l 類(lèi)視圖窗口:如下圖所顯示的類(lèi)視圖窗口,按照樹(shù)狀結(jié)構(gòu)列出了解決方案里各個(gè)類(lèi)以及其中包含的事件、方法和函數(shù)等。雙擊視圖中的一個(gè)元素,即可打

14、開(kāi)這個(gè)元素的代碼窗口,這對(duì)于瀏覽代碼是一種很方便的方式。l 對(duì)象瀏覽器窗口:在對(duì)象瀏覽器窗口中,可以方便地查找程序中使用的所有對(duì)象的信息,包括程序中引用的系統(tǒng)對(duì)象和用戶(hù)自定義的對(duì)象。對(duì)象瀏覽器的左邊窗口以樹(shù)狀分層結(jié)構(gòu)顯示系統(tǒng)中所用到的所有類(lèi)。雙擊其中一個(gè) 類(lèi),在右邊窗口中就顯示出這個(gè)類(lèi)的屬性方法、事件等。對(duì)象瀏覽器窗口如下圖所示。l 服務(wù)器資源管理器:C#是面向網(wǎng)絡(luò)的開(kāi)發(fā)工具,在軟件開(kāi)發(fā)中,利用服務(wù)器資源管理器可以方便地監(jiān)控和管理網(wǎng)絡(luò)上的其他服務(wù)器。“服務(wù)器資源管理器”窗口如下圖所示。l “輸出”窗口:在“輸出”窗口中,可以輸出程序運(yùn)行時(shí)產(chǎn)生的信息,包括應(yīng)用程序中設(shè)定要輸出的信息和編程環(huán)境給出

15、的信息,如下圖所示。l 命令窗口:“命令窗口”為用戶(hù)提供了一個(gè)用命令方式與系統(tǒng)交互的環(huán)境,如下圖所示。在“命令窗口”中用戶(hù)可以直接使用C#的各種命令,例如直接輸入“toolbox”命令,就可以調(diào)出工具箱。 編制控制臺(tái)程序結(jié)構(gòu)體和類(lèi)輸入以下程序并運(yùn)行,從運(yùn)行結(jié)果中可以看出結(jié)構(gòu)體和類(lèi)有什么差別?using System;struct SContact public string m_name; public int m_age; public string m_telephone;class CContact public string m_name; public int m_age; publ

16、ic string m_telephone = Unknown;class ValueTypeVersusReferenceType public static void Main( ) /Struct SContact s1; s1.m_name = 李明; s1.m_age = 20; s1.m_telephone = Unknown; SContact s2 = s1; s2.m_name = 張鵬; s2.m_age = 25; s2.m_telephone = Unknown; Console.WriteLine(修改結(jié)構(gòu)變量后:); Console.WriteLine(s1.m_n

17、ame); Console.WriteLine(s1.m_age); /Class CContact c1 = new CContact(); c1.m_name = 李明; c1.m_age = 20; CContact c2=c1; c2.m_name = 張鵬; c2.m_age = 25; Console.WriteLine(修改類(lèi)變量后: ); Console.WriteLine(c1.m_name); Console.WriteLine(c1.m_age); 交互程序輸入以下程序并運(yùn)行,從運(yùn)行結(jié)果中可以看出結(jié)構(gòu)體和類(lèi)有什么差別?using System;namespace P2_4

18、 class SelectOutput static void Main() Console.WriteLine(請(qǐng)選擇要顯示的內(nèi)容:); Console.WriteLine(1開(kāi)發(fā)環(huán)境); Console.WriteLine(2編程語(yǔ)言); Console.WriteLine(3項(xiàng)目類(lèi)型); Console.WriteLine(4退出); /讀取并判斷用戶(hù)輸入 int i=Console.Read(); if (i=1) Console.WriteLine(Microsoft Visual StudioNET); else if (i=2) Console.WriteLine(C Sharp

19、); else if (i=3) Console.WriteLine(控制臺(tái)應(yīng)用程序); 這段程序本身不難理解,但有兩個(gè)值得注意的問(wèn)題:u Console的Read方法返回值是整數(shù)類(lèi)型int,但這個(gè)返回值和用戶(hù)輸入的整數(shù)并不相同!嘗試按下述方法修改代碼: if (i = 1) Console.WriteLine(Microsoft Visual Studio .NET);看看運(yùn)算結(jié)果如何?u 使用Read方法讀取輸入并不立即響應(yīng),而是要等到用戶(hù)按下回車(chē)鍵之后。如果要即時(shí)做出響應(yīng),可以改用Console的ReadKey方法,如以下程序所示:using System;namespace P2_5

20、class SelectOutput1 static void Main() Console.WriteLine(請(qǐng)選擇要顯示的內(nèi)容:); Console.WriteLine(1開(kāi)發(fā)環(huán)境); Console.WriteLine(2編程語(yǔ)言); Console.WriteLine(3項(xiàng)目類(lèi)型); Console.WriteLine(4退出); /讀取并判斷用戶(hù)輸入 ConsoleKeyInfo k=Console.ReadKey(); if (k.KeyChar=1) Console.WriteLine(Microsoft Visual StudioNET); else if (k.KeyCha

21、r=2) Console.WriteLine(C Sharp); else if (k.KeyChar=3) Console.WriteLine(控制臺(tái)應(yīng)用程序); 實(shí)驗(yàn)二 C#基本程序設(shè)計(jì)實(shí)驗(yàn)?zāi)康?掌握常用的C#語(yǔ)句使用方法 掌握C#中存取修飾符號(hào)的使用方法。 熟悉C#中異常處理機(jī)制 實(shí)驗(yàn)要求實(shí)驗(yàn)之前要認(rèn)真閱讀上課的課件以及教科書(shū),針對(duì)性地熟悉以下要點(diǎn): 熟悉常用的C#語(yǔ)句 熟悉C#的封裝機(jī)制。 熟悉C#中異常處理機(jī)制。實(shí)驗(yàn)內(nèi)容類(lèi)的存取修飾符的用法輸入以下程序代碼,并調(diào)試結(jié)果,分析結(jié)果。abstract、sealed 修飾符using System;abstract class Abstra

22、ctClass abstract public void MyMethod( ); sealed class DerivedClass:AbstractClass public override void MyMethod() Console.WriteLine(sealed class); public class TestApp public static void Main() DerivedClass dc = new DerivedClass(); dc.MyMethod(); internal、virtual修飾符using System;internal class Triang

23、le protected int m_a, m_b, m_c; public Triangle(int a, int b, int c) m_a=a; m_b=b; m_c =c; public virtual double Area( ) / Heronian formula double s=(m_a+m_b+m_c)/2.0; double dArea=Math.Sqrt(s*(s-m_a)*(s-m_b)*(s-m_c); return dArea; internal class Prism:Triangle private int m_h; public Prism(int a,in

24、t b,int c, int h):base(a,b,c) m_h=h; public override double Area() double dArea=base.Area()*2.0; dArea+=m_a*m_h-m_b*m_h+m_c*m_h; return dArea; class PrismApp public static void Main() Prism prism=new Prism(2,5,6,1); Console.WriteLine(prism.Area(); 程序異常時(shí)的處理輸入并運(yùn)行以下程序,顯然是會(huì)不正常的,寫(xiě)出運(yùn)行結(jié)果。using System;class

25、 NotHandled static void Main() int a=0, b=5; Console. WriteLine(Before exception is generated. ); b=b/a; 當(dāng)有異常發(fā)生時(shí),程序應(yīng)當(dāng)合理地處理異常,消除產(chǎn)生異常產(chǎn)生的原因,然后繼續(xù)運(yùn)行。 C#通過(guò)throw、try、catch和finally語(yǔ)句實(shí)現(xiàn)結(jié)構(gòu)化、統(tǒng)一和安全的異常處理機(jī)制。l 使用trycatch語(yǔ)句來(lái)捕獲異常 為了捕獲并處理異常,用戶(hù)把可能出現(xiàn)異常的語(yǔ)句放到try子句中。假如這些語(yǔ)句在執(zhí)行中出現(xiàn)異常時(shí),try子句就會(huì)捕獲異常,然后轉(zhuǎn)移到相應(yīng)的catch子句中;如果try子句中沒(méi)有異

26、常,就會(huì)執(zhí)行trycatch結(jié)構(gòu)后面的代碼。 在通常情況下,try子句伴隨著多個(gè)catch子句,每一個(gè)catch子句對(duì)應(yīng)一種特定的異常,就好像switchcase子句一樣。請(qǐng)輸入以下程序,調(diào)試并分析運(yùn)行結(jié)果using System;class ExceDemo2 static void Main( ) int arr1=2, 5, 8, 3,13,32,56,61; /數(shù)組arr1比arr2長(zhǎng) int arr2=1, 0, 2, 3, 0, 4; for (int j=0; jarr1.Length; j+) try Console.WriteLine(0/1=2,arr1j, arr2j,

27、arr1j/arr2j); catch( DivideByZeroException e) /捕獲異常 Console. WriteLine( 除數(shù)不能為0); catch( IndexOutOfRangeException e) /捕獲異常 Console. WriteLine(“數(shù)組訪(fǎng)問(wèn)越界); 上面的程序不僅捕獲了除0錯(cuò)誤也捕獲了數(shù)組訪(fǎng)問(wèn)越界錯(cuò)誤。在上例中,每個(gè)catch語(yǔ)句只響應(yīng)類(lèi)型相匹配的異常。有時(shí),需要捕獲所有的異常,而不管它是什么類(lèi)型的異常。使用不帶參數(shù)的catch語(yǔ)句就可以做到這一點(diǎn)。 請(qǐng)輸入以下程序,調(diào)試并分析運(yùn)行結(jié)果:using System;class ExceDemo2

28、 static void Main( ) int arr1=2,5,8,3,13,32,56,61; /數(shù)組arr1比arr2長(zhǎng) int arr2=1,0,2,3,0, 4; for (int j=0; jarr1.Length; j+) try Console.WriteLine(0/1=2,arr1 j, arr2j, arr1j/arr2j); catch Console.WriteLine( 一些異常發(fā)生); l 使用throw語(yǔ)句拋出異常 前面的程序一直捕獲由C#自動(dòng)產(chǎn)生的異常。但使用throw可以人為拋出異常。throw的一般語(yǔ)法格式為: throw異常對(duì)象請(qǐng)輸入以下程序,調(diào)試并分

29、析運(yùn)行結(jié)果:using System;class ThrowDemo static void Main() try Console.WriteLine(Before throw. ); throw new DivideByZeroException(); catch (DivideByZeroException e) Console.WriteLine(Exception caught. ); Console.WriteLine(After try/catch block. ); 以上程序是人為拋出DivideByZeroException異常。 l 使用finally語(yǔ)句 使用finally

30、語(yǔ)句可以構(gòu)成try-finally或try-catch-finally的形式。當(dāng)與try塊一起使用時(shí),不管是否發(fā)生了異常,都將執(zhí)行finally塊中的語(yǔ)句。因此,用戶(hù)可以在finally語(yǔ)句 中執(zhí)行一些清除資源的操作。請(qǐng)輸入以下程序,調(diào)試并分析運(yùn)行結(jié)果:using System;class finallyDemo static void Main() try Console.WriteLine(try語(yǔ)句中拋出一個(gè)異常); throw new NullReferenceException(); catch Console.WriteLine(捕獲所有類(lèi)型的異常); finally Consol

31、e.WriteLine(執(zhí)行finally語(yǔ)句塊中的語(yǔ)句); 實(shí)驗(yàn)三 窗體程序練習(xí) 實(shí)驗(yàn)?zāi)康恼莆粘S每丶氖褂谜莆疹?lèi)的定義及對(duì)象的創(chuàng)建,掌握字段的聲明與使用,掌握構(gòu)造函數(shù)與重載構(gòu)造函數(shù)的聲明與使用,掌握方法的聲明與使用。掌握調(diào)用方法時(shí)的參數(shù)傳遞特別是對(duì)象參數(shù)的傳遞。 實(shí)驗(yàn)要求 設(shè)計(jì)一個(gè)Windows應(yīng)用程序,根據(jù)輸入的學(xué)生相關(guān)信息單擊“創(chuàng)建對(duì)象”按鈕,創(chuàng)建學(xué)生對(duì)象,并顯示所創(chuàng)建學(xué)生對(duì)象的信息,如圖2-1所示。如果學(xué)生信息被修改,單擊“修改對(duì)象值”按鈕,顯示修改后學(xué)生對(duì)象的信息,如圖2-2所示。如果學(xué)生信息未被修改,單擊“修改對(duì)象值”按鈕,則顯示對(duì)象未被修改的提示,如圖2-3所示。如果學(xué)生對(duì)象有

32、成績(jī)信息,單擊“統(tǒng)計(jì)”按鈕,能對(duì)學(xué)生對(duì)象的成績(jī)進(jìn)行統(tǒng)計(jì),并顯示學(xué)生的單科成績(jī)、總分與平均分,如圖2-4所示。圖2-1 創(chuàng)建對(duì)象 圖2-2 修改對(duì)象(己作修改)圖2-3 修改對(duì)象(未作修改) 圖2-4 統(tǒng)計(jì)成績(jī)實(shí)驗(yàn)步驟設(shè)計(jì)程序界面新建一個(gè)C#項(xiàng)目,向窗體中添加六個(gè)文本框控件textBoxltextBox6,3個(gè)按鈕控件button1button3,7個(gè)標(biāo)簽控件label1label7。適當(dāng)調(diào)整各控件的大小及位置,如圖2-5所示。圖2-5 設(shè)計(jì)界面 圖2-6 對(duì)象的Text屬性值 設(shè)置對(duì)象屬性窗體與控件的Text屬性如圖2-6所示。代碼設(shè)計(jì)中使用到的控件的Name屬性見(jiàn)表2-1。表2-1 控件對(duì)象

33、名稱(chēng)Name屬性設(shè)置 編寫(xiě)事件代碼 打開(kāi)代碼設(shè)計(jì)視圖,在程序代碼最后一個(gè)大括號(hào)的上方定義類(lèi)代碼如下:public class Student /類(lèi)名為Student private string id,name,sex; private int age,scor1,scor2; public string ID /聲明屬性 get return id; set id=value; public string Name /聲明屬性 get return name; set name=value; public string Sex /聲明屬性 get return sex; set sex=va

34、lue; public int Age get return age; set age=value; public int Scor1 get return scor1; set scor1 =value; public int Scor2 get return scor2; set scor2=value; /定義初始化所有數(shù)據(jù)成員的構(gòu)造函數(shù) public Student(string iid,string nname,string ssex,int aage,int sscor1,int sscor2) id=iid; name=nname; sex=ssex; age=aage; sco

35、r1=sscor1; scor2=sscor2; /重載只初始化學(xué)號(hào)、姓名、性別、年齡的構(gòu)造函數(shù) public Student(string iid,string nname,string ssex,int aage) id=iid; name=nname; sex=ssex; age=aage; public int Total( ) return scor1 +scor2; public float Average() return (float)(scor1 + scor2) / 2; 找到代碼public partial class Form1 : Form,在其下大括號(hào)的下方設(shè)計(jì)聲明

36、Student類(lèi)對(duì)象代碼如下: private Student student;同時(shí)再定義聲明CreateStudent方法、SetStudent方法、CountScor方法與ShowStudent方法代碼如下:public void CreateStudent(Student stu) /創(chuàng)建對(duì)象方法 student = stu; public void SetStudent(string id, string name, string sex, int age,int scor1, int scor2) student.ID = id; student.Name = name; stude

37、nt.Age = age; student.Sex = sex; student.Scor1 = scor1; student.Scor2 = scor2; public string CountScor(Student s) /汁算成績(jī)方法 string result; result = 成績(jī)1: + s.Scor1; result += 成績(jī)2: + s.Scor2 + n; result += 總分: + s.Total(); result += 平均分: + s.Average(); return result; public string ShowStudent(Student st

38、u) /顯示學(xué)生信息方法 string result = 學(xué)號(hào): + stu.ID; result += 姓名: +stu.Name; result += 性別: +stu.Sex; result += 年齡: +stu.Age+n; result += 成績(jī)1:+stu.Scor1; result += 成績(jī)2:+stu.Scor2; return result; “創(chuàng)建對(duì)象”按鈕的 Click事件代碼為:private void button1_Click(object sender, EventArgs e) string s1=txtID.Text; string s2=txtName

39、.Text; string s3=txtSex.Text; string s4=txtAge.Text; string s5=txtScor1.Text; string s6=txtScor2.Text; if(s1=|s2=|s3=|s4=) /判斷學(xué)號(hào)、姓名、性別與年齡文本框是否為空 lblResult.Text = 創(chuàng)建對(duì)象至少需要學(xué)號(hào)、姓名、性別與年齡等數(shù)據(jù),請(qǐng)輸入!; return; int ss4 = int.Parse(s4); if (s5 = | s6 = ) /如果成績(jī)1與成績(jī)2無(wú)信息,則調(diào)用四參數(shù)構(gòu)造函數(shù) Student stu = new Student(s1, s2,

40、 s3, ss4); CreateStudent(stu); /調(diào)用創(chuàng)建對(duì)象方法 else /如果成績(jī)1與成績(jī)2有信息,則調(diào)用六參數(shù)構(gòu)造函數(shù) int ss5 = int.Parse(s5); int ss6 = int.Parse(s6); Student stu = new Student(s1, s2, s3, ss4, ss5, ss6); CreateStudent(stu); /調(diào)用創(chuàng)建對(duì)象方法 lblResult.Text = 對(duì)象創(chuàng)建成功!n; lblResult.Text += ShowStudent(student); /調(diào)用顯示對(duì)象方法,顯示學(xué)生信息 “修改對(duì)象值”按鈕的C

41、lick事件代碼為:string s1=txtID.Text;string s2=txtName.Text;string s3=txtSex.Text;string s4=txtAge.Text;string s5=txtScor1.Text;string s6=txtScor2.Text;if(student.ID=s1&smdent.Name=s2&student.Sex=s3&student.Age=int.Parse(s4)&student.Scor1=int.Parse(s5)&student. Scor2=int.Parse(s6)/判斷文本框中的內(nèi)容是否有改動(dòng),如無(wú)改動(dòng)則顯示提示

42、信息 lblResult.Text=對(duì)象值未進(jìn)行任何修改;else /如文本框中的內(nèi)容有改動(dòng),則調(diào)用顯示學(xué)生信息方法予以顯示 SetStudent(s1,s2,s3,int.Parse(s4),int.Parse(s5),int.Parse(s6); lblResult.Text=修改完成!修改后的對(duì)象值為:n; lblResult.Text+=ShowStudent(student);“統(tǒng)計(jì)”按鈕的Click事件代碼為:lblResult.Text=student.Name+的成績(jī)統(tǒng)計(jì):n;lblResult.Text+=CountScor(student); /調(diào)用計(jì)算學(xué)生成績(jī)方法程序代碼

43、中的CreateStudent方法、SetStudent方法、CountScor方法與ShowStudent方法是可以省略的,即可以在按鈕的單擊事件中直接設(shè)計(jì)實(shí)現(xiàn)功能的代碼。本實(shí)驗(yàn)中聲明這幾個(gè)方法是為了幫助理解方法的聲明,調(diào)用方法時(shí)的參數(shù)傳遞特別是對(duì)象參數(shù)的傳遞。實(shí)驗(yàn)四 常用控件應(yīng)用實(shí)驗(yàn)?zāi)康恼莆粘S每丶氖褂谜莆諗?shù)組與集合的應(yīng)用。數(shù)組與集合的聲明,數(shù)組與集合賦值。數(shù)組與集合的常用屬性與方法。靈活應(yīng)用列表框控件與組合框控件中的集合屬性。實(shí)驗(yàn)要求 設(shè)計(jì)一個(gè)Windows應(yīng)用程序,能夠?qū)⒘斜碇械倪x定內(nèi)容顯示或刪除,可以將組合框中 預(yù)置的內(nèi)容添加到列表中。要求添加預(yù)置內(nèi)容時(shí),選擇“著作”、“作者”、“

44、朝代”任一項(xiàng)內(nèi) 容,都能正確地將著作名稱(chēng)加入列表,在加入前能檢測(cè)列表中是否已有該部著作,如有,則 不予添加。如圖3-1所示為程序運(yùn)行結(jié)果。圖3-1 程序運(yùn)行結(jié)果實(shí)驗(yàn)步驟 設(shè)計(jì)程序界面創(chuàng)建一個(gè)C#應(yīng)用程序,添加控件及布局如圖3-2所示。窗體與控件的Text屬性設(shè)置如圖3-3所示。圖3-2 界面設(shè)計(jì)圖3-3 Text屬性設(shè)置 設(shè)置對(duì)象屬性代碼中用到的控件的Name屬性見(jiàn)表3-1。表3-1 控件的Name屬性設(shè)置將三個(gè)組合框的DropDownStyle屬性值均設(shè)置為DropDownList,即只允許選擇不允許輸入。在窗體設(shè)計(jì)器視圖選擇bookList控件,在屬性窗口選擇Items屬性,單擊字符串集合

45、編輯器按鈕,打開(kāi)“字符串集合編輯器”對(duì)話(huà)框,輸入預(yù)置著作列表,如圖3-4所示。圖3-4預(yù)置著作列表在窗體設(shè)計(jì)器視圖選擇cmbBook控件,在屬性窗口選擇Items屬性,單擊字符串集合編輯器按鈕,打開(kāi)“字符串集合編輯器”對(duì)話(huà)框,輸入待添加的著作列表,如圖3-5所示。圖3-5 待添加著作列表 在窗體設(shè)計(jì)器視圖選擇cmbAuthor控件,在屬性窗口選擇Items屬性,單擊字符串集合編輯器按鈕,打開(kāi)“字符串集合編輯器”對(duì)話(huà)框,輸入與著作相關(guān)的待添加的作者列表,如圖3-6所示。圖3-6 待添加作者列表 在窗體設(shè)計(jì)器視圖選擇cmbDynasty控件,在屬性窗口選擇Items屬性,單擊字符串集合編輯器按鈕,

46、打開(kāi)“字符串集合編輯器”對(duì)話(huà)框,輸入與著作相關(guān)的待添加的朝代列表,如圖3-7所示。圖3-7 待添加朝代列表3編寫(xiě)事件代碼 找到窗體類(lèi)定義代碼“public class Form1:Form,在其下的大括號(hào)下面聲明兩個(gè)數(shù)組列表,用于存放著作的作者與朝代數(shù)據(jù),代碼如下: ArrayList author, dynasty; 在主方法的下面聲明Find方法,用于判斷添加的著作在列表中是否已經(jīng)存在,代碼為:public bool Find( ) if(bookList.Items.Count=0) /如果列表框?yàn)榭眨瑒t返回false(可以添加) return false; int idx=bookLi

47、st. SelectedIndex; /保存列表框當(dāng)前選擇項(xiàng)索引值(下標(biāo)) for(int i=0;ibookList.Items. Count;i+) /如果添加的著作名稱(chēng)與列表框中某一著作名相同,則返回true(不能添加) bookList.SelectedIndex=i; if (bookList.SelectedItem.ToString() = cmbBook.Text) return true; bookList. SelectedIndex=idx; /恢復(fù)列表框當(dāng)前選項(xiàng)索引值 return false; /未找到相同著作名,返回false(可以添加) 窗體的Load事件代碼為:

48、 /實(shí)例化數(shù)組列表 author=new ArrayList( ); dynasty=new ArrayList( ); /為數(shù)組列表賦值,這些值與預(yù)置的著作名稱(chēng)相對(duì)應(yīng) author.Add(n作者:司馬遷);dynasty.Add(n朝代:漢朝); author.Add(n作者:曹雪芹);dynasty.Add(n朝代:清朝); author.Add(n作者:羅貫中);dynasty.Add(n朝代:明朝); author.Add(n作者:施耐庵);dynasty.Add(n朝代:明朝); author.Add(n作者:吳承恩);dynasty.Add(n朝代:明朝); author.Add

49、(n作者:李汝珍);dynasty.Add(n朝代:清朝); author.Add(n作者:吳敬梓);dynasty.Add(n朝代:清朝);“刪除”按鈕的Click事件代碼為: if(bookList. SelectedIndex=- 1) /如果沒(méi)有選擇項(xiàng)則不進(jìn)行任何操作 return, author. Remove(authorbookList. SelectedIndex ); /刪除對(duì)應(yīng)的作者 dynasty. Remove(dynastybookList. SelectedIndex); /刪除對(duì)應(yīng)的朝代 /如果把下面語(yǔ)句放在前面,刪除后bookListSelectedlndex值

50、將改變,從而造成著作與作者及朝代不對(duì)應(yīng)bookList. Items.Remove(bookList. SelectedItem); /刪除列表框中的著作名稱(chēng)“添加”按鈕的Click事件代碼為:if(cmbBook.Text=|Find() /如果組合框沒(méi)有選項(xiàng)或選項(xiàng)在列表框中已存在,則不操作 return;if(bookList.SelectedIndex=-1) /如果列表框沒(méi)有選擇項(xiàng),則執(zhí)行追加操作 bookList.Items.Add(cmbBook.Text); author.Add(n作者:+cmbAuthor.Text); dynasty.Add(n朝代:+cmbDynasty.

51、Text); else /否則執(zhí)行插入操作。注意插入操作的語(yǔ)句順序與刪除操作相同 author.Insert(bookList.SelectedIndex,n作者: +cmbAuthor.Text); dynasty.Insert(bookList.Selectedlndex,n朝代:+cmbDynasty.Text); bookList.Items.Insert(bookList.SelectedIndex,cmbBook.Text);“顯示”按鈕的Click事件代碼為:if(bookList. Selectedlndex=-l) /如果列表框中沒(méi)有選擇項(xiàng),則不進(jìn)行任何操作 return;l

52、blShow.Text=著作:+bookList.SelectedItem+authorbookList.SelectedIndex+dynastybookList. SelectedIndex; /顯示著作名稱(chēng)、作者、朝代組合框中的選項(xiàng)采用連動(dòng)選擇方式,即選擇其中任一組合框中的選項(xiàng),則另兩個(gè)組合框自動(dòng)選擇相應(yīng)項(xiàng)。該功能通過(guò)組合框的SelectdIndexChanged事件代碼實(shí)現(xiàn)。private void cmbBook_SelectedIndexChanged(object sender, System.EventArgs e) cmbAuthor.SelectedIndex=cmbDynasty. SelectedIndex=cmbBook.SelectedIndex;private void cmbAuthor_SelectedIndexChanged(object sender, System. EventArgs e) cmbBook. SelecteIndex=cmbDynasty.SelectedIndex=cmbAuthor.SelectedIndex;private void cmbDynasty_SelectedlndexChanged(object sender, Sy

展開(kāi)閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話(huà):18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶(hù)上傳的文檔直接被用戶(hù)下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!