面向對象第一次練手-------ArrayList集合、類、對象、冒泡排序、類型轉換
阿新 • • 發佈:2017-11-10
arraylist for 一句話 class new each 註釋 program bsp
思維轉不過彎兒來 怎麽做都是錯 哪怕差一個()就成功的事情,也是千差萬別
忽然想到一句話:差一步就成功的距離 = 差幾萬米就成功的距離
部分的理解和都體現在代碼和註釋裏
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace 面向對象初步練手 8 { 9 class Student 10 { 11 12 13 //請輸入學生數量:10 14 15 //請輸入第1個學生的姓名:sdf 16 //請輸入第1個學生的性別:男 17 //請輸入第1個學生的成績:0~100 (不在這個範圍之內,算作0分) 18 //... 19 //... 20 21 //========學生信息展示========= 22 //名次 姓名 性別 成績 23 //1 張三 男 99 24 //2 李四 女 90 25 //...26 //... 27 #region 封裝 姓名 28 private string _Name; 29 30 public string Name 31 { 32 get { return _Name; } 33 set { _Name = value; } 34 } 35 #endregion 36 37 #region 封裝 性別 38 private bool _Sex; 39 40 publicbool Sex 41 { 42 get { return _Sex; } 43 set { _Sex = value; } 44 } 45 public string Sexstr 46 { 47 get { return _Sex ? "男" : "女"; } 48 set 49 { 50 if (value == "男") 51 _Sex = true; 52 else 53 _Sex = false; 54 } 55 } 56 #endregion 57 58 #region 封裝 成績 59 private int _Degree; 60 61 public int Degree 62 { 63 get { return _Degree; } 64 set { 65 if (value >= 0 && value <= 100) 66 { 67 _Degree = value; 68 } 69 else 70 { 71 _Degree = 0; 72 } 73 } 74 } 75 #endregion 76 77 78 79 80 81 82 83 84 85 } 86 }
1 using System; 2 using System.Collections; 3 using System.Collections.Generic; 4 using System.Linq; 5 using System.Text; 6 using System.Threading.Tasks; 7 8 namespace 面向對象初步練手 9 { 10 class Program 11 { 12 static void Main(string[] args) 13 { 14 15 16 // 請輸入學生數量:10 17 18 //請輸入第1個學生的姓名:sdf 19 //請輸入第1個學生的性別:男 20 //請輸入第1個學生的成績:0~100 (不在這個範圍之內,算作0分) 21 //... 22 //... 23 24 //========學生信息展示========= 25 //名次 姓名 性別 成績 26 //1 張三 男 99 27 //2 李四 女 90 28 //... 29 //... 30 31 32 33 //創建集合(集合就是個帶有標記的大房間) 34 ArrayList stu = new ArrayList(); 35 36 Console.Write("請輸入學生數量:"); 37 int stucount = Convert.ToInt32(Console.ReadLine()); 38 Console.WriteLine(); 39 40 for (int i = 1; i <= stucount; i++) 41 { 42 //把student類 實例化 成一個實際的對象(把人類這個虛構的一個想法,實例化成一個真正的人 人有姓名、性別、成績這些屬性 ) 43 Student s = new Student(); 44 Console.Write("請輸入第" + i + "個學生的姓名:"); 45 //給這個人(this這個人)姓名這個屬性給附上值 46 s.Name = Console.ReadLine(); 47 48 Console.Write("請輸入第" + i + "個學生的性別:"); 49 s.Sexstr = Console.ReadLine(); 50 51 Console.Write("請輸入第" + i + "個學生的成績:"); 52 s.Degree = Convert.ToInt32(Console.ReadLine()); 53 54 55 //把這個人(這個人帶著這些被賦值的 屬性)放入到帶有標記的大房間裏 56 stu.Add(s); 57 Console.WriteLine(); 58 59 } 60 61 62 63 //冒泡排序 64 65 66 for (int i = 0; i < stu.Count; i++) 67 { 68 for (int j = i + 1; j < stu.Count; j++) 69 { 70 if (((Student)stu[i]).Degree < ((Student)stu[j]).Degree) 71 { 72 object temp = stu[i]; 73 stu[i] = stu[j]; 74 stu[j] = temp; 75 } 76 } 77 } 78 Console.WriteLine(); 79 Console.WriteLine(); 80 Console.WriteLine(" ========學生信息展示========="); 81 Console.WriteLine(); 82 Console.WriteLine(" 名次 姓名 性別 成績"); 83 Console.WriteLine(); 84 85 86 87 //遍歷ArrayList stu這個集合,然後輸出 88 int count = 1; 89 foreach (object a in stu) 90 { 91 Student s = (Student)a; 92 93 Console.WriteLine(" " + count + " " + s.Name + " " + s.Sexstr + " " + s.Degree); 94 Console.WriteLine(); 95 count++; 96 } 97 98 99 100 Console.ReadLine(); 101 } 102 } 103 }
標紅和註釋的是最讓我昨天昨晚最頭疼的 以至於敲到最後自己能很明顯的感覺到腦子轉不動了,實在是轉不動了 打個比方:要拿起杯子喝水,杯子拿起來了,不知道怎麽喝水了,不知道怎麽張嘴了,還會傻呵呵的問“喝水該怎麽喝,該怎麽張嘴”
面向對象第一次練手-------ArrayList集合、類、對象、冒泡排序、類型轉換