




已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
面向?qū)ο蟪绦蛟O(shè)計實驗實驗11. 了解Visual Studio2005集成開發(fā)環(huán)境;2. 開發(fā)一個簡單的控制臺應(yīng)用程序,能夠從鍵盤輸入用戶姓名,然后輸出“用戶姓名”“歡迎使用C#!”。3. 分別定義一個描述時鐘(時、分、秒)的結(jié)構(gòu)體和類,結(jié)構(gòu)體和類都包含公有成員方法Set(int h,int m,int s)用于設(shè)置時鐘,Print()顯示時鐘(顯示格式為HH:MM:SS)。然后在主方法中進(jìn)行演示,并了解結(jié)構(gòu)體和類的區(qū)別。實驗21.定義一個課程類和一個學(xué)生類,這兩個類包含的成員如下:class Courseint Cno;/課程號string Cname;/課程名int Score;/成績public void InputCourse()/輸入課程號、課程名和成績public override string ToString()return Cname+(+Cno+);public int GetScore()/返回課程成績class Studentint Sno;/學(xué)號string Sname;/姓名int Cnums;/課程門數(shù)Course Courses;/所修課程public void SetStudent(int sno,string sname,int coursenums)/設(shè)置學(xué)生的學(xué)號、姓名和修讀課程門數(shù)public void InputScore()/輸入所修讀課程的課程名、課程號和成績public string GetStudent()/返回學(xué)號號和姓名public void ShowDegree()/輸出各門課程對應(yīng)的課程號、課程名和對應(yīng)的成績public int GetAvgDegree()/計算并返回各門課程的平均成績請把上面的類補充完整,然后在Main方法中定義一個Sutdent對象,然后進(jìn)行演示。實驗31. 定義一個學(xué)生類(班級人數(shù)、總?cè)雽W(xué)成績、學(xué)號、姓名、入學(xué)成績),其中班級人數(shù)、總?cè)雽W(xué)成績是靜態(tài)成數(shù)據(jù),如下:class Student static int NumofStudents,SumofDegree; int Sno; string Sname; decimal Degree; /請定義靜態(tài)構(gòu)造函數(shù)用于初始化NumofStudents0,SumofDegree=0/請定義無參構(gòu)造函數(shù),把Sno初始化為0,Sname初始化為null,Degree初始化為0.0,并使學(xué)生人數(shù)加1/請定義有三個參數(shù)的構(gòu)造函數(shù)初始化學(xué)生的Sno,Sname和Degree,并使學(xué)生人數(shù)加1,總成績Degree/定義實例方法顯示學(xué)生的Sno、Sname和Degree/定義靜態(tài)方法定義靜態(tài)方法顯示當(dāng)前學(xué)生人數(shù)/定義靜態(tài)方法,計算并返回所有學(xué)生的平均入學(xué)成績/定義析構(gòu)函數(shù),使學(xué)生人數(shù)減1,SumofDegreeDegree 請把類Student補充完整,然后在Main方法中演示。要求掌握構(gòu)造函數(shù)、析構(gòu)函數(shù)、靜態(tài)成員、靜態(tài)構(gòu)造函數(shù)。實驗41.定義一個復(fù)數(shù)類ComplexNumber,類的主要成員如下,請把按要求實現(xiàn)所有成員方法,并在程序的主方法中編寫程序進(jìn)行演示。class ComplexNumber private double real, image; public ComplexNumber(double r, double i) real = r; image = i; public static ComplexNumber operator +(ComplexNumber c1, ComplexNumber c2) /重載加法運算符; public static ComplexNumber operator -(ComplexNumber c1, ComplexNumber c2) /重載減法運算符; public static ComplexNumber operator *(ComplexNumber c1, ComplexNumber c2) /重載乘法運算符; public static ComplexNumber operator /(ComplexNumber c1, ComplexNumber c2) /重載除法運算符; public static ComplexNumber Parse(string s) /定義方法Parse能夠解析“a+bi”,“a-bi”,“-a+bi”,“-a-bi”,其中a、b為正數(shù); public static bool TryParse(string s,out ComplexNumber c) /定義方法TryParse用于解析“a+bi”,“a-bi”,“-a+bi”,“-a-bi”,其中a、b為正數(shù); /若字符串格式不正確返回false,否則返回true public override string ToString() /重寫該方法返回復(fù)數(shù)對象的字符串表示,要注意顯示虛部的符合位; 實驗?zāi)康模哼\算符重載、字符串解析和格式化。實驗51. 定義一個圖形類Shape,Shape類的派生類圓類Circle,Circle類的派生類球體Ball。類的成員如下,請實現(xiàn)沒有實現(xiàn)的方法,然后再Main方法中編程進(jìn)行演示。class Shape protected string name; public Shape(string s) name=s; public virtual double GetArea() return 0; public virtual double GetVolume() return 0; public virtual void Show() /輸出圖形的名稱、面積和體積 class Circle : Shape protected double radio;/圓的半徑 /下面請定義構(gòu)造函數(shù)初始化圓類 /下面請重載GetArea方法求圓的面積 /下面請重載Show方法顯示圓的名稱、面積、體積 class Ball : Circle /下面請定義構(gòu)造函數(shù)初始化圓類 /下面請重載GetArea方法求圓的表面積 /下面請重載GetVolume方法求圓的體積 /下面請重載Show方法顯示圓的名稱、面積、體積 2. 把1中的Shape類改成如下的抽象類,然后再實現(xiàn)。Abstract class Shape protected string name; public Shape(string s) name=s; public abstract double GetArea(); public abstract double GetVolume(); public virtual void Show() /輸出圖形的名稱、面積和體積 實驗61.定義鈴聲類、學(xué)生類和教師類,學(xué)生和教師可以訂閱或取消訂閱鈴聲事件,并對鈴聲作出正確的相應(yīng)(上課鈴響,輸出字符串“回教室上課,分鐘后休息”;下課鈴響,輸出字符串“自由活動,分鐘后回教室上課”。)要求分別使用:委托的發(fā)布和訂閱、事件的發(fā)布和訂閱、EventHandler實現(xiàn)。實驗71. 定義一個三角形類Triangle,并派生出直角三角形類VTriangle,類的成員如下。要求在三角形類的構(gòu)造函數(shù)中判斷三條邊能否構(gòu)成三角形,如果不能構(gòu)成三角形主動引發(fā)異常ArgumentOutofRangeException,異常消息為“三條邊不能構(gòu)成三角形”;直角三角形的構(gòu)造函數(shù)要能判斷三條邊能否構(gòu)成直角三角形,若不能主動引發(fā)異常ArgumentOutofRangeException,異常消息為“三條邊不能構(gòu)成直角三角形”。并實現(xiàn)沒有實現(xiàn)的成員方法。然后在Main方法中進(jìn)行演示。class Triangle protected double a, b, c; public Triangle(double x, double y, double z) public double GetCircle() /求周長 public double GetArea() /求面積 class VTriangle : Triangle public VTriangle(double x, double y, double z) : base(x, y, z) 2. 定義一個整數(shù)數(shù)列IntNumberSequence,然后派生出等差數(shù)列DCSequence和等比數(shù)列DBSequence,并自定義異常類型IntNumberSequenceException。類的結(jié)構(gòu)如下,請實現(xiàn)沒有實現(xiàn)的方法,并在Main方法中演示。public class NumberSequenceException : ApplicationException private int item = -1; public int Item get return item; public NumberSequenceException(int item) : base(string.Format(數(shù)列第0項異常, item) this.item = item; public NumberSequenceException(string msg, int item) : base(msg) this.item = item; public class IntNumberSequence/整數(shù)數(shù)列類 public delegate int Recur(int a); protected Recur recur; protected int a0 = -1; public int A0 get return a0; public IntNumberSequence(int a0, Recur recur) this.a0 = a0; this.recur = recur; public virtual int GetNumber(int n) int a = a0; for (int i = 1; i n; i+) a = recur(a); return a; public virtual int GetNumbers(int n) int numbers = new intn; numbers0 = a0; for (int i = 1; i n; i+) numbersi = recur(numbersi - 1); return numbers; public class DCNumberSequence : IntNumberSequence/派生類等差數(shù)列 int step;/等差數(shù)列的步長 public DCNumberSequence(int a0,int step, Recur recur) : base(a0, recur) this.step = step; public override int GetNumber(int n)/重寫基類的方法 /返回等差數(shù)列的下一項,如果非等差或步長不是step的等差,引發(fā)異常NumberSequenceException。 public override int GetNumbers(int n) /返回等差數(shù)列的所有元素,如果非等差或步長不是step的等差,引發(fā)異常NumberSequenceException。 public class DBNumberSequence : IntNumberSequence/派生類遞減數(shù)列 int rate;/等比數(shù)列項比 public DBNumberSequence(int a0,int rate, Recur recur) : base(a0, recur) this.rate = rate; public override int GetNumber(int n)/重寫基類的方法 /返回等比數(shù)列的下一項,如果非等比或項比不為rate的等比,引發(fā)異常NumberSequenceException。 public override int GetNumbers(int n) /返回等比數(shù)列的所有元素,如果非等比或項比不為rate的等比,引發(fā)異常NumberSequenceException。 實驗81. 定義接口ITowD,IThreeD。然后由ITowD派生出圓類;由圓類和IThreeD派生長圓錐類。結(jié)構(gòu)如下,請實現(xiàn)沒有實現(xiàn)的方法,并在Main方法中演示。 interface ITowD double GetCirCle();/平面圖形周長 double GetArea();/平面圖形面積 interface IThreeD double GetArea();/立體圖形表面積 double GetVolume();/體積 class Circle : ITowD double r; public Circle(double r) this.r = r; double ITowD.GetCirCle() /求周長 double ITowD.GetArea() /求面積 class YuanZhui : Circle, IThreeD double h; public YuanZhui(double r, double h) : base(r) this.h = h; double IThreeD.GetArea() /求表面積 double IThreeD.GetVolume() /求體積 2.用隱式實現(xiàn)題目1.實驗9定義一個學(xué)生類student,學(xué)生有學(xué)號、姓名、性別、出生日期四個字段。在Main方法中定義一個學(xué)生數(shù)組ss,定義一個學(xué)生隊列,把ss中所有學(xué)生入隊。然后輸出學(xué)生隊列中的各個學(xué)生信息;之后定義一個堆棧,把隊列中的學(xué)生依次入棧,然后輸出堆棧中各個學(xué)生的信息。(使用泛型類Stack和Queue)自定義一個泛型類單鏈表LinkList,然后定義一個student類(同1)。然后在Main方法中編程進(jìn)行演示,建立鏈表,往鏈表中插入節(jié)點,刪除節(jié)點,然后輸出鏈表中各個節(jié)點的信息。請參考如下例子。using System;using System.Collections;using System.Collections.Generic;namespace P12_8public class LinkNodeprotected T data;protected LinkNode next;public T Dataget return data; set data = value; public LinkNode Nextget return next; set next = value; public LinkNode()/構(gòu)造函數(shù) public LinkNode(T t) data = t; /*重載運算符把當(dāng)前節(jié)點移到第n個后續(xù)節(jié)點。*/public static LinkNode operator (LinkNode node, int n)LinkNode node1 = node;for (int i = 0; i n & node1 != null; i+)node1 = node1.next;return node1;public class LinkList : ICollection, IListprotected LinkNode first, last, current;public T Currentget return current.Data; set current.Data = value; private int count = 0;public int Countget return count; public bool IsReadOnly get return false; public T thisint index/索引get return this.GetNode(index).Data; set this.GetNode(index).Data = value; public LinkList()/構(gòu)造函數(shù)current = last = first = new LinkNode(default(T);public void Add(T t)/向鏈表尾部添加節(jié)點last.Next = new LinkNode(t);last = last.Next;count+;public void Clear()/清空鏈表current = last = first;first.Next = null;public bool Contains(T t)/判斷指定的節(jié)點是否存在于鏈表中return (this.IndexOf(t) = 0);public bool MoveNext()/將當(dāng)前位置移到下一個節(jié)點if (current.Next != null)current = current.Next;return true;elsereturn false;public void Reset()/復(fù)位鏈表 current = first; public int IndexOf(T t) /返回指定節(jié)點的位置LinkNode node=first.Next;int i=0;while (node != null)if (node.Data.Equals(t)return i;node = node.Next;return -1;public void Insert(int index, T t)/插入節(jié)點到指定位置LinkNode node = this.GetNode(index - 1);LinkNode newnode = new LinkNode(t);if (node.Next != null)newnode.Next = node.Next;node.Next = newnode;count+;public void RemoveAt(int index)/刪除指定位置的節(jié)點LinkNode node = this.GetNode(index - 1);node.Next = node.Next.Next;count-;public bool Remove(T t)/刪除指定的節(jié)點int i = this.IndexOf(t);if (i 0)return false;this.RemoveAt(i);return true;public void CopyTo(T array, int index)/把鏈表的所有元素賦值到數(shù)組LinkNode node = first.Next;while (node != null & index array.Length)arrayindex+ = node.Data;node = node.Next;protected LinkNode GetNode(int index)/返回指定索引值的節(jié)點LinkNode node = first.Next;for(int i=0;iindex;i+)if(node=null)throw new IndexOutOfRangeException(超出鏈表末尾);node=node.Next;return node;IEnumer
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 河南省商丘市2023?2024學(xué)年高一下冊期末聯(lián)考數(shù)學(xué)試卷(B卷)附解析
- 廣東省廣州市2024~2025學(xué)年 高二下冊第一次月考數(shù)學(xué)試卷附解析
- 福建省福州市2023?2024學(xué)年高二下冊期末考試數(shù)學(xué)試卷附解析
- 安全生產(chǎn)法學(xué)新安全生產(chǎn)法心得體會
- 社區(qū)公共衛(wèi)生基礎(chǔ)知識點歸納
- 英語(武漢卷)2025年中考考前押題最后一卷
- 飲料制造企業(yè)經(jīng)營管理方案
- 2025至2030年中國有線電視光纖收發(fā)器行業(yè)投資前景及策略咨詢報告
- 2025至2030年中國中高檔毛料男西服行業(yè)投資前景及策略咨詢報告
- 培養(yǎng)新型農(nóng)業(yè)技術(shù)人才的策略及實施路徑
- 2024湖南職高對口高考美術(shù)類本科指標(biāo)人數(shù)
- 2025年中考語文二輪復(fù)習(xí):字詞積累 練習(xí)題(含答案)
- 基于PLC的自動生產(chǎn)線控制系統(tǒng)的設(shè)計畢業(yè)論文
- 會計研究方法論 第4版 課件 第10章 因果關(guān)系推斷與內(nèi)生性問題處理
- 居民急救知識培訓(xùn)課件
- 南京市棲霞區(qū)2024-2025學(xué)年五下數(shù)學(xué)期末達(dá)標(biāo)檢測試題含答案
- 第六單元《多邊形的面積》教材解讀課件新課標(biāo)人教數(shù)學(xué)五年級上冊
- 大數(shù)據(jù)時代下的企業(yè)財務(wù)風(fēng)險管理
- 勞務(wù)派遣公司派遣合同范本
- 《如何克服肥胖:健康生活方式與營養(yǎng)指導(dǎo)》課件
- 中國糖尿病防治指南(2024版)解讀課件
評論
0/150
提交評論