版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
搭建VisualStudio開發(fā)環(huán)境任務(wù)1:下載安裝VisualStudio任務(wù)2:VisualStudio開發(fā)環(huán)境設(shè)置任務(wù)3:C#項(xiàng)目的創(chuàng)建項(xiàng)目一C#是微軟公司發(fā)布的一種面向?qū)ο蟮摹⑦\(yùn)行于.NETFramework之上的高級(jí)程序設(shè)計(jì)語言。C#因自身強(qiáng)大的操作能力、高效的運(yùn)行效率已成為.NET開發(fā)的首選語言。MicrosoftVisualStudio是美國微軟公司的開發(fā)工具包系列產(chǎn)品,簡(jiǎn)稱VS,是目前最流行的的Windows平臺(tái)應(yīng)用程序的集成開發(fā)環(huán)境。本項(xiàng)目實(shí)現(xiàn)在個(gè)人微機(jī)上完成VisualStudio開發(fā)環(huán)境的搭建。項(xiàng)目引入了解.NETFramework體系結(jié)構(gòu)了解VisualStudio開發(fā)環(huán)境掌握VisualStudio的下載和安裝掌握C#項(xiàng)目創(chuàng)建及運(yùn)行方法學(xué)習(xí)目標(biāo)搭建VisualStudio開發(fā)環(huán)境首先必須下載VisualStudio的安裝包,通過安裝包完成應(yīng)用軟件的安裝,在應(yīng)用軟件安裝成功后,進(jìn)行個(gè)性化的開發(fā)環(huán)境設(shè)置并實(shí)現(xiàn)第一個(gè)C#項(xiàng)目的創(chuàng)建及運(yùn)行。項(xiàng)目描述任務(wù)1:下載安裝VisualStudio任務(wù)2:VisualStudio開發(fā)環(huán)境設(shè)置任務(wù)3:C#項(xiàng)目的創(chuàng)建工作任務(wù)任務(wù)描述
選擇VisualStudio下載版本后,正確安裝VisualStudio開發(fā)環(huán)境。知識(shí)引入MicrosoftVisualStudio簡(jiǎn)稱VS,是美國微軟公司的開發(fā)工具包系列產(chǎn)品。VS是一個(gè)基本完整的開發(fā)工具集,它包括了整個(gè)軟件生命周期中所需要的大部分工具,如UML工具、代碼管控工具、集成開發(fā)環(huán)境(IDE)等等。所寫的目標(biāo)代碼適用于微軟支持的所有平臺(tái),包括MicrosoftWindows、WindowsMobile、WindowsCE、.NETFramework、.NetCore、.NETCompactFramework和MicrosoftSilverlight及WindowsPhone。VisualStudio是目前最流行的Windows平臺(tái)應(yīng)用程序的集成開發(fā)環(huán)境。任務(wù)1下載安裝VisualStudio1.下載VisualStudio安裝包VisualStudio可以到官網(wǎng)下載,官網(wǎng)地址為:/選擇下載版本后,下載得到安裝包對(duì)應(yīng)的iso文件:_chs.iso。任務(wù)1下載安裝VisualStudio任務(wù)實(shí)現(xiàn)2.解壓縮安裝包對(duì)應(yīng)的iso文件安裝包解壓后得到的解壓縮文件結(jié)構(gòu)如圖所示:任務(wù)1下載安裝VisualStudio任務(wù)實(shí)現(xiàn)3.雙擊運(yùn)行vs_community.exe文件開始安裝運(yùn)行安裝文件后,VisualStudio開始初始化安裝環(huán)境,運(yùn)行效果如圖所示:任務(wù)1下載安裝VisualStudio任務(wù)實(shí)現(xiàn)4.選擇安裝位置初始化安裝環(huán)境完成后,點(diǎn)擊下一步,選擇VisualStudio的安裝位置如圖所示:任務(wù)1下載安裝VisualStudio任務(wù)實(shí)現(xiàn)5.自定義安裝選擇“自定義安裝”,單擊下一步后,要求選擇VisualStudio需要安裝的功能,效果如圖所示:任務(wù)1下載安裝VisualStudio任務(wù)實(shí)現(xiàn)6.安裝完成VisualStudio安裝完成后,將提示安裝完成,如圖所示:任務(wù)1下載安裝VisualStudio任務(wù)實(shí)現(xiàn)VisualStudio的安裝包為iso文件,不解壓也可通過虛擬光驅(qū)進(jìn)行安裝。VisualStudio以“默認(rèn)值”方式進(jìn)行安裝將占據(jù)更大的磁盤空間和系統(tǒng)資源,并且安裝時(shí)間更長(zhǎng),建議根據(jù)需要進(jìn)行“自定義安裝”。任務(wù)1下載安裝VisualStudio任務(wù)小結(jié)任務(wù)描述VisualStudio第一次啟動(dòng)及在代碼編寫過程中,可對(duì)開發(fā)環(huán)境進(jìn)行個(gè)性化的主題及字體格式設(shè)置,在程序運(yùn)行及調(diào)試過程中可以根據(jù)需要打開或關(guān)閉部分視圖窗口。知識(shí)引入
視圖窗口字體格式設(shè)置,包括字體大小、前景顏色、背景顏色等設(shè)置。部分視圖在程序編寫、程序調(diào)試、程序運(yùn)行的不同階段可以根據(jù)需要進(jìn)行關(guān)閉或重新打開。任務(wù)2
VisualStudio開發(fā)環(huán)境設(shè)置1.初次運(yùn)行開發(fā)及主題設(shè)置VisualStudio第一次啟動(dòng),將要求進(jìn)行“開發(fā)設(shè)置”及“主題設(shè)置”,效果如圖所示:任務(wù)2
VisualStudio開發(fā)環(huán)境設(shè)置任務(wù)實(shí)現(xiàn)2.字體格式設(shè)置單擊菜單“工具”-“選項(xiàng)”,可對(duì)VisualStudio開發(fā)環(huán)境參數(shù)進(jìn)行設(shè)置,如圖所示:任務(wù)2
VisualStudio開發(fā)環(huán)境設(shè)置任務(wù)實(shí)現(xiàn)2.字體格式設(shè)置點(diǎn)擊左邊“環(huán)境”選項(xiàng)中的“字體和顏色”,可對(duì)不同視圖窗口中字體格式進(jìn)行設(shè)置,如圖所示:任務(wù)2
VisualStudio開發(fā)環(huán)境設(shè)置任務(wù)實(shí)現(xiàn)3.顯示關(guān)閉視圖窗口在VisualStudio開發(fā)應(yīng)用程序過程中,要重新顯示關(guān)閉的解決方案管理器、屬性、輸出列表等窗口,可通過單擊“視圖”菜單顯示被關(guān)閉的窗口,如圖所示:任務(wù)2
VisualStudio開發(fā)環(huán)境設(shè)置任務(wù)實(shí)現(xiàn)通過VisualStudio開發(fā)環(huán)境中的“工具”-“選項(xiàng)”菜單可以對(duì)開發(fā)環(huán)境及項(xiàng)目進(jìn)行個(gè)性化配置。通過VisualStudio開發(fā)環(huán)境中的“視圖”菜單可以重新顯示被關(guān)閉的視圖窗口。任務(wù)小結(jié)任務(wù)2
VisualStudio開發(fā)環(huán)境設(shè)置C#為.NET開發(fā)的首選語言,VisualStudio開發(fā)環(huán)境主要用來進(jìn)行.NET開發(fā),.NET應(yīng)用程序以項(xiàng)目的形式進(jìn)行創(chuàng)建,使用VisualStudio創(chuàng)建控制臺(tái)應(yīng)用程序項(xiàng)目并成功調(diào)試運(yùn)行是學(xué)習(xí).NET開發(fā)的第一步。任務(wù)描述任務(wù)3
C#項(xiàng)目的創(chuàng)建控制臺(tái)應(yīng)用程序:能夠運(yùn)行在MS-DOS環(huán)境中的程序??刂婆_(tái)應(yīng)用程序沒有類似于windows窗口的可視化界面,主要是文本字符的輸出,控制臺(tái)應(yīng)用程序主要用來學(xué)習(xí)一門語言的基本語法結(jié)構(gòu)及調(diào)試監(jiān)控程序?!癈#”為面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,C#應(yīng)用程序以項(xiàng)目的形式進(jìn)行創(chuàng)建,一個(gè)控制臺(tái)應(yīng)用程序就是一個(gè)項(xiàng)目。解決方案:解決方案是用來組織項(xiàng)目的,一個(gè)解決方案可以由多個(gè)項(xiàng)目組成,解決方案名稱可以與項(xiàng)目不同名,在新建一個(gè)應(yīng)用程序項(xiàng)目時(shí),解決方案名默認(rèn)與第一個(gè)項(xiàng)目同名。知識(shí)引入任務(wù)3
C#項(xiàng)目的創(chuàng)建1.新建控制臺(tái)項(xiàng)目單擊菜單“文件”-“新建”-“項(xiàng)目”,如圖所示:任務(wù)實(shí)現(xiàn)任務(wù)3
C#項(xiàng)目的創(chuàng)建1.新建控制臺(tái)項(xiàng)目在模板中選擇“Visualc#”,項(xiàng)目列表中選擇“控制臺(tái)應(yīng)用程序”,輸入項(xiàng)目名稱和解決方案名稱,選擇存儲(chǔ)位置,點(diǎn)擊確定,編寫源程序如下:任務(wù)實(shí)現(xiàn)任務(wù)3
C#項(xiàng)目的創(chuàng)建usingSystem;namespaceHelloWorld{classProgram{staticvoidM
ain(string[]args){Console.WriteLine("HelloWorld!");}}}
都改為小寫“m”嗎?沒有錯(cuò)誤!不需要改。2.運(yùn)行控制臺(tái)程序單擊菜單“調(diào)試”-“開始調(diào)試”,可編譯源程序,檢查源程序代碼錯(cuò)誤,根據(jù)錯(cuò)誤及提示修改源程序,單擊菜單“調(diào)試”-“開始執(zhí)行(不調(diào)試)”可直接執(zhí)行源程序,控制臺(tái)程序運(yùn)行效果如圖所示:任務(wù)實(shí)現(xiàn)任務(wù)3
C#項(xiàng)目的創(chuàng)建VisualStudio開發(fā)應(yīng)用程序時(shí),將自動(dòng)引用命名空間,引用命名空間的關(guān)鍵字為using,System命名空間支持“C#”輸入輸出代碼的執(zhí)行?!癈#”程序開發(fā)以“解決方案”管理組織項(xiàng)目,一個(gè)解決方案可包含多個(gè)項(xiàng)目?!癈#”程序開發(fā)區(qū)分大小寫?!癈#”應(yīng)用程序代碼編寫過程中,除漢字外其他字符必須使用英文輸入法狀態(tài)進(jìn)行輸入,包括標(biāo)點(diǎn)符號(hào)。任務(wù)小結(jié)任務(wù)3
C#項(xiàng)目的創(chuàng)建.NET
Framework包含兩個(gè)主要組件:公共語言運(yùn)行時(shí)(CLR)和.NET
Framework類庫(FCL)。.NET
Framework框架類庫提供了大量的類和方法,在使用前通過關(guān)鍵字using引用命名空間,所有的命名空間都是從System命名空間形成的。.NET
Framework開發(fā)的首選語言為C#,可以用來創(chuàng)建控制臺(tái)程序、windows窗體程序、Web應(yīng)用程序、Web服務(wù)和其他各種類型的應(yīng)用程序。VisualStudio是美國微軟公司的開發(fā)工具包系列產(chǎn)品,是目前最流行的Windows平臺(tái)應(yīng)用程序的集成開發(fā)環(huán)境。項(xiàng)目總結(jié)聯(lián)通手機(jī)充值系統(tǒng)任務(wù)1:主菜單實(shí)現(xiàn)任務(wù)2:登陸驗(yàn)證任務(wù)3:查詢、充值功能實(shí)現(xiàn)項(xiàng)目二聯(lián)通手機(jī)充值項(xiàng)目實(shí)現(xiàn)了聯(lián)通手機(jī)余額查詢、余額充值功能,模擬了聯(lián)通用戶客戶端的查詢、充值操作。C#作為一門面向?qū)ο蟪绦蛟O(shè)計(jì)語言,具有自己的語句特點(diǎn),項(xiàng)目由語言本身的程序結(jié)構(gòu)組成,程序結(jié)構(gòu)主要包括順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。通過項(xiàng)目的實(shí)現(xiàn),有助于理解變量、常量、表達(dá)式、數(shù)組、選擇結(jié)構(gòu)程序設(shè)計(jì)、循環(huán)結(jié)構(gòu)程序設(shè)計(jì)、方法等C#程序設(shè)計(jì)語法基礎(chǔ)。項(xiàng)目引入掌握常量、變量的定義及使用掌握常用運(yùn)算符的使用掌握選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)程序設(shè)計(jì)掌握數(shù)組的定義及使用掌握方法的定義及使用學(xué)習(xí)目標(biāo)聯(lián)通手機(jī)充值項(xiàng)目模擬聯(lián)通營(yíng)業(yè)大廳客戶端的充值、查詢功能。項(xiàng)目首先要求輸入用戶名及密碼,如圖所示:項(xiàng)目描述系統(tǒng)對(duì)信息進(jìn)行驗(yàn)證,驗(yàn)證不通過,則要求再次輸入,如果輸入錯(cuò)誤次數(shù)達(dá)到三次,系統(tǒng)則自動(dòng)退出,如圖所示:驗(yàn)證通過則顯示主菜單,如圖所示:項(xiàng)目描述此時(shí)等待用戶選擇菜單,如果選擇菜單不存在,則顯示錯(cuò)誤信息,系統(tǒng)退出,如圖所示:如果選擇菜單1,則進(jìn)入查詢功能,要求輸入查詢的手機(jī)號(hào),如果手機(jī)號(hào)不是聯(lián)通手機(jī)號(hào)碼或手機(jī)號(hào)不在初始化數(shù)據(jù)中,則顯示錯(cuò)誤信息,系統(tǒng)退出,如圖所示:項(xiàng)目描述如果手機(jī)號(hào)有效,則顯示當(dāng)前手機(jī)號(hào)的余額,顯示完后等待用戶再次選擇菜單:如圖所示:如果選擇菜單2,則進(jìn)入充值功能,要求輸入充值的手機(jī)號(hào),如果手機(jī)號(hào)不是聯(lián)通手機(jī)號(hào)碼或手機(jī)號(hào)不在初始化數(shù)據(jù)中,則顯示錯(cuò)誤信息,系統(tǒng)退出,如圖所示:項(xiàng)目描述如果手機(jī)號(hào)有效,則要求輸入充值的金額,如果輸入金額數(shù)字無效,則顯示錯(cuò)誤信息,系統(tǒng)退出,如圖所示:如果金額有效,則將輸入的金額累加至當(dāng)前手機(jī)號(hào)現(xiàn)有余額,顯示充值成功信息,顯示完后等待用戶再次選擇菜單:如圖所示:項(xiàng)目描述如果選擇菜單3,則系統(tǒng)正常退出。如圖所示:任務(wù)1:主菜單實(shí)現(xiàn)任務(wù)2:登陸驗(yàn)證任務(wù)3:查詢、充值功能實(shí)現(xiàn)工作任務(wù)任務(wù)描述
主菜單顯示,當(dāng)用戶選擇菜單后,執(zhí)行菜單對(duì)應(yīng)代碼塊,如果輸入菜單不存在,則顯示錯(cuò)誤提示信息。任務(wù)1主菜單實(shí)現(xiàn)1.C#中的常量與變量
程序設(shè)計(jì)中的數(shù)據(jù)必須存儲(chǔ)在計(jì)算機(jī)的內(nèi)存單元,不同的數(shù)據(jù)存儲(chǔ)在不同的位置,為保證不同數(shù)據(jù)的正確存、取,程序設(shè)計(jì)中為它們定義不同的名稱,常量與變量對(duì)應(yīng)這些名稱,因此在程序設(shè)計(jì)中就必須定義不同的常量與變量來存儲(chǔ)數(shù)據(jù)。常量和變量根據(jù)數(shù)據(jù)的使用場(chǎng)合對(duì)應(yīng)不同的數(shù)據(jù)類型,每種數(shù)據(jù)類型的占據(jù)的內(nèi)存單元大小和數(shù)據(jù)范圍各不相同。C#預(yù)定義數(shù)據(jù)類型如表所示:任務(wù)1主菜單實(shí)現(xiàn)知識(shí)引入數(shù)據(jù)類型標(biāo)識(shí)符說明默認(rèn)值int32位有符號(hào)整數(shù)0float單精度浮點(diǎn)數(shù)0.0Fdouble雙精度浮點(diǎn)數(shù)0.0D、0.0decimal高精度浮點(diǎn)數(shù)0.0Mbyte8位無符號(hào)整數(shù)0short16位有符號(hào)整數(shù)0long64位有符號(hào)整數(shù)0Lbool布爾類型falsechar字符類型‘\0’string字符串類型null1.C#中的常量與變量變量的定義類型標(biāo)識(shí)符變量名;例:inti;變量的賦值例:stringstr=”admin”;charflag=’A’;intn;n=100;說明:“=”在C#中表示賦值,“==”表示等于。常量的定義與賦值例:constdoublePI=3.14;變量的輸入stringstr=Console.ReadLine();inti=int.Parse(Console.ReadLine());任務(wù)1主菜單實(shí)現(xiàn)知識(shí)引入2.C#中的表達(dá)式算術(shù)表達(dá)式算術(shù)運(yùn)算符包括:+-*/%++--~例:inta=120;a=b+20;intc=100/5;c++;任務(wù)1主菜單實(shí)現(xiàn)知識(shí)引入2.C#中的表達(dá)式任務(wù)1主菜單實(shí)現(xiàn)知識(shí)引入【例2-1】輸入一個(gè)三位數(shù),逆序輸出該數(shù),例:輸入123輸出321。classDemo2_1{staticvoidMain(string[]args){inti,a,b,c;Console.WriteLine("請(qǐng)輸入一個(gè)三位數(shù):");i=int.Parse(Console.ReadLine());a=i/100;b=i/10%10;c=i%10;Console.WriteLine("逆序輸出為:"+c+b+a);}}2.C#中的表達(dá)式任務(wù)1主菜單實(shí)現(xiàn)知識(shí)引入關(guān)系表達(dá)式關(guān)系運(yùn)算符包括:><>=<===!=例:a>=120;b==c;邏輯表達(dá)式邏輯運(yùn)算符:&&||!例:a>b&&b>c!(a>100)賦值表達(dá)式賦值運(yùn)算符:=+=-+*=/=%=例:a+=20;b*=3;條件運(yùn)算表達(dá)式條件運(yùn)算符:?:例:inta=100,b=80,c;c=a>b?a:b;3.選擇結(jié)構(gòu)程序設(shè)計(jì)任務(wù)1主菜單實(shí)現(xiàn)知識(shí)引入
在程序設(shè)計(jì)過程中,如果需要對(duì)某個(gè)條件進(jìn)行判斷,在滿足條件的情況下才執(zhí)行特定操作,不滿足條件則不執(zhí)行特定操作或執(zhí)行其它操作,則需要使用選擇結(jié)構(gòu)進(jìn)行程序設(shè)計(jì)。if語句格式:if(條件表達(dá)式)
{代碼塊}3.選擇結(jié)構(gòu)程序設(shè)計(jì)任務(wù)1主菜單實(shí)現(xiàn)知識(shí)引入【例2-2】輸入三個(gè)整數(shù),從大到小輸出。classDemo2_2{staticvoidMain(string[]args){inta,b,c,t;Console.WriteLine("請(qǐng)輸入三個(gè)整數(shù):");a=int.Parse(Console.ReadLine());b=int.Parse(Console.ReadLine());c=int.Parse(Console.ReadLine());if(a<b){t=a;a=b;b=t;}if(a<c){t=a;a=c;c=t;}if(b<c){t=b;b=c;c=t;}Console.WriteLine("從大到小輸出為:");Console.WriteLine(a+","+b+","+c);}}3.選擇結(jié)構(gòu)程序設(shè)計(jì)任務(wù)1主菜單實(shí)現(xiàn)知識(shí)引入if…else語句格式一:if(條件表達(dá)式)
{代碼塊}else
{代碼塊}格式二:if(條件表達(dá)式)
{代碼塊}elseif(條件表達(dá)式){代碼塊}elseif(條件表達(dá)式){代碼塊}
……
else{代碼塊}switch語句格式:switch(常量){case值1:
語句塊break;case值2:
語句塊break;case值3:
語句塊break;……defalult:語句塊break;}1.方法一:用if語句實(shí)現(xiàn)主菜單的選擇任務(wù)1
主菜單實(shí)現(xiàn)任務(wù)實(shí)現(xiàn)【例2-3】classDemo2_3{staticvoidMain(string[]args){Console.WriteLine("聯(lián)通手機(jī)充值系統(tǒng)");Console.WriteLine("****************************");Console.WriteLine("1.------查詢");Console.WriteLine("2.------充值");Console.WriteLine("3.------退出");Console.WriteLine("****************************");Console.WriteLine("請(qǐng)輸入您的選擇:");inti;i=int.Parse(Console.ReadLine());if(i==1){Console.WriteLine("您選擇的是:1.--查詢");}elseif(i==2){Console.WriteLine("您選擇的是:2.--充值");}else
if(i==3){Console.WriteLine("您選擇的是:3.--退出");}else{Console.WriteLine("您輸入的菜單不存在!謝謝使用!再見!"); }}}2.方法二:用switch語句實(shí)現(xiàn)主菜單的選擇任務(wù)1
主菜單實(shí)現(xiàn)任務(wù)實(shí)現(xiàn)【例2-4】classDemo2_4{staticvoidMain(string[]args){Console.WriteLine("聯(lián)通手機(jī)充值系統(tǒng)");Console.WriteLine("****************************");Console.WriteLine("1.------查詢");Console.WriteLine("2.------充值");Console.WriteLine("3.------退出");Console.WriteLine("****************************");Console.WriteLine("請(qǐng)輸入您的選擇:");inti;i=int.Parse(Console.ReadLine());switch(i){case1:Console.WriteLine("您選擇的是:1.--查詢");break;case2:Console.WriteLine("您選擇的是:2.--充值");break;case3:Console.WriteLine("您選擇的是:3.--退出");break;default:Console.WriteLine("您輸入的菜單不存在!謝謝使用!再見!");break;}}}常量和變量必須定義后才能使用,不同的數(shù)據(jù)類型對(duì)應(yīng)不同大小的存儲(chǔ)單元。不同的數(shù)據(jù)類型之間的賦值要進(jìn)行類型轉(zhuǎn)換。選擇結(jié)構(gòu)程序設(shè)計(jì)在執(zhí)行過程中某一時(shí)刻只會(huì)執(zhí)行其中的一個(gè)分支。任務(wù)1
主菜單實(shí)現(xiàn)任務(wù)小結(jié)任務(wù)描述
進(jìn)入系統(tǒng)后要求輸入用戶名及密碼,用戶名為“admin”和密碼為“123456”,如果用戶名或密碼輸入錯(cuò)誤,則輸出錯(cuò)誤提示信息并累計(jì)錯(cuò)誤次數(shù),如果錯(cuò)誤次數(shù)達(dá)到三次,系統(tǒng)提示“用戶名或密碼輸入錯(cuò)誤已達(dá)三次!系統(tǒng)將自動(dòng)退出!”,系統(tǒng)自動(dòng)退出,如果用戶名及密碼輸入正確,則顯示“歡迎進(jìn)入聯(lián)通手機(jī)充值系統(tǒng)”。任務(wù)2登陸驗(yàn)證1.循環(huán)結(jié)構(gòu)程序設(shè)計(jì)在程序設(shè)計(jì)過程中,如果在滿足某個(gè)條件的情況下,需要重復(fù)執(zhí)行特定操作多次,則需要用到循環(huán)結(jié)構(gòu)進(jìn)行程序設(shè)計(jì),因此循環(huán)結(jié)構(gòu)又稱為重復(fù)結(jié)構(gòu)。while語句格式:while(條件表達(dá)式){代碼塊}任務(wù)2
登陸驗(yàn)證知識(shí)引入1.循環(huán)結(jié)構(gòu)程序設(shè)計(jì)任務(wù)2
登陸驗(yàn)證知識(shí)引入【例2-5】求1+2+3+…..100classDemo2_5{staticvoidMain(string[]args){intsum,i;sum=0;i=1;while(i<=100){sum+=i;i++;}Console.WriteLine("1+2+3+...+100="+sum);}}1.循環(huán)結(jié)構(gòu)程序設(shè)計(jì)任務(wù)2
登陸驗(yàn)證知識(shí)引入do…while語句格式:do{代碼塊}while(條件表達(dá)式);注意:do…while語句中代碼塊至少執(zhí)行一次,而while語句中代碼塊可能一次也不執(zhí)行。for語句格式:for(表達(dá)式1:表達(dá)式2:表達(dá)式3)代碼塊}1.循環(huán)結(jié)構(gòu)程序設(shè)計(jì)任務(wù)2
登陸驗(yàn)證知識(shí)引入【例2-6】求1*2*3*…*10classDemo2_6{staticvoidMain(string[]args){intp=1,i;for(i=1;i<=10;i++){p*=i;}Console.WriteLine("1*2*3*...*10="+p);}}【例2-7】classDemo2_7{staticvoidMain(string[]args){inti=1;stringuserName,pwd;Console.WriteLine("歡迎進(jìn)入聯(lián)通手機(jī)充值系統(tǒng)");Console.WriteLine("請(qǐng)輸入用戶名:");userName=Console.ReadLine();Console.WriteLine("請(qǐng)輸入密碼:");pwd=Console.ReadLine();任務(wù)2
登陸驗(yàn)證任務(wù)實(shí)現(xiàn)while(i<3){if(userName.Equals("admin")&&pwd.Equals("123456")){Console.WriteLine("歡迎進(jìn)入聯(lián)通手機(jī)充值系統(tǒng)");break;}else{Console.WriteLine("您輸入的用戶名或密碼錯(cuò)誤,請(qǐng)重新輸入:");Console.WriteLine("請(qǐng)輸入用戶名:");userName=Console.ReadLine();Console.WriteLine("請(qǐng)輸入密碼:");pwd=Console.ReadLine();i++;}if(i>2){Console.WriteLine("用戶名或密碼輸入錯(cuò)誤已達(dá)三次!系統(tǒng)將自動(dòng)退出!");}}}}循環(huán)結(jié)構(gòu)程序設(shè)計(jì)實(shí)現(xiàn)程序在滿足一定條件下需要重復(fù)執(zhí)行一段代碼塊的操作。不同循環(huán)結(jié)構(gòu)語句之間可以相互轉(zhuǎn)換。break語句可以提前終止整個(gè)循環(huán),continue語句可以提前終止本次循環(huán)。任務(wù)小結(jié)任務(wù)2
登陸驗(yàn)證用戶名和密碼驗(yàn)證通過后,系統(tǒng)顯示主菜單,如果用戶選擇查詢菜單,則要求用戶輸入要查詢的手機(jī)號(hào),系統(tǒng)對(duì)手機(jī)號(hào)進(jìn)行驗(yàn)證,驗(yàn)證不通過,提示錯(cuò)誤信息,驗(yàn)證通過,顯示當(dāng)前手機(jī)號(hào)對(duì)應(yīng)余額,如果用戶選擇充值菜單,則要求用戶輸入要充值的手機(jī)號(hào),系統(tǒng)對(duì)手機(jī)號(hào)進(jìn)行驗(yàn)證,驗(yàn)證不通過,提示錯(cuò)誤信息,驗(yàn)證通過,要求輸入充值金額,系統(tǒng)對(duì)金額數(shù)據(jù)進(jìn)行判斷,如果數(shù)據(jù)無效,提示錯(cuò)誤信息,如果數(shù)據(jù)有效,則將輸入的充值金額累加到當(dāng)前手機(jī)用戶余額中。任務(wù)描述任務(wù)3查詢、充值功能實(shí)現(xiàn)數(shù)組在程序設(shè)計(jì)中,對(duì)于同一類型相關(guān)聯(lián)的一組數(shù)如果分別為每一個(gè)數(shù)定義一個(gè)變量名,既不利于程序的易讀性,也不利于表達(dá)一組數(shù)據(jù)之間的相互關(guān)系,這時(shí),可以使用數(shù)組來定義這些數(shù)據(jù)。數(shù)組的定義:數(shù)據(jù)類型[]數(shù)組名例:
int[]a;int[]arr=newint[5];知識(shí)引入任務(wù)3查詢、充值功能實(shí)現(xiàn)數(shù)組【例2-8】輸入5名評(píng)委給選手的評(píng)分,去掉一個(gè)最高分,去掉一個(gè)最低分,其它評(píng)分求平均分作為選手的最后得分,輸出選手的最終成績(jī)。知識(shí)引入任務(wù)3查詢、充值功能實(shí)現(xiàn)操作演示字符串函數(shù)ToLower():得到字符串的小寫形。ToUpper():得到字符串的大寫形。Trim():去掉字符串兩邊的空白字。Substring(index,length):獲取從字符串index位置開始,長(zhǎng)度為length的子字符。IndexOf(charvalue):獲取字符串第一次出現(xiàn)value字符的位置。Equals():判斷兩個(gè)字符串是否相同。如果用“==”判斷兩個(gè)字符串是否相同,則不區(qū)別大小寫。知識(shí)引入任務(wù)3查詢、充值功能實(shí)現(xiàn)方法在程序設(shè)計(jì)過程中,如果相同的一系列語句或具有選定功能的一段代碼塊在整個(gè)項(xiàng)目中需要重復(fù)使用多次,為了提高程序的易讀性及代碼塊的復(fù)用性,應(yīng)該將該代碼塊定義為一個(gè)方法,當(dāng)代碼塊定義為方法后,可以達(dá)到定義一次,調(diào)用多次的效果,而調(diào)用方法只需要一條簡(jiǎn)單的語句。方法的定義:[修飾符]方法的返回值
方法名([方法的參數(shù)列表]){
代碼塊}方法的調(diào)用:方法名([實(shí)參值])知識(shí)引入任務(wù)3查詢、充值功能實(shí)現(xiàn)方法知識(shí)引入任務(wù)3查詢、充值功能實(shí)現(xiàn)【例2-9】定義一個(gè)方法求兩個(gè)數(shù)的較大值,輸入兩個(gè)數(shù),調(diào)用該方法輸出較大值。classDemo2_9{publicstaticintadd(inta,intb){return(a>b?a:b);}staticvoidMain(string[]args){inta,b;Console.WriteLine("請(qǐng)輸入兩個(gè)數(shù):");a=int.Parse(Console.ReadLine());b=int.Parse(Console.ReadLine());Console.WriteLine("較大值為:"+add(a,b));}}1.定義初始化數(shù)據(jù)方法靜態(tài)方法,返回值為數(shù)組,在方法內(nèi)部使用字符串?dāng)?shù)組模擬已有數(shù)據(jù),元素存儲(chǔ)形式為字符串“手機(jī)號(hào),余額”。在程序設(shè)計(jì)中使用Substring()方法分別獲取手機(jī)號(hào)和余額。publicstaticstring[]init(){
……
}2.定義手機(jī)號(hào)有效性驗(yàn)證方法靜態(tài)方法,返回值為整數(shù),如果手機(jī)號(hào)碼不是聯(lián)通手機(jī)號(hào)碼或手機(jī)號(hào)碼不在初始化數(shù)據(jù)中,則返回值為-1,否則返回值為該手機(jī)號(hào)在初始化數(shù)據(jù)中的下標(biāo)。publicstaticinttestPhone(stringphone,string[]unicomData){
……..
}3.定義查詢方法靜態(tài)方法,沒有返回值,實(shí)現(xiàn)余額查詢功能,要求輸入手機(jī)號(hào),調(diào)用手機(jī)號(hào)有效性驗(yàn)證方法,如果手機(jī)號(hào)碼有效,則輸出該手機(jī)號(hào)余額。publicstaticvoidchaxun(string[]unicomData){……..
}任務(wù)實(shí)現(xiàn)任務(wù)3查詢、充值功能實(shí)現(xiàn)4.定義充值方法靜態(tài)方法,沒有返回值,實(shí)現(xiàn)余額查詢功能,要求輸入手機(jī)號(hào),調(diào)用手機(jī)號(hào)有效性驗(yàn)證方法,如果手機(jī)號(hào)碼有效,則要求輸出充值金額,如果充值金額有效,則將充值金額累加至該手機(jī)號(hào)現(xiàn)有余額。publicstaticvoidchonzhi(string[]unicomData){……..
}5.定義主菜單方法靜態(tài)方法,沒有返回值,實(shí)現(xiàn)菜單的輸出,當(dāng)選擇菜單1時(shí),調(diào)用查詢方法,當(dāng)選擇菜單2時(shí)調(diào)用充值方法。publicstaticvoidmenu(string[]unicomData){……..
}6.定義登陸方法靜態(tài)方法,沒有返回值,實(shí)現(xiàn)登陸驗(yàn)證功能,如果登陸驗(yàn)證通過,調(diào)用主菜單,輸出主菜單供用戶選擇。publicstaticvoidload(string[]unicomData){……..
}任務(wù)實(shí)現(xiàn)任務(wù)3查詢、充值功能實(shí)現(xiàn)7.編寫調(diào)試項(xiàng)目二新建控制臺(tái)項(xiàng)目,項(xiàng)目名lesson2,解決方案名lesson2,添加類Demo2_10,設(shè)置啟動(dòng)對(duì)象為Demo2_10,編寫調(diào)試項(xiàng)目二,程序如下:任務(wù)實(shí)現(xiàn)任務(wù)3查詢、充值功能實(shí)現(xiàn)操作演示數(shù)組表示相同類型的一組數(shù),數(shù)組的下標(biāo)由0開始。方法用來組織具有一定功能的代碼塊,方法在定義后可以通過語句進(jìn)行調(diào)用,提高代碼的復(fù)用性。任務(wù)小結(jié)任務(wù)3查詢、充值功能實(shí)現(xiàn)“C#”控制臺(tái)程序由流程結(jié)構(gòu)組成,流程結(jié)構(gòu)主要包括順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。常量和變量必須先定義后使用,常量和變量在定義的時(shí)候需要指定數(shù)據(jù)類型,常量的值不能改變,不同數(shù)據(jù)類型值可以相互轉(zhuǎn)換。數(shù)組用來組織管理相同類型相關(guān)聯(lián)的一組數(shù),數(shù)組的下標(biāo)由0開始。方法定義一次,可調(diào)用多次。項(xiàng)目總結(jié)銀行卡開戶管理任務(wù)1:銀行業(yè)務(wù)類定義任務(wù)2:銀行卡賬戶類定義任務(wù)3:銀行卡賬戶開戶實(shí)現(xiàn)項(xiàng)目三一般銀行賬戶分為:借記卡賬戶和信用卡賬戶,銀行卡開戶管理項(xiàng)目實(shí)現(xiàn)了銀行新賬戶開戶,模擬了ATM機(jī)上的存款、取款和余額查詢操作。為解決早期面向過程語言基于模塊設(shè)計(jì)方式,導(dǎo)致軟件修改困難等缺陷,面向?qū)ο蟮募夹g(shù)應(yīng)運(yùn)而生,它是一種強(qiáng)有力的軟件開發(fā)方法,它將數(shù)據(jù)和對(duì)數(shù)據(jù)的操作(數(shù)據(jù)和操作該數(shù)據(jù)的方法)作為一個(gè)相互依賴、不可分割的整體,力圖使對(duì)現(xiàn)實(shí)世界問題的求解簡(jiǎn)單化。它符合人們的思維習(xí)慣,同時(shí)有助于控制軟件的復(fù)雜性,提高軟件的生產(chǎn)效率,從而得到了廣泛的應(yīng)用,已成為目前最為流行的一種軟件開發(fā)方法。C#作為面向?qū)ο蟪绦蛟O(shè)計(jì)語言代表之一,項(xiàng)目由C#面向?qū)ο笳Z言完成。通過項(xiàng)目的實(shí)現(xiàn),有助于理解類和對(duì)象的定義、成員變量和方法、構(gòu)造方法、繼承和多態(tài)等C#面向?qū)ο蠡A(chǔ)和應(yīng)用。項(xiàng)目引入掌握類的概念和定義掌握對(duì)象的意義和實(shí)例化對(duì)象掌握成員方法的定義掌握構(gòu)造方法的定義和作用掌握繼承的概念及使用掌握多態(tài)的概念及使用學(xué)習(xí)目標(biāo)借記卡賬戶:是指先存款后消費(fèi)(或取現(xiàn)),沒有透支功能的銀行卡,即存儲(chǔ)卡賬戶。信用卡賬戶:信用卡是一種非現(xiàn)金交易付款的方式,是簡(jiǎn)單的信貸服務(wù)。在借記卡功能的基礎(chǔ)上可以透支,但是有透支額度,即透支只能在一定的金額范圍內(nèi)透支。銀行卡開戶管理項(xiàng)目實(shí)現(xiàn)了銀行新賬戶開戶,模擬了ATM機(jī)上的存款、取款和余額查詢功能。項(xiàng)目首先顯示歡迎使用銀行系統(tǒng),要求用戶進(jìn)行開戶或登錄,如圖3-1所示:項(xiàng)目描述用戶首先選擇開戶功能,系統(tǒng)顯示選擇開戶類型:借記卡賬戶和信用卡賬戶供用戶選擇將要開戶的賬戶類型,也可選擇退出系統(tǒng),系統(tǒng)則自動(dòng)退出,如圖3-2所示:如果選擇借記卡賬戶開戶菜單,顯示借記卡賬戶用戶輸入開戶信息提示,用戶正確輸入相關(guān)信息后,并顯示用戶開戶成功及相關(guān)開戶信息,如圖3-3所示:項(xiàng)目描述如果選擇信用卡賬戶開戶菜單,顯示信用卡賬戶用戶輸入開戶信息提示,用戶正確輸入相關(guān)信息后,顯示用戶開戶成功及相關(guān)開戶信息,如圖3-4所示:如果繼續(xù)選擇主菜單2,則進(jìn)入登錄功能,要求輸入登錄的用戶名和密碼,用戶輸入正確的用戶名和密碼后,進(jìn)入銀行卡存未、取款和查詢余額菜單。如圖3-5所示:項(xiàng)目描述當(dāng)用戶輸入1時(shí),則進(jìn)入存款功能,此時(shí)要求用戶輸入存款金額,用戶輸入正確存款金額后,系統(tǒng)提示存款成功,并回到主菜單。如圖3-6所示:當(dāng)用戶輸入2時(shí),則進(jìn)入取款功能,此時(shí)要求用戶輸入取款金額,用戶輸入正確取款金額后,系統(tǒng)提示取款成功,并回到主菜單。如圖3-7所示:項(xiàng)目描述當(dāng)用戶輸入3時(shí),則進(jìn)入查詢余額功能,則能看到已經(jīng)改變后的賬戶金額并回到主菜單。如圖3-8所示:如果輸入1或2以外的鍵,則系統(tǒng)正常退出。如圖3-9所示:項(xiàng)目描述任務(wù)1:銀行業(yè)務(wù)類定義任務(wù)2:銀行卡賬戶類定義任務(wù)3:銀行卡賬戶開戶實(shí)現(xiàn)工作任務(wù)任務(wù)描述
定義銀行業(yè)務(wù)類的成員變量和方法,實(shí)現(xiàn)主菜單顯示,當(dāng)用戶選擇菜單后,執(zhí)行菜單對(duì)應(yīng)代碼塊,如果輸入菜單不存在,則退出系統(tǒng)。任務(wù)1銀行業(yè)務(wù)類定義1.類和對(duì)象
面向?qū)ο蟪绦蛟O(shè)計(jì)(ObjectOrientedProgramming)是一種軟件開發(fā)方法,是一種對(duì)現(xiàn)實(shí)世界理解和抽象的方法,是計(jì)算機(jī)編程技術(shù)發(fā)展到一定階段后的產(chǎn)物。在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,包括了類、對(duì)象、繼承、封裝、多態(tài)性等概念。
現(xiàn)實(shí)世界中的每一個(gè)東西(萬事萬物),既具有獨(dú)特的特征(數(shù)據(jù)),又具有獨(dú)特的行為(方法),那么面向?qū)ο笳Z言就必須把事物的特征和行為定義在一起,這個(gè)概念和語法就是類。知識(shí)引入任務(wù)1銀行業(yè)務(wù)類定義1.類和對(duì)象知識(shí)引入任務(wù)1銀行業(yè)務(wù)類定義類的定義【例3-1】定義一個(gè)Person類,包含相應(yīng)的成員變量和成員方法。ClassPerson{//成員變量(屬性/字段)publicstringname;//姓名publicstringsex;//性別
publicintage;//年齡
publicvoidsleep()//成員方法{Console.WriteLine("是人都要睡覺!");}publicvoidshow()//成員方法{Console.WriteLine("姓名:"+name);Console.WriteLine("性別:"+sex);Console.WriteLine("年齡:"+age);}}1.類和對(duì)象知識(shí)引入任務(wù)1銀行業(yè)務(wù)類定義對(duì)象的定義類是一種抽象,而對(duì)象則是實(shí)例,是具體的。把程序中要操作的具有相同數(shù)據(jù)和方法的“對(duì)象”歸納起來,定義成類。但是,如果想要執(zhí)行類里面的方法(如學(xué)生類的sleep方法),訪問里面的變量,就會(huì)發(fā)現(xiàn)執(zhí)行不了,必須要用類來定義一個(gè)對(duì)象(專業(yè)術(shù)語叫做實(shí)例化對(duì)象),才能執(zhí)行類里面的方法,才能給里面的變量賦值。例:Personp1;//聲明對(duì)象p1=newPerson();//實(shí)例化對(duì)象1.類和對(duì)象知識(shí)引入任務(wù)1銀行業(yè)務(wù)類定義成員方法是定義在類內(nèi)部的方法,反映這個(gè)類具有的行為。在上例中,Person類就有一個(gè)成員方法。在上例Person類中,需要注意四個(gè)要素:public——訪問修飾符:void——返回值類型,該方法沒有返回值;Study——方法名;一對(duì)圓括號(hào)里面的參數(shù)列表。一共由四個(gè)部分組成,語法格式如下:[訪問修飾符]返回類型<方法名>(<參數(shù)列表>){//方法體}1.類和對(duì)象知識(shí)引入任務(wù)1銀行業(yè)務(wù)類定義【例3-2】演示如何實(shí)例化一個(gè)Person類的對(duì)象和調(diào)用類中的方法。classProgram{staticvoidMain(string[]args){//實(shí)例化對(duì)象,調(diào)用方法Personp1;//聲明對(duì)象p1=newPerson();//實(shí)例化對(duì)象
作用:只有對(duì)象才能訪問類的成員="劉邦";//設(shè)置對(duì)象屬性(name)的值p1.sex="男";p1.age=32;Console.WriteLine("********調(diào)用對(duì)象p1的成員方法************");p1.show();p1.sleep();//調(diào)用對(duì)象p1的成員方法sleep()Personp2=newPerson();//聲明并實(shí)例化對(duì)象="毛毛";p2.sex="女";p2.age=18;Console.WriteLine("********調(diào)用對(duì)象p2的成員方法************");p2.show();}}任務(wù)1
銀行業(yè)務(wù)類定義任務(wù)實(shí)現(xiàn)【例3-3】classBank//銀行業(yè)務(wù)類{protectedstaticList<Account>list=newList<Account>();//使用泛型集合存放賬戶privatestaticlongi=11000000;//指借記卡卡號(hào),每增加一個(gè)用戶,i自增1privatestaticlongj=81000000;//指信用卡卡號(hào),每增加一個(gè)用戶,j自增1//開戶成員方法publicvoidopenAccount(){Console.WriteLine("這是實(shí)現(xiàn)銀行卡賬戶開戶的方法...");}//登錄成員方法publicvoidlogin(){Console.WriteLine("這是實(shí)現(xiàn)用戶登錄的方法...");
}//存款成員方法publicvoidsaveMoney(Accountat){ Console.WriteLine("這是實(shí)現(xiàn)用戶存款的方法...");}//取款成員方法publicvoidtakeMoney(Accountat){Console.WriteLine("這是實(shí)現(xiàn)用戶取款的方法...");}//查詢余額成員方法publicvoidloopMoney(Accountat){Console.WriteLine("這是實(shí)現(xiàn)用戶查詢余額的方法...");}}任務(wù)1
銀行業(yè)務(wù)類定義任務(wù)實(shí)現(xiàn)switch(choice){case1:bk.openAccount();break;case2:bk.login();break;}}while(choice!=0);}}//實(shí)現(xiàn)系統(tǒng)主菜單類classProgram{staticvoidMain(string[]args){Bankbk=newBank();//實(shí)例化對(duì)象intchoice;do{Console.WriteLine("****************歡迎使用銀行系統(tǒng)****************");Console.WriteLine("請(qǐng)選擇功能(按其它鍵退出):");Console.WriteLine("1.開戶");Console.WriteLine("2.登錄");choice=Convert.ToInt32(Console.ReadLine());if(choice!=1&&choice!=2){Console.WriteLine("感謝您的使用,歡迎下次光臨!");break;
}類是C#一種自定義數(shù)據(jù)類型,反映了一組相似事物(對(duì)象)共同具有的數(shù)據(jù)和行為。對(duì)象是具體的實(shí)物,是類具體的一個(gè)個(gè)體。在一個(gè)類中,成員變量表示類的屬性,成員方法反映類的行為。任務(wù)1
銀行業(yè)務(wù)類定義任務(wù)小結(jié)任務(wù)描述定義銀行卡基類(Account類),并分別定義兩個(gè)子類:借記卡賬戶子類(DebitAcc)和信用卡賬戶子類(CreditAccount)。任務(wù)2
銀行卡賬戶類定義1.構(gòu)造方法構(gòu)造方法就是一種特殊的方法,它主要用于為對(duì)象分配存儲(chǔ)空間,完成對(duì)象初始化工作,必須在實(shí)例化對(duì)象的時(shí)候調(diào)用。定義構(gòu)造方法的語法如下:Public類名(參數(shù)列表)//構(gòu)造方法名與類名同名,沒有返回值類型{//構(gòu)造方法體}任務(wù)2銀行卡賬戶類定義知識(shí)引入1.構(gòu)造方法任務(wù)2銀行卡賬戶類定義知識(shí)引入【例3-4】結(jié)合上例3-1,給Person類加上無參構(gòu)造方法和帶參構(gòu)造方法。ClassPerson{//成員變量(屬性/字段)publicstringname;//姓名publicstringsex;//性別
publicintage;//年齡
//無參構(gòu)造方法publicPerson(){}//帶參構(gòu)造方法publicPerson(stringname,stringsex,intage){//this表示當(dāng)前類的對(duì)象this.用于訪問當(dāng)前類的成員=name;//訪問的是成員。name訪問的是參數(shù)this.sex=sex;this.age=age;}publicvoidsleep()//成員方法{Console.WriteLine("是人都要睡覺!");}publicvoidshow()//成員方法{Console.WriteLine("姓名:"+name);Console.WriteLine("性別:"+sex);Console.WriteLine("年齡:"+age);}}1.構(gòu)造方法任務(wù)2銀行卡賬戶類定義知識(shí)引入【例3-5】分別調(diào)用無參構(gòu)造方法和帶參構(gòu)造方法實(shí)例化對(duì)象。classProgram{staticvoidMain(string[]args){Personp1=newPerson();//調(diào)用無參構(gòu)造方法實(shí)例化p1對(duì)象Personp2=newPerson("張三豐","男",21);//調(diào)用帶參構(gòu)造方法實(shí)例化p2對(duì)象p2.show();}}1.構(gòu)造方法任務(wù)2銀行卡賬戶類定義知識(shí)引入構(gòu)造方法名與類同名不能有返回值,且不能寫void構(gòu)造方法的作用如下:
·構(gòu)造方法可以更簡(jiǎn)捷地為對(duì)象賦初值。實(shí)例化對(duì)象的同時(shí),就可以給該對(duì)象的所有成員變量賦初值
·對(duì)象的每一個(gè)成員變量要存儲(chǔ)數(shù)據(jù),就要在內(nèi)存中開辟空間。類的構(gòu)造方法最大的作用,就是為對(duì)象開辟內(nèi)存空間,以存儲(chǔ)數(shù)據(jù)。這也是為什么實(shí)例化對(duì)象的時(shí)候,一定要調(diào)用構(gòu)造方法的原因
·構(gòu)造方法只有實(shí)例化對(duì)象的時(shí)候才能調(diào)用,不能像其他方法那樣通過方法名調(diào)用
在前面學(xué)習(xí)到,定義一個(gè)變量就會(huì)在內(nèi)存中開辟一個(gè)空間存儲(chǔ)數(shù)據(jù)。實(shí)例化一個(gè)對(duì)象后,對(duì)象的成員變量也要開辟內(nèi)存空間,這個(gè)重要的任務(wù)就是構(gòu)造方法完成的。2.屬性任務(wù)2銀行卡賬戶類定義知識(shí)引入在C#中有兩個(gè)常用的訪問修飾符:private和public。程序中一般用public修飾符來定義成員變量和成員方法,這樣就可以在別的類中來訪問它,但這其實(shí)破壞了類的封裝性,因任何類都可以訪問public成員。定義屬性的語法如下:訪問修飾符
數(shù)據(jù)類型
屬性名{get{
返回私有成員變量;}set{
設(shè)置私有成員變量;}}2.屬性任務(wù)2銀行卡賬戶類定義知識(shí)引入【例3-6】定義屬性和使用屬性訪問成員變量。·定義屬性classPerson{privatestringname;privateintage;publicPerson(){}publicPerson(stringname,intage){this.Name=name;this.Age=age;}publicstringName{get{return;}set{=value;//value是隱式的變量}}
publicintAge{get{returnthis.age;}set{this.age=value;//value是隱式的變量}}publicvoidShow(){Console.WriteLine("姓名:"+Name);Console.WriteLine("年齡:"+Age);}}2.屬性任務(wù)2銀行卡賬戶類定義知識(shí)引入【例3-6】classProgram{staticvoidMain(string[]args){Personp1=newPerson("張三",19);p1.Show();Personp2=newPerson();p2.Name="毛毛";//對(duì)Name屬性賦值,即是對(duì)私有成員name賦值p2.Age=17;p2.Show();}}
3.繼承和多態(tài)任務(wù)2銀行卡賬戶類定義知識(shí)引入繼承在面向?qū)ο蠹夹g(shù)中,繼承是提高軟件開發(fā)效率的重要因素之一,指特殊類的對(duì)象擁有其一般類的全部屬性與方法,稱作特殊類對(duì)一般類的繼承。繼承是面向?qū)ο蟪绦蛟O(shè)計(jì)的主要特征之一,它可以讓用戶重用代碼,也可以節(jié)省程序設(shè)計(jì)的時(shí)間。繼承就是在類之間建立一種從屬關(guān)系,使得新定義的子類(也叫派生類)的實(shí)例具有父類(也叫基類)的特征和能力。任何類都可以繼承其他的類,這也就是說,這個(gè)類擁有它繼承的類的所有成員。在OOP中,被繼承的類稱為父類或者基類,繼承了其他類的類叫子類或者派生類。繼承的語法格式為:Class類名:父類類名{
類體}3.繼承和多態(tài)任務(wù)2銀行卡賬戶類定義知識(shí)引入【例3-7】classPerson//定義Person類,父類{publicstringname;publicintage;publicvoidSay(){Console.WriteLine("你好,我是{0},我今年{1}歲",name,age);}}classMan{publicvoidEat(){Console.WriteLine("我正在吃大閘蟹!");}}3.繼承和多態(tài)任務(wù)2銀行卡賬戶類定義知識(shí)引入【例3-7】//Student類繼承了Person類,它也具備了Person類的所有成員變量和方法classStudent:Person{//也可以在子類中添加新的成員變量和成員方法publicstringsex;publicvoidPlay(){Console.WriteLine("我是{0}生我怕誰,我在玩天天酷跑.....",sex);}}classProgram{staticvoidMain(string[]args){Studentst=newStudent();="劉備";st.age=18;st.Say();st.sex="男";st.Play();}}3.繼承和多態(tài)任務(wù)2銀行卡賬戶類定義知識(shí)引入多態(tài)多態(tài)性是指在一般類中定義的屬性或行為,被特殊類繼承之后,可以具有不同數(shù)據(jù)類型或表現(xiàn)出不同的行為。這使得同一個(gè)屬性或行為在一般及期限各個(gè)特殊類中具有不同的語義。當(dāng)子類繼承父類后,如何讓子類和父類的方法執(zhí)行起來不一樣,每個(gè)子類都有自己的方式執(zhí)行該“行動(dòng)”?這就是多態(tài)的一個(gè)重要特性——重寫。子類重寫父類的方法,重寫需要用到兩個(gè)關(guān)鍵字:vartual和override。3.繼承和多態(tài)任務(wù)2銀行卡賬戶類定義知識(shí)引入【例3-8】classAnimal//動(dòng)物類{publicstringname;publicvirtualvoidsay()//定義為虛方法,子類可以對(duì)父類方法重寫{Console.WriteLine("Animalhou......");}publicvoidrun(){Console.WriteLine("Animalrun......");}}classCat:Animal//貓類{publicoverridevoidsay()//對(duì)父類方法進(jìn)行重寫{Console.WriteLine(“Tom:”+"喵喵喵......");}}classMouse:Animal//老鼠類{publicoverridevoidsay(){Console.WriteLine(“Jerry:”+"吱吱吱......");}}classDog:Animal//狗類{publicoverridevoidsay(){Console.WriteLine(“旺財(cái):”+"汪汪汪......");}}3.繼承和多態(tài)任務(wù)2銀行卡賬戶類定義知識(shí)引入【例3-8】classProgram{staticvoidMain(string[]args){////父類的句柄可以指向子類的對(duì)象,反之則不行//Animalan1=newCat();//an1.say();Catct=newCat();Mousemou=newMouse();Dogd=newDog();PolymorphicTest(ct);PolymorphicTest(mou);PolymorphicTest(d);}staticvoidPolymorphicTest(Animalan){an.say();//多態(tài)性}}【例3-9】實(shí)現(xiàn)銀行卡賬戶類定義,程序代碼如下:classAccount//賬戶類,父類,以下是共有屬性和方法{publiclongaid;//賬戶編號(hào)publicstringaname;//儲(chǔ)戶姓名publicstringpersonId;//身份證號(hào)publicstringpassword;//密碼publicdoublebalance;//賬戶余額publicAccount(){}publicAccount(longaid,stringaname,stringpersonId,stringpassword,doublebalance){this.aid=aid;this.aname=aname;this.personId=personId;this.password=password;this.balance=balance;}
}任務(wù)2銀行卡賬戶類定義任務(wù)實(shí)現(xiàn)classDebitAcc:Account//借記卡子類{publicDebitAcc(longaid,stringaname,stringpersonId,stringpassword,doublebalance):base(aid,aname,personId,password,balance){}}classCreditAccount:Account//信用卡子類{privatedoubleoverdraft;//透支金額publicCreditAccount(longaid,stringaname,stringpersonId,stringpassword,doublebalance,doubleoverdraft):base(aid,aname,personId,pas
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年秋季藝術(shù)品展銷會(huì)交易合同3篇
- 2024年私人房屋租賃管理服務(wù)合同3篇
- 笨氯苯課程設(shè)計(jì)文獻(xiàn)
- 游學(xué)課程設(shè)計(jì)培訓(xùn)總結(jié)
- 甜點(diǎn)面包烘焙 課程設(shè)計(jì)
- 環(huán)保課程設(shè)計(jì)理念有哪些
- 醫(yī)院醫(yī)療質(zhì)量安全管理制度與規(guī)范
- 研學(xué)課程設(shè)計(jì)國風(fēng)藝術(shù)
- 粽子醬的制作課程設(shè)計(jì)
- 中國田園犬行業(yè)銷售工作總結(jié)
- 五年級(jí)上冊(cè)小數(shù)遞等式計(jì)算200道及答案
- 教育用地劃撥流程
- 制造業(yè)智能制造工廠布局方案
- 10《吃飯有講究》教學(xué)設(shè)計(jì)-2024-2025學(xué)年道德與法治一年級(jí)上冊(cè)統(tǒng)編版
- 2024年中考數(shù)學(xué)二輪復(fù)習(xí)二次函數(shù)綜合(含答案)
- 拆除鋁合金門窗及附窗安全協(xié)議書
- 體外診斷試劑-C反應(yīng)蛋白(CRP)測(cè)定試劑盒(膠乳增強(qiáng)免疫比濁法)臨床評(píng)價(jià)報(bào)告-血清
- 八年級(jí)物理上冊(cè)(滬粵版2024)新教材解讀課件
- 人教版數(shù)學(xué)四上《大數(shù)的認(rèn)識(shí)》說課稿
- 氣胸講課課件
- 2024年典型事故案例警示教育手冊(cè)15例
評(píng)論
0/150
提交評(píng)論