小虎zzzz 2015-04-29 15:07 采纳率: 33.3%
浏览 1496
已采纳

大神求再来。。。。。。。

定义枚举类型
Public enum SexType {男, 女, 未知};
Public enum ProTitle (助教,讲师,副教授、教授、未知)
Public enum StuTitle {班长,副班长,学委,学员}
定义下面类
Person类(抽象类)
   包含的字段:姓名Name(字符串型)、身高Height(单精度型,单位:米)、体重Weight(单精度,单位:kg)、性别Sex(枚举类型SexType)
   包含的属性:身份证号ID(字符串型,长度固定为18,且不包含空格字符)、年龄Age(只读方法)
   包含的方法:
   Public abstract void Saying(); //该方法为抽象方法
   构造函数(带参数和不带参数的各定义一个):
   Public Person(){}; //在该构造函数对字段进行初始化,按默认值进行初始化,其中身份证号码初始化为“999999999999999999”
   Public person(string name, string id, float height, float weight, SexType sex)
   {}; //添加代码,利用实例化时传递的参数对类中的字段进行初始化
   Public abstract void Write(FileStream fs); //功能:将数据保存到文件中
   Public abstract void Read(FileStream fs); //功能:从文件中读取数据
Teacher类,该类从Person类继承
   包含的字段:职称Title(ProTitle枚举类型)、课程Courses(集合类型,集合元素类型为字符串,访问控制符为private)
   包含的属性:CourseNumber (数据类型:int,只读属性,含义:课程的数量)
   包含的方法:
   Public string CourseAdd(string coursename) //增加一门课程,同一门课程不能重复添加
   Public string CourseDelete(string coursename); //删除一门课程,当要删除的课程不存在时,应给出提示
   对父类中的抽象函数Saying()进行重写;//在控制台上输出:“我正在讲课,不方便接电话”
   对Object类中的虚函数ToString()进行重写;//将有关教师的所有信息整合成一个字符串,并返回。该虚函数在Object中的定义如下:
   Public virtual string ToString()
   对父类的中Read()、Write()方法进行重写。(方法中的代码可暂时不写)
定义结构体
   Public struct coursescore
   {
    String coursename; //课程的名称
    Float score; //课程的成绩
   }
定义学生类Student,从Person类派生
   包含的字段:学号StuID(字符串类型,长度固定,以实际学号的长度为准)、课程成绩CourseScore(集合类型,集合中的元素类型为结构体coursescore,访问修饰符采用private)、学生身份title(类型为枚举类型StuTitle)
   包含的属性:
   课程门数CourseNumber,定义为只读属性,表示学生所选的课程门数
   包含的方法:
   Public void CourseAdd(string coursename, float score);
   Public void CourseAdd(coursescore course);
   上述2个方法为重载,功能是实现增加一门课程及该课程的成绩
   对父类的中的Saying()进行重写,要求输出“我正在上课,不方便接电话”
   对父类的中的Read、Write方法进行重写(方法体中可暂时不写代码)
增加如下方法:
   //功能:获取学生的所有课程的最高分、最低分和平均分
   Public void GetScore(ref double HighScore, ref double LowScore, ref double AverageScore)
   参数的含义:
   HighScore:所有课程中的最高分
   LowScore:所有课程中的最低分
   AverageScore:所有课程的平均分
   对Object类中的虚函数ToString()进行重写,要求该方法将学生的所有信息整合为一个字符串,并返回

  • 写回答

2条回答 默认 最新

  • devmiao 2015-04-30 04:36
    关注
     class Teacher : Person
    {
        ProTitle Title;
            List<string> Courses = new List<string>();
            public int CourseNumber { get; private set; }
            public string CourseAdd(string coursename)
            {
                Courses.Add(coursename);
            }
            public string CourseDelete(string coursename)
            {
                if (Courses.All(x => x != coursename))
                        Console.WriteLine("不存在" + coursename);
                    Courses.Remove(coursename);
            }
            public override void Saying()
            {
                Console.WriteLine("我正在讲课,不方便接电话");
            }
            public override string ToString()
            {
                return string.Format("Name {0} Title {1} Courses {2}", Name, Title, string.Join(",", Courses.ToString()));
            }
            public override void Write(FileStream fs) { }
      public override void Read(FileStream fs) { }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?