蘇坤講的c#基礎(chǔ)入門_第1頁
已閱讀1頁,還剩200頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、C#編程基礎(chǔ),講師:蘇 坤QQ:35651998http://t.qq.com/anders_sukun,概念:.net與c# (多語言),.net/dotnet:一般指.Net Framework框架.一種平臺(tái),一種技術(shù).C#(sharp):一種編程語言,可以開發(fā)基于.net平臺(tái)的應(yīng)用.(*) Java即是一種技術(shù)又是一種編程語言,.net都能干什么,桌面應(yīng)用程序 WinformInternet應(yīng)用程序

2、 ASP.NET手機(jī)開發(fā) wp7C/S:客戶機(jī)(Client)/服務(wù)器模式(Server) qqB/S:瀏覽器(Browser)/服務(wù)器模式(Server),.Net開發(fā)學(xué)習(xí)路線(*),IDE介紹,IDE(Integrated Development,集成開發(fā)環(huán)境)Visual Studio 2010 簡(jiǎn)介:一套完整的開發(fā)工具集用于開發(fā)桌面應(yīng)用程序、ASP.NET Web 應(yīng)用程序、XML、W

3、eb Service、移動(dòng)應(yīng)用程序?yàn)榭焖匍_發(fā)提供強(qiáng)大支持,IDE及.Net 的版本(*了解),.Net 1.1,.Net 2.0,.Net3.x,.Net4.x,Visual Studio2003,Visual Studio2005,Visual Studio2008,Visual Studio2010,向下兼容,.Net 1.0,Visual Studio2002,MSDN介紹,MSDN 的全稱是 Microsoft Develop

4、er Network。這是微軟公司面向軟件開發(fā)者的一種信息服務(wù)。MSDN 實(shí)際上是一個(gè)以 Visual Studio 和 Windows 平臺(tái)為核心整合的開發(fā)虛擬社區(qū),包括技術(shù)文檔、在線電子教程、網(wǎng)絡(luò)虛擬實(shí)驗(yàn)室、微軟產(chǎn)品下載(幾乎全部的操作系統(tǒng)、服務(wù)器程序、應(yīng)用程序和開發(fā)程序的正式版和測(cè)試版,還包括各種驅(qū)動(dòng)程序開發(fā)包和軟件開發(fā)包)、Blog、BBS、MSDN WebCast、與 CMP 合作的 MSDN 雜志等等一系列服務(wù)。,點(diǎn)擊查看m

5、sdn百科,Visual Studio介紹1,安裝 setup.exe install.exe autorun啟動(dòng)創(chuàng)建解決方案/項(xiàng)目認(rèn)識(shí)vs的各部分(菜單/快捷鍵/工具欄/窗口)VisualStudio各個(gè)視圖的打開、開發(fā)環(huán)境的重置C#源文件(類)一般以cs結(jié)尾C#程序的入口是Main函數(shù),在Main中寫代碼就行,暫時(shí)不用關(guān)心其他部分是什么意思,Visual Studio介紹2,保存項(xiàng)目,打開項(xiàng)目. 交作業(yè)交哪些文

6、件.作業(yè)的命名格式:蘇坤512.rar先學(xué)習(xí)兩句話:Console.WriteLine("Hello,World!");Console.ReadKey();每一句話以;號(hào)結(jié)束 生成程序運(yùn)行一下生成的.exe程序設(shè)置字體及行號(hào)顯示創(chuàng)建多個(gè)項(xiàng)目啟動(dòng)項(xiàng)目設(shè)置項(xiàng)目的加載與卸載,c#中的注釋符,注釋方式://單行注釋/* */多行注釋//////文檔注釋///,小練習(xí),練習(xí):編程輸出以下內(nèi)

7、容 自己練習(xí)一下三種注釋符:第一種:單行注釋 以//開頭,后面的就是注釋內(nèi)容第二種:多行注釋 以 /*開頭 */結(jié)束 之間的是注釋內(nèi)容第三種:文檔注釋 在方法或類的上一行輸入 ///就會(huì)產(chǎn)生,計(jì)算機(jī)使用基本技巧,常用鍵介紹: Home/End/PageUp/PageDown/Shift/c+h/c+end一段文字的刪除.(del/backspace)ctrl+a ctrl+kf 學(xué)會(huì)使用復(fù)制粘貼。Ctrl+

8、c/v/x 對(duì)話框中的使用插入、覆蓋模式的困惑。學(xué)會(huì)使用Ctrl+Z撤銷上一次操作;,()""等的的全角半角問題。 出錯(cuò):意外的字符""VS窗口的拖拽遇到異常、報(bào)錯(cuò)不要慌。 目前經(jīng)常用到的快捷鍵:F5 F6 #region和#endregion,,操作系統(tǒng) 一般 Windows,公共語言運(yùn)行庫 (CLR),VC++.NET,C#,VB.NET,VJ#,…,.NET Fr

9、amework 類庫 (FCL),,軟件系統(tǒng)依賴關(guān)系(*),北京傳智播客教育 www.itcast.cn,.Net簡(jiǎn)介(*了解),.Net Framework類庫,CLR公共語言運(yùn)行時(shí),操作系統(tǒng),應(yīng)用程序,,,,應(yīng)用程序,操作系統(tǒng),,平臺(tái)無關(guān):CLR、.Net Framework進(jìn)行了隔離。Windows、Linux(Mono)、智能手機(jī)、Web。學(xué)會(huì).Net什么都能開發(fā),知識(shí)移植。,更安全、更省心:代碼托管、罕用指針、垃圾回收。,語言

10、無關(guān):VB.Net、C#都調(diào)用同樣的類、同樣的方法,VB.Net寫的類C#也可以調(diào)用。模糊了語言的差別,.net是如何實(shí)現(xiàn)語言無關(guān)性的(*),C#,VB.NET,代碼被執(zhí)行,,,MSIL,CLR,通用語法,計(jì)算機(jī)不用了解,,,CLR執(zhí)行IL,C#編譯器,VB.NET編譯器,,,,,基本框架類,WinForms,ADO.NET 和 XML 類,.NET Framework,.NET Framework 類庫,ASP.NET,CLS,CLR

11、,CTS,變量1,計(jì)算機(jī)使用內(nèi)存來存儲(chǔ)數(shù)據(jù).我們?cè)谟?jì)算機(jī)中存儲(chǔ)數(shù)據(jù)和客人住旅館很類似.,我們住旅館一般要做以下事情:1、開房間(單人間、雙人間、總統(tǒng)套間) 2、入住,變量2,要在計(jì)算機(jī)中存一個(gè)數(shù)字1000,需要兩句話.int a; //開一個(gè)能放數(shù)字的空間a=1000; //把1000放進(jìn)去.聲明變量的語法格式: 數(shù)據(jù)類型 變量名;賦值: 變量名=值;可以 a=3.14; 嗎????,

12、變量3,計(jì)算機(jī)中各式各樣的數(shù)據(jù)3 3.14 100 the quick brown fox jumps over the lazy dog 張三 李四 True 2011-3-6,*更多的數(shù)據(jù)類型,C#中的數(shù)據(jù),int: 3 5 100 -10double: 3.14 10.5 -3.14 -5.0char : ‘A’

13、 ‘b’ ‘a(chǎn)’ ' ' string : “Zhangsan” “李四” “計(jì)算機(jī)” “HelloWorld” "a"decimal:存儲(chǔ)金錢 5.62decimal d=5.55m; decimal d1=5;,變量的聲明方法,A)數(shù)據(jù)類型 變量名稱;int age;變量的賦值 age=18;B)定義時(shí)賦值,數(shù)據(jù)類型 變

14、量名稱=值;int age = 18;C)如果一次要聲明多個(gè)相同類型的變量可用逗號(hào)分隔.string zsName,lsName;變量一定要先聲明,再賦值,才能使用.練習(xí):定義一個(gè)變量pi,并把3.14存進(jìn)去,然后顯示在屏幕上?想一想下面代碼的輸出結(jié)果是?int i=10;Console.WriteLine("i");,變量的命名,命名規(guī)則:1 必須以“字母”_或@符號(hào)開頭.--不要以數(shù)字開頭2

15、后面可以跟任意“字母”、數(shù)字、下劃線.注意:1)你起的變量名不要與c#系統(tǒng)中的關(guān)鍵字重復(fù).2)在c#中,大小寫是敏感的.3)同一個(gè)變量名不允許重復(fù)定義(先這么認(rèn)為,不嚴(yán)謹(jǐn))定義變量時(shí),變量名要有意義 C# 變量命名編碼規(guī)范——Camel 命名法:首個(gè)單詞的首字母小寫,其余單詞的首字母大寫。Pascal命名規(guī)范:每一個(gè)單詞第一字母都大寫如果使用到英文單詞的縮寫,全部用大寫!,下面的變量名稱哪些正確?,principal,

16、cost_price,marks_3,$lastname,city,123rate,discount%,zip code,City,int,賦值運(yùn)算符和賦值表達(dá)式,賦值運(yùn)算符:= a=a+1; 這里的=號(hào)是賦值運(yùn)算符,不是數(shù)學(xué)義意上的相等.變量可以重復(fù)賦值,一旦給一個(gè)變量賦了新值,那么變量中的老值就不復(fù)存在了.右邊代碼的輸出結(jié)果:,演示:,定義一個(gè)變量存儲(chǔ)客戶的姓名,然后在屏幕上顯示:”你好,某某”.某某代表客戶的姓

17、名+號(hào)可以連接兩個(gè)字符串,這里的“+”號(hào)表示連接的意思,練習(xí):,1. 定義3個(gè)變量,分別存儲(chǔ)一個(gè)人的姓名(張三),年齡(28),和工資(7600.33).然后在屏幕上顯示,我叫XX,今天X歲了,我的工資是XX元.2. 定義一個(gè)變量存儲(chǔ)一個(gè)人的年齡(18),然后發(fā)現(xiàn)這個(gè)人的年齡不是18歲,要把這個(gè)人的年齡修改成20歲(本題體會(huì)變量可以被重復(fù)多次賦值),最后把這個(gè)人的年齡輸出到屏幕上?,變量練習(xí),3.定義四個(gè)變量,分別存儲(chǔ)一個(gè)人的姓名

18、、性別、年齡、電話。然后打印在屏幕上 (我叫X,我今年 X歲了,我是X生,我的電話是XX)4.在屏幕上輸出:我的手機(jī)是philips 型號(hào):998 價(jià)格:1500元 重量:0.3kg請(qǐng)定義變量存存儲(chǔ)上面的值,并顯示在屏幕上.5.定義兩個(gè)變量如:a b分別賦值為10和5,寫程序交換兩個(gè)變量的值,字符串類型,再學(xué)習(xí)一句話:Console.ReadLine(); 用于接收用戶的輸入.要定義一個(gè)字符串變量來接收變存儲(chǔ)用戶輸入的值

19、.1.練習(xí):問用戶喜歡吃什么水果,假如用戶輸入”蘋果”,則顯示”哈哈,這么巧呀,我也喜歡吃蘋果”2.練習(xí):請(qǐng)用戶輸入姓名,然后在屏幕上顯示“你好,XXX". XXX為用戶剛剛輸入的姓名.,字符串中的轉(zhuǎn)義,能在字符串中輸出雙引號(hào)嗎?在屏幕上顯示: c#中的字符串用” ”號(hào)包含起來\+一個(gè)字符,組成轉(zhuǎn)譯字符.一般用于表示特殊符號(hào)@字在字符串前面表示不轉(zhuǎn)譯常用的轉(zhuǎn)譯符:\n \b \t \\ \”,算術(shù)運(yùn)算符及

20、算術(shù)表達(dá)式,算術(shù)運(yùn)算符: + - * / %(取余數(shù) 取模)算術(shù)表達(dá)式:由算術(shù)運(yùn)算符連接起來的式子.如:1+1 a-b(變量ab前面已聲明并賦初值)演示:某學(xué)生三門課成績(jī)?yōu)?語文:90 數(shù)學(xué):80 英語:91,編程求總分和平均分.優(yōu)先級(jí):先乘除,后加減,有括號(hào)先算括號(hào)里的,相同級(jí)別的從左至右運(yùn)算 5+3*2小括號(hào)可以無限制的套用,但一定要成對(duì)出現(xiàn).,練習(xí),練習(xí)1:定義兩個(gè)數(shù)分別為10和20,打印出兩個(gè)數(shù)的和。練

21、習(xí)2:計(jì)算半徑為5的圓的面積并打印出來.練習(xí)3:某商店T恤的價(jià)格為35元/件,褲子的價(jià)格為120元/條.小明在該店買了3件T恤和2條褲子,請(qǐng)計(jì)算并顯示小明應(yīng)該付多少錢?,算術(shù)運(yùn)算符-自動(dòng)類型轉(zhuǎn)換,下面代碼的輸出結(jié)果是什么? int a = 10, b = 3; int mod = a % b; double quo = a / b;

22、 Console.WriteLine(mod); Console.WriteLine(quo);,類型自動(dòng)轉(zhuǎn)換規(guī)則,參與運(yùn)算(算術(shù)運(yùn)算和賦值運(yùn)算)的操作數(shù)和結(jié)果類型必須一致. 當(dāng)不一致時(shí),滿足下面條件時(shí),系統(tǒng)自動(dòng)完成類型轉(zhuǎn)換 兩種類型兼容例如:int 和 double 兼容目標(biāo)類型大于源類型例如:double > int 對(duì)于表達(dá)式如果一個(gè)操作數(shù)為double型,則整個(gè)表達(dá)式可提升為

23、double型比如前面打8.8折的練習(xí)題.求10/3求余數(shù)要想得到3.333的處理.,強(qiáng)制類型轉(zhuǎn)換,如上題中打完8.8折后出現(xiàn)小數(shù),商店為了結(jié)算方便,只收用戶整數(shù)部分的錢,如本應(yīng)收用戶303.6,現(xiàn)在只收用戶303元,應(yīng)該如何做?語法:(數(shù)據(jù)類型名)待轉(zhuǎn)換的值;如:int b = (int)3.14; 強(qiáng)制類型轉(zhuǎn)換,數(shù)據(jù)類型一定要相兼容 下面的寫法對(duì)嗎? int number = (int)”3.14”;,類

24、型轉(zhuǎn)型,問題:讓用戶輸入他的語文和數(shù)學(xué)成績(jī),計(jì)算他的總成績(jī)并顯示出來?Convert不再僅是內(nèi)存級(jí)別的轉(zhuǎn)換,而是考慮數(shù)據(jù)意義的轉(zhuǎn)換。Convert是一個(gè)加工、改造的過程通過 Convert.ToInt32(能轉(zhuǎn)換成int類型的數(shù)據(jù))來把其他類型數(shù)據(jù)轉(zhuǎn)換成int類型練習(xí):讓用戶輸入姓名 語文 數(shù)學(xué) 英語 三門課的成績(jī),然后給用戶顯示:XX,你的總成績(jī)?yōu)閄X分,平均成績(jī)?yōu)閄X分。,練習(xí),練習(xí),編程實(shí)現(xiàn)計(jì)算幾天(如46天)是幾周零幾

25、天.練習(xí):編程實(shí)現(xiàn)107653秒是幾天幾小時(shí)幾分鐘幾秒?修改上面的題目,讓用戶輸入.,算術(shù)運(yùn)算符和復(fù)合賦值運(yùn)算符,++ 自加一 有前加和后加 -- 自減一 有前減和后減一元運(yùn)算符++/--比二元的+-優(yōu)先級(jí)高+=-=*=/=%=,練習(xí):,1 請(qǐng)說出上面程序執(zhí)行完成后,var1中的值?上題中如果改成:Var1=++var2 * var3--;Var1=?,關(guān)系運(yùn)算符(比較運(yùn)算),>

26、,=,老鼠的重量(1)兔子的壽命(3)>烏龜?shù)膲勖?1000)39<18我的年齡(20)==你的年齡(20)比大比小的結(jié)果是什么?,什么是bool類型(布爾),在計(jì)算機(jī)中,我們用什么數(shù)據(jù)類型來表示一句話的對(duì)錯(cuò)?一個(gè)條件的成立與不成立?布爾(bool)類型:bool值只有兩個(gè)真:ture假:false關(guān)系運(yùn)算的結(jié)果是布爾類型的如在計(jì)算機(jī)中描述張三(20歲)比李四(18)小,這句話的結(jié)果.練習(xí)看看上一頁p

27、pt中四句話的結(jié)果,邏輯運(yùn)算符,&& || !表達(dá)式1&&表達(dá)式2:當(dāng)表達(dá)式1、2全為ture時(shí),其表達(dá)式的結(jié)果為true表達(dá)式1||表達(dá)式2:當(dāng)表達(dá)式1、2有一個(gè)為ture時(shí),其結(jié)果為ture!表達(dá)式:如果表達(dá)式的結(jié)果為true,則取反后為false,反之為true優(yōu)先級(jí),練習(xí):,讓用戶輸入張三的語文和數(shù)學(xué)成績(jī),輸出以下判斷是否正確,正確輸出True,錯(cuò)誤輸出False1)張三的語文和數(shù)學(xué)成

28、績(jī)都大于90分2)語文和數(shù)學(xué)有一門是大于90分的,練習(xí):,寫下判斷閏年的表達(dá)式,設(shè)待判斷的年份變量為year.潤(rùn)年的判定(符合下面兩個(gè)條件之一):年份能夠被400整除.(2000)年份能夠被4整除但不能被100整除.(2008)讓用戶輸入一個(gè)年份,如果是潤(rùn)年,則輸出true,如果不是,則輸出false.2100/1600/1800/2009年是閏年嗎?,if結(jié)構(gòu),編程實(shí)現(xiàn):如果張三的考試成績(jī)大于90分,那么爸爸獎(jiǎng)勵(lì)他100

29、元錢.使用if結(jié)構(gòu)可以實(shí)現(xiàn)上面的問題if結(jié)構(gòu)的基本語法:if(條件)if (條件)語句;{語句1;語句2;......} 用一對(duì)大括號(hào)來組成語句塊,練習(xí):,讓用戶輸入年齡,如果輸入的年齡大于18(含)歲,則給用戶顯示你已成年.如果張三的語文成績(jī)大于90并且音樂成績(jī)大于80語文成績(jī)等于100并且音樂成績(jī)大于70,則獎(jiǎng)勵(lì)100元.讓用戶輸入用戶名和密碼,如果用戶名為admin,密碼為

30、mypass,則提示登錄成功.,if-else,如果張三的考試成績(jī)大于90(含)分,那么爸爸獎(jiǎng)勵(lì)他100元錢,否則的話,爸爸就讓張三寫學(xué)習(xí)總結(jié).使用if能否實(shí)現(xiàn).更好的實(shí)現(xiàn),if-else語法:if(條件){語句1;}else{語句2;},練習(xí):,1、蓋茨買了一筐雞蛋,如果壞蛋少于5個(gè),他就吃掉,否則他就去退貨2、 要求用戶輸入兩個(gè)數(shù)a、b,如果a能被b整除或者a加b大于100,則輸出a的值,否則輸出b的值3、對(duì)學(xué)員的

31、結(jié)業(yè)考試成績(jī)?cè)u(píng)測(cè)(考慮用if好還是用if-else好) 成績(jī)>=90 :A 90>成績(jī)>=80 :B 80>成績(jī)>=70 :C 70>成績(jī)>=60 :D 成績(jī)<60 :E,if-else if,對(duì)學(xué)員的結(jié)業(yè)考試成績(jī)?cè)u(píng)測(cè) 成績(jī)>=90 :A 90>成績(jī)>=80 :B 80>成績(jī)>=70 :C 70&

32、gt;成績(jī)>=60 :D 成績(jī)<60 :E用if-else實(shí)現(xiàn)?更好的方法:if-else if,if-else if流程圖,課上練習(xí),學(xué)編程不是看書,不是聽老師講,而是自己動(dòng)手寫。練習(xí)1:提示用戶輸入密碼,如果密碼是“888888”則提示正確,否則要求再輸入一次,如果密碼是“888888”則提示正確,否則提示錯(cuò)誤,程序結(jié)束。練習(xí)2:提示用戶輸入用戶名,然后再提示輸入密碼,如果用戶名是“admin”并

33、且密碼是“888888”,則提示正確,否則,如果用戶名不是admin還提示用戶用戶名不存在,如果用戶名是admin則提示密碼錯(cuò)誤.練習(xí)3:提示用戶輸入年齡,如果大于等于18,則告知用戶可以查看,如果小于10歲,則告知不允許查看,如果大于等于10歲并且小于18,則提示用戶是否繼續(xù)查看(yes、no),如果輸入的是yes則提示用戶請(qǐng)查看,否則提示"退出,你放棄查看"。,為什么使用switch,李四的年終工作評(píng)定,如果定

34、為A級(jí),則工資漲500元,如果定為B級(jí),則工資漲200元,如果定為C級(jí),工資不變,如果定為D級(jí)工資降200元,如果定為E級(jí)工資降500元.設(shè)李四的原工資為5000,請(qǐng)用戶輸入李四的評(píng)級(jí),然后顯示李四來年的工資.,switch-case,switch-case語法:switch(表達(dá)式/變量){case 值1: 語句塊1;break;case 值2: 語句塊2;break;default:語句塊3;break;},if

35、-else if與switch的比較,相同點(diǎn):都可以實(shí)現(xiàn)多分支結(jié)構(gòu)不同點(diǎn):switch:一般 只能用于等值比較if-else if:可以處理范圍,練習(xí):,說出已學(xué)過的數(shù)據(jù)類型有哪些?舉例說明已學(xué)過的運(yùn)算符有哪些?請(qǐng)用戶輸年份,輸入月份,輸出該月的天數(shù).對(duì)學(xué)員的結(jié)業(yè)考試成績(jī)?cè)u(píng)測(cè)(改成用Switch來做) 成績(jī)>=90 :A 90>成績(jī)>=80 :B 80>成績(jī)>=70 :C

36、70>成績(jī)>=60 :D 成績(jī)<60 :E,循環(huán)結(jié)構(gòu),實(shí)際生活中的循環(huán):打印100份試卷 10000米長(zhǎng)跑 車輪李四這次考試又粗心了,爸爸讓他寫1000遍"下次考試一定要細(xì)心".如何編程實(shí)現(xiàn)上面的問題?Console.WriteLine("下次考試一定要細(xì)心");Console.WriteLine("下次考試一定要細(xì)心");Con

37、sole.WriteLine("下次考試一定要細(xì)心");......,使用循環(huán)解決,聰明的解決方法:int i=0;while(i<1000){Console.WriteLine("下次考試一定要細(xì)心");i++;},while,語法:while(循環(huán)條件){循環(huán)體;},特點(diǎn):先判斷,再執(zhí)行,練習(xí):,打印100次"歡迎您來傳智播客學(xué)習(xí)"輸入班級(jí)人數(shù)

38、,然后依次輸入學(xué)員成績(jī),計(jì)算班級(jí)學(xué)員的平均成績(jī)和總成績(jī)老師問學(xué)生,這道題你會(huì)做了嗎?如果學(xué)生答"會(huì)了(y)",則可以放學(xué).如果學(xué)生不會(huì)做(n),則老師再講一遍,再問學(xué)生是否會(huì)做了......直到學(xué)生會(huì)為止,才可以放學(xué).直到學(xué)生會(huì)或老師給他講了10遍還不會(huì),都要放學(xué)2006年培養(yǎng)學(xué)員80000人,每年增長(zhǎng)25%,請(qǐng)問按此增長(zhǎng)速度,到哪一年培訓(xùn)學(xué)員人數(shù)將達(dá)到20萬人?,do-while,明天小蘭就要登臺(tái)演出了,老

39、師說再把明天的舞蹈表演一遍,如果滿意,小蘭就可以回家了.否則就需要再練習(xí)一遍,直到老師滿意為止.while or do-while ?do-while為先執(zhí)行,再判斷do{循環(huán)體;}while(條件);,練習(xí):,練習(xí)1:計(jì)算1到100之間整數(shù)的和;練習(xí)2:要求用戶輸入用戶名和密碼,只要不是admin、888888就一直提示用戶名或密碼錯(cuò)誤,請(qǐng)重新輸入。練習(xí)3:不斷要求用戶輸入學(xué)生姓名,輸入q結(jié)束.練習(xí)4:不斷要求用

40、戶輸入一個(gè)數(shù)字,然后打印這個(gè)數(shù)字的二倍,當(dāng)用戶輸入q的時(shí)候程序退出。練習(xí)5:不斷要求用戶輸入一個(gè)數(shù)字(假定用戶輸入的都是正整數(shù)),當(dāng)用戶輸入end的時(shí)候顯示剛才輸入的數(shù)字中的最大值練習(xí)6:張三先唱一遍要表演的歌曲,老師覺得張三唱歌不過關(guān),就讓張三再唱一遍,老師滿意則張三可以下課,不然則需要再唱一遍,再問老師是否滿意...,while與do-while區(qū)別,通過練習(xí),希望大家已經(jīng)掌握這兩種循環(huán).語法不同初始值不滿足循環(huán)條件時(shí):w

41、hile循環(huán)一次都不執(zhí)行do-while循環(huán)會(huì)執(zhí)行一次,程序調(diào)試,設(shè)置斷點(diǎn)單步運(yùn)行觀察變量,for,連續(xù)輸出100次"我下次一定細(xì)心".比較用for和while,哪種更好?問題1:求1-100間的所有偶數(shù)和?問題2:找出100-999間的水仙花數(shù)?問題3:輸出九九乘法表(循環(huán)的嵌套)語法:for(表達(dá)式1;表達(dá)式2;表達(dá)式3){循環(huán)體;};,練習(xí):,Break,break用于循環(huán)中,退出當(dāng)前循環(huán)

42、.,練習(xí):,練習(xí)1:循環(huán)錄入5個(gè)人的年齡并計(jì)算平均年齡,如果錄入的數(shù)據(jù)出現(xiàn)負(fù)數(shù)或大于100的數(shù),立即停止輸入并報(bào)錯(cuò).練習(xí)2:在while中用break實(shí)現(xiàn)要求用戶一直輸入用戶名和密碼,只要不是admin、888888就一直提示要求重新輸入,如果正確則提登錄成功.1~100之間的整數(shù)相加,得到累加值大于20的當(dāng)前數(shù),continue,立即結(jié)果本次循環(huán),判斷循環(huán)條件,如果成立,則進(jìn)入下一次循環(huán),否則退出循環(huán).舉例:運(yùn)動(dòng)員跑步喝水的例子

43、,練習(xí),練習(xí)1:用 while continue實(shí)現(xiàn)計(jì)算1到100(含)之間的除了能被7整除之外所有整數(shù)的和。,小節(jié),順序結(jié)構(gòu):語句順序執(zhí)行 分支結(jié)構(gòu):語句在滿足條件下執(zhí)行if, if-else, if-else if, switch-case 表1?表2 :表3(三元) 循環(huán)結(jié)構(gòu):語句在滿足條件下循環(huán)執(zhí)行多次while, do-while, for跳轉(zhuǎn)語句break, continue,goto,枚舉\常

44、量\結(jié)構(gòu),確定數(shù)量、確定值的幾個(gè)取值:東西南北、男女、上中下。,enum Gender{male,female}enum QQStatus{online,offline,hidden},枚舉的用法,QQStatus status = QQStatus.online;和用字符串比起來,用枚舉的好處就是限定了變量的取值范圍,程序處理起來更方便。,const 類型 常量名 = 常量值,static void Main(string[]

45、args){ const int PI = 3.14; PI = 3.20;},字符串與枚舉的轉(zhuǎn)換,public enum Gender{ male,famale}//……Console.WriteLine("你的性別:{0}.",Gender.male.ToString());,(Gender)(Enum.Parse( typeof(Gender),&qu

46、ot;male");,每一個(gè)值都對(duì)應(yīng)一個(gè)數(shù)字典型的枚舉類型:MessageBox.Show的參數(shù)(后面會(huì)學(xué)到),結(jié)構(gòu)體,為什么要使用結(jié)構(gòu),例如c#中Color Point都是結(jié)構(gòu),訪問修飾符 struct 結(jié)構(gòu)名{ 定義結(jié)構(gòu)成員},public struct Person{ public string Name; public int Age; public s

47、tring Hobby; public int Popularity; public void SayHi() { // …. }},練習(xí):,1 定義一個(gè)結(jié)構(gòu)叫MyColor,有三個(gè)成員,分別為red,green,blue聲明一個(gè) MyColor類型的變量,并對(duì)其成員賦值.使MyColor可以表示成一個(gè)紅色.2 定義一個(gè)結(jié)構(gòu)類型Person,有三個(gè)成員,分

48、別為姓名,性別,年齡聲明兩個(gè)Person類型的變量,分別表示 張三 男 18歲/ 小蘭 女 16歲,數(shù)組,一次語文測(cè)試后,老師讓班長(zhǎng)統(tǒng)計(jì)每一個(gè)學(xué)生的成績(jī)并計(jì)算全班(全班共60人)的平均成績(jī),然后把所有成績(jī)顯示出來.如何聲明變量?好的解決方法,使用數(shù)組.,數(shù)組,保存多個(gè)值。幾乎任意類型都可以聲明數(shù)組。,int[] nums = {5,3,8},int[] nums = new int[3],int[] nums = new int

49、[3]{5,3,8}//個(gè)數(shù)和聲明數(shù)必須一致int[] nums = new int[5]{5,3,8}//錯(cuò)誤int[] nums = new int[]{5,3,8}//正確,可以省略數(shù)組個(gè)字使用索引器訪問指定編號(hào)位置的元素,訪問數(shù)組元素:nums[0]、nums[1]。索引從0開始。取到的元素的類型就是數(shù)組元素的類型。還可以對(duì)數(shù)組元素進(jìn)行賦值,數(shù)組的聲明數(shù)組的賦值與取值常見問題:求平均值,求最大值,求和,排序,練習(xí):,練

50、習(xí)1:從一個(gè)整數(shù)數(shù)組中取出最大的整數(shù)練習(xí)2:計(jì)算一個(gè)整數(shù)數(shù)組的所有元素的和。練習(xí)3:將一個(gè)字符串?dāng)?shù)組輸出為|分割的形式,比如“梅西|卡卡|鄭大世”練習(xí)4:將一個(gè)整數(shù)數(shù)組的每一個(gè)元素進(jìn)行如下的處理:如果元素是正數(shù)則將這個(gè)位置的元素的值加1,如果元素是負(fù)數(shù)則將這個(gè)位置的元素的值減1,如果元素是0,則不變。練習(xí)5:將一個(gè)字符串?dāng)?shù)組的元素的順序進(jìn)行反轉(zhuǎn)。{“3”,“a”,“8”,“haha”} {“haha”,“8”,“a”,“3”}。

51、第i個(gè)和第length-i-1個(gè)進(jìn)行交換。求平均值,求最大值,求和,try-catch的使用(簡(jiǎn)單用法),try{有可能出現(xiàn)錯(cuò)誤的代碼;}catch{如果try中的代碼出現(xiàn)異常,則進(jìn)去catch中},方法(函數(shù))介紹,函數(shù)就是將一堆代碼進(jìn)行重用的一種機(jī)制。函數(shù)就是一段代碼,這段代碼可能有輸入的值(參數(shù)),可能會(huì)返回值。一個(gè)函數(shù)就像一個(gè)專門做這件事的人,我們調(diào)用它來做一些事情,它可能需要我們提供一些數(shù)據(jù)給它,它執(zhí)行完成

52、后可能會(huì)有一些執(zhí)行結(jié)果給我們。要求的數(shù)據(jù)就叫參數(shù),返回的執(zhí)行結(jié)果就是返回值。string s=Console.ReadLine()就是一個(gè)有返回結(jié)果的函數(shù);Console.WriteLine("hello")就是一個(gè)有執(zhí)行參數(shù)的函數(shù),只有告訴WriteLine被打印的數(shù)據(jù)它才知道如何打?。籭nt i=Convert.ToInt32("22")則是一個(gè)既有參數(shù)又有返回值的函數(shù)。有了函數(shù)寫代碼就像

53、拼積木,C#中的各種各樣的技術(shù)其實(shí)就是通過for、if等這些基礎(chǔ)的語法將不同的函數(shù)按照一定的邏輯組織起來。,方法,方法的定義:[訪問修飾符] [static] 返回值類型 方法名(){方法體;}命名規(guī)則:方法名開頭大寫,參數(shù)名開頭小寫,參數(shù)名、變量名要有意義方法的調(diào)用,對(duì)于靜態(tài)方法,如果在同一個(gè)類中,直接寫名字調(diào)用就行了.return可以立即退出方法.,常用的已經(jīng)學(xué)過的方法:,Console.WriteLine();Co

54、nsole.Write();Console.ReadLine();Console.ReadKey();int.Parse(string);Convert.ToInt32(string);對(duì)于由static修飾的方法,使用:類名.方法名()調(diào)用.如果在類中調(diào)用自己的由static修飾的方法,可以省略類名.,變量的作用域(只講局部變量),閱讀下面的程序,說一下輸出結(jié)果是多少?,變量的作用域,在方法中定義的變量稱為局部變量,其作用

55、域從定義開始,到其所在的大括號(hào)結(jié)束為止.在一個(gè)方法中想要訪問另一個(gè)方法中的變量,怎么辦?兩種解決方法:參數(shù)和返回值舉例:寫一個(gè)方法,判斷一個(gè)年份是否是潤(rùn)年.方法中的return語句導(dǎo)致函數(shù)立即返回。在返回值為void的函數(shù)中return,在返回值非void的函數(shù)中return 值,練習(xí),自己寫一個(gè)方法,1 讀取輸入的整數(shù),定義成方法,多次調(diào)用(如果用戶輸入的是數(shù)字,則返回,否則提示用戶重新輸入)2 還記得學(xué)循環(huán)時(shí)做的那道題

56、嗎?只允許用戶輸入y或n,請(qǐng)改成方法3查找兩個(gè)整數(shù)中的最大值:int Max(int i1,int i2)4計(jì)算輸入數(shù)組的和:int Sum(int[] values),思考:,即然Console.WiteLine()是方法,那么為什么WiteLine的參數(shù)可以是字符串類型,也可以是數(shù)字類型,還可以是布爾類型char類型呢?為什么要有方法的重載?,函數(shù)重載(函數(shù)重名),函數(shù)的重名:static void SayHello(str

57、ing name){ Console.WriteLine("我是{0}",name);}static void SayHello(string name){ Console.WriteLine("I am{0}",name);},static void SayHello(string name){ Console.WriteLine("我是{0}&qu

58、ot;,name);}static void SayHello(int age){ Console.WriteLine("我的年齡{0}",age);},static void SayHello(string name) { Console.WriteLine("我是{0}",name);}static int SayHello(string name){

59、return 10;},static void SayHello(string name){ Console.WriteLine("我是{0}",name);}static void SayHello(string name,string nickname){ Console.WriteLine("我是{0},昵稱是{1}",name,nickname);},構(gòu)成重載的

60、條件:參數(shù)類型不同或者參數(shù)個(gè)數(shù)不同(不嚴(yán)謹(jǐn)?shù)模?,與返回值無關(guān)。,思考:,方法只能返回一個(gè)值,當(dāng)需要返回多個(gè)值時(shí)怎么辦?例如:寫一個(gè)方法,計(jì)算一個(gè)int類型數(shù)組中每個(gè)元素的總和 和 最大值與最小值?,方法的out參數(shù)和ref參數(shù)(*),函數(shù)參數(shù)默認(rèn)是值傳遞的,也就是“復(fù)制一份”,例子:int age=20;IncAge(age);Console.WriteLine("age={0}",age);out則是

61、內(nèi)部為外部變量賦值,out一般用在函數(shù)需要有多個(gè)返回值的場(chǎng)所。例:int.TryParse。,方法的練習(xí):,重復(fù)讓用戶輸入一個(gè)數(shù),判斷該數(shù)是否是質(zhì)數(shù),輸入q結(jié)束?質(zhì)數(shù)的判斷用方法來實(shí)現(xiàn)將一個(gè)字符串?dāng)?shù)組輸出為|分割的形式,比如“梅西|卡卡|鄭大世”(用方法來實(shí)現(xiàn)此功能)用方法實(shí)現(xiàn)找出一個(gè)int類型數(shù)組中最大值和最小值寫一個(gè)方法,實(shí)現(xiàn)MyTryParse的功能,面向?qū)ο蟾拍?世界是由什么組成的:化學(xué)家畫家程序員萬物皆對(duì)象

62、試著描述楊老師和學(xué)生張三的特征和行為,,屬性——對(duì)象具有的各種特征每個(gè)對(duì)象的每個(gè)屬性都擁有特定值例如:楊老師和張三的年齡不一樣.屬性:姓名,性別,年齡屬性的值:方法: 行為,動(dòng)作.執(zhí)行的操作.方法:楊老師的行為,上課. 學(xué)生的行為,學(xué)習(xí),練習(xí):,說說教室里有哪些對(duì)象?這些對(duì)象有哪些屬性和方法?比如:電腦/燈/音箱等等一切皆對(duì)象,找出下列對(duì)象共性,張三(一個(gè)學(xué)生)\楊老師\鄰居售貨員張阿姨\李四的爸爸\李

63、四的媽媽門口停的奔馳S320汽車/老師開的QQ汽車/楊老師的解放牌大貨車類:類是模子,確定對(duì)象將會(huì)擁有的特征(屬性)和行為(方法)類是對(duì)象的類型人類 解俊峰; int a;,類和對(duì)象的區(qū)別,類是抽象的概念,僅僅是模板,比如說:“人”類對(duì)象是一個(gè)你能夠看得到、摸得著的具體實(shí)體"人"類都有:姓名\性別\年齡 屬性,有說話的方法.張三是一個(gè)對(duì)象,他的姓名屬性的值:張三 性別的屬性的值:男 年

64、齡屬性的值:20 張三會(huì)說話對(duì)象可以叫做類的實(shí)例(Instance)類不占內(nèi)存,對(duì)象才占內(nèi)存.,類的定義,定的定義語法:[訪問修飾符] class 類名{成員;......}類中可以包含變量的定義、方法。請(qǐng)練習(xí)定義一個(gè)人類.人類分別用三個(gè)變量來表示姓名性別年齡,有一個(gè)打招呼的方法,有一個(gè)走路的方法.,類的實(shí)例化,類的實(shí)例化,用關(guān)鍵字new 語法: 類 實(shí)例名 = new 類();類的成員的訪問: 實(shí)

65、例名.屬性 實(shí)例名.方法名();字段、方法、屬性(后面講)都可以叫做類的成員Member,它們都需要定義訪問級(jí)別。訪問級(jí)別的用處在于控制成員在哪些地方可以被訪問,這樣達(dá)到面向?qū)ο笾小胺庋b”的目的。訪問修飾符:public private (internal protected),屬性,字段用public修飾的問題.屬性的定義.get;set;屬性是為了保護(hù)與之相對(duì)應(yīng)的字段的.保證對(duì)字段的讀取和賦值符合要求.屬性可分為:讀

66、寫、只讀、只寫。允許外部訪問的變量一定要聲明為屬性。,類的練習(xí):,定義一個(gè)學(xué)生類,有六個(gè)屬性,分別為姓名、性別、年齡、語文、數(shù)學(xué)、英語成績(jī)。有2個(gè)方法:一個(gè)打招呼的方法:介紹自己叫XX,今年幾歲了。是男同學(xué)還是女同學(xué)。兩個(gè)計(jì)算自己總分?jǐn)?shù)和平均分的方法。{顯示:我叫XX,這次考試總成績(jī)?yōu)閄分,平均成績(jī)?yōu)閄分}實(shí)化兩個(gè)對(duì)象并測(cè)試:張三 男 18 三科成績(jī)?yōu)?90 95 80小蘭 女 16 三科成績(jī)?yōu)?95 85 100,類

67、的構(gòu)造方法,構(gòu)造方法用來創(chuàng)建對(duì)象,并且可以在構(gòu)造函數(shù)中對(duì)對(duì)象進(jìn)行初始化。構(gòu)造函數(shù)是用來創(chuàng)建對(duì)象的特殊方法,方法名和類名一樣,沒有返回值,連void都不用。構(gòu)造函數(shù)可以有參數(shù),new對(duì)象的時(shí)候傳遞函數(shù)參數(shù)即可如果不指定構(gòu)造函數(shù),則類有一個(gè)默認(rèn)的無參構(gòu)造函數(shù)。如果指定了構(gòu)造函數(shù),則不再有默認(rèn)的無參構(gòu)造函數(shù),如果需要無參構(gòu)造函數(shù),則需要自己來寫。構(gòu)造函數(shù)可以重載,也就是有多個(gè)參數(shù)不同的構(gòu)造函數(shù)。認(rèn)識(shí)類圖,c#中的類圖和通用類圖,析夠

68、函數(shù)(*) ~,不能在結(jié)構(gòu)中定義析構(gòu)函數(shù)。只能對(duì)類使用析構(gòu)函數(shù)。一個(gè)類只能有一個(gè)析構(gòu)函數(shù)。無法繼承或重載析構(gòu)函數(shù)。無法調(diào)用析構(gòu)函數(shù)。它們是被自動(dòng)調(diào)用的。析構(gòu)函數(shù)既沒有修飾符,也沒有參數(shù)。,練習(xí)1,給前面寫的學(xué)生類添加構(gòu)造方法.使在實(shí)例化學(xué)生類的時(shí)候可以通過構(gòu)造方法對(duì)姓名性別年齡語數(shù)英等屬性賦值,也可以只對(duì)姓名和性別賦值.年齡默認(rèn)為18歲,語數(shù)英成績(jī)默認(rèn)為0分.,練習(xí)2:,寫一個(gè)Ticket類,有一個(gè)距離屬性(本屬性只讀,在構(gòu)

69、造方法中賦值),不能為負(fù)數(shù),有一個(gè)價(jià)格屬性,價(jià)格屬性只讀,并且根據(jù)距離計(jì)算價(jià)格(1元/公里):0-100公里 票價(jià)不打折101-200公里 總額打9.5折201-300公里 總額打9折300公里以上 總額打8折有一個(gè)方法,可以顯示這張票的信息.測(cè)試上面的類.,臨時(shí)加(根據(jù)學(xué)生問題添加),參數(shù)中使用out 和 ref的區(qū)別數(shù)組做為參數(shù)param,命名空間,namespace(命名空間),

70、用于解決類重名問題,可以看做“類的文件夾”。如果代碼和被使用的類在一個(gè)namespace則不需要using。在不同命名空間下的類調(diào)用有兩種方法:寫全稱 命名空間.類名先using引用命名空間,再調(diào)用,字符串的處理,string可以看做是char的只讀數(shù)組。char c = s[1];。例子:遍歷輸出string中的每個(gè)元素。C#中字符串有一個(gè)重要的特性:不可變性,字符串一旦聲明就不再可以改變。所以只能通過索引來讀取指定位置的

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論