C#程序設(shè)計基礎(chǔ)與實踐(姚普選)全套教案課件_第1頁
C#程序設(shè)計基礎(chǔ)與實踐(姚普選)全套教案課件_第2頁
C#程序設(shè)計基礎(chǔ)與實踐(姚普選)全套教案課件_第3頁
C#程序設(shè)計基礎(chǔ)與實踐(姚普選)全套教案課件_第4頁
C#程序設(shè)計基礎(chǔ)與實踐(姚普選)全套教案課件_第5頁
已閱讀5頁,還剩363頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第1章程序設(shè)計的一般方法姚普選計算機(jī)教學(xué)實驗中心課程:程序設(shè)計(C#)2課時:32(課)+32(機(jī))上課:主A-104時間:上課_課表;上機(jī):課堂通知

上機(jī):計算機(jī)教學(xué)實驗中心作業(yè):網(wǎng)址_

39

學(xué)號_

用戶名、密碼成績:平時30%+考試70%第1章程序設(shè)計的一般方法第2章數(shù)據(jù)類型、變量與表達(dá)式第3章算法的概念第4章選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)第5章數(shù)組與自定義數(shù)據(jù)類型第6章函數(shù)及變量的定義域第7章類和對象的概念第8章類的繼承性與多態(tài)性第9章用戶界面設(shè)計第10章流與數(shù)據(jù)文件目錄(C#程序設(shè)計)第1章程序設(shè)計的一般方法

程序與程序設(shè)計語言程序設(shè)計語言的概念機(jī)器語言、低級語言、高級語言編譯執(zhí)行、解釋執(zhí)行源程序、目標(biāo)程序、可執(zhí)行程序C#及其開發(fā)環(huán)境C#語言、VisualStudio環(huán)境C#控制臺程序(字符界面)Windows應(yīng)用程序(圖形用戶界面)1.11.21.3⑴機(jī)器語言:計算機(jī)能直接執(zhí)行。如,00000011000001101100100000000000寫成16進(jìn)制:0306C800H匯編:源程序翻譯成機(jī)器代碼A100000306C800A3CC00Movax,en1Addax,com1Movsum1,ax⑵匯編語言:助記符代操作碼;符號地址代操作數(shù)如,addax,com1

完成了:sum1=en1+com1

1.語言分類比較內(nèi)存中的兩個數(shù)的大小地址機(jī)器指令注釋-------------------------------------------0000B85F5F;取數(shù)據(jù)段地址00038ED8 ;設(shè)置數(shù)據(jù)段寄存器0005A10000;把數(shù)1(var1)的值送到ax寄存器00088B1E0002;把數(shù)2(var2)的值送到bx寄存器000C3BC3;比較兩個數(shù)000E7207;如果數(shù)1小于數(shù)2則轉(zhuǎn)移到001BH00108D16001C;取字符串'數(shù)1大于等于數(shù)2'的指針0014EB05;轉(zhuǎn)顯示00168D160004;取字符串'數(shù)1大于等于數(shù)2'的指針001AB409;調(diào)用DOS的顯示字符串功能001CCD21;顯示字符串001EB44C;退出程序0020CD21機(jī)器語言編寫的程序比較內(nèi)存中的兩個數(shù)的大小標(biāo)號匯編指令注釋---------------------------------------------

movax,data;取數(shù)據(jù)段地址

movds,ax;設(shè)置數(shù)據(jù)段寄存器

movax,var1;把數(shù)1(var1)的值送到ax寄存器

movbx,var2;把數(shù)2(var2)的值送到bx寄存器

cmpax,bx;比較兩個數(shù)

jble1;如果數(shù)1小于數(shù)2則轉(zhuǎn)移到001BHgr1:leadx,grea;取字符串'數(shù)1大于等于數(shù)2'的指針

jmpdis;轉(zhuǎn)顯示le1:leadx,less;取字符串'數(shù)1大于等于數(shù)2'的指針dis:movah,9;調(diào)用DOS的顯示字符串功能

int21h;顯示字符串

movah,4ch;退出程序

int21h匯編語言編源程序⑶高級語言面向應(yīng)用。接近自然語言、數(shù)學(xué)語言傳統(tǒng)高級語言:FORTRANIV、Algol60、

Basic、Pascal、C、……FORTRAN集成開發(fā)環(huán)境:TurboPascal、TurboC可視化環(huán)境:VB、Delphi、VisualStudio等AlgolPascalSmalltalkCCPL→BCPL→BC++BasicJavaDelphiC#2.程序的編譯和解釋高級語言源程序翻譯目標(biāo)程序(機(jī)器指令表示)兩種翻譯方法:⑴解釋方式

⑵編譯方式編譯執(zhí)行目標(biāo)程序(機(jī)器指令)執(zhí)行結(jié)果源程序(高級語言)編譯程序(預(yù)先放入計算機(jī))解釋并執(zhí)行執(zhí)行結(jié)果源程序(高級語言)解釋程序(預(yù)先放入計算機(jī))第1章程序設(shè)計的一般方法

程序與程序設(shè)計語言程序設(shè)計語言的概念機(jī)器語言、低級語言、高級語言編譯執(zhí)行、解釋執(zhí)行源程序、目標(biāo)程序、可執(zhí)行程序

C#及其開發(fā)環(huán)境

C#語言、VisualStudio開發(fā)環(huán)境

C#控制臺程序(字符界面)Windows應(yīng)用程序(圖形用戶界面)1.11.21.31.C#語言C#:新一代面向?qū)ο蟪绦蛟O(shè)計語言簡單、功能強(qiáng)、類型安全,完全面向?qū)ο笫褂媒M件編程,實現(xiàn)應(yīng)用程序的快速開發(fā),

與VB用法相仿與C語言、C++語言比較:多方面創(chuàng)新,保持C語言風(fēng)格的表現(xiàn)力和特征簡化了C++語言在類、命名空間、方法重載

和異常處理等方面的操作摒棄了C++的復(fù)雜性,更易使用,更少出錯設(shè)計宗旨:創(chuàng)建各種.NET框架運行的應(yīng)用程序2.VisualC#環(huán)境VisualC#:Microsoft開發(fā)的C#語言的開發(fā)工具M(jìn)icrosoftVisualStudio(VS):Windows平臺上的應(yīng)用程序集成開發(fā)環(huán)境(IDE)支持多種語言:C++、BASIC、C#等VisualStudio對C#程序設(shè)計的支持:提供:代碼編輯器、編譯器、項目模板、設(shè)計器、代碼向?qū)?、調(diào)試器以及其他工具引入:建立在.NETFramework上的代碼托管機(jī)制通過:.NETFramework類庫(FCL),可訪問許多操作系統(tǒng)服務(wù)以及其他預(yù)先設(shè)計的類,顯著加快開發(fā)過程VisualC#窗口(控制臺工程)3..NET框架一個多語言組件開發(fā)和執(zhí)行環(huán)境提供一個跨語言的統(tǒng)一編程環(huán)境構(gòu)建.NET框架的目的:便于開發(fā)人員建立Web應(yīng)用程序和Web服務(wù)使Internet上各應(yīng)用程序之間使用Web服務(wù)溝通一個.NET應(yīng)用:是一個使用.NETFramework類庫來編寫,并運行于公共語言運行時CLR(CommonLanguageRuntime)之上的應(yīng)用程序.NET的通用語言框架機(jī)制:同一項目中支持不同語言開發(fā)的組件。所有CLR支持的代碼都解釋成CLR可執(zhí)行的機(jī)器代碼然后運行.NET框架的核心兩大核心:公共語言運行時、類庫

操作系統(tǒng)公共語言運行庫CLR.NETFramework類庫FCLVC++.NETC#VB.NETVJ+執(zhí)行過程:通過CLR,借助類庫,

將各種語言編寫的程序解析成操作系統(tǒng)可識別的機(jī)器碼,然后運行它

工作方式:不同語言編寫的程序先處理成一種統(tǒng)一的中間代碼(故可互調(diào)),再處理成機(jī)器碼.NET框架的組件用戶界面CLS、CTS:支持多種語言的基礎(chǔ)無論WinForms還是ASP.NET,

均可使用ADO.NET與基類庫.NETFramework類庫ADO.NET和XML類ASP.NETWeb窗體Web

ServiceWinForms基本框架類公共語言運行庫CLR公共語言規(guī)范CLS通用類型系統(tǒng)CTS處理數(shù)據(jù)

公共語言運行時CLSCLR:將微軟中間語言翻譯成機(jī)器代碼可見:C#、VB程序均翻譯成中間語言MSIL因此:兩種語言的程序可互相調(diào)用可執(zhí)行代碼微軟中間語言MSILC#源程序VB源程序C#編譯器CLRVB.NET編譯器CLR執(zhí)行微軟中間語言.NET編譯與執(zhí)行的過程第1章程序設(shè)計的一般方法

程序與程序設(shè)計語言程序設(shè)計語言的概念機(jī)器語言、低級語言、高級語言編譯執(zhí)行、解釋執(zhí)行源程序、目標(biāo)程序、可執(zhí)行程序C#及其開發(fā)環(huán)境

C#語言、VisualStudio開發(fā)環(huán)境

C#控制臺程序(字符界面)Windows應(yīng)用程序(圖形用戶界面)1.11.21.3

例1求函數(shù)值的C#程序usingSystem;//引入命名空間classProgram//主類名Program,對應(yīng)Program.cs文件{staticvoidMain(string[]args)//程序入口函數(shù)

{Console.Write("x=??");intx=Convert.ToInt16(Console.ReadLine());inty=2*x+1;Console.WriteLine("y="+y.ToString());

}}S1創(chuàng)建控制臺工程:文件|新建項目

編輯代碼的窗口:

編輯完成后的代碼窗口:自定義命名空間:同工程名主類名:同.cs文件名程序入口函數(shù)S2運行程序:調(diào)試|啟動調(diào)試再次運行:開始執(zhí)行(不調(diào)試)S3保存:文件|全部保存

可在“另存為”對話框中創(chuàng)建一個文件夾

單擊“保存”按鈕

S1創(chuàng)建Windows工程:文件|新建項目待設(shè)計窗體:S2:設(shè)計窗體:工具箱|公共控件雙擊:窗體上的button1,打開代碼編輯器S3:編寫事件驅(qū)動代碼S3:運行S3保存:文件|全部保存

可在“另存為”對話框中創(chuàng)建一個文件夾

單擊“保存”按鈕

附:VisualC#集成開發(fā)環(huán)境

1.起始頁聯(lián)機(jī)資源本機(jī)的MSDN資源可用起始頁聯(lián)機(jī)資源超鏈查找VisualStudio資源(需裝MSDN且連因特網(wǎng))因特網(wǎng)上的MSDN資源最常用的兩個子窗口:設(shè)計用戶界面、程序源代碼

2.設(shè)計器視圖與代碼視圖設(shè)計器視圖:設(shè)計Windows窗體或Web窗體設(shè)計器視圖:顯示窗體(Form)把工具箱上的控件擺放到窗體上代碼視圖:文本編輯器選擇事件處理方法(函數(shù))在方法中填充C#代碼該視圖中可進(jìn)行各種文本編輯操作:選定、復(fù)制、移動、撤消、恢復(fù)等2.設(shè)計器視圖與代碼視圖——續(xù)2.設(shè)計器視圖與代碼視圖—續(xù)

解決方案:使用VisualStudio.NET開發(fā)的一個應(yīng)用程序叫做一個解決方案一個解決方案中包含一個或多個項目一個項目通常是一個完整的程序模塊,可以有多個項3.解決方案資源管理器“解決方案資源管理器”子窗口:顯示VisualStudio.NET解決方案的樹型結(jié)構(gòu)可在其中瀏覽組成解決方案的所有項目和每個項目中的文件可對解決方案的各元素進(jìn)行組織和編輯

1.1.4屬性

“屬性”子窗口用于設(shè)置解決方案中各個子項的屬性,當(dāng)選擇設(shè)計器視圖、解決方案、類視圖中的某一子項時,“屬性”子窗口將以兩列表格的形式顯示該子項的所有屬性。單擊“事件”按鈕,窗口將顯示被選擇窗體或控件的事件列表,

1.1.5工具箱

“工具箱”用于向Windows應(yīng)用程序或Web應(yīng)用程序添加控件?!肮ぞ呦洹笔褂眠x項卡分類管理其中的控件,打開“工具箱”將顯示VisualStudio項目中使用的各個不同的控件列表。根據(jù)當(dāng)前正在使用的設(shè)計器或編輯器,“工具箱”中可用的選項卡和控件會有所變化。

1.1.6子窗口的操作

在主區(qū)域顯示的窗口,以選項卡的形式疊放在一起。用右上角關(guān)閉按鈕關(guān)閉當(dāng)前窗口。主區(qū)域周圍的窗口,有停靠與浮動兩種情況,??坑钟须[藏與固定顯示兩種狀態(tài),這兩種狀態(tài)通過圖釘按鈕控制。

1.2使用VisualStudio.NET的幫助

1.2.1動態(tài)幫助動態(tài)幫助與解決方案資源管理器共享一個屏幕區(qū)域。“動態(tài)幫助”對用戶當(dāng)前操作提供相關(guān)的幫助主題列表。當(dāng)用戶在VisualStudio環(huán)境中進(jìn)行某一項操作時,“動態(tài)幫助”將搜索MSDN庫(MicrosoftDeveloperNetwork),查找與該操作相關(guān)的幫助主題,以超級鏈接顯示在動態(tài)幫助窗口,并把它認(rèn)為可能最有用的主題列在第一位。單擊一個主題鏈接后,此主題將會顯示在VisualStudio的幫助窗口中。1.2.2智能感知

1.提示類名或?qū)ο竺?/p>

在設(shè)計代碼的過程中,當(dāng)輸入類名或?qū)ο竺麜r,VisualStudio會動態(tài)提供當(dāng)前可用的類及對象列表

2.提示類成員或?qū)ο蟪蓡T在完成類名或?qū)ο竺斎牒螅?dāng)通過點運算符訪問類或?qū)ο蟪蓡T時,VisualStudio將動態(tài)顯示類成員或?qū)ο蟪蓡T列表

3.提示方法的使用說明

當(dāng)使用類的靜態(tài)方法或成員方法時,VisualStudio動態(tài)顯示該方法的功能、不同用法(重載)及每種用法的參數(shù)說明。

4.實例化提示當(dāng)使用new關(guān)鍵字對對象進(jìn)行實例化時,VisualStudio會自動提供對對象類型的選擇。

1.2.3MSDN幫助

1.目錄

2.索引

3.幫助收藏夾

4.搜索

1.3對象的屬性、事件和方法

1.對象的屬性任何一個對象都具有一定的特征,這種特征叫做屬性,C#中的對象屬性可以看作是表現(xiàn)對象特征的數(shù)據(jù)的擴(kuò)展,例如按鈕的長、寬、顏色以及在窗體中的位置等。

2.對象的事件所謂事件(Event),是預(yù)先定義好的、能夠被對象識別的動作,如單擊(Click)事件、載入(Load)事件、移動鼠標(biāo)(MouseMove)事件等。

3.對象的方法任何一個對象都具有一定的行為,這種行為叫做對象的方法,方法完成某一特定功能。方法與事件方法類似,是一段完成特定功能的代碼,如窗體或控件的Show(顯示)方法與Hide(隱藏)方法等。對象的方法與對象的事件方法有相同之處,那就是兩者都是用一段代碼完成特定的功能。兩者也有不同,對象的事件方法是固定的,不能由用戶增加,用戶可以為事件方法添加所需代碼,事件方法由事件的發(fā)生而被自動調(diào)用;系統(tǒng)預(yù)定義的對象的方法代碼對用戶是隱藏的,不可見的,而且對象的方法必須在代碼中調(diào)用。

1.4窗體對象與控件對象

1.4.1窗體對象

1.窗體的結(jié)構(gòu)

2.窗體的屬性

Name(名稱)BackColor(背景色)BackgroundImage(背景圖像)Enabled(可用)Font(字體)

ForeColor(前景色)Location(位置)Locked(鎖定)MaximizeBox(最大化按鈕)MinimizeBox(最小化按鈕)Opacity(透明)Size(尺寸)Text(文本)WindowState(窗口狀態(tài))

3.窗體的方法CenterToScreen()方法Close()方法Hide()方法Show()方法調(diào)用方法的一般格式:對象名.方法名(參數(shù)列表);靜態(tài)方法調(diào)用的一般格式:類名.靜態(tài)方法名(參數(shù)列表);

章節(jié)目錄上一頁下一頁

4.窗體事件Activated事件Click事件Closed事件GotFocus事件Load事件

1.4.2幾種常用控件

1.添加與編輯控件

(1)添加控件

(2)選擇控件

(3)調(diào)整控件的位置與大小

(4)控件布局

2.按鈕按鈕(Button)控件是應(yīng)用程序中使用最多的控件對象之一,常用來接收用戶的操作信息,激發(fā)相應(yīng)的事件。按鈕是用戶與程序交互的最簡便的方法。

3.標(biāo)簽標(biāo)簽(Label)控件主要功能是輸出信息,可以用來標(biāo)識其他無法顯示標(biāo)題的控件,也可以向用戶顯示相關(guān)信息。

4.文本框

文本框中的Text屬性不象窗體對象與標(biāo)簽對象那樣是控件對象的標(biāo)題,而是文本框中的內(nèi)容。

(1)特有屬性HideSelection(隱藏選擇)Lines(行)MaxLength(最大長度)Multiline(多行)

PasswordChar(密碼字符)ReadOnly(只讀)SelectedText(選定的文本)SelectionLength(選擇長度)TextLength(文本框長度)WordWrap(文本換行)

(2)操作文本的方法

AppendText(追加文本)方法Clear(清除)方法Copy(拷貝)方法Cut(剪切)方法Paste(粘貼)方法SelectAll(全選)方法

1.5應(yīng)用程序開發(fā)的一般步驟1.新建項目2.添加控件和設(shè)置控件屬性(1)添加控件(2)修改屬性

3.編寫代碼

4.運行調(diào)試程序

5.保存程序

1.3C#控制臺工程第2章數(shù)據(jù)類型與表達(dá)式姚普選計算機(jī)教學(xué)實驗中心課程:程序設(shè)計(C#)56課時:32(課)+32(機(jī))上課:主A-104時間:上課_課表;上機(jī):課堂通知

上機(jī):計算機(jī)教學(xué)實驗中心作業(yè):網(wǎng)址_

39

學(xué)號_

用戶名、密碼成績:平時30%+考試70%1.縮進(jìn)與空格縮進(jìn):表示代碼的結(jié)構(gòu)層次(不是必須的)

應(yīng)使用統(tǒng)一的縮進(jìn)格式書寫代碼補(bǔ)充:C#語法常識及主要成分2.字母大小寫同一字母的大小寫當(dāng)作兩個不同字符3.注釋_兩種:單行注釋雙斜線“//”開始,不能換行多行注釋“/*”開始,“*/”結(jié)束,可換行關(guān)鍵字(保留字):有特定意義的字符串VisualStudio環(huán)境的代碼視圖中默認(rèn)藍(lán)色顯示例如,代碼中的using、namespace、class、static、void等,均為C#的關(guān)鍵字

4.關(guān)鍵字

命名空間:組織和重用代碼的編譯單元其中定義的名字只在本命名空間中有效VisualStudio提供系統(tǒng)資源的分層組織方式,也是分層組織程序的方式命名空間有兩種:

系統(tǒng)命名空間,用戶自定義命名空間5.命名空間系統(tǒng)命名空間:使用using關(guān)鍵字導(dǎo)入System是VisualStudio.NET中最基本的命名空間創(chuàng)建項目時,VisualStudio平臺都會自動生成導(dǎo)入該命名空間,并放在程序代碼起始處C#中,必須用類來組織程序的變量與方法C#要求每個程序必須且只有一個Main方法Main方法必須放在某個類中Main方法是應(yīng)用程序的入口6.類和對象程序:由各種類和對象組成類:對象的模板,由變量和方法組成對象:類的實例,

由描述具體事物的數(shù)據(jù)、行為和消息構(gòu)成

對象可以接收、發(fā)送消息,使用消息交互消息:包含要傳遞給接收對象的信息第2章數(shù)據(jù)類型與表達(dá)式

.NET的數(shù)據(jù)類型值類型;引用類型

C#的數(shù)據(jù)類型簡單類型;枚舉;結(jié)構(gòu)常量;字符和字符串;隱式類型表達(dá)式算術(shù)表達(dá)式;關(guān)系表達(dá)式;邏輯表達(dá)式賦值表達(dá)式;其他表達(dá)式2.12.22.3

值類型:直接包含它們的數(shù)據(jù)值類型實例通常分配在線程的堆棧上,并且不包含任何指向?qū)嵗龜?shù)據(jù)的指針,因為變量本身就包含了其實例數(shù)據(jù)值類型的實例要么在堆棧上,要么內(nèi)聯(lián)在結(jié)構(gòu)中2.1.NET的數(shù)據(jù)類型引用類型:存儲對值的內(nèi)存地址的引用實例分配在托管堆上,變量保存了實例數(shù)據(jù)的內(nèi)存引用可以是自描述類型、指針類型或接口類型。而自描述類型進(jìn)一步細(xì)分成數(shù)組和類類型數(shù)據(jù)在內(nèi)存中的位置取決于該變量的數(shù)據(jù)類型內(nèi)置值類型用戶定義值類型枚舉型自描述類型指針類型接口類型類類型數(shù)組自描述類型指針類型接口類型引用類型值類型.NET的數(shù)據(jù)類型根類型system.object非引用類型非值類型不能實例化第2章數(shù)據(jù)類型與表達(dá)式

.NET的數(shù)據(jù)類型值類型;引用類型

C#的數(shù)據(jù)類型簡單類型;枚舉;結(jié)構(gòu)常量;字符和字符串;隱式類型表達(dá)式算術(shù)表達(dá)式;關(guān)系表達(dá)式;邏輯表達(dá)式賦值表達(dá)式;其他表達(dá)式2.12.22.32.2C#的數(shù)據(jù)類型c#數(shù)據(jù):.NET數(shù)據(jù)在c#語言上的一個實現(xiàn)c#同樣有兩種類型:值類型和引用類型值類型的變量:直接包含它們的數(shù)據(jù)每個變量都有它們自己的數(shù)據(jù)副本

(除ref和out參數(shù)變量外)

因此對一個變量的操作不影響另一個變量引用類型的變量:存儲對其數(shù)據(jù)的引用,稱為對象對于引用類型,兩個變量可能引用同一個對象

因此對一個變量的操作可能影響另一個變量所引用的對象C#的數(shù)據(jù)類型

2.2.1簡單數(shù)據(jù)類型c#共支持8種整型類型:8位、16位、32位和64位整型,又分為有符號和無符號形式兩種浮點類型:float和double,分別使用32位單精度和64位雙精度的格式表示decimal類型是128位的數(shù)據(jù)類型,適合用于財務(wù)計算和貨幣計算bool類型用于表示布爾值為true或false的值字符和字符串處理使用Unicode編碼。char類型表示一個16位Unicode編碼單元,string類型表示16位Unicode編碼單元的序列(string是引用類型)C#的數(shù)值類型

1.變量命名規(guī)則首字符必為字母(包括漢字)或下劃線,其余字符必為字母(包括漢字)、數(shù)字或下劃線。如sum,_S不能是C#的關(guān)鍵字或庫函數(shù)名。如不能是:int,2A,NumberOfStudent補(bǔ)充:變量及其賦值2.聲明變量最簡格式:數(shù)據(jù)類型名稱變量名列表如:intnumber;//聲明一個整型變量sbytea,b;//聲明兩個有符號字節(jié)型變量3.變量賦值變量必須賦值后才能引用變量賦值用“=”,右式為常量、變量、表達(dá)式等如,intnumber;number=32;//變量number賦值32可為幾個變量一同賦值,如:inta,b,c;a=b=c=32;可在定義變量時賦值(賦初值):

相當(dāng)于定義語句與賦值語句合二為一。如:doublearea,radius=16;枚舉:用名字代替整數(shù)

每種枚舉類型都有一個基礎(chǔ)類型:8種整型之一,未顯式定義基礎(chǔ)類型時默認(rèn)為int,值集同基礎(chǔ)類型2.2.2枚舉枚舉的定義:訪問修辭符enum枚舉名:基礎(chǔ)類型{

枚舉成員}

枚舉成員:枚舉型命名常數(shù)。任二枚舉成員不同名。每個枚舉成員均有相關(guān)聯(lián)的常數(shù)值,其類型為基礎(chǔ)類型。枚舉成員常數(shù)值值范圍受限于基礎(chǔ)類型例2-1簡單枚舉示例publicenumsex:byte

//枚舉底層數(shù)據(jù)類型byte

{ male,//首個枚舉成員默認(rèn)值為零 female//枚舉成員值為前一成員值加1};

publicenumWeek{Monday=1,Tuesday=2,Wednesday=3,Sunday=0,

Everyday=1//成員不可同名但可同值

}

Console.WriteLine((int)Week.Monday);//獲取值結(jié)構(gòu):封裝一批數(shù)據(jù)和函數(shù),起一個名字2.2.3結(jié)構(gòu)例2-4結(jié)構(gòu)例structA{publicintx;//不能直接對其賦值publicinty;publicstaticstringstr=null;//靜態(tài)變量可初始化publicA(intx,inty)//帶參數(shù)的構(gòu)造函數(shù){this.x=x;this.y=y;Console.WriteLine("x={0},y={1},str={2}",x,y,str);}}1.直接常量整型常量:整數(shù),三種形式:十進(jìn)制整數(shù):如123,48910等八進(jìn)制整數(shù):輸入八進(jìn)制整數(shù)加“0”,如0123十六進(jìn)制整數(shù):輸入十六進(jìn)制整數(shù)加“0x”或“0X”,如0x123,0X48910

2.2.5常量實型常量:有小數(shù)的數(shù),兩種形式:小數(shù)形式:如0.123,12.3,.123指數(shù)形式:如123*105寫作123e5或123E5布爾常量:布爾值true和false符號常量使用const關(guān)鍵字定義:

const類型名稱常量名=常量表達(dá)式;常量表達(dá)式中不含變量及函數(shù)等值會變的內(nèi)容,可含其他已定義常量符號常量不能出現(xiàn)在賦值的左邊符號常量若不希望C#默認(rèn)判斷十進(jìn)制數(shù)值常數(shù)的類型,

可加后綴指定數(shù)值常數(shù)類型。如整數(shù)后加u或U:uint或ulong類型,優(yōu)先匹配uint整數(shù)后加l或L:long或ulong類型,優(yōu)先匹配long整數(shù)后加f或F:float類型字符常量:單個Unicode字符集中的一個字符通常包括數(shù)字、各種字母、標(biāo)點、符號和漢字等一對單引號界定,如,'A','a','+','漢'C#中有些字符不能直接放單引號中作字符常量,需用轉(zhuǎn)義符表示,如'\n'

2.2.6字符和字符串字符串常量:雙引號界定的字符序列,如"歡迎使用C#!""Iamastudent."注意:字符用單引號,字符串用雙引號比較:'A'與"A"2.2.7隱式類型可賦予局部變量推斷“類型”var而非顯式類型:var關(guān)鍵字:指示編譯器根據(jù)初始化語句

右側(cè)的表達(dá)式推斷變量的類型推斷類型可以是內(nèi)置類型、匿名類型、用戶定義類型或.NETFramework類庫中定義的類型從VisualC#3.0開始,在方法范圍中聲明的變量可以具有隱式類型var例如,下面兩個i聲明在功能上等效:vari=10;//隱式聲明inti=10;//顯示聲明第2章數(shù)據(jù)類型與表達(dá)式

.NET的數(shù)據(jù)類型值類型;引用類型

C#的數(shù)據(jù)類型簡單類型;枚舉;結(jié)構(gòu)常量;字符和字符串;隱式類型表達(dá)式算術(shù)表達(dá)式;關(guān)系表達(dá)式;邏輯表達(dá)式賦值表達(dá)式;其他表達(dá)式2.12.22.3算術(shù)運算符有:一元運算符:-取負(fù)、+取正、++增值、--減值二元運算符:+加、-減、*乘、/除、%求余2.3.1算術(shù)算術(shù)表達(dá)式表達(dá)式:運算符連接運算對象常量、變量、函數(shù)等都是表達(dá)式由運算符連接在一起的表達(dá)式也是表達(dá)式例:intx=6,y=2,z;z=x%y;//z的值為0(余數(shù))inta,b=39;a=b/2;//a的值為18關(guān)系運算符:>,<,>=,<=,==,!=。字符串關(guān)系運算符:==、!=算術(shù)運算符優(yōu)先級高于關(guān)系運算符例:(a+b)==c等價于a+b==c2.3.2關(guān)系表達(dá)式邏輯運算符:!(非)、&&與、||(或)2.3.3邏輯表達(dá)式例:boolb1=!true;//b1的值為falseboolb2=5>3&&1>2;//b2的值為falseboolb3=5>3||1>2//b3的值為true⑴一元運算符高于二元、三元運算符⑵不同種類運算符的優(yōu)先級:算術(shù)運算符高于關(guān)系運算符關(guān)系運算符

高于邏輯運算符邏輯運算符

高于條件運算符條件運算符

高于賦值運算符⑶同類運算符之間的優(yōu)先級:算術(shù)運算符:乘|除→求余→加|減關(guān)系運算符:<<=>>=高于

==!=邏輯運算符:非→與→或2.3.8運算符的優(yōu)先級與結(jié)合性1.優(yōu)先級同級運算符之間:賦值運算符、條件運算符:由右向左結(jié)合除賦值運算符外的二元運算符:由左向右結(jié)合2.結(jié)合性a=ba、b、=a=b+ca、b、c、+、=a=b+c*da、b、c、d、*、+、=a=b*c+da、b、c、*、d、+、=a=b-c+da、b、c、-、d、+、=a+=b-=ca、b、c、-=、+=inta,b,c;c=1;a=b=c;a=(b=c);括號明確運算順序:如strings=x>y?"greaterthan":x==y?"equalto":"lessthan";strings=x>y?"greaterthan":(x==y?"equalto":"lessthan");a=(b+c)*da、b、c、+、d、*、=a=b-(c+d)a、b、c、d、+、-、=a=(b+c)*(d-e)a、b、c、+、d、e、-、*、=括號還可以改變表達(dá)式的運算順序:如3.圓括號

章節(jié)目錄上一頁下一頁例如:boolb1=!true;//b1的值為falseboolb2=5>3&&1>2;//b2的值為falseboolb3=5>3||1>2//b3的值為true5.條件運算符與條件表達(dá)式條件運算符是C#中唯一的三元運算符,條件運算符由符號“?”與“:”組成,通過操作三個操作數(shù)完成運算,其一般格式為:布爾類型表達(dá)式?表達(dá)式1:表達(dá)式22.字符串運算符與字符串表達(dá)式字符串運算符只有一個,即“+”運算符,表示將兩個字符串連接起來。例如:stringconnec="abcd"+"ef";//connec的值為“abcdef”“+”運算符還可以將字符型數(shù)據(jù)與字符串型數(shù)據(jù)或多個字符型數(shù)據(jù)連接在一起,例如:stringconnec="abcd"+'e'+'f';//connec的值為“abcdef”

章節(jié)目錄上一頁下一頁3.關(guān)系運算符與關(guān)系表達(dá)式>,<,>=,<=,==,!=。依次為大于,小于,大于等于,小于等于,等于,不等于。用于字符串的關(guān)系運算符只有相等“==”與不等“!=”運算符。4.邏輯運算符與邏輯表達(dá)式在C#中,最常用的邏輯運算符是!(非)、&&與、||(或)。

章節(jié)目錄上一頁下一頁例如:boolb1=!true;//b1的值為falseboolb2=5>3&&1>2;//b2的值為falseboolb3=5>3||1>2//b3的值為true5.條件運算符與條件表達(dá)式條件運算符是C#中唯一的三元運算符,條件運算符由符號“?”與“:”組成,通過操作三個操作數(shù)完成運算,其一般格式為:布爾類型表達(dá)式?表達(dá)式1:表達(dá)式2

章節(jié)目錄上一頁下一頁6.賦值運算符與賦值表達(dá)式在賦值表達(dá)式中,賦值運算符左邊的操作數(shù)叫左操作數(shù),賦值運算符右邊的操作數(shù)叫右操作數(shù)。左操作數(shù)通常是一個變量。復(fù)合賦值運算符,如“*=”、“/=”、“%=”、“+=”、“-=”等。

章節(jié)目錄上一頁下一頁2.3.3類型轉(zhuǎn)換數(shù)據(jù)類型的轉(zhuǎn)換有隱式轉(zhuǎn)換與顯式轉(zhuǎn)換兩種。1.隱式轉(zhuǎn)換隱式轉(zhuǎn)換是系統(tǒng)自動執(zhí)行的數(shù)據(jù)類型轉(zhuǎn)換。隱式轉(zhuǎn)換的基本原則是允許數(shù)值范圍小的類型向數(shù)值范圍大的類型轉(zhuǎn)換,允許無符號整數(shù)類型向有符號整數(shù)類型轉(zhuǎn)換。

2.顯式轉(zhuǎn)換顯式轉(zhuǎn)換也叫強(qiáng)制轉(zhuǎn)換,是在代碼中明確指示將某一類型的數(shù)據(jù)轉(zhuǎn)換為另一種類型。顯式轉(zhuǎn)換的一般格式為:

(數(shù)據(jù)類型名稱)數(shù)據(jù)例如:intx=600;shortz=(short)x;顯式轉(zhuǎn)換中可能導(dǎo)致數(shù)據(jù)的丟失,例如:decimald=234.55M;intx=(int)d;章節(jié)目錄上一頁下一頁

章節(jié)目錄上一頁下一頁3.使用方法進(jìn)行數(shù)據(jù)類型的轉(zhuǎn)換(1)Parse方法Parse方法可以將特定格式的字符串轉(zhuǎn)換為數(shù)值。Parse方法的使用格式為:數(shù)值類型名稱.Parse(字符串型表達(dá)式)例如:intx=int.Parse("123");(2)ToString方法ToString方法可將其他數(shù)據(jù)類型的變量值轉(zhuǎn)換為字符串類型。ToString方法的使用格式為:變量名稱.ToString()例如:intx=123;strings=x.ToString();

章節(jié)目錄上一頁下一頁2.5C#常用方法與屬性

2.5.1日期時間類常用方法與屬性C#中的DateTime類提供了一些常用的日期時間方法與屬性,該類屬于System命名空間,在使用模板創(chuàng)建應(yīng)用程序時,該命名空間的引用已自動生成,因此可以直接使用DateTime類。對于以當(dāng)前日期時間為參照的操作,可以使用該類的Now屬性及其方法。

章節(jié)目錄上一頁下一頁日期時間類的Now屬性的常用方法格式為:DateTime.Now.方法名稱(參數(shù)列表)日期時間類的Now屬性的常用屬性格式為:DateTime.Now.屬性名稱

章節(jié)目錄上一頁下一頁2.5.2常用數(shù)學(xué)方法與字段C#中的Math類提供了一些常用的數(shù)學(xué)方法與字段,該類屬于System命名空間。Math類是一個密封類,有兩個公共字段和若干靜態(tài)數(shù)學(xué)方法。

2.5.3字符串的方法與屬性任何字符串變量與常量對象都具有字符串的方法與屬性,可以使用這些方法與屬性來處理字符串。2.5.4類型轉(zhuǎn)換方法Convert類提供了常用的字符串轉(zhuǎn)換為其他數(shù)據(jù)類型,其他數(shù)據(jù)類型轉(zhuǎn)換為字符串的方法。

章節(jié)目錄上一頁下一頁2.5.5隨機(jī)方法Random類提供了產(chǎn)生偽隨機(jī)數(shù)的方法。產(chǎn)生隨機(jī)數(shù)的方法必須由Random類創(chuàng)建的對象調(diào)用。Random類創(chuàng)建對象的格式為:Random隨機(jī)對象名稱=newRandom();如果要聲明一個隨機(jī)對象rn,則代碼為:Randomrn=newRandom();

設(shè)計器視圖與代碼視圖設(shè)計器視圖與代碼視圖是程序設(shè)計最常用的兩個子窗口。設(shè)計器視圖用來設(shè)計Windows窗體或Web窗體,代碼視圖用于設(shè)計程序源代碼。在設(shè)計器視圖中可以為Windows或Web界面添加控件。代碼視圖實質(zhì)上是一個純文本編輯器,在該視圖中可以進(jìn)行通常的文本編輯操作,如選定、復(fù)制、移動、撤消、恢復(fù)等。

1.1.3

解決方案資源管理器

使用VisualStudio.NET開發(fā)的每一個應(yīng)用程序叫解決方案,每一個解決方案可以包含一個或多個項目。一個項目通常是一個完整的程序模塊,一個項目可以有多個項?!敖鉀Q方案資源管理器”子窗口顯示VisualStudio.NET解決方案的樹型結(jié)構(gòu)。在“解決方案資源管理器”中可以瀏覽組成解決方案的所有項目和每個項目中的文件,可以對解決方案的各元素進(jìn)行組織和編輯。

1.1.4屬性

“屬性”子窗口用于設(shè)置解決方案中各個子項的屬性,當(dāng)選擇設(shè)計器視圖、解決方案、類視圖中的某一子項時,“屬性”子窗口將以兩列表格的形式顯示該子項的所有屬性。單擊“事件”按鈕,窗口將顯示被選擇窗體或控件的事件列表,

1.1.5工具箱

“工具箱”用于向Windows應(yīng)用程序或Web應(yīng)用程序添加控件?!肮ぞ呦洹笔褂眠x項卡分類管理其中的控件,打開“工具箱”將顯示VisualStudio項目中使用的各個不同的控件列表。根據(jù)當(dāng)前正在使用的設(shè)計器或編輯器,“工具箱”中可用的選項卡和控件會有所變化。

1.1.6子窗口的操作

在主區(qū)域顯示的窗口,以選項卡的形式疊放在一起。用右上角關(guān)閉按鈕關(guān)閉當(dāng)前窗口。主區(qū)域周圍的窗口,有停靠與浮動兩種情況,??坑钟须[藏與固定顯示兩種狀態(tài),這兩種狀態(tài)通過圖釘按鈕控制。

1.2使用VisualStudio.NET的幫助

1.2.1動態(tài)幫助動態(tài)幫助與解決方案資源管理器共享一個屏幕區(qū)域?!皠討B(tài)幫助”對用戶當(dāng)前操作提供相關(guān)的幫助主題列表。當(dāng)用戶在VisualStudio環(huán)境中進(jìn)行某一項操作時,“動態(tài)幫助”將搜索MSDN庫(MicrosoftDeveloperNetwork),查找與該操作相關(guān)的幫助主題,以超級鏈接顯示在動態(tài)幫助窗口,并把它認(rèn)為可能最有用的主題列在第一位。單擊一個主題鏈接后,此主題將會顯示在VisualStudio的幫助窗口中。1.2.2智能感知

1.提示類名或?qū)ο竺?/p>

在設(shè)計代碼的過程中,當(dāng)輸入類名或?qū)ο竺麜r,VisualStudio會動態(tài)提供當(dāng)前可用的類及對象列表

2.提示類成員或?qū)ο蟪蓡T在完成類名或?qū)ο竺斎牒螅?dāng)通過點運算符訪問類或?qū)ο蟪蓡T時,VisualStudio將動態(tài)顯示類成員或?qū)ο蟪蓡T列表

3.提示方法的使用說明

當(dāng)使用類的靜態(tài)方法或成員方法時,VisualStudio動態(tài)顯示該方法的功能、不同用法(重載)及每種用法的參數(shù)說明。

4.實例化提示當(dāng)使用new關(guān)鍵字對對象進(jìn)行實例化時,VisualStudio會自動提供對對象類型的選擇。

1.2.3MSDN幫助

1.目錄

2.索引

3.幫助收藏夾

4.搜索

1.3對象的屬性、事件和方法

1.對象的屬性任何一個對象都具有一定的特征,這種特征叫做屬性,C#中的對象屬性可以看作是表現(xiàn)對象特征的數(shù)據(jù)的擴(kuò)展,例如按鈕的長、寬、顏色以及在窗體中的位置等。

2.對象的事件所謂事件(Event),是預(yù)先定義好的、能夠被對象識別的動作,如單擊(Click)事件、載入(Load)事件、移動鼠標(biāo)(MouseMove)事件等。

3.對象的方法任何一個對象都具有一定的行為,這種行為叫做對象的方法,方法完成某一特定功能。方法與事件方法類似,是一段完成特定功能的代碼,如窗體或控件的Show(顯示)方法與Hide(隱藏)方法等。對象的方法與對象的事件方法有相同之處,那就是兩者都是用一段代碼完成特定的功能。兩者也有不同,對象的事件方法是固定的,不能由用戶增加,用戶可以為事件方法添加所需代碼,事件方法由事件的發(fā)生而被自動調(diào)用;系統(tǒng)預(yù)定義的對象的方法代碼對用戶是隱藏的,不可見的,而且對象的方法必須在代碼中調(diào)用。

第3章面向?qū)ο缶幊蘄姚普選計算機(jī)教學(xué)實驗中心課程:程序設(shè)計(C#)110課時:32(課)+32(機(jī))上課:主A-104時間:上課_課表;上機(jī):課堂通知

上機(jī):計算機(jī)教學(xué)實驗中心作業(yè):網(wǎng)址_

39

學(xué)號_

用戶名、密碼成績:平時30%+考試70%第2章面向?qū)ο缶幊?/p>

類和對象類的概念、定義、構(gòu)造函數(shù)

類中成員的訪問訪問控制符、字段與屬性、類的實例_對象Windows應(yīng)用程序?qū)嵗齽?chuàng)建工程、設(shè)計窗體;定義類和對象編寫事件驅(qū)動代碼3.13.23.3類:客觀事物的數(shù)據(jù)抽象對象:現(xiàn)實世界中個體的數(shù)據(jù)描述要求:先定義類,再定義其對象3.1類和對象VisualStudio集成環(huán)境工具箱中的控件:圖形/文字表現(xiàn)出來的“可視”類把一個控件添加到窗體,窗體上的控件就是對象,即由工具箱中的類創(chuàng)建的對象C#中的類:一種數(shù)據(jù)類型,分為兩種系統(tǒng)預(yù)先定義,放在.NET框架的類庫中用戶自定義的,描述一類事物看作是一種數(shù)據(jù)類型將數(shù)據(jù)與對數(shù)據(jù)的操作作為統(tǒng)一的整體來定義,類的這種特點叫封裝性可定義基本數(shù)據(jù)類型的變量,也可定義類類型的變量,但類類型的變量叫類的對象或類的實例1.類與對象的本質(zhì):C#中的類可看作為結(jié)構(gòu)的擴(kuò)充與C語言中的結(jié)構(gòu)比較:類中不但可包括數(shù)據(jù),還包括處理這些數(shù)據(jù)的函數(shù)類是對數(shù)據(jù)和處理數(shù)據(jù)的方法(函數(shù))的封裝。類是對一些具有相同特性和行為的事物的描述類與結(jié)構(gòu)比較:2.類的定義:類是對數(shù)據(jù)和處理數(shù)據(jù)的方法(函數(shù))的封裝類是對一些具有相同特性和行為的事物的描述類的基本定義:

附加屬性

類修飾符class類名{類體}必有:關(guān)鍵字class、類名、類體可選:其它項類修飾符:new、public、protected、internal、private、abstract、sealed類體:用于定義類的成員附加屬性:static、const、readonly等類的定義中包含兩種成員:存儲數(shù)據(jù)的成員、操作數(shù)據(jù)的成員存儲數(shù)據(jù)的成員叫“字段”操作數(shù)據(jù)成員有:屬性、方法、構(gòu)造函數(shù)等3.類的成員字段:類定義中的數(shù)據(jù),也叫類的變量屬性:用于讀取和寫入字段的值方法:函數(shù),操作類中的數(shù)據(jù),如字段的計算及其他操作,以實現(xiàn)特定功能構(gòu)造函數(shù):以類來定義(創(chuàng)建)對象時,完成字段的初始化工作例3-1圓類namespaceCSHARP3_1{classProgram{staticvoidMain(string[]args){Circlep=newCircle();p.SetPoint(30,50,10);Console.Write("Circlep:");p.Print();}}classCircle{privatedoublex,y,r;publicvoidSetPoint(doublea,doubleb,doublec){x=a;y=b;r=c;}publicvoidPrint(){Console.WriteLine("["+x+","+y+"],"+“r="+r);}}}一種特殊的方法成員主要作用是在創(chuàng)建對象時初始化對象一個類定義有且至少一個構(gòu)造函數(shù),若定義類時未聲明構(gòu)造函數(shù),系統(tǒng)提供一個默認(rèn)構(gòu)造函數(shù)4.構(gòu)造函數(shù)定義構(gòu)造函數(shù):構(gòu)造函數(shù)不允許有返回類型包括void類型構(gòu)造函數(shù)的名稱必須與類名相同例:創(chuàng)建一個長方體類對象時,給出長、寬、高故長方體類構(gòu)造函數(shù):publicCuboid(doublel,doublew,doubleh){length=l;width=w;high=h;}此后創(chuàng)建對象:Cuboidcu=newCuboid(8,6,4);第2章面向?qū)ο缶幊?/p>

類和對象類的概念、定義、構(gòu)造函數(shù)

類中成員的訪問訪問控制符、字段與屬性、類的實例_對象Windows應(yīng)用程序?qū)嵗齽?chuàng)建工程、設(shè)計窗體;定義類和對象編寫事件驅(qū)動代碼3.13.23.3private(默認(rèn))

聲明私有成員,私有數(shù)據(jù)成員只能被類內(nèi)部的方法使用和修改私有方法成員只能被類內(nèi)部的方法調(diào)用1.類成員的訪問修飾符訪問修飾符:private、public、protected和internal訪問權(quán)限控制字可使:類中某些數(shù)據(jù)不能隨意改,只能按指定方法改某些方法也不為其它類調(diào)用,只能在類內(nèi)部使用public

聲明公有成員類的公有方法成員可以被類的外部程序所調(diào)用類的公有數(shù)據(jù)成員可以被類的外部程序直接使用公有方法是類和外部通訊的接口,外部方法通過調(diào)用公有方法來修改類的私有成員和保護(hù)成員C#中常用訪問修飾符的意義:

public(公有):訪問不受限制

可以被任何其他類訪問private(私有):訪問只限于含該成員的類

即只有該類的其他成員能訪問protected(保護(hù)):

訪問只限于含該成員的類、及該類的派生類如果聲明成員沒有使用任何訪問修飾符,

則該成員被認(rèn)為是私有的(private)如果成員被聲明為private或protected,

則不允許在類定義外使用點運算符訪問聲明字段:與普通變量的聲明格式格式相同習(xí)慣上將字段聲明在類體中最前面,以便于閱讀2.屬性的聲明聲明屬性:屬性是類定義中的字段讀寫器聲明屬性的格式:

訪問修飾符類型屬性名{get{}set{}}get與set叫屬性訪問器:get完成數(shù)據(jù)值的讀取,return用于返回讀取的值set完成數(shù)據(jù)值的設(shè)置,value表示要寫入字段的值

classCuboid{//聲明字段

privatedoublelength;privatedoublewidth;privatedoublehigh;//聲明屬性

publicdoubleLength{get{returnlength;}set{length=value;}}publicdoubleWidth{get{returnwidth;}set{width=value;}}publicdoubleHigh{get{returnhigh;}set{high=value;}}}例補(bǔ)3-1長方體定義對象:與定義基本數(shù)據(jù)類型變量格式相同

類名對象名;例:Cuboidcubiod1;/定義后,需用“new”關(guān)鍵字將其實例化對象名=new類名();例:cubiod1=newCuboid();3.對象的創(chuàng)建與使用說明:如果變量未初始化,其值是null聲明類類型變量所分配內(nèi)存保存的是引用而不保存類對象實際數(shù)據(jù),故要為實際數(shù)據(jù)分配內(nèi)存new算符為任意指定類型的實例分配并初始化內(nèi)存訪問對象:訪問對象實質(zhì)是訪問對象成員對對象變量成員的訪問用“.”運算符。例cubiod1.Length=5;cubiod1.Width=3;cubiod1.High=2;使用對象變量為另一對象變量整體賦值,例Cuboidcuboid2;cubiod2=cubiod1;Cuboidcuboid2=cubiod1;可使用對象中某一成員為變量賦值。例doubleiLength=cubiod1.Length;第2章面向?qū)ο缶幊?/p>

類和對象類的概念、定義、構(gòu)造函數(shù)

類中成員的訪問訪問控制符、字段與屬性、類的實例_對象Windows應(yīng)用程序?qū)嵗齽?chuàng)建工程、設(shè)計窗體;定義類和對象編寫事件驅(qū)動代碼3.13.23.3定義一個長方體類,包含長、寬、高字段和屬性窗體類定義中聲明長方體類對象通過文本框設(shè)置對象的值通過標(biāo)簽框輸出對象的值例補(bǔ)3-2創(chuàng)建一個Windows應(yīng)用程序創(chuàng)建了Windows應(yīng)用的界面定義cubiod類(與Form1類的定義并列):在與Form1類的定義中聲明cubiod類的對象:編寫事件處理代碼:完整源代碼:

定義類代碼如下:classCuboid//類名為Cuboid{//聲明字段

privatedoublelength;privatedoublewidth;privatedoublehigh;//聲明屬性

publicdoubleLength{get{returnlength;}set{length=value;}}publicdoubleWidth{get{returnwidth;}set{width=value;}}publicdoubleHigh{get{returnhigh;}set{high=value;}}}

在Form1類定義的類體中聲明Cuboid類對象代碼如下:Cuboidcubiod=newCuboid();//聲明對象cubiod【設(shè)置對象值】按鈕的Click事件代碼為:privatevoidbutton1_Click(objectsender,EventArgse){//轉(zhuǎn)換文本框中的值

doublel=double.Parse(txtLength.Text);doublew=double.Parse(txtWidth.Text);doubleh=double.Parse(txtHigh.Text);

//設(shè)置對象值

cubiod.Length=l;cubiod.Width=w;cubiod.High=h;lblInfo.Text="對象值設(shè)置完畢!";//輸出設(shè)置完成信息}

【顯示對象值】的Click事件代碼為:privatevoidbutton2_Click(objectsender,EventArgse){//將對象各屬性值加上說明信息顯示在標(biāo)簽框中(訪問對象)

lblInfo.Text="長方體的長:"+cubiod.Length+"寬:"+cubiod.Width+"高:"+cubiod.High;}第2章數(shù)據(jù)類型與表達(dá)式姚普選計算機(jī)教學(xué)實驗中心課程:程序設(shè)計(C#)138課時:32(課)+32(機(jī))上課:主A-104時間:上課_課表;上機(jī):課堂通知

上機(jī):計算機(jī)教學(xué)實驗中心作業(yè):網(wǎng)址_

39

學(xué)號_

用戶名、密碼成績:平時30%+考試70%1.縮進(jìn)與空格縮進(jìn):表示代碼的結(jié)構(gòu)層次(不是必須的)

應(yīng)使用統(tǒng)一的縮進(jìn)格式書寫代碼補(bǔ)充:C#語法常識及主要成分2.字母大小寫同一字母的大小寫當(dāng)作兩個不同字符3.注釋_兩種:單行注釋雙斜線“//”開始,不能換行多行注釋“/*”開始,“*/”結(jié)束,可換行關(guān)鍵字(保留字):有特定意義的字符串VisualStudio環(huán)境的代碼視圖中默認(rèn)藍(lán)色顯示例如,代碼中的using、namespace、class、static、void等,均為C#的關(guān)鍵字

4.關(guān)鍵字

命名空間:組織和重用代碼的編譯單元其中定義的名字只在本命名空間中有效VisualStudio提供系統(tǒng)資源的分層組織方式,也是分層組織程序的方式命名空間有兩種:

系統(tǒng)命名空間,用戶自定義命名空間5.命名空間系統(tǒng)命名空間:使用using關(guān)鍵字導(dǎo)入System是VisualStudio.NET中最基本的命名空間創(chuàng)建項目時,VisualStudio平臺都會自動生成導(dǎo)入該命名空間,并放在程序代碼起始處C#中,必須用類來組織程序的變量與方法C#要求每個程序必須且只有一個Main方法Main方法必須放在某個類中Main方法是應(yīng)用程序的入口6.類和對象程序:由各種類和對象組成類:對象的模板,由變量和方法組成對象:類的實例,

由描述具體事物的數(shù)據(jù)、行為和消息構(gòu)成

對象可以接收、發(fā)送消息,使用消息交互消息:包含要傳遞給接收對象的信息第2章數(shù)據(jù)類型與表達(dá)式

.NET的數(shù)據(jù)類型值類型;引用類型

C#的數(shù)據(jù)類型簡單類型;枚舉;結(jié)構(gòu)常量;字符和字符串;隱式類型表達(dá)式算術(shù)表達(dá)式;關(guān)系表達(dá)式;邏輯表達(dá)式賦值表達(dá)式;其他表達(dá)式2.12.22.3

值類型:直接包含它們的數(shù)據(jù)值類型實例通常分配在線程的堆棧上,并且不包含任何指向?qū)嵗龜?shù)據(jù)的指針,因為變量本身就包含了其實例數(shù)據(jù)值類型的實例要么在堆棧上,要么內(nèi)聯(lián)在結(jié)構(gòu)中2.1.NET的數(shù)據(jù)類型引用類型:存儲對值的內(nèi)存地址的引用實例分配在托管堆上,變量保存了實例數(shù)據(jù)的內(nèi)存引用可以是自描述類型、指針類型或接口類型。而自描述類型進(jìn)一步細(xì)分成數(shù)組和類類型數(shù)據(jù)在內(nèi)存中的位置取決于該變量的數(shù)據(jù)類型內(nèi)置值類型用戶定義值類型枚舉型自描述類型指針類型接口類型類類型數(shù)組自描述類型指針類型接口類型引用類型值類型.NET的數(shù)據(jù)類型根類型system.object非引用類型非值類型不能實例化第2章數(shù)據(jù)類型與表達(dá)式

.NET的數(shù)據(jù)類型值類型;引用類型

C#的數(shù)據(jù)類型簡單類型;枚舉;結(jié)構(gòu)常量;字符和字符串;隱式類型表達(dá)式算術(shù)表達(dá)式;關(guān)系表達(dá)式;邏輯表達(dá)式賦值表達(dá)式;其他表達(dá)式2.12.22.32.2C#的數(shù)據(jù)類型c#數(shù)據(jù):.NET數(shù)據(jù)在c#語言上的一個實現(xiàn)c#同樣有兩種類型:值類型和引用類型值類型的變量:直接包含它們的數(shù)據(jù)每個變量都有它們自己的數(shù)據(jù)副本

(除ref和out參數(shù)變量外)

因此對一個變量的操作不影響另一個變量引用類型的變量:存儲對其數(shù)據(jù)的引用,稱為對象對于引用類型,兩個變量可能引用同一個對象

因此對一個變量的操作可能影響另一個變量所引用的對象C#的數(shù)據(jù)類型

2.2.1簡單數(shù)據(jù)類型c#共支持8種整型類型:8位、16位、32位和64位整型,又分為有符號和無符號形式兩種浮點類型:float和double,分別使用32位單精度和64位雙精度的格式表示decimal類型是128位的數(shù)據(jù)類型,適合用于財務(wù)計算和貨幣計算bool類型用于表示布爾值為true或false的值字符和字符串處理使用Unicode編碼。char類型表示一個16位Unicode編碼單元,string類型表示16位Unicode編碼單元的序列(string是引用類型)C#的數(shù)值類型

第4章算法與控制結(jié)構(gòu)姚普選計算機(jī)教學(xué)實驗中心第4章算法與控制結(jié)構(gòu)

算法概念、性質(zhì)、描述方法

查找算法順序查找、改進(jìn)順序查找二分查找法

常見算法遞推、迭代(求累加和)

窮舉法、分治法、貪心法4.14.24.3、4.1算法科學(xué)計算:問題轉(zhuǎn)化為數(shù)學(xué)公式,一次性計算解題如,數(shù)學(xué)中,圓柱體體積=底面積*高力學(xué)中,G=g*m1*m2/R2(萬有引力)

實際問題:常遇__難找公式或計算太難,如,背包問題、迷宮求解、超越方程、物理學(xué)中的偏微分方程目前只能數(shù)值方法近似計算計算學(xué)科(計算機(jī)結(jié)合各學(xué)科):一般無終極公式;反復(fù)計算逐步得到解或近似解;每個計算周期計算問題的一部分或得到一個更好的近似解優(yōu)點:算法容易找到(簡單問題的解逐步逼近原始問題解),適合于計算機(jī)求解44.1.1算法的概念算法4-1

輾轉(zhuǎn)相除法(求兩整數(shù)最大公約數(shù))定理:兩個整數(shù)的最大公約數(shù)

等于

較小數(shù)與兩數(shù)之差的最大公約數(shù)如,252、105

最大公約數(shù):21

∵252?105=147

∴147、105

最大公約數(shù):21用計算機(jī)解決某一問題的方法和步驟數(shù)值算法:解決一般數(shù)學(xué)解析方法難解的問題:求超越方程的根、求定積分、解微分方程等非數(shù)值算法:對非數(shù)值數(shù)據(jù)進(jìn)行查找、排序等算法:求兩個整數(shù)的最大公約數(shù)4.1.2算法的性質(zhì):有窮性:一個算法應(yīng)該在有限(合理)的時間和步驟內(nèi)執(zhí)行完畢確定性:算法的每個步驟都應(yīng)確切無誤,沒有歧義可行性:算法的每個步驟都必須是計算機(jī)能夠有效執(zhí)行、可以實現(xiàn)的,并可得到確定的結(jié)果輸入性:一個算法可以有0或多個輸入數(shù)據(jù)。輸出性:一個算法必須有一個或多個輸出結(jié)果算法需要表現(xiàn)為程序,才能由計算機(jī)理解和執(zhí)行一般地,可先用流程圖或偽代碼設(shè)計算法再轉(zhuǎn)換成計算機(jī)能夠執(zhí)行的“程序”4.1.3算法的描述1)算法可以表現(xiàn)為各種形式:偽代碼(英文、中文、類Pascal、類C語言)流程圖(框形、盒圖、PAD圖)、程序(匯編語言、高級語言源程序)_執(zhí)行2)算法的流程圖描述X≥0Yy=2x+1y=-xN輸入x輸出y開始結(jié)束處理框判斷框I/O框起止框流程線流程圖符號例6-2:求y值

y=2x+1(X≥0)-x(X<0)例:輾轉(zhuǎn)相除法流程圖

n≥mYr=mm=nn=rN輸入m,n1開始r<>0Yr=nn=mN輸出n結(jié)束1r=m/n的余數(shù)r=m/n的余數(shù)順序結(jié)構(gòu)語句序列2語句序列13)程序的三種基本結(jié)構(gòu)FT條件語句序列當(dāng)型循環(huán)結(jié)構(gòu)TF條件語句序列直到型循環(huán)結(jié)構(gòu)TF語句序列2條件語句序列1選擇結(jié)構(gòu)順序結(jié)構(gòu):二數(shù)排序

選擇結(jié)構(gòu):求y的值輸入A、BA

T開始輸出A、B結(jié)束B

AT

BTF-x

yx≥0x+1

y輸入x的值開始輸出y的值結(jié)束循環(huán):輸入十個數(shù),挑最大數(shù)并輸出

擂臺賽—算法:輸入一數(shù),設(shè)為最大數(shù)再輸入一數(shù),與已有最大數(shù)比較,保留大數(shù)……依次輸入其它數(shù),與上次保留的數(shù)比較并保留大數(shù)直到輸入了10個數(shù)并比較了9次為止最后留下的是最大數(shù)例

統(tǒng)計100個學(xué)生的成績單中各成績段的人數(shù)inti,ci;//i_第i個學(xué)生,ci_第i個學(xué)生的

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論