《C#語言程序設計》實-驗-報-告_第1頁
《C#語言程序設計》實-驗-報-告_第2頁
《C#語言程序設計》實-驗-報-告_第3頁
《C#語言程序設計》實-驗-報-告_第4頁
《C#語言程序設計》實-驗-報-告_第5頁
已閱讀5頁,還剩15頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、精選優質文檔-傾情為你奉上C#語言程序設計實 驗 報 告 學院: 信息學院 專業: 計算機科學與技術 指導教師: 報告人: 學號: 班級: 實驗一 簡單編程練習一、目的與要求1、熟悉Visual Studio.NET集成開發環境(IDE)2、熟悉C#源程序語言的編輯、編譯和運行過程3、能夠創建、編譯和執行一個簡單的C#程序二、實驗儀器Windows操作系統,Microsoft Visual Studio .NET 2010。三、實驗內容1.開發一個簡單的控制臺應用程序,該程序完成一段字符的輸入,然后輸出該字符串。2.開發一個簡單的Windows應用程序,該程序通過鼠標單擊按鈕在文本框中顯示一行

2、字符串。四、實驗過程及結果1.控制臺應用程序 (1)啟動.NET 2010。 (2)在“文件”菜單上找到“新建”->“項目”,打開“新建項目”對話框。 (3)在模板一欄選擇“控制臺應用程序”,在名稱一欄輸入項目的名稱。 (4)位置一欄內指定的是項目存放的目錄,可以更改為自己定制的目錄,也可以使用系統提供的默認路徑。 (5)按確定以后用下面的代碼替換Program.cs已有的所有代碼:using System;namespace TestConsole class Program static void Main() string str; System.Console.WriteLine

3、("Please input a string !"); str = System.Console.ReadLine(); System.Console.WriteLine(str); (6)運行應用程序(ctrl + F5)。2.Windows應用程序(1)新建項目,選擇Windows應用程序,輸入名稱為:TestWindows。(2)在主窗體上放置一個TextBox和一個Button。(3)選中TextBox,展開它的屬性面板(單擊鼠標右鍵,選擇屬性),將它的Name屬性設置為txtContent,Text屬性設置為空。(4)選中Button,展開它的屬性面板,將它的N

4、ame屬性設置為btnType,Text屬性設置為“顯示”。(5)在窗體上鼠標雙擊按鈕,在生成的事件處理方法內添加如下的代碼:txtContent.Text = "hello!"(6)運行應用程序(ctrl + F5)。五、實驗總結C#較其他語言比如Java,在可視化界面方面更方便。采用拖拽式的界面設計操作,對新手來說更好入門。除了界面其他方面和其他語言還有一定區別。1、必須借助 .NET Framework類庫實現2、必須定義類3、類的代碼主要由方法組成4、C#程序中的方法的結構由頭部和方法體構成5、C#程序的輸入與輸出操做:需要借助Console的類方法(ReadLin

5、e、WriteLine)實驗二 控制結構編程練習一、目的與要求1、掌握分支結構語句的語法書寫格式2、掌握循環結構語句的語法書寫格式3、綜合利用各種結構語句完成特定的任務二、實驗儀器Windows操作系統,Microsoft Visual Studio .NET 2010。三、實驗內容1. 開發一個簡單的控制臺應用程序,求1!+2!+3!+10!。2. 開發一個簡單的控制臺應用程序,該程序完成一個一維數組排序編程,然后輸出該數組。四、實驗過程及結果1. 1!+2!+3!+10! (1)啟動.NET 2010。 (2)在“文件”菜單上找到“新建”->“項目”,打開“新建項目”對話框。 (3)

6、在模板一欄選擇“控制臺應用程序”,在名稱一欄輸入項目的名稱。(4)按確定以后用下面的代碼替換Program.cs已有的所有代碼:using System;class Ex2public static void Main()int i,k,m=1,sum=0;for (i=1;i<=10;i+)for(k=1;k<=i;k+)m=m*k;sum=sum+m;m=1;Console.WriteLine("1!+2!+3!+10!=0",sum);(5)運行應用程序(ctrl + F5)。2. 一維數組排序編程(1)啟動.NET 2010。 (2)在“文件”菜單上找到

7、“新建”->“項目”,打開“新建項目”對話框。 (3)在模板一欄選擇“控制臺應用程序”,在名稱一欄輸入項目的名稱。(4)按確定以后用下面的代碼替換Program.cs已有的所有代碼:using System;namespace shuzuclass maopopublic static void Main()int a=new int10;Console.WriteLine("請輸入10個整數");for(int i=0;i<10;i+)Console.Write("第0個數:",i+1);ai=Int32.Parse(Console.Rea

8、dLine();Console.WriteLine("排序前的十個數是:");for(int i=0;i<10;i+)Console.Write("0t",ai);Console.WriteLine();int temp;/臨時變量for(int j=0;j< 9;j+)for(int i=0;i<9-j;i+)if(ai>ai+1)temp=ai; ai=ai+1;ai+1=temp;for (int i=0;i<10;i+)Console.WriteLine("排序后的結果是:");Console.W

9、rite("0t",ai);Console.WriteLine();(5)運行應用程序(ctrl + F5)。五、實驗總結循環就是重復執行一些語句。這個技術使用起來非常方便,因為可以對操作重復任意多次,而無需每次都編寫相同的代碼。while循環非常類似于do循環,但有一個重要的區別:while語句中的布爾測試是在循環開始時進行,而不是最后。如果測試結果為false,循環代碼將不會被執行,而直接執行循環后面的代碼。分支是控制下一步要執行哪些代碼的過程。要跳轉的代碼是由某個條件語句來控制的,這個條件語句使用布爾邏輯,對測試值和一個或多個可能的值進行比較。 C#中的分支結構有以下

10、三種: 1、三元運算 其語法如下: <條件運算>?<運算真的結果>:<運算假的結果>2、if語句 其最簡單語法: if(<條件運算>) <運算真的結果> 當然也可以將else語句和if語句合并使用,指定其他的代碼。如果<條件運算>的結果為false時就執行else語句。其語法結構如下: if(<條件運算>) <運算真的結果> else <運算假的結果> 3、我們知道當進行的比較少的情況下用if與else語句是很方便的,但是如果我們進行很多的比較時,就應該考慮使用另一種分支結構:switc

11、h語句。實驗三 類設計練習一、目的與要求1、掌握C#語言定義類的方法。2、掌握派生類的設計方法。3、理解運行時多態的含義。二、實驗儀器Windows操作系統,Microsoft Visual Studio .NET 2010。三、實驗內容1. 依次定義Rectangle, Circle, Cylinder三個類,Circle類繼承于Rectangular,Cylinder繼承于Circle。在Rectangle類中需要定義屬性,虛擬的Area()方法,虛擬的Name屬性,重寫ToString()方法;在Circle類中需要定義屬性,重寫Area()方法,重寫Name屬性,重寫ToString(

12、)方法,定義周長方法。在Cylinder類中要定義Volume方法,重寫Area,ToString方法,Name屬性。 定義一個Test類,加入主方法,在主方法中分別定義三個類的對象和實例;定義Rectangle類的對象數組,將數組元素分別引用到剛定義的三個實例上,然后通過基類對象調用重寫的方法。四、實驗過程及結果 (1)啟動.NET 2010。 (2)在“文件”菜單上找到“新建”->“項目”,打開“新建項目”對話框。 (3)在模板一欄選擇“控制臺應用程序”,在名稱一欄輸入項目的名稱。using System;using System.Collections.Generic;using

13、System.Linq;using System.Text;namespace ConsoleApplication2 public class Rectangle public const double pi = Math.PI; private int x, y; private double width, height; public Rectangle(int x, int y, double width, double height) this.x = x; this.y = y; this.width = width; this.height = height; public in

14、t Y get return y; set y = value; public int X get return x; set x = value; public double Height get return height; set height = value; public double Width get return width; set width = value; public virtual double Area()/定義虛擬方法 return height * width; public virtual string Name /虛擬屬性 get return "

15、;矩形" public override string ToString() return ("左上角坐標" + "(" + X + "," + Y + ")" + " 寬 " + width + " 高 " + height); using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication2 public

16、class Circle : Rectangle private int xValue, yValue; private double radius; public Circle(int x, int y, double r) : base(x - (int)r, y - (int)r, 2 * r, 2 * r) this.xValue=x; this.yValue=y; this.radius=r; public int YValue/圓心坐標 get return yValue; set yValue = value; public int XValue get return xValu

17、e; set xValue = value; public double Radius get return radius; set radius = value; public double Diameter/直徑 get return Width; public double Circumference() return 2*pi*radius; public override double Area() /重寫虛擬方法 return pi * radius * radius; public override string Name/重寫虛擬屬性 get return "圓&qu

18、ot; public override string ToString() return ("圓心:" + "(" + xValue + "," + yValue + ")" + " 半徑 " + Radius); using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication2 class Cylinder : Circle privat

19、e double h; public Cylinder(int x, int y, double r, double h) : base(x, y, r) H = h; public double H get return h; set h = value; public override double Area() return pi * Radius * Radius; public double Volume() return base.Area() * H; public override string Name get return "圓柱" public ove

20、rride string ToString() return base.ToString() + " 高 " + H; using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication2 public class Test public static string ShowArea(Rectangle Items) string output = "" foreach (Rectangle Item

21、in Items) output += "n" + Item.Name + ":" + Item.ToString() + " 面積 " + Item.Area(); return output; public static void Main() Rectangle rectangle1 = new Rectangle(0, 0, 35.2, 100); Circle circle1 = new Circle(10, 8, 10); Cylinder Cylinder1 = new Cylinder(12, 6, 10.35, 25

22、.6); Rectangle shape = new Rectangle3; shape0 = rectangle1; shape1 = circle1; shape2 = Cylinder1; string output = ShowArea(shape); output += " 體積 " + Cylinder1.Volume(); Console.WriteLine(output, "運行結果"); (4)運行應用程序(ctrl + F5)。五、實驗總結類的定義是以關鍵字 class 開始,后跟類的名稱。類的主體,包含在一對花括

23、號內。虛方法特點總結:1,在父類中把需要設置為虛方法的方法前加virtual標記;2,虛方法在父類中必須有實現,哪怕是空實現3,子類繼承父類后,可以選擇對虛方法進行重寫也可以選擇不進行重寫;4,當子類重寫父類方法的時候,必須保證重寫后的方法和原方法的訪問修飾符,返回值類型,方法名,參數列表完全一致;5,當方法的標記是virtual和override的時候都可以重寫。1.實現繼承和接口繼承*實現繼承:表示一個類型派生于基類型,它擁有該基類型的所有成員字段和函數。在實現繼承中,派生類型采用基類型的每個函數的實現代碼,除非在派生類型的定義中指定某個函數的實現代碼。在需要給現有的類型添加功能,或許多相

24、關的類型共享一組重要的公共功能時,可以使用這種類型的繼承。*接口繼承:表示一個類型只繼承了函數的簽名,沒有繼承任何的代碼。在需要指定該類型具有某些可用的特性時,最好使用這種類型的繼承。2.多重繼承C#不支持多重繼承,但C#允許類型派生自多個接口多重接口繼承。這說明,C#類可以派生自另一個類和任意多個接口。更準確的說,因為System.Object是一個公共的基類,所以每個C#(除Object之外)都有一個基類,還可以有任意多個接口。3.結構的繼承使用結構的一個限制是結構不支持實現繼承,但每個結構都自動派生自System.ValueType。不能編碼實現類型層次的結構,但結構可以實現接口。同一操

25、作作用于不同的對象,可以有不同的解釋,產生不同的執行結果,這就是多態性。換句話說,實際上就是同一個類型的實例調用“相同”的方法,產生的結果是不同的。這里的“相同”打上雙引號是因為這里的相同的方法僅僅是看上去相同的方法,實際上它們調用的方法是不同的。實驗四 委托事件處理編程一、目的與要求1.掌握代理的定義,代理的實例化和代理的調用。2.掌握代理的本質。3.掌握事件代理的定義,事件的定義,事件的觸發以及實例化事件代理和事件處理方法的實現。4.了解事件參數類的定義和使用方法。二、實驗儀器Windows操作系統,Microsoft Visual Studio .NET 2010。三、實驗內容在一個文本

26、框中輸入圓的半徑,回車之后,將半徑的值賦給circle類(自定義的類)的R屬性,從而觸發一個事件,在主窗體類中設計事件處理方法,在事件處理方法中要根據半徑的值計算對應的圓的面積,周長和對應的球的體積。計算的結果通過文本框的方式顯示出來。注意需要定義一個事件參數類來記錄半徑的值,事件觸發后將半徑的值傳遞給事件處理方法,事件處理方法才能根據半徑的值進行計算。四、實驗過程及結果 1.創建一個名為“EventExample”的Windows應用程序,在主窗體上放置兩個TextBox,將第二個TextBox的Multiline屬性設置為true,ReadOnly屬性設置為true,如下圖所示。 2.向應

27、用程序添加一個類,在對應文件中添加如下代碼:using System;using System.Collections.Generic;using System.Text;namespace EventExample class RadiusEventArgs : EventArgs /事件參數類的定義 private double r; public RadiusEventArgs(double r) this.r = r; public double R get return r; class Circle /Circle 類的定義 private double r; public del

28、egate void MyDelegate(object ob, RadiusEventArgs e);/定義代理 public event MyDelegate radiusEvent; /定義事件 public double R set r = value; 3.回到主窗體的類,添加Circle類的對象;radiusEvent事件的實例化(封裝事件處理方法);編寫事件處理方法。 public partial class Form1 : Form private Circle c; public Form1() InitializeComponent(); 創建Circle類的實例; c.r

29、adiusEvent 事件實例化; void c_radiusEvent(object ob, RadiusEventArgs e) textBox2.Text = "面積=" + (Math.PI * e.R * e.R).ToString() + "rn" + "周長 =" + (2 * Math.PI * e.R).ToString() + "rn" + "體積 =" + (4.0 / 3 * Math.PI * e.R * e.R * e.R).ToString(); 4.映射textB

30、ox1的KeyDown事件,判斷當輸入回車時修改Circle類的R屬性。 c.R = Convert.ToDouble(textBox1.Text); 5.運行程序,測試設計的功能。五、實驗總結代理就是用來定義指向方法的引用1.代理聲明的語法: public/private delegate <返回值類型> <代理名稱>(<參數列表>);2.代理“實例化”: 代理聲明相當于類的定義。有了類的定義后我們要還需生成這個類的對象;同樣有了代理的聲明我們還需要“實例化”代理委托是一種引用方法的類型。一旦為委托分配了方法,委托將于該方法具有完全相同的行為。委托的方法的

31、使用可以向其他任何方法一樣,具有參數和返回值。委托與代理的比較代理:是把一些事情交給某人幫忙去完成。委托:是當某件事情發生的時候,順便干某件事情。委托就相當于一個觸發器罷了。實驗四 WinForm程序設計一、目的與要求1.熟悉Windows應用程序的創建方法。2.掌握代理的本質。3.掌握事件代理的定義,事件的定義,事件的觸發以及實例化事件代理和事件處理方法的實現。4.了解事件參數類的定義和使用方法。二、實驗儀器Windows操作系統,Microsoft Visual Studio .NET 2010。三、實驗內容創建一個Windows應用程序能實現簡單的打字功能。首先隨機生成一段英文字母序列,

32、這段文本只能由英文大小寫字母、數字、空格組成。用戶可以在文本框中輸入對應的文本,實現打字操作,待完成后,程序能給出此次打字的成績,并重新隨機生成一段文本。程序的界面類似下面的形式: 在窗體上需要安裝一個定時器,出題后設置打字總時間啟動定時器,定時器每觸發一次click事件修改一次剩余時間,當剩余時間為零時不允許再答題。在輸入字符的過程中對輸錯的字符給出提示。四、實驗過程及結果1.創建名為Typer的Windows應用程序。2.在主窗體上放置如示例所示的控件。兩個TextBox、三個按鈕和多個Label,一個richTextBox。分別設置好它們的屬性。3.在窗體上放置一個定時器,映射定時器的t

33、ick事件。將定時器的Interval屬性設置為1000,即一秒鐘更新一次label。 if (time > 0) time-; int time1 = time / 60; int time2 = time % 60; label3.Text = time1 +":"+time2; else timer1.Enabled = false; richTextBox2.Enabled = false; MessageBox.Show("正確" + h + "個"); 4.打開主窗體對應的代碼文件,在成員定義中加入以下幾個成員的定義

34、:存放隨機生成的源字符串對象;存放輸入字符的目的字符串對象;存放固定字符的字符數組;存放設置字符個數的整型變量。5.在窗體的構造方法中對存放固定字符的數組進行初始化,例如:a = new char '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G

35、9;,'H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Z','a','b','c','d','e','f','g

36、9;,'h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'6.分別映射三個按鈕的單擊按鈕事件,對三個按鈕應當起到的作用描述如下:“設置”按鈕,應當根據它旁邊的編輯框中輸入的數字來設置出題的字符個數;“開始出題并計時”按鈕應當構造一個隨機數發生器,然后循環隨機生成061范圍內的隨機數,將這個隨機數作為

溫馨提示

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

評論

0/150

提交評論