找回密碼 或 安全提問
 註冊
|註冊|登錄

伊莉討論區

搜索
感激所有對伊莉作出奉獻的人尊貴會員無限下載附件伊莉需要你的贊助和支持
一拳超人ge柯南中文3d銀魂mg
えっちなso_low 八橋彩子アキバdeavop 056歷年kf

休閒聊天興趣交流學術文化旅遊交流飲食交流家庭事務PC GAMETV GAME
熱門線上其他線上感情感性寵物交流家族門派動漫交流貼圖分享BL/GL
音樂世界影視娛樂女性頻道潮流資訊BT下載區GB下載區下載分享短片
電腦資訊數碼產品手機交流交易廣場網站事務長篇小說體育運動時事經濟
上班一族博彩娛樂

[繁]轉生貴族憑鑑定技

[繁]從Lv2開始開外掛

[繁]月光下的異世界之

(4月新番)[繁]終末的

文化大革命 紀實錄像

[繁]轉生貴族憑鑑定技
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
查看: 4870|回復: 0
打印上一主題下一主題

[求助](只差查詢功能)建立類別.屬性應用在陣列上~ (有靜態成員)~[複製鏈接]

Rank: 1

帖子
61
積分
49 點
潛水值
26930 米
樓主
發表於 2016-12-22 08:52 AM|顯示全部樓層
成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。
由Student類別提供人數資料有點奇怪,因為Student類別是用來存學生個人資料的,這個部分您可以再和老師討論一下,我的作法是另建一個Students類別來存陣列並提供人數資料,我的作法如下:

1.先建Student類別
  1. class Student
  2. {
  3.             public string Id { get; set; }
  4.             public string Name { get; set; }
  5.             int _Chi=0, _Eng=0, _Bcc=0;
  6.             public int Chi
  7.             {
  8.                 get { return _Chi; }
  9.                 set
  10.                 {
  11.                     //若輸入值不在1~100之間則引發例外
  12.                     if (value < 1 || value > 100) throw new Exception("數值必須在1~100之間");
  13.                     _Chi = value;
  14.                 }
  15.             }
  16.             public int Eng
  17.             {
  18.                 get { return _Eng; }
  19.                 set
  20.                 {
  21.                     if (value < 1 || value > 100) throw new Exception("數值必須在1~100之間");
  22.                     _Eng = value;
  23.                 }
  24.             }
  25.             public int Bcc
  26.             {
  27.                 get { return _Bcc; }
  28.                 set
  29.                 {
  30.                     if (value < 1 || value > 100) throw new Exception("數值必須在1~100之間");
  31.                     _Bcc = value;
  32.                 }
  33.             }
  34.             public double GetAVG()
  35.             {
  36.                 return ((double)Chi + Eng + Bcc) / 3;
  37.             }
  38.             //複寫ToString方法以輸出學生資訊
  39.             public override string ToString()
  40.             {
  41.                 return string.Format("Id:{0} Name:{1} Chi:{2} Eng:{3} Bcc:{4} AVG:{5}", Id, Name, Chi, Eng, Bcc,GetAVG());
  42.             }
  43. }
複製代碼
2.建Students類別
  1. //建一個存放陣列的類別並提供GetStudentNum實例方法及Num靜態方法
  2. class Students
  3. {
  4.             static Student[] students = null;
  5.             public Students(int num)
  6.             {
  7.                 students = new Student[num];
  8.             }
  9.             public Student[] GetStudents
  10.             {
  11.                 get
  12.                 {
  13.                     return students;
  14.                 }
  15.             }
  16.             //Num靜態方法
  17.             public static int Num()
  18.             {
  19.                 if (students == null) return 0;
  20.                 return students.Length;
  21.             }
  22.             //GetStudentNum實例方法
  23.             public int GetStudentNum()
  24.             {
  25.                 return students.Length;
  26.             }
  27.             
  28. }
複製代碼
3.主程式(我直接設定值,您要用螢幕輸入代替)
  1. //我直接設定值,您要用螢幕輸入代替
  2. Students students = new Students(2);//傳入2則Students內部會建立大小為2的陣列
  3.             try
  4.             {
  5.                 //students.GetStudents[0] = new Student()
  6.                 //{
  7.                 //     Chi=0 //會引發例外,因為限定在1~100
  8.                 //};
  9.                 students.GetStudents[0] = new Student()
  10.                 {
  11.                     Id="A1",
  12.                     Name="Andy",
  13.                     Chi = 80,
  14.                     Eng=88,
  15.                     Bcc=90
  16.                 };
  17.                 students.GetStudents[1] = new Student()
  18.                 {
  19.                     Id = "A2",
  20.                     Name = "Mary",
  21.                     Chi = 82,
  22.                     Eng = 80,
  23.                     Bcc = 88
  24.                 };
  25.                 Console.WriteLine("{0}平均{1}", students.GetStudents[0].Name, students.GetStudents[0].GetAVG());
  26.                 Console.WriteLine("實例方法GetStudentNum,共{0}位學生", students.GetStudentNum());//實例方法
  27.                 Console.WriteLine("靜態方法Num,共{0}位學生", Students.Num());//靜態方法
  28.                
  29.                 //從陣列找學生
  30.                 Student s = students.GetStudents.Where(st => st.Name == "Andy").FirstOrDefault();
  31.                 if (s != null)
  32.                 {
  33.                     Console.WriteLine(s.ToString());
  34.                 }
  35.                 else
  36.                 {
  37.                     Console.WriteLine("找不到該位學生");
  38.                 }
  39.                 Student s1 = students.GetStudents.Where(st => st.Name == "Joe").FirstOrDefault();
  40.                 if (s1 != null)
  41.                 {
  42.                     Console.WriteLine(s1.ToString());
  43.                 }
  44.                 else
  45.                 {
  46.                     Console.WriteLine("找不到該位學生");
  47.                 }
  48.                
  49.             }
  50.             catch (System.Exception ex)//處理例外
  51.             {
  52.                 Console.WriteLine(ex.Message);
  53. }
複製代碼
...
瀏覽完整內容,請先 註冊登入會員

點評

asdfg0205 好的 謝謝!!!  發表於 2016-12-22 09:21 PM

使用道具檢舉

您需要登錄後才可以回帖 登錄 | 註冊

Powered by Discuz!

© Comsenz Inc.

重要聲明:本討論區是以即時上載留言的方式運作,對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿上傳和撰寫 侵犯版權(未經授權)、粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。
回頂部