《C#語言程序設(shè)計(jì)》實(shí) 驗(yàn) 報(bào) 告--精選文檔_第1頁
《C#語言程序設(shè)計(jì)》實(shí) 驗(yàn) 報(bào) 告--精選文檔_第2頁
已閱讀5頁,還剩13頁未讀, 繼續(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#語言程序設(shè)計(jì)實(shí) 驗(yàn) 報(bào) 告 學(xué)院: 信息學(xué)院 專業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 指導(dǎo)教師: 報(bào)告人: 學(xué)號(hào): 班級(jí): 實(shí)驗(yàn)一 簡(jiǎn)單編程練習(xí)一、目的與要求1、熟悉Visual Studio.NET集成開發(fā)環(huán)境(IDE)2、熟悉C#源程序語言的編輯、編譯和運(yùn)行過程3、能夠創(chuàng)建、編譯和執(zhí)行一個(gè)簡(jiǎn)單的C#程序二、實(shí)驗(yàn)儀器Windows操作系統(tǒng),Microsoft Visual Studio .NET 2010。三、實(shí)驗(yàn)內(nèi)容1.開發(fā)一個(gè)簡(jiǎn)單的控制臺(tái)應(yīng)用程序,該程序完成一段字符的輸入,然后輸出該字符串。2.開發(fā)一個(gè)簡(jiǎn)單的Windows應(yīng)用程序,該程序通過鼠標(biāo)單擊按鈕在文本框中顯示一行字符串。四、實(shí)驗(yàn)過程及結(jié)果

2、1.控制臺(tái)應(yīng)用程序 (1)啟動(dòng).NET 2010。 (2)在“文件”菜單上找到“新建”-“項(xiàng)目”,打開“新建項(xiàng)目”對(duì)話框。 (3)在模板一欄選擇“控制臺(tái)應(yīng)用程序”,在名稱一欄輸入項(xiàng)目的名稱。 (4)位置一欄內(nèi)指定的是項(xiàng)目存放的目錄,可以更改為自己定制的目錄,也可以使用系統(tǒng)提供的默認(rèn)路徑。 (5)按確定以后用下面的代碼替換Program.cs已有的所有代碼:using System;namespace TestConsole class Program static void Main() string str; System.Console.WriteLine(Please input a s

3、tring !); str = System.Console.ReadLine(); System.Console.WriteLine(str); (6)運(yùn)行應(yīng)用程序(ctrl + F5)。2.Windows應(yīng)用程序(1)新建項(xiàng)目,選擇Windows應(yīng)用程序,輸入名稱為:TestWindows。(2)在主窗體上放置一個(gè)TextBox和一個(gè)Button。(3)選中TextBox,展開它的屬性面板(單擊鼠標(biāo)右鍵,選擇屬性),將它的Name屬性設(shè)置為txtContent,Text屬性設(shè)置為空。(4)選中Button,展開它的屬性面板,將它的Name屬性設(shè)置為btnType,Text屬性設(shè)置為“顯示”

4、。(5)在窗體上鼠標(biāo)雙擊按鈕,在生成的事件處理方法內(nèi)添加如下的代碼:txtContent.Text = hello!;(6)運(yùn)行應(yīng)用程序(ctrl + F5)。五、實(shí)驗(yàn)總結(jié)C#較其他語言比如Java,在可視化界面方面更方便。采用拖拽式的界面設(shè)計(jì)操作,對(duì)新手來說更好入門。除了界面其他方面和其他語言還有一定區(qū)別。1、必須借助 .NET Framework類庫實(shí)現(xiàn)2、必須定義類3、類的代碼主要由方法組成4、C#程序中的方法的結(jié)構(gòu)由頭部和方法體構(gòu)成5、C#程序的輸入與輸出操做:需要借助Console的類方法(ReadLine、WriteLine)實(shí)驗(yàn)二 控制結(jié)構(gòu)編程練習(xí)一、目的與要求1、掌握分支結(jié)構(gòu)語

5、句的語法書寫格式2、掌握循環(huán)結(jié)構(gòu)語句的語法書寫格式3、綜合利用各種結(jié)構(gòu)語句完成特定的任務(wù)二、實(shí)驗(yàn)儀器Windows操作系統(tǒng),Microsoft Visual Studio .NET 2010。三、實(shí)驗(yàn)內(nèi)容1. 開發(fā)一個(gè)簡(jiǎn)單的控制臺(tái)應(yīng)用程序,求1!+2!+3!+10!。2. 開發(fā)一個(gè)簡(jiǎn)單的控制臺(tái)應(yīng)用程序,該程序完成一個(gè)一維數(shù)組排序編程,然后輸出該數(shù)組。四、實(shí)驗(yàn)過程及結(jié)果1. 1!+2!+3!+10! (1)啟動(dòng).NET 2010。 (2)在“文件”菜單上找到“新建”-“項(xiàng)目”,打開“新建項(xiàng)目”對(duì)話框。 (3)在模板一欄選擇“控制臺(tái)應(yīng)用程序”,在名稱一欄輸入項(xiàng)目的名稱。(4)按確定以后用下面的代碼

6、替換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“項(xiàng)目”,打開“新建項(xiàng)目”對(duì)話框。 (3)在模板一欄選擇“控制臺(tái)應(yīng)用程序”,在名稱一欄輸入項(xiàng)目的名稱。(4)按確定以后用下面的代碼替換Program.cs已有的所有代碼:using System;namespace shuzuclass maopopublic static void Main()int a=new int10;Console.WriteLine(請(qǐng)輸入10個(gè)

7、整數(shù));for(int i=0;i10;i+)Console.Write(第0個(gè)數(shù):,i+1);ai=Int32.Parse(Console.ReadLine();Console.WriteLine(排序前的十個(gè)數(shù)是:);for(int i=0;i10;i+)Console.Write(0t,ai);Console.WriteLine();int temp;/臨時(shí)變量for(int j=0;j 9;j+)for(int i=0;iai+1)temp=ai; ai=ai+1;ai+1=temp;for (int i=0;i10;i+)Console.WriteLine(排序后的結(jié)果是:);Con

8、sole.Write(0t,ai);Console.WriteLine();(5)運(yùn)行應(yīng)用程序(ctrl + F5)。五、實(shí)驗(yàn)總結(jié)循環(huán)就是重復(fù)執(zhí)行一些語句。這個(gè)技術(shù)使用起來非常方便,因?yàn)榭梢詫?duì)操作重復(fù)任意多次,而無需每次都編寫相同的代碼。while循環(huán)非常類似于do循環(huán),但有一個(gè)重要的區(qū)別:while語句中的布爾測(cè)試是在循環(huán)開始時(shí)進(jìn)行,而不是最后。如果測(cè)試結(jié)果為false,循環(huán)代碼將不會(huì)被執(zhí)行,而直接執(zhí)行循環(huán)后面的代碼。分支是控制下一步要執(zhí)行哪些代碼的過程。要跳轉(zhuǎn)的代碼是由某個(gè)條件語句來控制的,這個(gè)條件語句使用布爾邏輯,對(duì)測(cè)試值和一個(gè)或多個(gè)可能的值進(jìn)行比較。 C#中的分支結(jié)構(gòu)有以下三種: 1、

9、三元運(yùn)算 其語法如下: ?:2、if語句 其最簡(jiǎn)單語法: if() ; 當(dāng)然也可以將else語句和if語句合并使用,指定其他的代碼。如果的結(jié)果為false時(shí)就執(zhí)行else語句。其語法結(jié)構(gòu)如下: if() else 3、我們知道當(dāng)進(jìn)行的比較少的情況下用if與else語句是很方便的,但是如果我們進(jìn)行很多的比較時(shí),就應(yīng)該考慮使用另一種分支結(jié)構(gòu):switch語句。實(shí)驗(yàn)三 類設(shè)計(jì)練習(xí)一、目的與要求1、掌握C#語言定義類的方法。2、掌握派生類的設(shè)計(jì)方法。3、理解運(yùn)行時(shí)多態(tài)的含義。二、實(shí)驗(yàn)儀器Windows操作系統(tǒng),Microsoft Visual Studio .NET 2010。三、實(shí)驗(yàn)內(nèi)容1. 依次定

10、義Rectangle, Circle, Cylinder三個(gè)類,Circle類繼承于Rectangular,Cylinder繼承于Circle。在Rectangle類中需要定義屬性,虛擬的Area()方法,虛擬的Name屬性,重寫ToString()方法;在Circle類中需要定義屬性,重寫Area()方法,重寫Name屬性,重寫ToString()方法,定義周長方法。在Cylinder類中要定義Volume方法,重寫Area,ToString方法,Name屬性。 定義一個(gè)Test類,加入主方法,在主方法中分別定義三個(gè)類的對(duì)象和實(shí)例;定義Rectangle類的對(duì)象數(shù)組,將數(shù)組元素分別引用到剛定

11、義的三個(gè)實(shí)例上,然后通過基類對(duì)象調(diào)用重寫的方法。四、實(shí)驗(yàn)過程及結(jié)果 (1)啟動(dòng).NET 2010。 (2)在“文件”菜單上找到“新建”-“項(xiàng)目”,打開“新建項(xiàng)目”對(duì)話框。 (3)在模板一欄選擇“控制臺(tái)應(yīng)用程序”,在名稱一欄輸入項(xiàng)目的名稱。using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication2 public class Rectangle public const double pi = Math.PI; private int

12、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 int Y get return y; set y = value; public int X get return x; set x = value; public double Height get return height; set height = v

13、alue; public double Width get return width; set width = value; public virtual double Area()/定義虛擬方法 return height * width; public virtual string Name /虛擬屬性 get return 矩形; public override string ToString() return (左上角坐標(biāo) + ( + X + , + Y + ) + 寬 + width + 高 + height); using System;using System.Collectio

14、ns.Generic;using System.Linq;using System.Text;namespace ConsoleApplication2 public 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 Y

15、Value/圓心坐標(biāo) get return yValue; set yValue = value; public int XValue get return xValue; 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() /重寫虛擬方法 r

16、eturn pi * radius * radius; public override string Name/重寫虛擬屬性 get return 圓; public override string ToString() return (圓心: + ( + xValue + , + yValue + ) + 半徑 + Radius); using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication2 class Cylinder : Ci

17、rcle private 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

18、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 in Items) output += n + I

19、tem.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.6); Rectangle shape = new Rectangle3; shape0 = rectangle1; sha

20、pe1 = circle1; shape2 = Cylinder1; string output = ShowArea(shape); output += 體積 + Cylinder1.Volume(); Console.WriteLine(output, 運(yùn)行結(jié)果); (4)運(yùn)行應(yīng)用程序(ctrl + F5)。五、實(shí)驗(yàn)總結(jié)類的定義是以關(guān)鍵字class開始,后跟類的名稱。類的主體,包含在一對(duì)花括號(hào)內(nèi)。虛方法特點(diǎn)總結(jié):1,在父類中把需要設(shè)置為虛方法的方法前加virtual標(biāo)記;2,虛方法在父類中必須有實(shí)現(xiàn),哪怕是空實(shí)現(xiàn)3,子類繼承父類后,可以選擇對(duì)虛方法進(jìn)行重寫也可以選擇不進(jìn)行重寫;4,當(dāng)子類重

21、寫父類方法的時(shí)候,必須保證重寫后的方法和原方法的訪問修飾符,返回值類型,方法名,參數(shù)列表完全一致;5,當(dāng)方法的標(biāo)記是virtual和override的時(shí)候都可以重寫。1.實(shí)現(xiàn)繼承和接口繼承*實(shí)現(xiàn)繼承:表示一個(gè)類型派生于基類型,它擁有該基類型的所有成員字段和函數(shù)。在實(shí)現(xiàn)繼承中,派生類型采用基類型的每個(gè)函數(shù)的實(shí)現(xiàn)代碼,除非在派生類型的定義中指定某個(gè)函數(shù)的實(shí)現(xiàn)代碼。在需要給現(xiàn)有的類型添加功能,或許多相關(guān)的類型共享一組重要的公共功能時(shí),可以使用這種類型的繼承。*接口繼承:表示一個(gè)類型只繼承了函數(shù)的簽名,沒有繼承任何的代碼。在需要指定該類型具有某些可用的特性時(shí),最好使用這種類型的繼承。2.多重繼承C#不

22、支持多重繼承,但C#允許類型派生自多個(gè)接口多重接口繼承。這說明,C#類可以派生自另一個(gè)類和任意多個(gè)接口。更準(zhǔn)確的說,因?yàn)镾ystem.Object是一個(gè)公共的基類,所以每個(gè)C#(除Object之外)都有一個(gè)基類,還可以有任意多個(gè)接口。3.結(jié)構(gòu)的繼承使用結(jié)構(gòu)的一個(gè)限制是結(jié)構(gòu)不支持實(shí)現(xiàn)繼承,但每個(gè)結(jié)構(gòu)都自動(dòng)派生自System.ValueType。不能編碼實(shí)現(xiàn)類型層次的結(jié)構(gòu),但結(jié)構(gòu)可以實(shí)現(xiàn)接口。同一操作作用于不同的對(duì)象,可以有不同的解釋,產(chǎn)生不同的執(zhí)行結(jié)果,這就是多態(tài)性。換句話說,實(shí)際上就是同一個(gè)類型的實(shí)例調(diào)用“相同”的方法,產(chǎn)生的結(jié)果是不同的。這里的“相同”打上雙引號(hào)是因?yàn)檫@里的相同的方法僅僅是看

23、上去相同的方法,實(shí)際上它們調(diào)用的方法是不同的。實(shí)驗(yàn)四 委托事件處理編程一、目的與要求1.掌握代理的定義,代理的實(shí)例化和代理的調(diào)用。2.掌握代理的本質(zhì)。3.掌握事件代理的定義,事件的定義,事件的觸發(fā)以及實(shí)例化事件代理和事件處理方法的實(shí)現(xiàn)。4.了解事件參數(shù)類的定義和使用方法。二、實(shí)驗(yàn)儀器Windows操作系統(tǒng),Microsoft Visual Studio .NET 2010。三、實(shí)驗(yàn)內(nèi)容在一個(gè)文本框中輸入圓的半徑,回車之后,將半徑的值賦給circle類(自定義的類)的R屬性,從而觸發(fā)一個(gè)事件,在主窗體類中設(shè)計(jì)事件處理方法,在事件處理方法中要根據(jù)半徑的值計(jì)算對(duì)應(yīng)的圓的面積,周長和對(duì)應(yīng)的球的體積。計(jì)

24、算的結(jié)果通過文本框的方式顯示出來。注意需要定義一個(gè)事件參數(shù)類來記錄半徑的值,事件觸發(fā)后將半徑的值傳遞給事件處理方法,事件處理方法才能根據(jù)半徑的值進(jìn)行計(jì)算。四、實(shí)驗(yàn)過程及結(jié)果 1.創(chuàng)建一個(gè)名為“EventExample”的Windows應(yīng)用程序,在主窗體上放置兩個(gè)TextBox,將第二個(gè)TextBox的Multiline屬性設(shè)置為true,ReadOnly屬性設(shè)置為true,如下圖所示。 2.向應(yīng)用程序添加一個(gè)類,在對(duì)應(yīng)文件中添加如下代碼:using System;using System.Collections.Generic;using System.Text;namespace Event

25、Example class RadiusEventArgs : EventArgs /事件參數(shù)類的定義 private double r; public RadiusEventArgs(double r) this.r = r; public double R get return r; class Circle /Circle 類的定義 private double r; public delegate void MyDelegate(object ob, RadiusEventArgs e);/定義代理 public event MyDelegate radiusEvent; /定義事件

26、public double R set r = value; 3.回到主窗體的類,添加Circle類的對(duì)象;radiusEvent事件的實(shí)例化(封裝事件處理方法);編寫事件處理方法。 public partial class Form1 : Form private Circle c; public Form1() InitializeComponent(); 創(chuàng)建Circle類的實(shí)例; c.radiusEvent 事件實(shí)例化; void c_radiusEvent(object ob, RadiusEventArgs e) textBox2.Text = 面積= + (Math.PI * e

27、.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.映射textBox1的KeyDown事件,判斷當(dāng)輸入回車時(shí)修改Circle類的R屬性。 c.R = Convert.ToDouble(textBox1.Text); 5.運(yùn)行程序,測(cè)試設(shè)計(jì)的功能。五、實(shí)驗(yàn)總結(jié)代理就是用來定義指向方法的引用1.代理聲明的語法: public/private delegate ();2.代理“實(shí)例化”:

28、代理聲明相當(dāng)于類的定義。有了類的定義后我們要還需生成這個(gè)類的對(duì)象;同樣有了代理的聲明我們還需要“實(shí)例化”代理委托是一種引用方法的類型。一旦為委托分配了方法,委托將于該方法具有完全相同的行為。委托的方法的使用可以向其他任何方法一樣,具有參數(shù)和返回值。委托與代理的比較代理:是把一些事情交給某人幫忙去完成。委托:是當(dāng)某件事情發(fā)生的時(shí)候,順便干某件事情。委托就相當(dāng)于一個(gè)觸發(fā)器罷了。實(shí)驗(yàn)四 WinForm程序設(shè)計(jì)一、目的與要求1.熟悉Windows應(yīng)用程序的創(chuàng)建方法。2.掌握代理的本質(zhì)。3.掌握事件代理的定義,事件的定義,事件的觸發(fā)以及實(shí)例化事件代理和事件處理方法的實(shí)現(xiàn)。4.了解事件參數(shù)類的定義和使用方

29、法。二、實(shí)驗(yàn)儀器Windows操作系統(tǒng),Microsoft Visual Studio .NET 2010。三、實(shí)驗(yàn)內(nèi)容創(chuàng)建一個(gè)Windows應(yīng)用程序能實(shí)現(xiàn)簡(jiǎn)單的打字功能。首先隨機(jī)生成一段英文字母序列,這段文本只能由英文大小寫字母、數(shù)字、空格組成。用戶可以在文本框中輸入對(duì)應(yīng)的文本,實(shí)現(xiàn)打字操作,待完成后,程序能給出此次打字的成績,并重新隨機(jī)生成一段文本。程序的界面類似下面的形式: 在窗體上需要安裝一個(gè)定時(shí)器,出題后設(shè)置打字總時(shí)間啟動(dòng)定時(shí)器,定時(shí)器每觸發(fā)一次click事件修改一次剩余時(shí)間,當(dāng)剩余時(shí)間為零時(shí)不允許再答題。在輸入字符的過程中對(duì)輸錯(cuò)的字符給出提示。四、實(shí)驗(yàn)過程及結(jié)果1.創(chuàng)建名為Type

30、r的Windows應(yīng)用程序。2.在主窗體上放置如示例所示的控件。兩個(gè)TextBox、三個(gè)按鈕和多個(gè)Label,一個(gè)richTextBox。分別設(shè)置好它們的屬性。3.在窗體上放置一個(gè)定時(shí)器,映射定時(shí)器的tick事件。將定時(shí)器的Interval屬性設(shè)置為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 + 個(gè)); 4.打開主窗體對(duì)應(yīng)的代碼文件,在成員定義中加入以下幾個(gè)成員的定義:存放隨機(jī)生成的源字符串對(duì)象;存放輸入字符的目的字符串對(duì)象;存放固定字符的字符數(shù)組;存放設(shè)置字符個(gè)數(shù)的整型變量。5.在窗體的構(gòu)造方法中對(duì)存放固定字符的數(shù)組進(jìn)行初始化,例如:a = new char 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,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,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;6.分別

溫馨提示

  • 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. 人人文庫網(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)論