第1章 C#代碼編寫基礎_第1頁
第1章 C#代碼編寫基礎_第2頁
第1章 C#代碼編寫基礎_第3頁
第1章 C#代碼編寫基礎_第4頁
第1章 C#代碼編寫基礎_第5頁
已閱讀5頁,還剩75頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

C#程序設計及應用課程總體安排第1章至第6章C#程序設計(10課時)第12章ADO.NET數據庫與實體數據模型(2課時)ASP.NETMVC3框架及應用(12課時)JavaScript應用(4課時)第二部分網絡編程第一部分C#基礎第三部分設計模式

與WPF

面向對象設計模式DesignPattern(4課時)第7章至第8章WPF框架及應用(***)期末考核第一部分平時出勤+期末大作業40%第二部分期末考試60%期末大作業應用.NETMVC架構開發網站

要求:1.網站主題自定 i)至少應用ADO數據庫設計與訪問機制 ii)界面友好 iii)應用JavaScript技術有加分

2.撰寫并于期末考試前提交實驗報告 i)突出亮點(要求不高)

如:搭建VS2015環境+MVC6架構+js技術

3.嚴禁抄襲1.可以使用mysql數據庫,與覃老師的數據庫原理保持同步和統一,要求使用命令行腳本的方式或圖形界面方式建表2.要求在MVC架構的網站中實現多表連接查詢功能,必須實現!3.分組分工要求:不超過3人為一組,合理分工,高效協作。

1)數據庫設計:

a.E-R圖必須體現實體集合之間的聯系!(局部/整體)

b.轉化為關系模式,必須正確設置表與表之間的關系!(主鍵和外鍵,N-N聯系如何轉化為關系模式等需要注意!)

c.規范化,必須至少符合3NF要求!

d.連接數據庫實例

e.在mysql命令行模式或圖形界面下建表!(不用問怎么用,自己嘗試解決!可以查資料或上互聯網搜索!) 2)網站代碼實現

a.model層實現

b.controller和view顯示功能實現,要求必須實現多表連接查詢!

c.view層顯示界面美化,可考慮應用JavaScript。課程設計補充要求:3)測試,要求參考《軟件工程》的標準測試流程實施(由于軟工課程還未講,因此可選)4)撰寫技術文檔,包括: 一.網站總體介紹 二.需求分析

三.整體架構設計

四.數據庫設計(包括:E-R圖(局部和整體)、關系模式、數據表描述) 五.各功能模塊的實現 六.測試 七.心得體會和總結注意:3)和4)可以考慮由一名同學負責即可,測試部分按照要求參考《軟件工程》的標準測試流程實施有加分^_^,在網站中應用JavaScript有加分!課程設計補充要求:教育部普通高等教育十二五國家級規劃教材

《C#程序設計及應用教程》第3版

(包括簡化版:《C#程序設計教程》第3版)

第1章C#代碼編寫基礎7Ch1C#代碼編寫基礎1.1C#語言和VS2012開發環境1.2C#項目的組織1.3控制臺應用程序1.4Windows窗體應用程序1.5WPF和Silverlight應用程序1.6獨立應用程序和瀏覽器運行的應用程序1.1C#語言和VS2012開發環境1.1.1C#語言和.NET框架1.1.2VS2012開發環境91.1.1C#語言和.NET框架C#(讀作“Csharp”)是一種完全面向對象的基于.NET框架的高級程序設計語言。專門為快速編寫在.NET框架上運行的各種應用程序而設計。語法簡潔精心的面向對象設計與Web的緊密結合可靠的安全性與錯誤處理可靠的版本控制技術靈活性和兼容性。1.1.1C#語言和.NET框架Microsoft.NET框架定義Microsoft.NET框架是生成、運行.NET應用程序和WebService的組件庫。即:運行時環境(RuntimeEnvironment)包含公共語言運行庫類庫類庫為開發和運行.NET應用程序提供了各種支持類庫是與公共語言運行庫緊密集成的可重用的類的集合類庫中的每個類均按照功能劃分到不同的命名空間(namespace).NET框架4.5版本的類庫由5000左右個類組成,提供互聯網和企業級應用開發所需要的各種功能。即:體現出了面向組件(對象)編程思想的強大生命力。1.1.1C#語言和.NET框架Microsoft.NET框架特點:一種框架多種語言支持C#語言、VB.NET語言、C++和C++.NET語言、F#語言等高級語言注意用基于.NET框架開發的應用程序,不論使用的是哪種高級語言,均必須在安裝了.NET框架的計算機上才能運行。這種架構與Java應用程序必須由Java虛擬機支持相似。思考如何實現一種框架多種語言?1.1.1C#語言和.NET框架Microsoft.NET框架--公共語言運行庫公共語言運行庫是.NET框架的基礎,為多種編程語言提供統一的運行環境。托管代碼以運行庫為目標的代碼稱為托管代碼,例如C#。非托管代碼不以運行庫為目標的代碼稱為非托管代碼,例如C++。1.1.1C#語言和.NET框架Microsoft.NET框架--公共語言運行庫中間語言IL使用.NET框架提供的編譯器可直接將源程序編譯為.EXE或者.DLL文件,此時編譯出來的程序代碼并不是CPU能直接執行的機器代碼,而是一種中間語言IL代碼。使用中間語言代碼的優點可以實現平臺無關性,即與特定的CPU無關;只要能將某種語言編譯為IL代碼,就可以實現這些語言之間的交互操作。聯想一下Java虛擬機1.1.1C#語言和.NET框架即時編譯執行時CLR會將需要的IL代碼裝入內存,通過JIT編譯器(Just-In-Time)將其編譯成所用平臺的CPU可直接執行的機器代碼。即時編譯并不是一次把整個應用程序全部編譯完,而是只編譯它調用的那部分代碼所在的模塊。為什么要采用即時編譯JIT編譯器可以有效地提高系統的性能。可利用現有CPU和GPU硬件提供的功能即時生成優化后的可執行代碼。1.1.2VS2012開發環境VS2012開發環境1.安裝VS2012速成版(ExpressEdition)--免費專業版(ProfessionalEdition)旗艦版(UltimateEdition)--本書調試用的環境2.安裝VS2012SP33.配置VS2012開發環境的界面風格(可選)深色淺色1.1.2VS2012開發環境1.2C#項目的組織1.2.1命名空間1.2.2using關鍵字1.2.3Main方法1.2.4代碼注釋1.2.5通過斷點調試C#程序1.2.6C#代碼編寫命名規范1.2C#項目的組織C#源文件的擴展名為.cs,如Welcome.cs。一個C#源文件中一般只包含一個類【建議這樣做】,但也可以包含多個類,文件名和類名可以相同【建議相同】,也可以不同【包含多個類時一般不和類名相同】。調試環境下:項目編譯后生成的文件默認保存在項目的bin\Debug文件夾下。發布時應該改為bin\Release。1.2.1命名空間命名空間是對類的一種劃分,類似于目錄和文件的劃分形式。命令空間是一種邏輯劃分,而非物理上的存儲分類。命名空間命名空間命名空間命名空間命名空間命名空間命名空間命名空間類類類………………1.2.1命名空間靜態方法調用命名空間.命名空間….命名空間.類名.靜態方法名(參數,…);例如:System.Console.WritleLine(”HelloWorld!”);實例方法調用①實例化:命名空間…命名空間.類名<實例名>=new類名稱(參數,…)②方法調用:實例名.方法名(參數…)例如:System.Text.StringBuilderb=newStringBuilder(); b.Append(“abcd”);

1.2.2using關鍵字using關鍵字指定引用的命名空間,例如:usingSystem.Windows.Forms;簡化命名空間的層次表達形式,例如:usingWinForm=System.Windows.Forms;作為語句,定義一個范圍。程序執行到“}”時,就會自動釋放font1對象例如:Fontfont1=newFont("Arial",10.0f);using(font1){…}1.2.3Main方法Main方法要求應用程序入口方法名規定為Main。必須聲明為publicstatic返回值只能是void或者int。可以放在任何一個類中。1.2.4代碼注釋常規注釋方式單行注釋:以“//”符號開始,任何位于“//”符號后的本行文字都視為注釋塊注釋:以“/*”開始,“*/”結束。任何介于這對符號之間的文字塊都視為注釋。XML注釋方式“///”符號是一種XML注釋方式在用戶自定義的類型如類、接口、枚舉等或者在其成員上方,或者命名空間的聲明上方連續鍵入3個斜杠字符可以在鍵入方法名和參數的過程中看到用XML注釋的智能提示。1.2.4代碼注釋#region注釋方式#region預處理指令用于給程序段添加邏輯功能注釋,讓某一部分代碼實現的邏輯功能看起來更清晰。被包圍的代碼還可以折疊和展開。舉例:#region程序入口staticvoidMain(string[]args){...}#endregion1.2.5通過斷點調試C#程序斷點調試是編程人員必備素質?。。。±脭帱c查找程序的邏輯錯誤,是常用的手段之一1.設置和取消斷點單擊某代碼行左邊的灰色區域。單擊設置,再次單擊取消設置。鼠標右擊某代碼行,選擇【斷點】

【插入斷點】或者【刪除斷點】。單擊某代碼行,直接按<F9>鍵進行設置或取消設置。2.利用斷點調試程序按<F5>執行到斷<Shift>+<F5>鍵終止調試。<F10>逐過程<F11>逐語句1.2.6C#代碼編寫命名規范類名、方法名和屬性名全部使用Pascal命名法,即所有單詞連寫,每個單詞的第一個字母大寫,其他字母小寫。例如HelloWorld、GetData等。變量名、一般對象名、控件對象名以及方法的參數名全部使用Camel命名法,即所有單詞連寫,但是第一個單詞全部小寫,其他每個單詞的第一個字母大寫。例如:userName、userAge等。如果是私有字段,為了和具有相同名字的屬性名區分,私有的字段名也可以用下劃線(“_”)開頭,例如屬性名為Age,私有字段名可以為age或者_Age。1.3控制臺應用程序1.3.1控制臺應用程序的輸入與輸出1.3.2在控制臺應用程序中輸出格式化數據1.3.1控制臺應用程序的輸入與輸出控制臺輸出Console.Write();把各種類型的數據或對象轉換成字符串寫入標準輸出流Console.WriteLine();與Write的區別:自動輸出回車、換行符(“\r\n”);例如intage=18;strings="abc";Console.Write(age);Console.Write(s);Console.WriteLine(age);Console.WriteLine(s);什么是方法重載?1.3.1控制臺應用程序的輸入與輸出控制臺輸入Console.ReadKey();標準輸入流讀取用戶按下的字符或功能鍵。例如:ConsoleKeyInfoc=Console.ReadKey();Console.ReadLine();從標準輸入流讀取一行字符。例如:

strings=Console.ReadLine();1.3.1控制臺應用程序的輸入與輸出快速鍵入C#代碼方法1:連續按兩次<Tab>鍵方法2:在要插入代碼段的位置處,用鼠標右擊選擇“外側代碼”的辦法插入代碼段。例如:鍵入“for”三個字母后,連續按兩次<Tab>鍵,觀察系統自動插入的代碼段。1.3.2在控制臺應用程序中輸出格式化數據在Console.Write和Console.WriteLine方法中,可直接定義數據轉換為字符串后的輸出格式使用格式化表示時,用“{”和“}”將格式與其他輸出字符區分開Console.WriteLine("格式化表示",參數序列);Console.Write("格式化表示",參數序列);例如:intx=10,y=20,z=30;//輸出10+20+30=60Console.WriteLine("{0}+{1}+{2}={3}",x,y,z,x+y+z);//輸出60=20+30+10Console.WriteLine("{3}={1}+{2}+{0}",x,y,z,x+y+z);1.3.2在控制臺應用程序中輸出格式化數據格式化輸出形式 {N[,M][:格式碼]}N—從零開始的整數,表示第幾個參數。例如{0}表示x,{1}表示y,{2}表示zM—可選參數,整數,表示最小長度。若參數N的長度小于M,就用空格填充;如果M為負,則左對齊;如果M為正,則右對齊;例如:{1,5}表示將參數y的值轉換為字符串后按5位右對齊輸出1.3.2在控制臺應用程序中輸出格式化數據格式化輸出形式格式碼—可選參數,格式化代碼樣式。格式碼:有默認位數,可用整數指定位數;

C—貨幣形式、D—十進制形式、F—固定精度形式、E—指數形式、N—用逗號分隔千位數字、P—百分比形式、X—十六進制形式占位符:0—強制占位符、#—有效占位符例如:{1:00000}輸出結果為00020,即將參數y按5位數字輸出,不夠5位則在左邊補零,超過5位按實際位數輸出注意兩種特殊用法:如果恰好在格式中也要使用大括號,可以用連續的兩個大括號表示一個大括號,例如:”{{、}}”如果希望格式中的字符或字符串包含與格式符相同的字符,但是又希望讓其原樣顯示時,可以用單引號將其括起來。1.3.2在控制臺應用程序中輸出格式化數據利用string.Format方法格式化字符串先用String.Format方法拼接字符串,再用WriteLine方法輸出;既可以在控制臺應用程序中使用,也可以在其他應用程序中(WinForm、WPF等)使用。例如:inti=123;//d6表示不夠6位左邊補零strings=string.Format("{0:d6}",i); Console.WriteLine(s);//結果為0001231.3.2在控制臺應用程序中輸出格式化數據3.利用ToString方法格式化字符串如果是一個變量,使用ToString方法更簡單。Console、WinForm、WPF、Silverlight、ASP.NET等應用程序都可以利用string.Format方法或者ToString方法定義數據的格式。例如:intn1=12;strings1=n1.ToString("X4");//X格式表示用十六進制輸出。結果為:000Cstrings2=n1.ToString("d5");//結果:00012

4.控制臺應用程序示例【例1-1】演示控制臺應用程序的基本設計方法,以及如何在一個解決方案中包含多個應用程序項目。該例子的功能是讓用戶從鍵盤輸入任意兩個整數x和y,程序自動計算這兩個數的乘積(z=x*y),并將計算結果z在屏幕上顯示出來這個例子雖然簡單,但卻能讓我們快速了解基本的應用程序編程思路和方法。(1)運行VS2012,單擊【新建項目】按鈕,在彈出的窗體中,選擇【控制臺應用程序】模板。將【名稱】改為ConsoleExamples,將【位置】改為希望存放的文件夾位置(截屏為D:\V3CSharp\ch01),將【解決方案名稱】改為ch01。單擊【確定】按鈕。4.控制臺應用程序示例(2)觀察【解決方案資源管理器】中的項目組織,此時會發現在ch01解決方案下有一個ConsoleExamples項目。(3)將Program.cs的Main方法改為下面的代碼。4.控制臺應用程序示例staticvoidMain(string[]args){Console.Write("請輸入x和y(例如12,15),然后按回車鍵:");strings=Console.ReadLine();string[]a=s.Split(',');intx=int.Parse(a[0]);inty=int.Parse(a[1]);intz=x*y;Console.WriteLine("x*y={0}",z);Console.WriteLine("請按任意鍵結束程序。");Console.ReadKey();}(4)按<F5>鍵調試運行。效果如下:(5)按任意鍵結束程序運行,然后退出VS2012開發環境,觀察解決方案文件夾下生成的所有文件和子目錄,以及子目錄下包含的文件。此時可發現在ch01目錄下,有一個ch01.sln文件,以后需要再次打開這個解決方案時,直接雙擊該文件即可。4.控制臺應用程序示例(6)觀察bin\Debug子目錄下的文件,可發現在該文件夾下有一個ConsoleExamples.exe文件,這就是項目生成的可執行文件。(7)雙擊該文件可直接運行該程序,其他的文件不需要。4.控制臺應用程序示例4.控制臺應用程序示例下面我們將其改為在DLL(動態鏈接庫)文件中實現運算。(8)雙擊ch01.sln打開解決方案。(9)在【解決方案資源管理器】中,鼠標右擊解決方案名,選擇【添加】【新建項目】命令,在彈出的窗體中,選擇【類庫】模板,將【名稱】改為ClassLibraryExample,然后單擊【確定】按鈕。4.控制臺應用程序示例(10)在“解決方案資源管理器”中,將Class1.cs改名為MyClass.cs,然后將代碼改為下面的內容。4.控制臺應用程序示例(11)鼠標右擊解決方案名,選擇“重新生成解決方案”,此時在ClassLibraryExample項目的bin\Debug文件夾下即生成了ClassLibraryExample.dll文件。4.控制臺應用程序示例(12)在【解決方案資源管理器】中,鼠標右擊ConsoleExamples項目,在快捷菜單中選擇【項目依賴項】命令,在彈出的對話框中,勾選ClassLibraryExample選項,單擊【確定】按鈕。4.控制臺應用程序示例(13)鼠標右擊ConsoleExamples項目的【引用】,選擇【添加引用】命令,在彈出的對話框中,勾選ClassLibraryExample選項,單擊【確定】按鈕。4.控制臺應用程序示例(14)將Main方法的intz=x*y;用下面的語句替換。intz=ClassLibraryExample.MyClass.Multiplication(x,y);(15)按<F5>鍵運行應用程序,觀察運行結果。(一樣嗎?)4.控制臺應用程序示例(16)再次觀察ConsoleExamples項目目錄下的bin\Debug子目錄下的文件,此時會發現該子目錄下既有ConsoleExamples.exe文件,又有ClassLibraryExample.dll文件。到此,我們了解了用C#調用dll文件功能的基本用法。請同學們體會和比較下Java與C#語言在編程環境、封裝和調用類包等方面有哪些異同。1.4Windows窗體應用程序(自學)1.4.1Windows窗體應用程序的特點1.4.2Windows窗體應用程序的啟動和退出1.4.3窗體的創建、顯示、隱藏和關閉1.4.4消息框(MessageBox)1.4.5利用WinForm控件實現輸入和輸出1.4.6錯誤提示(ErrorProvider)1.4.1Windows窗體應用程序的特點Windows窗體應用程序是在WindowsXP操作系統上開發客戶端應用程序的主要開發模型,這種開發模型利用GDI+和操作系統交互。Windows窗體應用程序現狀WinForm已有多年的歷史,其技術高度成熟,如果開發不包含動畫、多媒體(音頻視頻)以及三維圖形等高級功能的程序,使用WinForm應用程序可獲得比較高的開發效率和運行性能。。1.4.1Windows窗體應用程序的特點GDI(GraphicsDeviceInterface,圖形設備接口)是Windows2000操作系統內核提供的功能,提供二維圖形和文本處理功能以及功能有限的圖像處理功能沒有三維圖形和音頻視頻等多媒體處理功能。隨著Windows2000操作系統退出歷史舞臺,使用GDI技術的開發人員也越來越少。GDI+是WindowsXP操作系統內核提供的功能,在GDI的基礎上增加了一套基于.NET框架的編程接口,從而讓我們能使用C#快速實現窗體界面繪制和繪圖功能。GDI+沒有GPU硬件加速功能,所有圖形圖像處理功能全部都是靠軟件來實現。1.4.2Windows窗體應用程序的啟動和退出窗體應用程序的啟動和停止使用Application類提供的靜態方法來啟動、停止應用程序Run方法:用于在當前線程上啟動應用程序消息循環,并顯示窗體。Exit方法:用于停止消息循環。觀察Program.cs中的Main方法。1.4.3窗體的創建、顯示、隱藏和關閉如何在代碼中打開一個新窗體Form2fm=newForm2();fm.Show();

或者Form2fm=newForm2();fm.ShowDialog();觀察Show與ShowDialog之間的區別如何在代碼中隱藏一個窗體“無模式”窗口:調用Hide方法隱藏。this.Hide();隱藏其他窗體可以調用實例名的Hide方法,例如:myForm.Hide();窗體

溫馨提示

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

評論

0/150

提交評論