一道c#关于结构体数组排序的题目
从键盘输入五个学生的姓名,性别,数学、语文、英语成绩;要求:按总分降序输出使用结构体,遍历用foreach单独写方法计算总分,单独写方法排序,不能用系统提供的sort之类...
从键盘输入五个学生的 姓名,性别,数学、语文、英语成绩;
要求:按总分降序输出
使用结构体,遍历用foreach
单独写方法计算总分,单独写方法排序,不能用系统提供的sort之类的东西,main单独在一个类中 展开
要求:按总分降序输出
使用结构体,遍历用foreach
单独写方法计算总分,单独写方法排序,不能用系统提供的sort之类的东西,main单独在一个类中 展开
1个回答
展开全部
暂时不忙,就帮你写了下:
class Program
{
static List<Student> stuList = new List<Student>();
static void Main(string[] args)
{
for (int i = 0; i < 5; i++)
{
Student student=new Student();
Console.WriteLine("请输入学生姓名:");
student.Name = Console.ReadLine();
Console.WriteLine("请输入学生性别:");
student.Sex = Console.ReadLine();
Console.WriteLine("请输入学生语文成绩:");
student.Chinese = Convert.ToSingle(Console.ReadLine());
Console.WriteLine("请输入学生数学成绩:");
student.Math = Convert.ToSingle(Console.ReadLine());
Console.WriteLine("请输入学生英语成绩:");
student.EngLish = Convert.ToSingle(Console.ReadLine());
student.Total = TotalSum(student.Chinese, student.Math, student.EngLish);
stuList.Add(student);
}
Bubble();
foreach (var item in stuList)
{
Console.WriteLine(string.Format("学生姓名{0},总分为:{1} ", item.Name,item.Total));
}
Console.ReadLine();
}
//计算总分
static float TotalSum(float chinese, float math, float engLish)
{
return chinese + math + engLish;
}
/// <summary>
/// 对学生总分排序
/// </summary>
static void Bubble()
{
Student temp = new Student();
for (int i = stuList.Count; i > 0; i--)
{
for (int j = 0; j < i - 1; j++)
{
if (stuList[j].Total < stuList[j + 1].Total)
{
temp = stuList[j];
stuList[j] = stuList[j + 1];
stuList[j + 1] = temp;
}
}
}
}
}
public class Student
{
public string Name { get; set; }
public string Sex { get; set; }
public float Chinese { get; set; }
public float Math { get; set; }
public float EngLish { get; set; }
public float Total { get; set; }
}
追问
感谢你的回答,我刚大二开学c#一个月,不太懂,想再问你一个问题。这里的Bubble() ,只能对这个stuList排序吧?如果我创建不同的student数组,如何做到调用同一个方法实现对他们排序呢
追答
嗯,stuList目前是定义的静态泛型集合,如果你要想用不同的student数组,简单改下方法加入返回值就可以:
static List<Student> Bubble(List<Student> stuList)
{
Student temp = new Student();
for (int i = stuList.Count; i > 0; i--)
{
for (int j = 0; j < i - 1; j++)
{
if (stuList[j].Total < stuList[j + 1].Total)
{
temp = stuList[j];
stuList[j] = stuList[j + 1];
stuList[j + 1] = temp;
}
}
}
return stuList;
}
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询