在一个二维数组中存放5个人的四门成绩,计算个人的总成绩,并且按个人的总成绩排

````

  public class Student : IComparable<Student>
  {
  public int Sid;//学号
  public string Sname;//姓名
  public double Subject1;//四科成绩
  public double Subject2;
  public double Subject3;
  public double Subject4;
  public double Total;//总成绩

  public int CompareTo(Student other)
  {
  return this.Total.CompareTo(other.Total);
  }

  }
  class Program
  {
  public static void Main()
  {//初始化二维数组,存放五个学生的四科成绩,以及其学号和姓名
  string[,] stu = new string[5, 6] { { "1", "Yao", "99", "66", "55", "77" }, { "2", "Wang", "88", "66", "55", "77" }, { "3", "Cheng", "89", "66", "100", "77" }, { "4", "Li", "68", "66", "74", "77" }, { "5", "Huang", "99", "80", "99", "77" },};

  List<Student> list1 = new List<Student>();
  for (int i = 0; i < stu.GetLength(0); i++)
  {
  Student student = new Student();
  student.Sid = Convert.ToInt16(stu[i, 0]);
  student.Sname=stu[i,1];
  student.Subject1 = Convert.ToDouble(stu[i, 2]);
  student.Subject2 = Convert.ToDouble(stu[i, 3]);
  student.Subject3 = Convert.ToDouble(stu[i, 4]);
  student.Subject4 = Convert.ToDouble(stu[i, 5]);
  student.Total = student.Subject1+student.Subject2+student.Subject3+student.Subject4;
  list1.Add(student);
  }

  list1.Sort();//按总成绩从小到大排序
  list1.Reverse();//反序

  foreach (Student s in list1)//打印输出
  {
  Console.WriteLine(s.Sid + "\t"+s.Sname +"\t"+ s.Subject1 + "\t" + s.Subject2 + "\t" + s.Subject3 + "\t" + s.Subject4 + "\t" + s.Total );
  }

  Console.Read();
  }
  }
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-11-19
做一个EXCEL把他们的各门成绩输入进去,求和,排序就行了。
相似回答