///Person calss Person { public strig Name{get;set;} public byte Age{get;set;} public byte Sex{get;set;} } ///Student class Student:Person { /// Scores list public List<float> Scores{get;set}
/// Get Avg Score public float GetAvgScore() { if(Scores==null|| Scores.Count==0){return 0F;} float avgScore=0F; foreach(float score in Scores) { avgScoe+=score; } avgScore=avgScore/(float)Scores.Count; return avgScore; } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; //实现一个Person类有name,age,sex, //还有一个Student类继承Person,还包括学生五门功课的成绩. //该类要实现求每门课的平均成绩.并且得到在平均值以上的学生数.namespace ConsoleApplication10 { class Program { static void Main(string[] args) { Student s01 = new Student("学生01"); Student s02 = new Student("学生02"); Student s03 = new Student("学生03"); Student s04 = new Student("学生04"); Course c01 = new Course(); c01.Students.Add(s01,90); c01.Students.Add(s02,60); c01.Students.Add(s03,40); c01.Students.Add(s04,40); Console.WriteLine(c01.GetOverAverageCountNumber()); Console.ReadKey(); } } public class Student : Person { public String Sno { set; get; } public Student(String value) { Sno = value; } public List<Course> Courses = new List<Course>(); } public class Course { public String CourseName { set; get; } public Dictionary<Student, int> Students = new Dictionary<Student,int>(); public int GetOverAverageCountNumber() { int sum = 0; int average = 0; foreach (int item in Students.Values) { average += item; } foreach (int item in Students.Values) { if(item > average/Students.Count) { sum++; } } return sum; } } //人类 public class Person { public String Name { set; get; } public int Age { set; get; } public int Gender { set; get; } } }
///Person
calss Person
{
public strig Name{get;set;}
public byte Age{get;set;}
public byte Sex{get;set;}
}
///Student
class Student:Person
{
/// Scores list
public List<float> Scores{get;set}
/// Get Avg Score
public float GetAvgScore()
{
if(Scores==null|| Scores.Count==0){return 0F;}
float avgScore=0F;
foreach(float score in Scores)
{
avgScoe+=score;
}
avgScore=avgScore/(float)Scores.Count;
return avgScore;
}
}
该类要实现求每门课的平均成绩.并且得到在平均值以上的学生数.
该类时指的哪个类,学生类?
很戳的.这样写我也知道哪里有问题(就是当增加一门课程的时候扩展性极差)
我不太擅长怎么增加扩展性,不过这里我想到了弄个成绩接口,你的stu类里再放成绩的接口list,现在新加一个成绩就加上1个实现成绩接口的类,然后把这个类add到stu里面的list,最后stu提供一个方法就是遍历这个list中的类,并计算平均
我不太擅长怎么增加扩展性,不过这里我想到了弄个成绩接口,你的stu类里再放成绩的接口list,现在新加一个成绩就加上1个实现成绩接口的类,然后把这个类add到stu里面的list,最后stu提供一个方法就是遍历这个list中的类,并计算平均这里我有一点疑问.这里求某科在平均数以上的学生数明明是针对若干个stu对象中的某一科.对student类内部能实现某一科在平均数以上的学生数?
using System.Collections.Generic;
using System.Linq;
using System.Text;
//实现一个Person类有name,age,sex,
//还有一个Student类继承Person,还包括学生五门功课的成绩.
//该类要实现求每门课的平均成绩.并且得到在平均值以上的学生数.namespace ConsoleApplication10
{
class Program
{
static void Main(string[] args)
{
Student s01 = new Student("学生01");
Student s02 = new Student("学生02");
Student s03 = new Student("学生03");
Student s04 = new Student("学生04");
Course c01 = new Course();
c01.Students.Add(s01,90);
c01.Students.Add(s02,60);
c01.Students.Add(s03,40);
c01.Students.Add(s04,40);
Console.WriteLine(c01.GetOverAverageCountNumber());
Console.ReadKey(); }
} public class Student : Person
{
public String Sno
{
set;
get;
} public Student(String value)
{
Sno = value;
} public List<Course> Courses = new List<Course>();
} public class Course
{
public String CourseName
{
set;
get;
} public Dictionary<Student, int> Students = new Dictionary<Student,int>(); public int GetOverAverageCountNumber()
{
int sum = 0;
int average = 0;
foreach (int item in Students.Values)
{
average += item;
} foreach (int item in Students.Values)
{
if(item > average/Students.Count)
{
sum++;
}
}
return sum;
}
} //人类
public class Person
{
public String Name
{
set;
get;
}
public int Age
{
set;
get;
} public int Gender
{
set;
get;
}
}
}