面向对象第一次练手-------ArrayList集合类对象冒泡排序类型转换
Posted Joker
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象第一次练手-------ArrayList集合类对象冒泡排序类型转换相关的知识,希望对你有一定的参考价值。
思维转不过弯儿来 怎么做都是错 哪怕差一个()就成功的事情,也是千差万别
忽然想到一句话:差一步就成功的距离 = 差几万米就成功的距离
部分的理解和都体现在代码和注释里
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 public bool 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集合类对象冒泡排序类型转换的主要内容,如果未能解决你的问题,请参考以下文章
为啥是List list = new ArrayList,而不直接用ArrayList