【2017-12-13】c#基础-结构体、枚举
结构体:
定义位置:定义在Main函数的外面,类的里面
定义格式:
struct Student
{
public string name;
public bool sex;
...
}
声明实例化:Student s=new Student();
赋值:s.name="张三";s.sex=true;
取值:string zsxm=s.name;
枚举:
定义位置:定义在Main函数的外面,类的里面
定义格式:
enum Week
{
星期一,
星期二,
星期三,
星期四,
星期五,
星期六,
星期日
}
取值:Week w=Week.星期一;
练习:
1.“请输入录入学生的个数:”
(记录学生信息,需要获取输入)
“请输入第1个学生的学号”
“请输入第1个学生的姓名”
“请输入第1个学生的生日”
“请输入第1个学生的成绩”
打印格式如下:
================学生信息展示===================
s001 张三 2000年1月1日 17 90(成绩从大到小排列)
s002 李四 2000年1月1日 17 80
。。。
1 class Program 2 { 3 struct Student 4 { 5 public string no; 6 public string name; 7 public DateTime birthday; 8 public double score; 9 } 10 11 static void Main(string[] args) 12 { 13 #region 录入学生信息 14 Console.Write("请输入录入学生个数:"); 15 int n =Convert.ToInt32(Console.ReadLine()); 16 Console.WriteLine(); 17 List<Student> slist = new List<Student>(); 18 for (int i = 0; i < n; i++) 19 { 20 Student s = new Student(); 21 Console.Write("请输入第" + (i + 1) + "个学生的学号:"); 22 s.no = Console.ReadLine(); 23 Console.Write("请输入第" + (i + 1) + "个学生的姓名:"); 24 s.name = Console.ReadLine(); 25 Console.Write("请输入第" + (i + 1) + "个学生的生日:"); 26 s.birthday =Convert.ToDateTime(Console.ReadLine()); 27 Console.Write("请输入第" + (i + 1) + "个学生的分数:"); 28 s.score =Convert.ToDouble(Console.ReadLine()); 29 Console.WriteLine(); 30 slist.Add(s); 31 } 32 #endregion 33 34 #region 冒泡排序算法 35 for (int i = 0; i < slist.Count; i++) 36 { 37 for (int j = i + 1; j < slist.Count; j++) 38 { 39 if (slist[i].score < slist[j].score) 40 { 41 Student s = new Student(); 42 s = slist[i]; 43 slist[i] = slist[j]; 44 slist[j] = s; 45 } 46 } 47 } 48 #endregion 49 50 #region 信息显示 51 Console.WriteLine("================学生信息展示==================="); 52 Console.WriteLine(); 53 foreach (Student s in slist) 54 { 55 Console.WriteLine(s.no+" "+s.name+ " " + s.birthday.ToString("yyyy年MM月dd日")+ " " +(DateTime.Now.Year-s.birthday.Year)+ " " + s.score); 56 } 57 #endregion 58 59 Console.ReadLine(); 60 61 62 } 63 }