C#打印成绩表代码

 

题目:一个班6个人,从键盘输入每个学号语文,数学,外语成绩(不需输入学号)。

输出:学生成绩表(包括每个人的总分),每科的平均分。
附加1:试着,把不及格的用红字显示。
附加2:试着按照总分排序,显示名次出来。

static void Main(string[] args)
{
int[,] a = new int[6, 5];
for (int i = 0; i < 6; i++)
{
a[i, 0] = i + 1;
Console.Write("请输入第" + (i + 1) + "名学生的语文成绩:");
a[i, 1] = Convert.ToInt32(Console.ReadLine());
Console.Write("请输入第" + (i + 1) + "名学生的数学成绩:");
a[i, 2] = Convert.ToInt32(Console.ReadLine());
Console.Write("请输入第" + (i + 1) + "名学生的英语成绩:");
a[i, 3] = Convert.ToInt32(Console.ReadLine());
a[i, 4] = a[i, 1] + a[i, 2] + a[i, 3];
Console.Clear();
}
for (int i = 1; i < 6; i++)
{
for (int j = 1; j < 7 - i; j++)
{
if (a[j, 4] > a[j - 1, 4])
{
int min = 0;
min = a[j, 4];
a[j, 4] = a[j - 1, 4];
a[j - 1, 4] = min;

int xuehao = 0;
xuehao = a[j, 0];
a[j, 0] = a[j - 1, 0];
a[j - 1, 0] = xuehao;

int yuwen = 0;
yuwen = a[j, 1];
a[j, 1] = a[j - 1, 1];
a[j - 1, 1] = yuwen;

int shuxue = 0;
shuxue = a[j, 2];
a[j, 2] = a[j - 1, 2];
a[j - 1, 2] = shuxue;

int yingyu = 0;
yingyu = a[j, 3];
a[j, 3] = a[j - 1, 3];
a[j - 1, 3] = yingyu;
}
}
}

Console.WriteLine("学号\t语文\t数学\t英语\t总分\t名次");
for (int n = 0; n < 6; n++)
{
for (int m = 0; m < 5; m++)
{
if (a[n, m] < 60&&m>0&&m<4)
{
Console.ForegroundColor = ConsoleColor.Red;
}
Console.Write(a[n, m] + "\t");
Console.ForegroundColor = ConsoleColor.Gray;
}
Console.Write((n+1)+"\n");
}
double yw = 0, sx = 0, yy = 0;
for (int k = 0; k < 6; k++)
{
yw = yw + a[k, 1];
sx = sx + a[k, 2];
yy = yy + a[k, 3];
}
yw = yw / 6;
sx = sx / 6;
yy = yy / 6;
yw = Convert.ToDouble(yw.ToString("#.00"));
sx = Convert.ToDouble(sx.ToString("#.00"));
yy = Convert.ToDouble(yy.ToString("#.00"));
Console.WriteLine("平均分\t" + yw + "\t" + sx + "\t" + yy + "\t");

}

其中注意的问题:

1.首先进行题目分析,整个过程可以分为以下几个部分:

a、输入成绩  b、冒泡排序  c、输出表格  d、改变字体颜色  e、求平均分

2.进行冒泡排序时要注意将前边所有的顺序进行排列

3.改变字体颜色时需要单独输出,且输出一个后再将颜色改回来

posted @ 2016-04-24 08:45  沙瑞金书记  阅读(555)  评论(0编辑  收藏  举报