1127 关于结构体的使用

mac2022-06-30  34

就在前几天我们的C#系列的初级课程已经结束,开始迈向网页制作的课堂,不过这不代表c#已经被抛弃,在最后我们还讲了一点关于结构体的知识,这篇文章主要做一下结构体的运用,以及函数的编写与运用。

题目是运用结构体来记录三名学生的五门功课成绩,要输出最终的排名,以及算出总分平均分,如果学生的成绩低于90分,则提醒他这一门不及格,最后要根据总分做出排名。

再没学结构体之前,这道题无疑是大工程,要有一层层的for循环,排序也是要用很多临时变量。

但是在学了结构体之后,可以只通过一个结构体来定义一系列不同类型的变量在一个“容器”里,方便我们使用。

代码如下:

//首先定义一个结构体,用来存储一个学生的!#%¥……%所有信息:

struct Score { public int Rank; public int stuNo; public string Name; public double Chinese; public double Maths; public double English; public double History; public double Physics; public double Sum; public double Avg; }

static void Input(Score[] arr) { for (int i = 0; i < arr.Length; i++) { Console.Write("请输入第{0}位同学的名字:", i + 1); arr[i].Name = Console.ReadLine(); Console.Write("请输入{0}的五门科目成绩,以空格分隔。",arr[i].Name); string str = Console.ReadLine(); string[] sco = str.Split(' '); arr[i].Chinese = Convert.ToDouble(sco[0]); arr[i].Maths = Convert.ToDouble(sco[1]); arr[i].English = Convert.ToDouble(sco[2]); arr[i].History = Convert.ToDouble(sco[3]); arr[i].Physics = Convert.ToDouble(sco[4]); arr[i].Sum = arr[i].Chinese + arr[i].Maths + arr[i].English + arr[i].History + arr[i].Physics; arr[i].Avg = arr[i].Sum / 5; } }

static void Sort(Score[] arr) { for (int i = 1; i <= arr.Length - 1; i++) { for (int j = 1; j <= arr.Length - i; j++) { if (arr[j].Sum > arr[j - 1].Sum) { Score temp = arr[j - 1]; arr[j - 1] = arr[j]; arr[j] = temp; } } } }

static void Output(Score[] arr) { for (int i = 0; i < arr.Length; i++) { arr[i].Rank = i + 1; Console.WriteLine("{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}\t{7}\t{8}\t{9}\t", arr[i].Rank, arr[i].stuNo, arr[i].Name, arr[i].Chinese, arr[i].Maths, arr[i].English, arr[i].History, arr[i].Physics, arr[i].Sum, arr[i].Avg.ToString("#.00")); } }

static void Main(string[] args) { Score[] arr = new Score[3]; Input(arr); Sort(arr); Output(arr); }

 

如果真正掌握了结构体的话,这段代码不算难。不过这里贴的代码都比较杂乱,没有格式,看起来可能复杂一点,望见谅。

转载于:https://www.cnblogs.com/Dawn-z/archive/2012/11/27/2791345.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)