项目:班级学生考试成绩排序程序 计应192西 第五组 潘雨航
需求分析:算出平均值,并排序 时间:20minute
设计文档:一个StuAchv类,Main方法StuAchv方法 SolvingAver方法 PrintStuMess方法 时间:45minutes
设计复审:杨同乐复审 时间:60minutes
代码规范:使用驼峰式命名 时间:30minutes
具体设计: 设计四种方法,
- 输出全班成绩
- 求出每个人学生的平均成绩
- 按平均成绩降序排序
- 输出排序后的全班成绩。
时间: 60minutes
具体实现代码为下:工作时间 1天 119行代码
class StuAchv
{
private string Name;
private string Num;
private int Net;
private int English;
private int Math;
private double Aver;
static int Total;
StuAchv(string newName, string newNum, int newNet, int newEnglish, int newMath, double newAver)
{
Name = newName; Num = newNum;
Net = newNet; English = newEnglish;
Math = newMath; Aver = newAver;
}
public static StuAchv[] InputStuMess() //输入全班同学信息
{
int i, f, d, e; string a, b, c; double j;
StuAchv[] Stul;
Stul = new StuAchv[25];
Console.WriteLine("提示: \n 当学生姓名输入为0时,系统认为输入结束!");
for (i = 0; i < 25; i++)
{
Console.WriteLine("请输入学生姓名: ");
a = Console.ReadLine();
if (a == "0")
{
Total = i;
break;
}
Console.WriteLine("请输入该学生学号: ");
b = Console.ReadLine();
Console.WriteLine("请输入该学生NET成绩: ");
c = Console.ReadLine();
f = Convert.ToInt32(c);
Console.WriteLine("请输入该学生英语成绩: ");
c = Console.ReadLine();
d = Convert.ToInt32(c);
Console.WriteLine("请输入该学生数学成绩: ");
c = Console.ReadLine();
e = Convert.ToInt32(c);
j = SolvingAver(f, d, e);
Stul[1] = new StuAchv(a, b, f, d, e, j);
}
return NewMethod(Stul);
}
private static StuAchv[] NewMethod(StuAchv[] Stul)
{
return Stul;
}
public static double SolvingAver(int newNet, int newEnglish, int newMath)//求平均数
{
double newAver;
newAver = newNet + newEnglish + newMath;
newAver = newAver / 3;
return newAver;
}
public static StuAchv[] Sequence(StuAchv[] Stu)//进行排序,冒泡
{
StuAchv model;
int i = 0, j = Total - 1;
int key;
while (j != 0)
{
i = 0;
key = 0;
while (i != j)
{
if (Stu[i].Aver < Stu[i + 1].Aver)
{
model = Stu[i];
Stu[i] = Stu[i + 1];
Stu[i + 1] = model;
key = 1;
}
}
if (key == 0)
break;
j--;
}
return Stu;
}
public static void PrintStuMess(StuAchv[] Stu)
{
int i;
Console.WriteLine("计应192成绩表");
Console.Write("班级\t学号\t.NET\t英语\t数学\t平均分\n");
for (i = 0; i < Total; i++)
Console.Write("{0}\t{1}\t {2}\t {3}\t {4}\t {5}\n", Stu[i].Name, Stu[i].Num, Stu[i].Net, Stu[i].English, Stu[i].Math, Stu[i].Aver);
}
public static void Main()
{
StuAchv[] Stu;
Stu = InputStuMess();
Stu = Sequence(Stu);
Console.WriteLine("**********************************");
PrintStuMess(Stu);
return;
}
}
代码复审:仔细查看代码规范和符号 时间:30minutes
测试:基本可以运作 时间:2minutes
测试报告:没有问题功能实现 时间:1minutes
计算工作量: 时间:2d
感悟: 好不容易,在手打的时候会遇见各种情况,一个小写字母的错误都有可能让代码失灵。