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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論