对多名学生的语文、数学、英语、物理、化学、生物的成绩按要求进行排序; 1)总分高的优先排序; 2)总分相等,按主科(语文数学英语)之和高的优先排序; 3)主科相等,物理高的优先; 4)物理相等,按输入的先后优先;
/*
* 由SharpDevelop创建。
* 用户: Administrator
* 日期: 2019/8/28
* 时间: 15:30
*
*
* 对多名学生的语文、数学、英语、物理、化学、生物的成绩按要求进行排序;
1)总分高的优先排序;
2)总分相等,按主科(语文数学英语)之和高的优先排序;
3)主科相等,物理高的优先;
4)物理相等,按输入的先后优先;
*
*
*
* 要改变这种模板请点击 工具|选项|代码编写|编辑标准头文件
*/
using System;
using System.Collections;
using System.Collections.Generic;
namespace test4
{
class Program
{
public static void Main(string[] args)
{
Console.WriteLine("请输入学生的总人数:");
int n = Convert.ToInt32(Console.ReadLine());
List students = new List();
for (int i = 0; i < n; i++) {
Console.WriteLine("请输入第{0}位学生的六门成绩",i+1);
Student student = new Student(Convert.ToDouble(Console.ReadLine()), Convert.ToDouble(Console.ReadLine()), Convert.ToDouble(Console.ReadLine()), Convert.ToDouble(Console.ReadLine()),
Convert.ToDouble(Console.ReadLine()), Convert.ToDouble(Console.ReadLine()));
students.Add(student);
}
students.Sort((Student s1,Student s2)=>
{
double num = s1.Yuwen + s1.Shuxue + s1.Yingyu + s1.Wuli + s1.Huaxue + s1.Shengwu;
double nums = s2.Yuwen + s2.Shuxue + s2.Yingyu + s2.Wuli + s2.Huaxue+ s2.Shengwu;
double zhuke = s1.Yuwen + s1.Shuxue + s1.Yingyu;
double zhukes = s2.Yuwen + s2.Shuxue + s2.Yingyu;
int key = 0;
if (num > nums)
key = 1;
else if (num == nums)
{
if (zhuke > zhukes)
key = 1;
else if (zhuke == zhukes)
{
if (s1.Wuli > s2.Wuli)
key = 1;
}
}
return key;
});
Console.WriteLine("排序后的成绩为:");
foreach(var student in students) {
Console.WriteLine(student.Yuwen + " " + student.Shuxue + " " + student.Yingyu + " "
+ student.Wuli + " " + student.Huaxue + " " + student.Shengwu);
}
Console.ReadKey();
}
}
class Student
{
private double yuwen;
public double Yuwen
{
get { return yuwen; }
}
private double shuxue;
public double Shuxue
{
get { return shuxue; }
}
private double yingyu;
public double Yingyu
{
get { return yingyu; }
}
private double wuli;
public double Wuli
{
get { return wuli; }
}
private double huaxue;
public double Huaxue
{
get { return huaxue; }
}
private double shengwu;
public double Shengwu
{
get { return shengwu; }
}
public Student(double yuwen, double shuxue, double yingyu, double wuli, double huaxue, double shengwu)
{
this.yuwen = yuwen;
this.shuxue = shuxue;
this.yingyu = yingyu;
this.wuli = wuli;
this.huaxue = huaxue;
this.shengwu = shengwu;
}
}
}
|