項(xiàng)目4 霓虹燈與跑馬燈_第1頁(yè)
項(xiàng)目4 霓虹燈與跑馬燈_第2頁(yè)
項(xiàng)目4 霓虹燈與跑馬燈_第3頁(yè)
項(xiàng)目4 霓虹燈與跑馬燈_第4頁(yè)
項(xiàng)目4 霓虹燈與跑馬燈_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

霓虹燈與跑馬燈項(xiàng)目四高等院校公共課系列精品教材C#程序設(shè)計(jì)熟練掌握數(shù)組的定義、賦值和引用了解結(jié)構(gòu)和枚舉學(xué)會(huì)使用Random類生成隨機(jī)數(shù)學(xué)會(huì)使用Color類給控件設(shè)置背景顏色練習(xí)用代碼動(dòng)態(tài)生成控件技能目標(biāo)WinForm中的控件不但可以用鼠標(biāo)從工具箱拖入窗體,還可以使用代碼動(dòng)態(tài)生成批量控件,同時(shí)用代碼設(shè)置控件的常用屬性,本項(xiàng)目將通過(guò)模擬霓虹燈來(lái)練習(xí)數(shù)組的使用和以及代碼生成控件的方法,跑馬燈項(xiàng)目則是借鑒圖片移動(dòng)項(xiàng)目的設(shè)計(jì)思路,將單個(gè)圖片移動(dòng)借助數(shù)組實(shí)現(xiàn)多個(gè)控件的移動(dòng)。項(xiàng)目導(dǎo)讀任務(wù)1知識(shí)點(diǎn)任務(wù)2霓虹燈項(xiàng)目案例任務(wù)3跑馬燈項(xiàng)目案例知識(shí)梳理知識(shí)點(diǎn)任務(wù)1一、數(shù)組二、結(jié)構(gòu)三、枚舉知識(shí)梳理任務(wù)引入:除了整型、實(shí)型、字符型等基本數(shù)據(jù)類型之外,C#中用什么來(lái)描述一組數(shù)據(jù)呢?答案是:數(shù)組。有時(shí)為了更好地描述一個(gè)事物的多種不同屬性,還會(huì)用到結(jié)構(gòu),如:學(xué)生信息由學(xué)號(hào)、姓名、性別、班級(jí)、成績(jī)等組成,可以定義一個(gè)Student結(jié)構(gòu)。還有的時(shí)候要描述一系列不同的事物,可以使用枚舉,如:星期由星期一、星期二……星期日組成,可以定義一個(gè)WeekDay枚舉。任務(wù)分析:數(shù)組、結(jié)構(gòu)和枚舉都屬于特殊的類型,但是它們?cè)贑#語(yǔ)言編程中使用非常廣泛,尤其是應(yīng)用數(shù)組對(duì)一組相同類型的數(shù)據(jù)進(jìn)行操作時(shí)十分方便。任務(wù)1知識(shí)點(diǎn)一、數(shù)組數(shù)組是一個(gè)存儲(chǔ)相同類型元素的固定大小的順序集合。數(shù)組是用來(lái)存儲(chǔ)數(shù)據(jù)的集合,通常認(rèn)為數(shù)組是一個(gè)同一類型變量的集合。任務(wù)1知識(shí)點(diǎn)(一)數(shù)組的定義數(shù)組是一組使用數(shù)字索引的對(duì)象,這些對(duì)象同屬于一種類型。數(shù)組本身是System.Array的實(shí)例化對(duì)象。C#數(shù)組屬于引用類型,對(duì)于指向數(shù)組的引用,將從托管堆給它分配內(nèi)存。具體的數(shù)組元素是根據(jù)其類型分配內(nèi)存空間的。數(shù)組的一般形式為:type[]arrayName;(二)數(shù)組的初始化和賦值聲明一個(gè)數(shù)組不會(huì)在內(nèi)存中初始化數(shù)組。當(dāng)初始化數(shù)組變量時(shí),可以給賦值數(shù)組。數(shù)組是一個(gè)引用類型,所以需要使用new關(guān)鍵字來(lái)創(chuàng)建數(shù)組的實(shí)例。任務(wù)1知識(shí)點(diǎn)(三)數(shù)組的引用要讓數(shù)組發(fā)揮作用,必須訪問(wèn)其元素,元素是通過(guò)帶索引的數(shù)組名稱來(lái)訪問(wèn)的,這是通過(guò)把元素的索引放置在數(shù)組名稱后的方括號(hào)中來(lái)實(shí)現(xiàn)的。要訪問(wèn)多維數(shù)組或交錯(cuò)數(shù)組的元素,需要提供多個(gè)索引位置。所有數(shù)組的索引下標(biāo)都是從0開始的。二、結(jié)構(gòu)結(jié)構(gòu)是使用struct關(guān)鍵字定義的,與類相似,都表示可以包含數(shù)據(jù)成員和函數(shù)成員的數(shù)據(jù)結(jié)構(gòu)。一般情況下,很少使用結(jié)構(gòu)(也并不建議使用結(jié)構(gòu)),但作為.NETFramework系統(tǒng)中的一個(gè)基本架構(gòu),有必要了解一下的。結(jié)構(gòu)是一種值類型,并且不需要堆分配。結(jié)構(gòu)的實(shí)例化操作可以不使用new運(yùn)算符。所有結(jié)構(gòu)都直接繼承自System.ValueType。結(jié)構(gòu)是用來(lái)代表一個(gè)記錄,假如我們想了解圖書館中書的動(dòng)態(tài),可以關(guān)心每本書的以下屬性:TitleAuthorSubjectBookID任務(wù)1知識(shí)點(diǎn)C#中的結(jié)構(gòu)有以下特點(diǎn):結(jié)構(gòu)可帶有方法、字段、索引、屬性、運(yùn)算符方法和事件。結(jié)構(gòu)可定義構(gòu)造函數(shù),但不能定義析構(gòu)函數(shù)。但是,不能為結(jié)構(gòu)定義默認(rèn)的構(gòu)造函數(shù)。與類不同,結(jié)構(gòu)不能繼承其他的結(jié)構(gòu)或類。結(jié)構(gòu)不能作為其他結(jié)構(gòu)或類的基礎(chǔ)結(jié)構(gòu)。結(jié)構(gòu)可實(shí)現(xiàn)一個(gè)或多個(gè)接口。結(jié)構(gòu)成員不能指定為abstract、virtual或protected。使用New操作符創(chuàng)建一個(gè)結(jié)構(gòu)對(duì)象時(shí),會(huì)調(diào)用適當(dāng)?shù)臉?gòu)造函數(shù)來(lái)創(chuàng)建結(jié)構(gòu)。如果不使用New操作符,只有在所有的字段都被初始化之后,字段才被賦值,對(duì)象才被使用。任務(wù)1知識(shí)點(diǎn)類和結(jié)構(gòu)有以下幾個(gè)主要的不同點(diǎn):類是引用類型,結(jié)構(gòu)是值類型。結(jié)構(gòu)不支持繼承。結(jié)構(gòu)不能聲明默認(rèn)的構(gòu)造函數(shù)。任務(wù)1知識(shí)點(diǎn)三、枚舉枚舉是一種創(chuàng)建數(shù)值類型(取值可能是預(yù)定義的)的機(jī)制,對(duì)于其中每個(gè)可能取值,都有一個(gè)有意義的名稱。通過(guò)定義一組有效值,并給它們指定名稱,枚舉能夠輕松地表示真實(shí)世界的概念和信息,并讓編譯器能夠理解底層值,而程序員能夠理解表層含義(名稱)??梢哉J(rèn)為枚舉定義了一組離散的常量,這些常量只能通過(guò)“容器”名才能訪問(wèn),基本訪問(wèn)格式:枚舉名.名稱。枚舉類型定義的語(yǔ)法格式如下:訪問(wèn)修辭符enum枚舉名:基礎(chǔ)類型{//枚舉成員列表}任務(wù)1知識(shí)點(diǎn)霓虹燈項(xiàng)目案例任務(wù)2一、創(chuàng)建項(xiàng)目二、界面布局三、編寫代碼知識(shí)梳理任務(wù)引入:在圖片移動(dòng)和交通燈項(xiàng)目中,我們用到的控件都是用鼠標(biāo)拖動(dòng)放入windows窗體的,那么我們能不能用代碼來(lái)動(dòng)態(tài)生成控件呢?——當(dāng)然可以。霓虹燈是通過(guò)各種顏色的協(xié)調(diào)變化共同完成功能的有序開展,單個(gè)顏色無(wú)法完成霓虹燈的功能,每一個(gè)顏色都是休戚與共的,只有這樣才能順利實(shí)現(xiàn)預(yù)定的功能,完成既定的任務(wù)。任務(wù)分析:其實(shí),在我們用鼠標(biāo)拖動(dòng)來(lái)添加控件時(shí),VS2013系統(tǒng)會(huì)自動(dòng)幫我們生成相應(yīng)的代碼,這些自動(dòng)生成的代碼都放在Form1.Designer.cs文件中,我們可以通過(guò)查看該文件中的代碼,來(lái)學(xué)習(xí)用代碼生成控件的語(yǔ)句。同時(shí)為了方便控制整個(gè)霓虹燈的位置和顏色,我們采用數(shù)組來(lái)存放霓虹燈。任務(wù)2霓虹燈項(xiàng)目案例一、創(chuàng)建項(xiàng)目啟動(dòng)VS2013以后,選擇“文件”菜單——“新建”——“項(xiàng)目”打開“新建項(xiàng)目”對(duì)話框,確認(rèn)左側(cè)目錄樹選中的是“VisualC#”選項(xiàng),然后選擇“Windows窗體應(yīng)用程序”,瀏覽到項(xiàng)目的存放目錄“D:\CSharp”,名稱設(shè)置為“WNeonLight”。任務(wù)2霓虹燈項(xiàng)目案例二、界面布局本項(xiàng)目主要來(lái)模擬霓虹燈效果,可以實(shí)現(xiàn)紅色轉(zhuǎn)一圈、順時(shí)針轉(zhuǎn)、逆時(shí)針轉(zhuǎn)三種變換方式,界面布局如圖所示任務(wù)2霓虹燈項(xiàng)目案例主要控件的屬性和事件設(shè)置如表所示。任務(wù)2霓虹燈項(xiàng)目案例三、編寫代碼前臺(tái)界面(Form.cs[設(shè)計(jì)])設(shè)置完畢之后,右擊窗體“Form1”——“查看代碼”可以進(jìn)入后臺(tái)代碼(Form.cs)的編寫界面,或者右擊解決方案資源管理器的文件“Form1.cs”——“查看代碼”也可以進(jìn)入代碼編寫界面。1.定義窗體的公共變量(即類Form1的字段)2.編寫“生成一圈Label”按鈕的單擊事件綁定的方法btnCreate_Click(),該方法是在設(shè)計(jì)界面雙擊控件btnCreate自動(dòng)生成的。3.編寫timer1_Tick()方法,該方法是在設(shè)計(jì)界面雙擊控件timer1自動(dòng)生成的,用多分支選擇語(yǔ)句swith實(shí)現(xiàn)三種不同變換方式的霓虹燈。任務(wù)2霓虹燈項(xiàng)目案例4.分別編寫“紅色轉(zhuǎn)一圈”、“順時(shí)針”和“逆時(shí)針”三個(gè)按鈕的單擊事件綁定的方法btnRed_Click()、btnClockwise_Click()和btnAntiClockwise_Click(),這三個(gè)方法都是在設(shè)計(jì)界面雙擊按鈕控件自動(dòng)生成的,用于完成三種不同的變換方式的切換。任務(wù)2霓虹燈項(xiàng)目案例跑馬燈項(xiàng)目案例任務(wù)3一、創(chuàng)建項(xiàng)目二、界面布局三、編寫代碼知識(shí)梳理任務(wù)引入:生活中的霓虹燈大多數(shù)都是通過(guò)不斷改變顏色達(dá)到絢麗多彩的展示效果,那么還有沒(méi)有其他形式的霓虹燈呢?當(dāng)然有,還有一種霓虹燈是通過(guò)改變每一個(gè)燈的位置來(lái)實(shí)現(xiàn)變換效果的,那就是跑馬燈。跑馬燈是通過(guò)各種顏色的協(xié)調(diào)變化共同完成功能的有序開展,單個(gè)顏色無(wú)法完成跑馬燈的功能,每一個(gè)顏色必須互相協(xié)作才能完成整個(gè)功能。任務(wù)分析:用代碼動(dòng)態(tài)生成一組控件以后,參考圖片移動(dòng)的設(shè)計(jì)思路,讓它們沿著窗體轉(zhuǎn)起來(lái),就實(shí)現(xiàn)了跑馬燈的效果,同時(shí),如果加上鍵盤操作的話,就變成了貪吃蛇,為下一個(gè)貪吃蛇項(xiàng)目做準(zhǔn)備。任務(wù)3跑馬燈項(xiàng)目案例一、創(chuàng)建項(xiàng)目同一個(gè)解決方案可以創(chuàng)建多個(gè)項(xiàng)目,在霓虹燈項(xiàng)目的解決方案資源管理器中,右擊“解決方案WNeonLight”,選擇“添加”——“新建項(xiàng)目”打開“新建項(xiàng)目”對(duì)話框,確認(rèn)左側(cè)目錄樹選中的是“VisualC#”選項(xiàng),然后選擇“Windows窗體應(yīng)用程序”,瀏覽到項(xiàng)目的存放目錄“D:\CSharp\WNeonLight”,名稱設(shè)置為“WHorseRaceLamp”。創(chuàng)建完畢以后,在解決方案WNeonLight中共有兩個(gè)項(xiàng)目WNeonLight和WHorseRaceLamp,如圖所示任務(wù)3跑馬燈項(xiàng)目案例二、界面布局本項(xiàng)目也是一種霓虹燈效果,動(dòng)態(tài)生成五個(gè)Label,然后結(jié)合圖片移動(dòng)項(xiàng)目的設(shè)計(jì)思路,讓這五個(gè)Label沿著panel控件邊緣轉(zhuǎn)圈,或者用鍵盤來(lái)控制運(yùn)動(dòng)方向,因此也叫跑馬燈。界面布局如圖所示任務(wù)3跑馬燈項(xiàng)目案例主要控件的屬性和事件設(shè)置如表所示。任務(wù)3跑馬燈項(xiàng)目案例三、編寫代碼前臺(tái)界面(Form.cs[設(shè)計(jì)])設(shè)置完畢之后,右擊窗體“Form1”——“查看代碼”可以進(jìn)入后臺(tái)代碼(Form.cs)的編寫界面,或者右擊解決方案資源管理器的文件“Form1.cs”——“查看代碼”也可以進(jìn)入代碼編寫界面。1.定義枚舉類型Direction(在類Form1的上面,命名空間里面,和類Form1是平行的)2.定義窗體的公共變量(即類Form1的字段)3.編寫“生成5個(gè)Label”按鈕的單擊事件綁定的方法btnCreate_Click(),該方法是在設(shè)計(jì)界面雙擊控件btnCreate自動(dòng)生成的。4.編寫timer1_Tick()方法,該方法是在設(shè)計(jì)界面雙擊控件timer1自動(dòng)生成的,讓5個(gè)Label沿著panel1的邊緣順時(shí)針轉(zhuǎn)圈,該方法默認(rèn)每隔100毫秒執(zhí)行一次,如果想調(diào)整速度,可以修改timer1控件的Interval屬性。任務(wù)3跑馬燈項(xiàng)目案例5.編寫“跑起來(lái)”按鈕的單擊事件綁定的方法btnRun_Click(),該方法是在設(shè)計(jì)界面雙擊控件btnRun自動(dòng)生成的,用于啟動(dòng)timer1,讓5個(gè)Label沿著panel1的邊緣順時(shí)針轉(zhuǎn)圈起來(lái)。6.編寫timer2_Tick()方法,該方法是在設(shè)計(jì)界面雙擊控件timer2自動(dòng)生成的,讓5個(gè)Label在panel1中動(dòng)起來(lái),其體運(yùn)動(dòng)方向根據(jù)字段dir的變化而改變,該方法默認(rèn)每隔100毫秒執(zhí)行一次,如果想調(diào)整速度,可以修改timer1控件的Interval屬性。7.編寫按鈕btnRun的鍵盤按下事件綁定的方法btnRun_KeyDown(),該方法是在設(shè)計(jì)界面選中控件btnRun,點(diǎn)擊屬性窗口中的“事件”按鈕,然后找到KeyDown事件,雙擊KeyDown事件的值添加的。8.修改“跑起來(lái)”按鈕的單擊事件綁定的方法btnRun_Click(),該方法是在設(shè)計(jì)界面雙擊控件btnRun自動(dòng)生成的,用于啟動(dòng)timer2,讓5個(gè)Label動(dòng)起來(lái),用鍵盤控制Label的運(yùn)動(dòng)方式。任務(wù)3跑馬燈項(xiàng)目案例本項(xiàng)目是在一個(gè)解決方案中創(chuàng)建了霓虹燈

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論