- 最後登錄
- 2024-3-28
- 在線時間
- 0 小時
- 註冊時間
- 2016-8-22
- 閱讀權限
- 20
- 精華
- 0
- UID
- 16624936
- 帖子
- 61
- 積分
- 49 點
- 潛水值
- 26580 米
| 發表於 2016-12-22 08:52 AM|顯示全部樓層 若新密碼無法使用,可能是數據未更新。請使用舊密碼看看。 由Student類別提供人數資料有點奇怪,因為Student類別是用來存學生個人資料的,這個部分您可以再和老師討論一下,我的作法是另建一個Students類別來存陣列並提供人數資料,我的作法如下:
1.先建Student類別- class Student
- {
- public string Id { get; set; }
- public string Name { get; set; }
- int _Chi=0, _Eng=0, _Bcc=0;
- public int Chi
- {
- get { return _Chi; }
- set
- {
- //若輸入值不在1~100之間則引發例外
- if (value < 1 || value > 100) throw new Exception("數值必須在1~100之間");
- _Chi = value;
- }
- }
- public int Eng
- {
- get { return _Eng; }
- set
- {
- if (value < 1 || value > 100) throw new Exception("數值必須在1~100之間");
- _Eng = value;
- }
- }
- public int Bcc
- {
- get { return _Bcc; }
- set
- {
- if (value < 1 || value > 100) throw new Exception("數值必須在1~100之間");
- _Bcc = value;
- }
- }
- public double GetAVG()
- {
- return ((double)Chi + Eng + Bcc) / 3;
- }
- //複寫ToString方法以輸出學生資訊
- public override string ToString()
- {
- return string.Format("Id:{0} Name:{1} Chi:{2} Eng:{3} Bcc:{4} AVG:{5}", Id, Name, Chi, Eng, Bcc,GetAVG());
- }
- }
複製代碼 2.建Students類別- //建一個存放陣列的類別並提供GetStudentNum實例方法及Num靜態方法
- class Students
- {
- static Student[] students = null;
- public Students(int num)
- {
- students = new Student[num];
- }
- public Student[] GetStudents
- {
- get
- {
- return students;
- }
- }
- //Num靜態方法
- public static int Num()
- {
- if (students == null) return 0;
- return students.Length;
- }
- //GetStudentNum實例方法
- public int GetStudentNum()
- {
- return students.Length;
- }
-
- }
複製代碼 3.主程式(我直接設定值,您要用螢幕輸入代替)- //我直接設定值,您要用螢幕輸入代替
- Students students = new Students(2);//傳入2則Students內部會建立大小為2的陣列
- try
- {
- //students.GetStudents[0] = new Student()
- //{
- // Chi=0 //會引發例外,因為限定在1~100
- //};
- students.GetStudents[0] = new Student()
- {
- Id="A1",
- Name="Andy",
- Chi = 80,
- Eng=88,
- Bcc=90
- };
- students.GetStudents[1] = new Student()
- {
- Id = "A2",
- Name = "Mary",
- Chi = 82,
- Eng = 80,
- Bcc = 88
- };
- Console.WriteLine("{0}平均{1}", students.GetStudents[0].Name, students.GetStudents[0].GetAVG());
- Console.WriteLine("實例方法GetStudentNum,共{0}位學生", students.GetStudentNum());//實例方法
- Console.WriteLine("靜態方法Num,共{0}位學生", Students.Num());//靜態方法
-
- //從陣列找學生
- Student s = students.GetStudents.Where(st => st.Name == "Andy").FirstOrDefault();
- if (s != null)
- {
- Console.WriteLine(s.ToString());
- }
- else
- {
- Console.WriteLine("找不到該位學生");
- }
- Student s1 = students.GetStudents.Where(st => st.Name == "Joe").FirstOrDefault();
- if (s1 != null)
- {
- Console.WriteLine(s1.ToString());
- }
- else
- {
- Console.WriteLine("找不到該位學生");
- }
-
- }
- catch (System.Exception ex)//處理例外
- {
- Console.WriteLine(ex.Message);
- }
複製代碼 ... |
|