版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、C#程序設(shè)計第1章認識Visual C#本章任務(wù)了解Microsoft Visual Studio2008;能編寫簡單控制臺應(yīng)用程序;能編寫簡單Windows應(yīng)用程序 ;任務(wù) 1.1 Microsoft Visual tudio2008的安裝安裝Microsoft Visual Studio2008軟件。任務(wù) 1.1 Microsoft Visual tudio2008的安裝(1)將Microsoft Visual Studio2008軟件安裝光盤放入光驅(qū),系統(tǒng)將自動啟動安裝程序(2)單擊“安裝Visual Studio2008” 任務(wù) 1.1 Microsoft Visual tudio20
2、08的安裝(3)加載組件完成后,單擊對話框中的“下一步”按鈕 任務(wù) 1.1 Microsoft Visual tudio2008的安裝(4)選擇“我已閱讀并接受許可條款”單選按鈕,并在“名稱”文本框中輸入用戶姓名,然后單擊“下一步”按鈕 任務(wù) 1.1 Microsoft Visual tudio2008的安裝(5)選擇需要安裝的功能單選按鈕,并且確定安裝目標文件夾 任務(wù) 1.1 Microsoft Visual tudio2008的安裝(6)單擊“安裝”按鈕,進入了安裝程序的安裝頁 任務(wù) 1.1 Microsoft Visual tudio2008的安裝(7)安裝完成后,打開對話框,單擊“完成
3、”按鈕,彈出“安裝程序”對話框 任務(wù) 1.1 Microsoft Visual tudio2008的安裝第一次啟動Visual Studio2008,選擇“Visual C#開發(fā)設(shè)置”后單擊“啟動Visual Studio” 1.1.1 Microsoft Visual Studio2008集成開發(fā)環(huán)境 1什么是.NET2Microsoft Visual Studio2008的安裝環(huán)境3Microsoft Visual Studio2008集成開發(fā)環(huán)境介紹4使用Microsoft Visual Studio2008集成開發(fā)環(huán)境開發(fā)WinForm應(yīng)用程序1什么是.NET(1).NET平臺(2)V
4、isualC#.NET的特點語法更簡單;保留了C+的強大功能;快速應(yīng)用開發(fā)功能;語言的自由性;強大的Web服務(wù)器控件;支持跨平臺;與XML相融合。 2Microsoft Visual Studio2008的安裝環(huán)境(1)支持的操作系統(tǒng)Microsoft Windows XPMicrosoft Windows Server 2003Windows Vista(2)硬件要求最低要求:1.6 G Hz CPU、384 MB RAM、1024x768 顯示器、5400 RPM(轉(zhuǎn)/分鐘)硬盤。建議配置:2.2 GHz 或更快的 CPU、1024 MB 或更大容量的 RAM、1280 x1024 顯示器
5、、7200 RPM或更高轉(zhuǎn)速的硬盤Windows Vista 上要求:2.4 GHz CPU、768 MB RAM硬盤的空間至少4G 。 3Microsoft Visual Studio2008集成開發(fā)環(huán)境介紹(1)啟動C#在“起始頁”對話框選中“創(chuàng)建:項目” 在彈出的“新建項目”對話框的“項目類型”框中選擇“Visual C#”下Windows項在“模板”框中選擇“Windows窗體應(yīng)用程序” 在“名稱”中輸入要新建的項目文件名稱在“位置”處通過“瀏覽”按鈕設(shè)置文件存放位置單擊“確定” 3Microsoft Visual Studio2008集成開發(fā)環(huán)境介紹(2)VisualStudio.N
6、ET開發(fā)環(huán)境菜單欄 工具欄 “工具箱”面板“屬性”面板 解決方案資源管理器 4使用Microsoft Visual Studio2008集成開發(fā)環(huán)境開發(fā)WinForm應(yīng)用程序?qū)W生信息管理系統(tǒng) 任務(wù)1.2 編寫簡單的控制臺輸出程序利用控制臺輸出“C_SHARP歡迎你!”任務(wù)解決方案 (1)選擇“開始”“程序”“Microsoft Visual Studio 2008”“Microsoft Visual Studio 2008”命令 (2)啟動Visual Studio2008開發(fā)環(huán)境之后,在菜單欄中選擇“文件”“新建”“項目”命令 (3)選擇“控制臺應(yīng)用程序”,在名稱框中輸入“Welcome”,
7、然后單擊“確定”按鈕,完成控制臺應(yīng)用程序的創(chuàng)建 (4)輸入代碼(5)單擊“調(diào)試”|“啟動調(diào)試”,或按F5鍵運行輸入代碼using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Welcome class Program static void Main(string args) Console.WriteLine(C_SHARP歡迎你!); Console.ReadKey(); 輸出C_SHARP歡迎你!語句等待用戶用鍵盤輸入任何語句,退出程序 C#工程項目的創(chuàng)建、編譯
8、和執(zhí)行1C#工程項目的創(chuàng)建2編寫代碼3項目編譯和運行程序(1)編譯程序(2)運行程序編寫代碼注意以下幾點 (1)C#源文件#源文件以.cs作為擴展名 ,可執(zhí)行文件(.exe文件)后可以脫離VisualStudio.NET環(huán)境直接運行 (2)C#基本語法語句以一個分號“;”結(jié)尾 ,結(jié)構(gòu)語句用花括號“.”組合為語句塊 (3)注釋行注釋行用于幫助源程序的閱讀,計算機在程序運行時不執(zhí)行注釋行,以“/”開始的注釋叫“單行注釋” ,多行注釋以“/*”開始至“*/”結(jié)束 (4)Main()方法Main()方法是程序的入口點,也是出口點。 輸入和輸出該語句是一句輸出語句,其目的是要將字符串“C_SHARP歡迎
9、你!”顯示到屏幕上 Console是程序集System命名空間下的一個類 WriteLine()則是Console類的一個用于將字符串信息顯示到屏幕上的方法 Console.WriteLine(C_SHARP歡迎你!);類的常用方法名稱接受參數(shù)返回值類型用途Read無int從輸入流讀入下一個字符,至換行符結(jié)束。ReadKey無ConsoleKeyInfo從輸入流讀入一個字符。ReadLine無string從輸入流讀入一行文本,至換行符結(jié)束。Writestringvoid輸出一行文本。WriteLinestringvoid輸出一行文本,并在結(jié)尾處自動換行。Write和WriteLine的常用參數(shù)
10、 Write和WriteLine可以接受多種類型的參數(shù),包括字符串、字符、整數(shù)、浮點數(shù)等Write和WriteLine也可以對輸入的參數(shù)進行格式化輸出 Console.Write(123); /輸出整數(shù)Console.WriteLine(123); /輸出整數(shù)并換行Console.WriteLine(15.25); /輸出浮點數(shù)并換行格式化輸出 將形如0、1的指代標記包含在方法的參數(shù)中,其后的變量列表則分別用以取代這些標記格式化時最多只能接受4個參數(shù)(即指代標記最大為3) string s=MikeConsole.Write(Hello,0,s);Console.WriteLine(Proje
11、ct:0,Language:1,Version:2,Console,C#,2008);輸出為:Hello,Mike輸出為:Project:Console,Language:C#,Version:2008Console.Read()方法 Read方法可以從標準輸入流中讀取下一個字符,且只能讀取一個字符如果輸入的是數(shù)字字符時,要注意輸入的是數(shù)字字符的ASCII碼值 static void Main(string args) int i; i = System.Console.Read(); System.Console.WriteLine(i); 當輸入“1”時,輸出的值是49 Console.R
12、eadLine()方法 ReadLine方法可以從標準輸入流讀取下一行字符 static void Main(string args) string s; System.Console.WriteLine(請輸入姓名:); s =System.Console.ReadLine(); System.Console.WriteLine(您的輸入的姓名是:0,s); Console.ReadKey()方法 ReadKey方法可以獲取用戶按下的下一個字符或功能鍵在程序的最后加上調(diào)用該方法的語句,使程序執(zhí)行到該語句時暫停 static void Main(string args) Console.Wri
13、teLine(C_SHARP歡迎你!); Console.ReadKey(); 當用戶從鍵盤上輸入字符時退出任務(wù)1.3 制作一個歡迎界面在文本框中輸入姓名單擊“確定”命令按鈕在文本框中顯示歡迎語句任務(wù)解決方案 (1)選擇“文件”“新建”“項目”命令(2)選擇Windows項目類型,選擇Windows應(yīng)用程序,輸入項目的名稱“Welcom_w”后,點擊“確定”按鈕(3)選擇Label控件、TextBox控件和Button控件并將其放置在窗體Form1上(4)修改Label1控件和Button1控件的屬性值(5)雙擊按鈕Button1,編輯代碼(6)運行程序代碼分析 private void bu
14、tton1_Click(object sender, EventArgs e) textBox2.Text = C#世界歡迎你-“ + textBox1.Text; 使用文本框Text屬性輸出“+”作用將兩個字符串連接起來。using語句using語句用于導入命名空間 ,“using System;”語句表示可以直接使用System命名空間內(nèi)的資源注意不能寫成“using System.Console;” Console是命名空間System下的類,不是命名空間 若不用using System語句,任務(wù)1.2中的輸出語句則不能省略System ,應(yīng)修改為 static void Main(st
15、ring args) System . Console.WriteLine(C_SHARP歡迎你!);System . Console.ReadKey(); 控件、事件的使用 窗體及控件都是對象,因此可以直接定義其外觀屬性、行為方法以及編寫與用戶交互的事件代碼,以滿足不同需求當用戶單擊鼠標或按下按鍵,程序可以被激活并且做一些事情 例如:程序員只需要對用戶單擊“確定”命令按鈕定義執(zhí)行的操作,即為Button按鈕定義了一個Click事件的響應(yīng)方法button1_Click()??偨Y(jié)什么是.NET ?控制臺程序與Windows應(yīng)用程序如何創(chuàng)建 ?謝 謝!C#程序設(shè)計第2章C#編程基礎(chǔ)本章任務(wù)能正確使
16、用C#的常量與變量能正確讀取數(shù)據(jù)能正確格式化輸出數(shù)據(jù)能正確使用算術(shù)運算符及表達式能正確使用邏輯運算符及表達式能按照程序編寫規(guī)范書寫程序代碼任務(wù) 2.1 制作簡單加法計算器在文本框中輸入加數(shù)和被加數(shù)單擊“計算”按鈕后顯示加法運算結(jié)果 單擊“關(guān)閉”按鈕后退出任務(wù) 2.1 制作簡單加法計算器處理“計算”按鈕的 Click 事件處理“關(guān)閉”按鈕的 Click 事件分四步實現(xiàn):任務(wù)解決方案 1.創(chuàng)建名為summator的Windows項目2.選擇Label、Textbox和Button等控件放到窗體的適當位置,并設(shè)置控件屬性3.編寫應(yīng)用程序代碼4.測試程序表2.1 屬性表控件屬性設(shè)置控件屬性設(shè)置Form
17、1NamefrmsumLabel4NamelblResult2TextText簡單的加法計算器Textbox1NametxtSum1Label1NamelblSum1Textbox2NametxtSum2Text被加數(shù):Label2NamelblSum2Button1NamebtncalcText加數(shù):Text計算Label3NamelblResult1Button2NamebtnCloseText相加結(jié)果為:Text關(guān)閉代碼雙擊“計算”按鈕,在其Click事件的響應(yīng)方法btncalc _Click()中,插入下列代碼:private void btncalc _Click(object se
18、nder, EventArgs e) int op1; int op2; int result; op1 = Int32.Parse(txtSum1.Text); op2 = Int32.Parse(txtSum2.Text); result = op1 + op2; lblResult2.Text = result.ToString();定義3個整型變量op1,op2和result 將字符型的文本框的值轉(zhuǎn)換為32位整數(shù)后賦給整型變量將結(jié)果result的值轉(zhuǎn)換為字符型后賦值給標簽控件Text屬性代碼雙擊“關(guān)閉”按鈕,在其Click事件的響應(yīng)方法btnClose _Click()中,插入下列代碼
19、:private void btnClose _Click(object sender, EventArgs e) this.Close();關(guān)閉窗體 1.變量的定義用戶的角度在程序執(zhí)行過程中值會發(fā)生改變的數(shù)據(jù)當需要保存特定的值或計算結(jié)果時,需要用到變量計算機的角度變量代表存儲地址變量的類型決定了存儲在變量中的數(shù)值的類型變量有3個屬性存儲變量值的存儲位置存儲位置中數(shù)據(jù)的數(shù)據(jù)類型用來引用該存儲位置的名稱(1)變量x=100 x=50 (3)變量的命名規(guī)范有利于程序的設(shè)計和維護使名稱具有一定的意義,避免冗長 Pascal表示法Camal表示法匈牙利表示法等對類名、類的屬性、類的方法采用Pascal
20、命名法,Pascal表示法將標識符的首字母和后面連接的每個單詞的首字母都大寫 例如:BackColor 、ForeColor對變量、對象采用Camal命名法,也叫駝峰命名法,Camal表示法以小寫字母開頭,以后的單詞都以大寫字母開頭。例如:redValue、myBook、sizeOfChar匈牙利表示法中變量名由變量的屬性、類型及對象的描述三部分組成。例如:iMyCar、cMyCar2.變量的聲明由于變量表示一個值在內(nèi)存中的存儲地址,因此在使用變量前必須先聲明變量名和數(shù)據(jù)類型聲明變量的一般格式為:數(shù)據(jù)類型 變量名表;例如:在任務(wù)2.1中使用的語句。int op1;int op2;int res
21、ult;3.變量的賦值變量在使用前必須賦值,賦值運算符“=”可以將運算符右側(cè)的值賦予左側(cè)的變量賦值運算要求賦值號“=”右邊和左邊的數(shù)據(jù)類型完全一致,否則會編譯出錯。還可以在變量聲明的同時給變量賦初值 S=100; op1 = Int32.Parse(txtSum1.Text);int b=100;string c1=abc;4.變量的作用域變量的作用域,也叫變量的生命周期變量只有在它的生命周期內(nèi)才可以被訪問,超過生命周期,任何對它的訪問和使用都會產(chǎn)生編譯錯誤變量的作用域一般由變量聲明的位置決定,在作用域內(nèi)聲明的變量對于作用域外的代碼是不可見的。變量的作用域大致包括以下幾種:靜態(tài)變量作用域?qū)嵗?/p>
22、量作用域方法參數(shù)作用域局部變量作用域異常處理作用域public class DomainTest private int a; static int b; public int GetA() return a; public void SetA( int c ) int d; public void TryFunction() try catch (Exception e) 變量a的作用域為實例變量作用域變量b的作用域為靜態(tài)變量作用域 變量c的作用域為方法參數(shù)作用域變量d的作用域為局部變量作用域變量e的作用域為異常處理作用域 靜態(tài)變量作用域:靜態(tài)變量使用static修飾符聲明,它的生存期為整個
23、源程序。實例變量作用域:當一個類的實例被創(chuàng)建時,其實例成員變量的生命周期開始,當該實例不再被使用,實例所占內(nèi)存空間將被釋放時,實例成員變量的生命周期結(jié)束。方法參數(shù)作用域:方法參數(shù)變量的其作用域僅限于該方法內(nèi),方法被調(diào)用時,它的生命周期開始,方法執(zhí)行完畢,它的生命周期結(jié)束。局部變量作用域:局部變量作用域僅限于它被定義的語句塊內(nèi),當該語句塊結(jié)束后,其生命周期結(jié)束。異常處理參數(shù)作用域:異常處理參數(shù)變量的生命周期只在錯誤處理語句塊內(nèi)(即catch語塊內(nèi))存在。注意:變量只有在被聲明后才有效,如果在代碼塊的結(jié)尾處聲明了一個變量,由于沒有任何代碼可以訪問它,它將沒有任何作用。常量 (1)常量的定義:常量即
24、值不會發(fā)生改變的量 常量分為直接常量和符號常量直接常量是指在程序中直接給出數(shù)值或字符串的常量,例如:12345、“name”。符號常量是經(jīng)過聲明的常量,包括常量的名稱和它的值。聲明常量的一般格式如下:const 數(shù)據(jù)類型 表達式例如:const int yearmonth=12;const double conpi=3.1415926;聲明了int型常量yarmonth聲明了double型常量conpi注意常量不能像變量一樣更改它的值或給它們賦新值。 const int yearmonth=12;yearmonth=22; /錯誤const double conpi=3.1415926;con
25、pi=3.14; /錯誤但是利用表達式形式聲明常量是允許的。 const int c1=10;const int c2=c1+100;與變量的聲明語句類似還可以在const前加上訪問標識符,用于規(guī)定常量的作用域,格式如下:訪問標識符 const 數(shù)據(jù)類型 表達式 private const int WordDays=200; /私有常量 public const int DaysInYear=365; /公有常量(2)使用常量的優(yōu)點常量用易于理解的名稱替代了含義不明確的數(shù)字或字符串,使程序更易于閱讀常量使程序更易于修改常量更易于避免程序出現(xiàn)錯誤。如果要給程序中的常量再次賦值,編譯器立刻就會報告
26、錯誤2.1.2基本數(shù)據(jù)類型1.值類型值類型主要由簡單類型、枚舉類型和結(jié)構(gòu)類型這三類組成 種類描述值類型簡單類型(Simple types)有符號整數(shù):sbyte, short, int, long無符號整數(shù):byte, ushort, uint, ulongUnicode 字符:charIEEE 浮點數(shù):float, double十進制數(shù):decimal布爾值:bool枚舉類型(Enum type)enum E .結(jié)構(gòu)類型(Struct type)struct S .(1)整型類型描述位數(shù)數(shù)據(jù)類型取值范圍有符號整數(shù)8sbyte12812716short32 76832 76732int2 14
27、7 483 6482 147 483 64764long9 223 372 036 854 775 8089 223 372 036 854 775 807無符號整數(shù)8byte025516ushort065 53532uint04 294 967 29564ulong018 446 744 073 709 551 615C#定義了8種整型變量不同整型類型數(shù)據(jù)在內(nèi)存中占用的內(nèi)存位數(shù)各不相同 對所有整型類型變量賦值都默認是十進制數(shù)要使用十六進制的值,則需要添加0 x前綴 一個整數(shù)沒有任何顯示的聲明,則該變量默認為int類型若將數(shù)據(jù)指定為其他整數(shù)類型,則必須加上后綴 (2)浮點類型描述位數(shù)數(shù)據(jù)類型取
28、值范圍單精度浮點型32float1.51045 到3.41038, 7位精度雙精度浮點型64double5.010324 1.710308,15位精度C#支持2種浮點類型:單精度(float)和雙精度(double),它們的差別在于取值范圍和精度不同 用F表示float,M表示decimal,D表示double,如果沒有標志字符則默認為double類型例2.1浮點數(shù)相加。在任務(wù)2.1的基礎(chǔ)上,將操作數(shù)的數(shù)據(jù)類型由整型改為浮點型,實現(xiàn)浮點數(shù)相加將op1、op2、result三個變量改為單精度浮點型將txtSum1.Text數(shù)據(jù)類型轉(zhuǎn)為單精度浮點型修改應(yīng)用程序代碼在窗體設(shè)計器中雙擊“計算”按鈕,將
29、其Click事件處理程序修改如下:private void btncalc _Click(object sender, EventArgs e) float op1,op2, result; op1 = Single.Parse(txtSum1.Text); op2 = Single.Parse(txtSum2.Text); result = op1 + op2; lblResult2.Text = result.ToString();測試程序定義浮點型變量將文本框Text屬性轉(zhuǎn)換成浮點型將浮點型轉(zhuǎn)換成字符串(3)小數(shù)類型描述位數(shù)數(shù)據(jù)類型取值范圍小數(shù)類型128decimal1.0 10287.
30、9 1028, 29位有效位數(shù)據(jù)類型不僅可以是浮點類型,還可以是小數(shù)類型 decimal decimal類型適合金融和貨幣方面的運算decimal是一種高精度、128位數(shù)據(jù)類型它所表示的范圍從大約1.010287.91028的28位至29位有效數(shù)字,運算結(jié)果準確到28個小數(shù)位 Decimal類型的取值范圍比double類型的范圍要小的多,但它更精確,十進制小數(shù)數(shù)字可以用decimal類型來表示。例2.2 修改數(shù)據(jù)類型為decimal型將上例程序中的數(shù)據(jù)類型由float型修改為decimal型。修改應(yīng)用程序代碼在窗體設(shè)計器中雙擊“計算”按鈕,將其Click事件處理程序修改如下:private v
31、oid btncalc _Click(object sender, EventArgs e) decimal op1,op2, result; op1 = decimal.Parse(txtSum1.Text); op2 = decimal.Parse(txtSum2.Text); result = op1 + op2; lblResult2.Text = result.ToString();測試程序定義decimal型變量將文本框Text屬性轉(zhuǎn)換成decimal型將 decimal型轉(zhuǎn)換成字符串(4)字符類型字符類型按照國際上公認的標準,采用Unicode字符集 Unicode 是一種國際字
32、符集,可表示多個國家的字符 字符變量以無符號16位(2個字節(jié))數(shù)字的形式存儲,取值范圍為0到65535 在 C# 中可以直接在一個字符型變量中存儲一個漢字。給字符變量賦值可以使用單引號,也可以使用字符的ASCII碼 例如:char c= A ;或char c= (char)65;字符類型描述位數(shù)數(shù)據(jù)類型取值范圍字符類型16char在065535范圍內(nèi)以雙字節(jié)編碼的任意符號轉(zhuǎn)義符轉(zhuǎn)義序列字符名稱Unicode 編碼單引號0 x0027雙引號0 x0022反斜杠0 x005C0空0 x0000a警報0 x0007b退格符0 x0008f換頁符0 x000Cn換行符0 x000Ar回車0 x000D
33、t水平制表符0 x0009v垂直制表符0 x000B例如:向控制臺輸出一個單引號字符。char c=;Console.WriteLine(0,c);或char c=x0027;Console.WriteLine(0,c);通過轉(zhuǎn)義符或Unicode表示法指代特殊的控制字符(5)布爾型布爾型用來表示“真”或“假”這兩個概念真”和“假”分別采用true和false兩個值來表示默認值是false,布爾型和其他類型之間不能互相轉(zhuǎn)換。例如:bool x=1 /錯誤。只能寫成x=true或x=false(6)結(jié)構(gòu)類型在程序執(zhí)行過程中,往往需要使用更為復雜的數(shù)據(jù)結(jié)構(gòu)。編寫“學生信息管理系統(tǒng)”,需要對學生信息
34、處理,學生信息包括學號、姓名、性別、年齡等C#中提供了結(jié)構(gòu)類型以解決這個問題結(jié)構(gòu)類型一般定義形式為:struct Student public int Id; public string Name; public char Sex; public int Age; public int Score; public string Address;struct 結(jié)構(gòu)名結(jié)構(gòu)值表;例如結(jié)構(gòu)類型可以由不同類型的數(shù)據(jù)組成Student結(jié)構(gòu)體包含了6個簡單數(shù)據(jù)類型變量這6個變量稱為結(jié)構(gòu)的成員 訪問成員需要使用成員訪問運算符“.” 格式如下:結(jié)構(gòu)類型變量. 成員變量例如Student std; std.Id=
35、20081215;std.Nmae=王華;std.Sex=女;std.Age=21;std.Score=435;std.Address=合肥;Console.WriteLine(學號:+std.Id);結(jié)構(gòu)類型的成員數(shù)據(jù)類型沒有限制,它可以是簡單數(shù)據(jù)類型、復雜數(shù)據(jù)類型,甚至是結(jié)構(gòu)類型。Student結(jié)構(gòu)類型嵌套一個結(jié)構(gòu)類型的Address成員。struct Studentpublic int ID;public string Name;public string Address public string city; public string street; public int no; 2
36、.引用類型C#中的另一類數(shù)據(jù)類型是引用類型引用類型存儲的是數(shù)據(jù)的地址,而不是具體的數(shù)據(jù)C#提供了類類型、字符串類型、數(shù)組類型、接口類型、委托類型等幾種引用類型字符串是由作為一個整體處理的一系列字符組成,字符串可以包含英文字母、漢字、數(shù)字及符號等,定界符用雙引號表示C#中字符串可分為規(guī)則字符串和逐字字符串規(guī)則字符串它可以包括簡單轉(zhuǎn)義序列、十六進制轉(zhuǎn)義序列和 Unicode 轉(zhuǎn)義序列。定義規(guī)則字符串:String a=hello,world; / hello,world使用轉(zhuǎn)義符:String b = hello t world; / hello world聲明字符串:String c=hello
37、,world; /hello,world 2.1.3數(shù)據(jù)類型轉(zhuǎn)換1.隱式數(shù)據(jù)轉(zhuǎn)換隱式數(shù)據(jù)轉(zhuǎn)換就是系統(tǒng)默認的、不需要加以聲明在隱式轉(zhuǎn)換過程中,編譯器無需對轉(zhuǎn)換進行詳細檢查就能夠安全地執(zhí)行轉(zhuǎn)換,轉(zhuǎn)換過程中數(shù)據(jù)一般不會丟失。C#中可以進行的隱式數(shù)值轉(zhuǎn)換見下表 隱式數(shù)值轉(zhuǎn)換 轉(zhuǎn)換前數(shù)據(jù)類型轉(zhuǎn)換后前數(shù)據(jù)類型sbyteshort、int、long、float、double 或 decimalbyteshort、ushort、int、uint、long、ulong、float、double 或 decimalshortint、long、float、double 或 decimalushortint、uint
38、、long、ulong、float、double 或 decimalintlong、float、double 或 decimaluintlong、ulong、float、double 或 decimallongfloat、double 或 decimalulongfloat、double 或 decimalcharushort、int、uint、long、ulong、float、double 或 decimalfloatdouble例2.3 編寫一個簡單的控制臺程序,實現(xiàn)隱式數(shù)據(jù)轉(zhuǎn)換并輸出。 class Program static void Main(string args) char a
39、= A; float b = 99.9F; int c; c = a; Console.WriteLine(c); float d = b+c; Console.WriteLine(d); 2. 顯式數(shù)據(jù)轉(zhuǎn)換轉(zhuǎn)換前數(shù)據(jù)類型轉(zhuǎn)換后前數(shù)據(jù)類型sbytebyte、ushort、uint、ulong或charbytesbyte或charshortsbyte、byte、ushort、uint、ulong或charushortsbyte、byte、short或char(續(xù)表) 轉(zhuǎn)換前數(shù)據(jù)類型轉(zhuǎn)換后前數(shù)據(jù)類型intsbyte、byte、short、ushort、uint、ulong或charuintsbyt
40、e、byte、short、ushort、int或charlongsbyte、byte、short、ushort、int、uint、ulong或charulongsbyte、byte、short、ushort、int、uint、long或charcharsbyte、byte或shortfloatsbyte、byte、short、ushort、int、uint、long、ulong、char或decimaldoublesbyte、byte、short、ushort、int、uint、long、ulong、char、float或decimaldecimalsbyte、byte、short、ushor
41、t、int、uint、long、ulong、char、float或double例2.4修改例2.3,實現(xiàn)顯式數(shù)據(jù)轉(zhuǎn)換,并輸出轉(zhuǎn)換后的結(jié)果。 class Program static void Main(string args) char a = A; float b = (float)99.9; int c; c = a; Console.WriteLine(c); decimal d = (decimal)b+c ; Console.WriteLine(d); 3.使用方法進行數(shù)據(jù)類型的轉(zhuǎn)換(1)Parse方法ToString方法可以將數(shù)值類型轉(zhuǎn)換成字符串型,其返回值是String 類型 使
42、用方法:數(shù)值類型數(shù)據(jù).ToString()例如: lblResult2.Text = result.ToString(); 控制符示例運行結(jié)果C 貨幣2.5.ToString(C)¥2.50D 十進制數(shù)25.ToString(D5)00025E 科學型25000.ToString(E)2.500000E+005F 固定點25.ToString(F2)25.00G 常規(guī)2.5.ToString(G)2.5N 數(shù)字2500000.ToString(N)2,500,000.00X 十六進制255.ToString(X)FF2.1.3算術(shù)溢出及顯示轉(zhuǎn)換溢出1. 數(shù)據(jù)溢出例2.5實現(xiàn)簡單的數(shù)據(jù)計算。(1
43、)新建windows項目,名稱為calc,將Form1從項目中刪除,修改項目中的Program.cs主程序,代碼:public class calc static void Main() double x = 8245788526; int b = 45648745; int c = 1547454577; int y = (int)x; int z = (int)(b * c); MessageBox.Show(x= + x.ToString() + ,(int)x= + y.ToString() + n + b= + b.ToString() + ,c= + c.ToString() +
44、,b*c= + z.ToString(); 2. 異常C# 程序在運行中經(jīng)常會由于遇到一些輕微錯誤(異常),而中斷程序的執(zhí)行 異常處理可以通過使用try、catch和finally關(guān)鍵字定義代碼塊來實現(xiàn) trycatchfinally語句的語法格式:try 語句塊1 catch (數(shù)據(jù)類型 標識符) 語句塊2finally 語句塊3 try子句catch子句finally子句整型數(shù)據(jù)算術(shù)溢出和整型之間的轉(zhuǎn)換溢出,會在運行時引發(fā)OverflowException異常;float、double或decimal值轉(zhuǎn)換為整型時如果整數(shù)值不在目標范圍,則會引發(fā)InvalidCastException異常
45、;decimal類型算術(shù)運算溢出,則會引發(fā)OverflowException異常;將float或double轉(zhuǎn)換成decimal時,如果源值為NaN(非數(shù)值)、無窮大或因過大而無法表示decimal時,則會引發(fā)InvalidCastException異常。對例2.5中程序代碼進行修改,可以捕獲計算結(jié)果溢出的錯誤。 static void Main() double x = 8245788526; int y; try checked y = (int)x; catch (System.OverflowException) MessageBox.Show(算術(shù)運算導致溢出);return; Me
46、ssageBox.Show(x= + x.ToString() + ,y= + y.ToString() + n);總結(jié)變量如何定義與賦值?常量如何定義與賦值?數(shù)據(jù)如何進行類型轉(zhuǎn)換?任務(wù) 2.2 制作工資所得稅計算器個人所得稅稅額=(應(yīng)納稅所得起征標準)*適用稅率-速算扣除數(shù)個人所得稅起征點為2000元,稅率為10%,速算扣除數(shù)為25。任務(wù) 2.2 制作工資所得稅計算器處理“計算”按鈕的 Click 事件處理“復位”按鈕的 Click 事件分四步實現(xiàn):任務(wù)解決方案 1.創(chuàng)建名為“TaxCalculator”的Windows應(yīng)用程序項目。2.選擇Label、Textbox、Button等控件添加
47、到TaxCalculator窗體中,并設(shè)置控件屬性。3.編寫程序代碼4.測試程序代碼雙擊“計算”按鈕,在其Click事件程序中,插入下列代碼:private void btnCalculate_Click(object sender, EventArgs e) decimal wage,remian,tax,wag_tax; const int taxRate=10, deduct=25; wage = decimal.Parse(txtWage.Text); wag_tax = wage - 2000; tax = wag_tax * taxRate / 100 - deduct; remi
48、an = wage - tax; txtTax.Text += String.Format(0,-16:c1,16:c2,16:c, wage, tax, wag_tax) + rn; 代碼雙擊“復位”按鈕,在其Click事件程序中,插入下列代碼:private void btnReset_Click(object sender, EventArgs e) txtTax.Text = String.Format(0,-16:c1,-16:c2,-16:c, 稅前收入, 個人應(yīng)繳所得稅, 稅后收入); txtWage.Text = ;2.2.1運算符及表達式表達式:通過運算符將常量、變量、函數(shù)連
49、接而成的有意義的式子根據(jù)操作數(shù)的個數(shù),可分為以下3類: 一元運算符:一元運算符作用于一個操作數(shù),包括前綴運算符和后綴運算符。二元運算符:二元運算符作用于兩個操作數(shù)。三元運算符:三元運算符作用于三個操作數(shù)。在C#中三元運算符只有一個(?:),用于組成條件表達式。2.2.1運算符及表達式1.算術(shù)運算符加法運算符、除法運算符模運算符、取反運算符2.關(guān)系運算符簡單賦值、復合賦值3.賦值運算符4.邏輯運算符5.條件運算符算術(shù)運算符類別運算符說明表達式算術(shù)運算符+執(zhí)行加法運算 操作數(shù)1 + 操作數(shù)2-執(zhí)行減法運算 操作數(shù)1 - 操作數(shù)2*執(zhí)行乘法運算操作數(shù)1 * 操作數(shù)2/執(zhí)行除法運算操作數(shù)1 / 操作數(shù)
50、2%獲得進行除法運算后的余數(shù) 操作數(shù)1 % 操作數(shù)2+將操作數(shù)加 1 操作數(shù)+或+操作數(shù)-將操作數(shù)減 1 操作數(shù)- 或-操作數(shù)將一個數(shù)按位取反 操作數(shù)關(guān)系運算符 類別運算符說明表達式關(guān)系運算符檢查一個數(shù)是否大于另一個數(shù) 操作數(shù)1 操作數(shù)2檢查一個數(shù)是否小于另一個數(shù) 操作數(shù)1 =檢查一個數(shù)是否大于或等于另一個數(shù) 操作數(shù)1 = 操作數(shù)2= 檢查一個數(shù)是否小于或等于另一個數(shù) 操作數(shù)1 = 操作數(shù)2= 檢查兩個值是否相等 操作數(shù)1 = 操作數(shù)2!= 檢查兩個值是否不相等操作數(shù)1 != 操作數(shù)2賦值運算符 類別運算符說明表達式賦值運算符=給變量賦值操作數(shù)1 = 操作數(shù)2+=操作數(shù)1 = 操作數(shù)1 + 操
51、作數(shù)2操作數(shù)1+ = 操作數(shù)2-=操作數(shù)1 = 操作數(shù)1 - 操作數(shù)2操作數(shù)1 -= 操作數(shù)2*=操作數(shù)1 = 操作數(shù)1 * 操作數(shù)2操作數(shù)1 *= 操作數(shù)2/=操作數(shù)1 = 操作數(shù)1 / 操作數(shù)2操作數(shù)1 /= 操作數(shù)2%=操作數(shù)1 = 操作數(shù)1 % 操作數(shù)2操作數(shù)1 %= 操作數(shù)2邏輯運算符 類別運算符說明表達式邏輯運算符&對兩個表達式執(zhí)行按位“與”運算 操作數(shù)1 &操作數(shù)2|對兩個表達式執(zhí)行按位“或”運算 操作數(shù)1 | 操作數(shù)2對兩個表達式執(zhí)行按位“異或”運算操作數(shù)1 操作數(shù)2&對兩個表達式執(zhí)行邏輯“與”運算 操作數(shù)1 & 操作數(shù)2|對兩個表達式執(zhí)行邏輯“或”運算 操作數(shù)1 | 操作數(shù)2
52、!對兩個表達式執(zhí)行邏輯“非”運算! 操作數(shù)條件運算符 ? : 運算符稱為條件運算符,是C#中唯一的三元運算符表達式如下:表達式? 操作數(shù)1:操作數(shù)22.2.2運算符及表達式優(yōu)先級、結(jié)合律1.運算符優(yōu)先級運算符的優(yōu)先級控制著各運算符的計算順序2.表達式結(jié)合律賦值運算符和條件運算符是按照右結(jié)合的順序執(zhí)行的其它的二元操作符都是左結(jié)合的運算符優(yōu)先級 類別運算符基本運算符() x.y f(x) ax x+ x- new typeof sizeof checked unchecked一元運算符+ - | +x -x (T)x乘除運算符* / %加減運算符+ -位移運算符關(guān)系運算符 = is相等運算符= !
53、=按位與&按位異或按位或|類別運算符邏輯與&邏輯或|條件運算符?:賦值操作符= *= /= += -= = &= = |=2.2.3格式化輸出格式字符格式符說明格式字符格式符說明C或c貨幣G或g常規(guī)D或d十進制N或n數(shù)字E或e科學制P或p百分比F或f固定點一般格式為: String.Format(formats,參數(shù)列表);2.2.4程序編寫規(guī)范1.代碼書寫規(guī)則(1)用規(guī)定的縮進對齊代碼節(jié)(2)在括號對齊的位置垂直對齊左括號和右括號,也可以使用傾斜樣式,即左括號出現(xiàn)在行尾,右括號出現(xiàn)在行首(3)沿邏輯結(jié)構(gòu)行縮進代碼(4)將長代碼寫為兩行,中間用“+”運算符連接起來,在后面換行代碼中要使用縮進格
54、式(5)每一行上放置的語句避免超過一條,除了循環(huán)語句(6)編寫 HTML 時,所有標記都大寫或所有屬性都小寫(7)編寫 SQL 語句時,對于關(guān)鍵字使用全部大寫,對于數(shù)據(jù)庫元素(如表、列和視圖)使用大小寫混合(8)關(guān)鍵的語句(包括聲明關(guān)鍵的變量)必須要寫注釋,注釋需和代碼對齊2.2.4程序編寫規(guī)范2.注釋單行注釋:以字符“/”開始,并延續(xù)到該文件行的末尾。多行注釋:以字符“/*”開始,以“*/”字符結(jié)束,可以跨多行。注意:1.避免在“/”單行注釋符后使用反斜杠符號“”2.分隔符“/*”和“*/”之間的注釋不能有嵌套注釋。 總結(jié)運算符中左結(jié)合和右結(jié)合的分別有哪些?列舉常用的代碼書寫規(guī)則。謝 謝!C
55、#程序設(shè)計第3章 C#程序控制 本章任務(wù)能夠使用if語句編寫簡單的選擇判斷程序;能夠使用while、dowhile語句編寫循環(huán)程序;能夠使用for語句編寫循環(huán)程序;能夠使用goto語句、continue語句在程序中有條件中斷重復執(zhí)行語句; 任務(wù)3.1 編寫控制臺應(yīng)用程序判斷是否應(yīng)交個人所得稅1、輸入的應(yīng)發(fā)工資數(shù)和養(yǎng)老金等三金或四金數(shù),2、判斷是否應(yīng)交個人所得稅。關(guān)鍵代碼1、輸入應(yīng)發(fā)工資代碼:pay = double.Parse(Console.ReadLine();2、輸入養(yǎng)老金代碼:money = double.Parse(Console.ReadLine(); 3、判斷是否應(yīng)交個人所得稅;
56、if (income 2000) Console.WriteLine(需要交個人所得稅!); If語句格式如下:If語句流程圖如圖所示If(表達式) 語句塊 任務(wù)3.2 編寫Windows窗體應(yīng)用程序判斷是否應(yīng)交個人所得稅。 1、用戶在相應(yīng)文本框中輸入的應(yīng)發(fā)工資數(shù)和養(yǎng)老金等三金或四金數(shù);2、判斷是否應(yīng)交個人所得稅。應(yīng)發(fā)工資數(shù)減去養(yǎng)老金后,數(shù)據(jù)大于2000元;則交稅,否則不交稅。關(guān)鍵代碼1、將文本框中的值賦值給兩個變量pay = double.Parse(txtPay .Text ); money = double.Parse(txtMoney .Text );2、判斷是否應(yīng)繳個人所得稅; if
57、 (income 2000) MessageBox.Show(需要交個人所得稅!); else MessageBox.Show(不需要交個人所得稅!); ifelse 語句If(表達式) 語句塊1else語句塊2結(jié)構(gòu)流程圖如圖所示格式如下:任務(wù)3.3 編寫Windows窗體應(yīng)用程序計算個人所得稅和實發(fā)工資。1、要求用戶輸入的數(shù)據(jù)必須是正數(shù),否則要求用戶重新輸入;2、計算個人所得稅和實發(fā)工資。關(guān)鍵代碼1、判斷應(yīng)發(fā)工資或養(yǎng)老金等是否為負 if (pay 0 | money 0 & income 500 & income = 2000) if語句的嵌套 格式如下:if(表達式1)if(表達式2)語句
58、塊1else語句塊2else語句塊3 ifelse ifelse 語句語句格式如下:if(表達式1)語句塊1else if(表達式2)語句塊2else語句塊n流程圖如圖所示任務(wù)3.4 簡易計算器1、在相應(yīng)文本框輸入兩個操作數(shù),2、分別實現(xiàn)這兩個操作數(shù)的加、減、乘、除運算,關(guān)鍵代碼op1 = double.Parse(txtOp1.Text);op2 = double.Parse(txtOp2.Text);1、通過double.Parse轉(zhuǎn)換后賦值給變量op1和op2, 2、組合框中選擇的運算符賦值給字符串類型變量op。 op = combOperation.SelectedItem.ToStr
59、ing(); 3、使用switch語句進行多項選擇判斷 switch (op) case : case : case : default : switch語句switch(表達式) case 常數(shù)表達式1: 跳轉(zhuǎn)語句 case 常數(shù)表達式2: 跳轉(zhuǎn)語句 defalut: 跳轉(zhuǎn)語句語句格式如下:任務(wù)3.5 計算某人一年公積金賬戶余額1、輸入的某人工資、公積金交存比例和住房貸款月還款金額,2、計算出他一年公積金賬戶余額。關(guān)鍵代碼計算每月公積金余額并累加:分別使用while結(jié)構(gòu)、dowhile結(jié)構(gòu)以及for循環(huán)結(jié)構(gòu) sum = 0; int i = 1; while (i =12) sum +=2*
60、pay *scale/100-loan; i=i +1; sum = 0; int i = 1; do sum += 2 * pay * scale / 100 - loan; i = i + 1; while (i = 12); sum = 0; for (int i = 1; i = 12;i + ) sum += 2 * pay * scale / 100 - loan; while語句while (表達式)循環(huán)體流程圖如圖所示:格式如下: do while語句格式如下:流程圖如圖所示 do循環(huán)體while (表達式)任務(wù)3.6 設(shè)計一個計算階乘和e的指數(shù)冪的計算器。 1、單擊“n!”按
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 大型廣告牌安裝吊車租賃合同
- 電視劇制作團隊制片人招聘協(xié)議
- 一卡通系統(tǒng)訂貨合同
- 建設(shè)工程施工合同地熱能開發(fā)
- 企業(yè)內(nèi)部網(wǎng)站管理辦法
- 水電站土地開發(fā)合同
- 電子產(chǎn)品生產(chǎn)廢標條件研究
- 酒店維護工程合同
- 礦山安全質(zhì)量管理辦法
- 企業(yè)產(chǎn)品演示員操作手冊
- 型鋼橋梁拆除施工方案范本
- 指導青年教師記錄表
- 市場營銷希爾頓酒店案例分析
- 08江山實習區(qū)域地質(zhì)調(diào)查報告
- GB/T 10000-2023中國成年人人體尺寸
- 關(guān)于人工智能的閱讀(2020重慶B中考語文非連續(xù)性文本閱讀試題及答案)
- 高中英語-The Sky Railway教學課件設(shè)計
- 長松制度-薪酬管理全
- 數(shù)獨題目100題2(可打印)12951
- (完整版)《工程倫理》歷年真題
- 成人住院患者靜脈血栓栓塞癥的預防護理
評論
0/150
提交評論