C# Arraylist + struct 综合练习 枚举ENUE 递归

时间:2022-06-08 00:58:36

class Program { #region 成绩 //结构体是自定义类型,可以当做数据类型来使用 struct Student { public int code; public string name; public Score score; } struct Score { public double yufen; public double shufen; public double yingfen; } public ArrayList al = new ArrayList(); ******* static void Main(string[] args) { #region 班级排名 //输入班级人数,输入学生的学号、姓名、语数英分数 //存入结构体 //然后求语文分数为最高分的两个学生的所有信息 //数学最高分的两个学生的信息 //英语平均分 Console.Write("请输入班级人数:"); int a = int.Parse(Console.ReadLine()); Program hs = new Program(); for (int i = 0; i < a;i++ ) { Student st = new Student(); Console.Write("请输入第{0}个学生的学号:",(i+1)); st.code = int.Parse(Console.ReadLine()); Console.Write("请输入第{0}个学生的姓名:", (i + 1)); st.name = Console.ReadLine(); Console.Write("请输入第{0}个学生的语文分数:", (i + 1)); st.score.yufen = double.Parse(Console.ReadLine()); Console.Write("请输入第{0}个学生的数学分数:", (i + 1)); st.score.shufen = double.Parse(Console.ReadLine()); Console.Write("请输入第{0}个学生的英语分数:", (i + 1)); st.score.yingfen = double.Parse(Console.ReadLine()); hs.al.Add(st); } Console.WriteLine("所有人员信息输入完毕!请按回车键继续!"); Console.ReadLine(); //然后求语文分数为最高分的两个学生的所有信息 for (int i = 0; i < a - 1;i++ ) { for (int j = i + 1; j < a;j++ ) { Student st1 =(Student)hs.al[i]; Student st2 =(Student)hs.al[j]; if(st1.score.yufen<st2.score.yufen) { object zhong = hs.al[i]; hs.al[i] = hs.al[j]; hs.al[j] = zhong; } } } Student yu1 = (Student)hs.al[0]; Student yu2 = (Student)hs.al[1]; Console.WriteLine("语文分数最高的第一个学生的学号:{0},姓名:{1},语文分数:{2},数学分数:{3},英语分数:{4}。",yu1.code,yu1.name,yu1.score.yufen,yu1.score.shufen,yu1.score.yingfen); Console.WriteLine("语文分数最高的第二个学生的学号:{0},姓名:{1},语文分数:{2},数学分数:{3},英语分数:{4}。", yu2.code, yu2.name, yu2.score.yufen, yu2.score.shufen, yu2.score.yingfen); //数学最高分的两个学生的信息 for (int i = 0; i < a - 1; i++) { for (int j = i + 1; j < a; j++) { Student st1 = (Student)hs.al[i]; Student st2 = (Student)hs.al[j]; if (st1.score.shufen < st2.score.shufen) { object zhong = hs.al[i]; hs.al[i] = hs.al[j]; hs.al[j] = zhong; } } } Student shu1 = (Student)hs.al[0]; Student shu2 = (Student)hs.al[1]; Console.WriteLine("数学分数最高的第一个学生的学号:{0},姓名:{1},语文分数:{2},数学分数:{3},英语分数:{4}。", shu1.code, shu1.name, shu1.score.yufen, shu1.score.shufen, shu1.score.yingfen); Console.WriteLine("数学分数最高的第二个学生的学号:{0},姓名:{1},语文分数:{2},数学分数:{3},,英语分数:{4}。", shu2.code, shu2.name, shu2.score.yufen, shu2.score.shufen, shu2.score.yingfen); //英语平均分 double sum = 0; for (int i = 0; i < hs.al.Count;i++ ) { Student ying = (Student)hs.al[i]; sum += ying.score.yingfen; } Console.WriteLine("班级英语平均分是:"+(sum/a)); #endregion