面向对象第一次练手-------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

java----ArrayList

杨玲 201771010133《面向对象程序设计(java)》第十周学习总结

C++面向对象编程

C++面向对象编程

狄慧201771010104《面向对象程序设计(java)》第十周学习总结