实现一个Person类有name,age,sex,
还有一个Student类继承Person,还包括学生五门功课的成绩.
该类要实现求每门课的平均成绩.并且得到在平均值以上的学生数.

解决方案 »

  1.   


    ///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;  
      }
    }
      

  2.   

    两个类,person类,学生类。
    该类要实现求每门课的平均成绩.并且得到在平均值以上的学生数.
    该类时指的哪个类,学生类? 
      

  3.   

    这就是我所纳闷的地方.我回忆一下题目,应该是Stu类里实现求平均值.
      

  4.   

    我当时做的时候就是写了就是三个类,person,student,Mycalc(计算平均成绩)
    很戳的.这样写我也知道哪里有问题(就是当增加一门课程的时候扩展性极差)
      

  5.   


    我不太擅长怎么增加扩展性,不过这里我想到了弄个成绩接口,你的stu类里再放成绩的接口list,现在新加一个成绩就加上1个实现成绩接口的类,然后把这个类add到stu里面的list,最后stu提供一个方法就是遍历这个list中的类,并计算平均
      

  6.   

    老老实实写for循环吧,不见得多简洁,但很实际、
      

  7.   


    我不太擅长怎么增加扩展性,不过这里我想到了弄个成绩接口,你的stu类里再放成绩的接口list,现在新加一个成绩就加上1个实现成绩接口的类,然后把这个类add到stu里面的list,最后stu提供一个方法就是遍历这个list中的类,并计算平均这里我有一点疑问.这里求某科在平均数以上的学生数明明是针对若干个stu对象中的某一科.对student类内部能实现某一科在平均数以上的学生数?
      

  8.   

    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;
            }
        }
    }