using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
/* 这个是书上第二章的本章作业课后编码题。
* Program.cs
* time:2015/1/16 完全成功,而且对控制台输出的调整让输入输出有条不紊,简明扼要。
*/
namespace Scores //项目名
{
/* 测试类,入口类
*
*/
class Program
{
static void Main(string[] args)
{
//声明并实例化Student 对象 stus
Student[] stus = new Student[5];
for (int i = 0; i < stus.Length; i++) //i 代表数组下标,for循环遍历数组
{
stus[i] = new Student();
}
//挨个调用数组stus的成员方法,实现操作
for (int i = 0; i < stus.Length; i++)
{
Console.WriteLine("***********************************");
stus[i].Initial(); //得到姓名
stus[i].SaveScores(); //接收,保存成绩
Console.WriteLine("***********************************");
stus[i].CalcScores(); //计算成绩
}
//挨个输出每个学生的成绩
Console.WriteLine("***********************************");
foreach (Student Item in stus)
{
Item.OutputScores();
}
Console.WriteLine("***********************************");
//排序,求出最高的分数。和5名学生的总成绩的平均成绩。
double bigest; //5个人里的最高分数
bigest = stus[0].all;
for (int i = 1; i < stus.Length; i++) //遍历数组 stus 从1开始的位置
{
if(bigest < stus[i].all) //先假定 stus[0].all 是最高分数,当发现更高的分数时,给 bigest 赋值
{
bigest = stus[i].all;
}
}//循环过后,bigest 里是5个人里最高的成绩
//平均分
double main_avg = bigest / 5;
Console.WriteLine("***********************************");
Console.WriteLine("5名学生的最高成绩:{0},平均成绩是:{1}",bigest,main_avg);
Console.WriteLine("***********************************");
}
}
/* 自定义 Student 类
*
*/
public class Student
{
/* 成员变量
* 在这里,默认访问权限是受保护的
*/
public string name; //学生姓名
public double JAVA; //java分数
public double SQL; //SQL分数
public double STB; //STB分数
public double all; //总成绩
public double avg; //平均成绩
/* 成员函数
*
*/
/* 初始化函数
* 用于初始化学员对象,即:接收对三个分数变量的输入
*
*/
public void Initial()
{
Console.Write("输入此学生的姓名:");
name = Console.ReadLine();
}
/* 构造函数
*
*/
public Student()
{
//目前只是产生对象,没有其它功能。
}
/* 用于接收,保存学员成绩
*
*/
public void SaveScores()
{
Console.Write("输入JAVA的考试成绩:");
JAVA = double.Parse(Console.ReadLine());
Console.Write("输入SQL的考试成绩:");
SQL = double.Parse(Console.ReadLine());
Console.Write("输入STB的考试成绩:");
STB = double.Parse(Console.ReadLine());
}
/* 计算学员总成绩和平均成绩
*
*/
public void CalcScores()
{
//总成绩
all = JAVA + SQL + STB;
//平均成绩
avg = all / 3;
}
/* 输出学员分数
*
*/
public void OutputScores()
{
//output null
Console.WriteLine();
Console.WriteLine("{0} 的三门成绩是:JAVA:{1},SQL:{2},STB:{3}",this.name,this.JAVA,this.SQL,this.STB);
}
}
}
实现:接收一个班级五名同学的姓名和三门课程的考试成绩,计算每个学生三门课程的总成绩,平均成绩,并输出学员姓名,三门课程的考试成绩,总成绩和平均成绩,以及班级参加考试人数,三门课程总和的最高分和平均分。并输出5人中的最高分和这5人的总分的平均分。
code 如上: