實(shí)驗(yàn)G08類的建立_第1頁
實(shí)驗(yàn)G08類的建立_第2頁
實(shí)驗(yàn)G08類的建立_第3頁
實(shí)驗(yàn)G08類的建立_第4頁
實(shí)驗(yàn)G08類的建立_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)驗(yàn)G08: 類的建立一、實(shí)驗(yàn)名稱和性質(zhì)所屬課程面向?qū)ο蟪绦蛟O(shè)計(jì) 實(shí)驗(yàn)名稱類的建立實(shí)驗(yàn)學(xué)時(shí)2實(shí)驗(yàn)性質(zhì)驗(yàn)證 綜合 設(shè)計(jì)必做/選做必做 選做二、實(shí)驗(yàn)?zāi)康?理解C#語言是如何體現(xiàn)面向?qū)ο缶幊袒舅枷耄?掌握類對(duì)象的定義;3了解類的封裝方法,以及如何創(chuàng)建類和對(duì)象;了解成員變量和成員方法的特性;4掌握構(gòu)造函數(shù)和析構(gòu)函數(shù)的含義與作用、定義方式和實(shí)現(xiàn),能夠根據(jù)要求正確定義和重載構(gòu)造函數(shù)。能夠根據(jù)給定的要求定義類并實(shí)現(xiàn)類的成員函數(shù);5理解類的成員的訪問控制的含義,公有、私有和保護(hù)成員的區(qū)別;三、實(shí)驗(yàn)的軟硬件環(huán)境要求硬件環(huán)境要求:PC機(jī)(單機(jī))使用的軟件名稱、版本號(hào)以及模塊:Windows XP下的Visual

2、 Studio.NET2003或Visual Studio.NET2008四、知識(shí)準(zhǔn)備前期要求掌握的知識(shí):五、實(shí)驗(yàn)內(nèi)容1編寫一個(gè)包含類和類方法的程序;2編寫一個(gè)創(chuàng)建對(duì)象和使用對(duì)象的方法程序;3編寫含有構(gòu)造方法的類的程序;4編寫含有屬性的類程序。六、驗(yàn)證性實(shí)驗(yàn)驗(yàn)證性實(shí)驗(yàn)11 實(shí)驗(yàn)要求定義一個(gè)圓類,計(jì)算圓的面積和周長(zhǎng)2 實(shí)驗(yàn)步驟步驟1 在項(xiàng)目中public class circle public static void Main() double radium, delimeter, square; const double pai = 3.1415926; radium = Convert.To

3、Int32(Console.ReadLine(); delimeter = 2 * pai * radium; square = pai * pai * radium; Console.WriteLine("delimeter=0,square=1", delimeter, square); Console.ReadLine(); 或者:public class circle double delimeter, square; const double pai = 3.1415926; public void calculate(double rad) delimeter

4、= 2 * pai * rad; square = pai * pai * rad; Console.WriteLine("delimeter=0,square=1",delimeter,square); public static void Main() double radium; circle cir = new circle(); radium = Convert.ToInt32(Console.ReadLine(); cir.calculate(radium); Console.ReadLine(); 3思考題請(qǐng)比較以上兩個(gè)程序,看起來后一個(gè)程序把問題復(fù)雜化了,是

5、不是不如第一個(gè)程序好,它從設(shè)計(jì)思想上有什么優(yōu)勢(shì)么?驗(yàn)證性實(shí)驗(yàn)21實(shí)驗(yàn)要求其中有3個(gè)數(shù)據(jù)成員有學(xué)號(hào)、姓名、年齡,以及若干成員函數(shù)。同時(shí)編寫主函數(shù)使用這個(gè)類,實(shí)現(xiàn)對(duì)學(xué)生數(shù)據(jù)的賦值和輸出。要求:使用成員函數(shù)實(shí)現(xiàn)對(duì)數(shù)據(jù)的輸出;使用構(gòu)造函數(shù)實(shí)現(xiàn)對(duì)數(shù)據(jù)的輸入。2實(shí)驗(yàn)步驟步驟1 先建立類Person,點(diǎn)擊“項(xiàng)目”菜單下的“添加類”,在如下的添加類窗口中輸入類名Person后,按“確定”按鈕。步驟2 進(jìn)入類窗口編輯窗口,見下圖。using System;namespace 試驗(yàn)3/ <summary>/ Class1 的摘要說明。/ </summary>public class Per

6、sonpublic Person()/ TODO: 在此處添加構(gòu)造函數(shù)邏輯/步驟3 在類窗口中輸入下面的代碼; public class Personstring m_id,m_name;int m_age;public Person(string id,string name,int age)this.m_id = id;this.m_name = name;this.m_age = age;public string IDgetreturn m_id;setm_id=value;public string Namegetreturn m_name;setm_name=value;publi

7、c int Agegetreturn m_age;setm_age=value;public string Display()return "ID:"+m_id+" Name:"+m_name+" Age:"+m_age.ToString ("N0");步驟4 建立如下的窗口界面:3個(gè)標(biāo)簽、3個(gè)文本框、1個(gè)命令按鈕和1個(gè)列表框。步驟5各標(biāo)簽控件按照上圖的提示修改Text屬性即可,文本框的Text屬性設(shè)置為空。按照如下表設(shè)置其它控件的屬性。textBox1NametxtIDtextBox1NametxtNametex

8、tBox1NametxtAgebutton1NamebtnAddTextAdd a personlistBox1NamelstDisplay步驟 雙擊窗體的“Add a person”命令按鈕,編寫的btnAdd_Click事件代碼。private void btnAdd_Click(object sender, System.EventArgs e)Person person=new Person (txtID.Text,txtName.Text,int.Parse(txtAge.Text);lstDisplay.Items.Add(person.Display ();步驟7 運(yùn)行程序,在文

9、本框中輸入人的ID、Name和Age后,點(diǎn)擊btnAdd按鈕,得到上面圖中的結(jié)果。3思考題以上程序使用了構(gòu)造方法,請(qǐng)問在窗體中實(shí)例化一個(gè)Person后,能訪問m_name變量嗎?哪些能訪問?驗(yàn)證性實(shí)驗(yàn)3 實(shí)現(xiàn)一個(gè)日期類型1實(shí)驗(yàn)要求定義日期類型Date。要求有以下面成員:年、月、日變量,重載的構(gòu)造方法,一個(gè)實(shí)現(xiàn)年、月、日單獨(dú)的輸入,一個(gè)實(shí)現(xiàn)從系統(tǒng)時(shí)間里讀出年月日,并實(shí)現(xiàn)打印方法成員,該方法要按照“XXXX年XX月XX日”格式輸出日期。2源程序代碼public class Date private int Year, Month, Day; public Date(int Year, int Mo

10、nth,int Day) this.Year=Year; this.Month=Month; this.Day=Day; public Date(System.DateTime dt) Year = dt.Year; Month = dt.Month; Day = dt.Day; public void DisplayDate() Console.WriteLine("0年1月2日",Year,Month,Day); public class Tester public static void Main() System.DateTime currentTime=Syste

11、m.DateTime.Now; Date dt=new Date(2008,7,18); dt.DisplayDate(); Date dt2 = new Date(currentTime); dt2.DisplayDate(); Console.ReadLine(); 3思考題請(qǐng)練習(xí)System.Datetime類型及其各屬性的應(yīng)用。列出System.Datetime主要包含哪些屬性,并思考重載構(gòu)造方法的作用。七、設(shè)計(jì)性實(shí)驗(yàn)1要求(1) 創(chuàng)建sandwitch 類。每個(gè)sandwitch對(duì)象包含屬性 Name、 Bread、 Meat、Cheese及調(diào)味品。用戶在窗體的文本框中輸入相應(yīng)屬性的

12、值,并顯示在另一個(gè)窗體上。程序代碼:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace 類一 public partial class Form1 : Form public Form1() InitializeComponent(); private void btnAdd_C

13、lick(object sender, EventArgs e) sandwitch sandwitch = new sandwitch(txtName.Text, txtDressing.Text, int.Parse(txtBread.Text),int.Parse(txtMeat.Text),int.Parse(txtCheese.Text); lisReslute.Items.Add(sandwitch.Display(); Sandwitch的類using System;using System.Collections.Generic;using System.Linq;using

14、System.Text;namespace 類一 class sandwitch string m_name, m_dressing; int m_bread, m_meat, m_cheese; public sandwitch(string name, string dressing, int bread, int meat, int cheese) this.m_name = name; this.m_dressing = dressing; this.m_bread = bread; this.m_meat = meat; this.m_cheese = cheese; public

15、string Name get return m_name; set m_name = value; public string Dressing get return m_dressing; set m_dressing = value; public int Bread get return m_bread; set m_bread = value; public int Meat get return m_meat; set m_meat = value; public int Cheese get return m_cheese; set m_cheese = value; publi

16、c string Display() return "Name:" + m_name + " Dressing:" + m_dressing + " Bread:" + m_bread.ToString() + " Meat:" + m_meat.ToString() + " Cheese:" + m_cheese.ToString(); (2) 修改實(shí)驗(yàn)5中Cool Boards 項(xiàng)目,將用戶信息從邏輯設(shè)計(jì)中分離。即創(chuàng)建一個(gè)類theShirt,包含屬性O(shè)rder Number、Quantity

17、、Size、 Monogram 和Pocket,并定義方法Price來計(jì)算該襯衫的價(jià)格。程序代碼:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace 類形式計(jì)算襯衫價(jià)格 public partial class Form1 : Form public Form1() Initia

18、lizeComponent(); private void btnAdd_Click(object sender, EventArgs e) theShirt shirt = new theShirt(txtName.Text, int.Parse(txtOrder.Text), int.Parse(txtNum.Text), chkMonogram.Checked, chkPocket.Checked, rbtnSmall.Checked, rbtnMedium.Checked, rbtnLarge.Checked, rbtnExtraLarge.Checked, rbtnXXL.Check

19、ed); lisReslute.Items.Add(shirt.Display(); lisReslute.Items.Add(shirt.Price(); private void btnClear_Click(object sender, EventArgs e) txtName.Text = "" txtOrder.Text = "" txtNum.Text = "" lisReslute.Text = "" rbtnMedium.Checked = false; rbtnSmall.Checked = fa

20、lse; rbtnLarge.Checked = false; rbtnExtraLarge.Checked = false; rbtnXXL.Checked = false; chkMonogram.Checked = false; chkPocket.Checked = false; 另外的一個(gè)類:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 類形式計(jì)算襯衫價(jià)格 public class theShirt int m_OrderNumber, m_Qua

21、ntity; double total1, total2; Boolean m_monogram, m_pocket,m_small,m_medium,m_large,m_exlarge,m_xxl; double Pmonogram, Ppocket, Psize; string m_Name; public theShirt(string name, int OrderNumber, int Quantity, bool monogram, bool pocket, Boolean small, Boolean medium, Boolean large, Boolean exlarge,

22、 Boolean xxl) this.m_Name = name; this.m_OrderNumber = OrderNumber; this.m_Quantity = Quantity; this.m_monogram = monogram; this.m_pocket = pocket; this.m_small = small; this.m_medium = medium; this.m_large = large; this.m_exlarge = exlarge; this.m_xxl = xxl; public string Name get return m_Name; se

23、t m_Name = value; public int OrderNumber get return m_OrderNumber; set m_OrderNumber = value; public int Quantity get return m_Quantity; set m_Quantity = value; public Boolean Monogram get return m_monogram; set m_monogram = value; public Boolean Pocket get return m_pocket; set m_pocket = value; public Boolean Small get return m_small; set m_small = value; public Boolean Medium get return m_medium; set m_medium = value; public Boolean Large get return m_large; set m_large = value; public Boolean Exlarge get return m_exlarg

溫馨提示

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