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

伊莉討論區

搜索
發表文章前請先閱讀相關版規尊貴會員無限下載附件安全提問(回答) 和 永久尊貴會員 事宜
mg巨乳mega無碼七龍珠航海王母乳無碼 ge
誘惑夢幻ナデシコ海龍妻と秘密no game芙莉蓮朝までず

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

[繁]月光下的異世界之

[繁/無修正]夢想成為

中國老頭在香港淺水灣

[繁]藥師少女的獨語24

[繁]因為不是真正的夥

[繁/無修正]夢想成為
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
查看: 4823|回復: 4

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

Rank: 1

帖子
269
積分
188 點
潛水值
22240 米
發表於 2016-12-21 04:10 PM|顯示全部樓層
本帖最後由 asdfg0205 於 2016-12-22 12:17 AM 編輯

不好意思 我目前完成了 可是 卡在查詢功能!我用if 去判斷 所輸入的學生學號 是否有在 a的陣列裡面! 如果有 就把 那個學生所有的東西印出來
可是 是能印出來沒錯 但是 如果 不是找第一位學生  的話 他們都會顯示 找不到該學生(東西還是有出來)~
請問 我該怎麼修改!



...
瀏覽完整內容,請先 註冊登入會員
附件: 你需要登錄才可以下載或查看附件。沒有帳號?註冊
若有安裝色情守門員,可用無界、自由門等軟件瀏覽伊莉。或使用以下網址瀏覽伊莉: http://www.eyny.com:81/index.php

使用道具檢舉

Rank: 1

帖子
61
積分
49 點
潛水值
26580 米
發表於 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
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。

使用道具檢舉

Rank: 2Rank: 2

帖子
241
積分
299 點
潛水值
22810 米
發表於 2016-12-22 08:58 AM|顯示全部樓層
若新密碼無法使用,可能是數據未更新。請使用舊密碼看看。
如果我沒記錯, ==, 用在物件上, 表達的是, 兩個物件是否為同一個. 一個是查詢的string, 一個是被查詢的string, 應該不會是同一個.

下載: 訪客無法瀏覽下載點,請先 註冊登入會員

點評

asdfg0205 謝謝!!  發表於 2016-12-22 09:21 PM
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。

使用道具檢舉

Rank: 1

帖子
76
積分
193 點
潛水值
4402 米
發表於 2016-12-25 03:49 PM|顯示全部樓層
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。
本帖最後由 跨越青春嶺 於 2016-12-25 04:03 PM 編輯

題目看了很久,主要是卡在6.7的意思,搞懂到底差別是什麼,最後決定的版本如下:

  1. using System;
  2. using System.Linq;

  3. namespace HW_11182407
  4. {
  5.     internal class Program
  6.     {
  7.         private static void Main(string[] args)
  8.         {
  9.             Console.Write("學生有幾位?");
  10.             var n = int.Parse(Console.ReadLine());

  11.             var students = new Student[n];
  12.             Console.WriteLine($"須建立{Student.Num(students)}位學生{Environment.NewLine}");

  13.             for (int i = 0; i < students.Length; i++)
  14.             {
  15.                 Console.Write("學號:");
  16.                 var id = Console.ReadLine();
  17.                 Console.Write("姓名:");
  18.                 var name = Console.ReadLine();
  19.                 Console.Write("國文分數:");
  20.                 var chi = int.Parse(Console.ReadLine());
  21.                 Console.Write("英文分數:");
  22.                 var eng = int.Parse(Console.ReadLine());
  23.                 Console.Write("計概分數:");
  24.                 var bcc = int.Parse(Console.ReadLine());
  25.                 students[i] = new Student
  26.                 {
  27.                     ID = id,
  28.                     Name = name,
  29.                     Chi = chi,
  30.                     Eng = eng,
  31.                     Bcc = bcc
  32.                 };
  33.                 Console.WriteLine();
  34.             }

  35.             Console.Write("輸入姓名查詢學生成績:");
  36.             var inputName = Console.ReadLine();

  37.             var result = "找不到該學生";
  38.             var theStudent = students.Where(s => s.Name == inputName).FirstOrDefault();
  39.             if (theStudent != null)
  40.             {
  41.                 result = $"學號:{theStudent.ID},國文分數:{theStudent.Chi},英文分數:{theStudent.Eng},計概分數:{theStudent.Bcc},平均分數:{theStudent.GetAvg()}";
  42.             }
  43.             Console.WriteLine(result);

  44.             Console.ReadKey();
  45.         }
  46.     }

  47.     internal class Student
  48.     {
  49.         private static int _count = 0;

  50.         public string ID { get; set; }

  51.         public string Name { get; set; }

  52.         public int Chi { get; set; }

  53.         public int Eng { get; set; }

  54.         public int Bcc { get; set; }

  55.         public Student()
  56.         {
  57.             Console.WriteLine($"目前共建立{GetStudentNum()}位學生");
  58.         }

  59.         public static int Num(Student[] student)
  60.         {
  61.             return student.Length;
  62.         }

  63.         private int GetStudentNum()
  64.         {
  65.             return ++_count;
  66.         }

  67.         public double GetAvg()
  68.         {
  69.             return (double)(Chi + Eng + Bcc) / 3;
  70.         }
  71.     }
  72. }
複製代碼

...
瀏覽完整內容,請先 註冊登入會員

點評

asdfg0205 謝謝!  發表於 2016-12-25 07:30 PM
若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com

使用道具檢舉

帖子
177
積分
6 點
潛水值
7641 米
發表於 2017-1-27 11:13 PM|顯示全部樓層
如果你忘記伊莉的密碼,請在登入時按右邊出現的 '找回密碼'。輸入相關資料後送出,系統就會把密碼寄到你的E-Mail。
  1. class Program
  2.     {
  3.         static void Main(string[] args)
  4.         {
  5.             List<Student> list = new List<Student>();
  6.             Console.Write("請輸入要建立的學生人數:");
  7.             //不考慮輸入非數字
  8.             int createStudents = int.Parse(Console.ReadLine());
  9.             Console.WriteLine("*******************************************");
  10.             Console.WriteLine("開始建立學生成績資料:");
  11.             for(int i = 0; i < createStudents; i++)
  12.             {
  13.                 Console.WriteLine($"第{i+1}位學生:");
  14.                 Console.Write("學號:");
  15.                 string stdId = Console.ReadLine();
  16.                 Console.Write("姓名:");
  17.                 string stdName = Console.ReadLine().Trim();
  18.                 Console.Write("國文分數:");
  19.                 int stdChi = Convert.ToInt32( Console.ReadLine());
  20.                 Console.Write("英文分數:");
  21.                 int stdEng = Convert.ToInt32(Console.ReadLine());
  22.                 Console.Write("計概分數:");
  23.                 int stdBcc = Convert.ToInt32(Console.ReadLine());
  24.                 Console.WriteLine("*******************************************");
  25.                 list.Add(new Student(stdId, stdName, stdChi, stdEng, stdBcc));
  26.             }

  27.             Console.Write("請輸入要查詢的學生姓名:");
  28.             string name = Console.ReadLine();
  29.             Student findStudent = list.Where(s => s.Name == name.Trim()).FirstOrDefault();
  30.             if(findStudent != null)
  31.             {
  32.                 Console.WriteLine($"學號:{findStudent.Id},姓名:{findStudent.Name}");
  33.                 Console.WriteLine($"國文成績:{findStudent.Chi}");
  34.                 Console.WriteLine($"英文成績:{findStudent.Eng}");
  35.                 Console.WriteLine($"計概成績:{findStudent.Bcc}");
  36.                 Console.WriteLine(String.Format("平均成績:{0:C2}",findStudent.GetAvg()));
  37.                 Console.WriteLine("*******************************************");
  38.             }
  39.             else
  40.             {
  41.                 Console.WriteLine("找不到該位學生");
  42.             }
  43.             Console.ReadKey();
  44.         }
  45.     }

  46.     public class Student
  47.     {
  48.         static int Count { get; set; }  //現有學生數
  49.         public string Id { get; set; }
  50.         public string Name { get; set; }
  51.         public int Chi { get; set; }
  52.         public int Eng { get; set; }
  53.         public int Bcc { get; set; }

  54.         public Student()
  55.         {
  56.             Count++;
  57.         }
  58.         public Student(string id, string name, int chi, int eng, int bcc)
  59.             :this()
  60.         {
  61.             this.Id = id;
  62.             this.Name = name;
  63.             this.Chi = chi;
  64.             this.Eng = eng;
  65.             this.Bcc = bcc;
  66.         }
  67.         public double GetAvg()
  68.         {
  69.             return (Chi + Eng + Bcc) / 3;
  70.         }
  71.         public static int GetStudentNumber()  //學生數量
  72.         {
  73.             return Count;
  74.         }
  75.     }
複製代碼
...
瀏覽完整內容,請先 註冊登入會員





成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。

使用道具檢舉

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

Powered by Discuz!

© Comsenz Inc.

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