「已注销」 2022-12-01 12:05 采纳率: 66.7%
浏览 51
已结题

类的继承,综合输出学生信息并析构

代码怎样实现用出生日期算年龄并和其他信息一起输出呢,以及析构函数和Number属性呢
【问题描述】 请问

  1. 定义一个Person类,该类具有数数据成员_Name, _Gender, _Age,属性Name, Gender,虚方法GetAge() 直接返回_Age。

定义一个Student类,继承Person类,该类具有数据成员_No, _Score, _Birthday, _Number及属性No, Score,重写GetAge(),由出生日期计算而来,Number属性以计算存在于系统中学生的人数,每创建一个学生对象,学生人数加1, 每析构一个对象,学生人数减1。另外该类还具有一个Print方法,要求按“Number:No,Name, Gender,Age,Score”格式输出。

  1. 完成Program类的Main()方法。
    创建多个学生对象,按要求输出学生信息。
 internal class Program
    {
        static void Main(string[] args)
        {
            DateTime date1 = new DateTime(2001, 8, 9);
            Student s1 = new Student(1,0106101,"zhangsan","gentle",19,90.88);
            s1.print();
            Console.ReadKey();
        }
    }
    class Person
    {
        /// 
        /// 字段 基本信息
        /// 
        private string _Name;
        private string _Gender;
        public  int _Age;
        /// 
        /// 属性 名字 性别
        /// 
        public string Name
        {
            get
            {
                return _Name;
            }
            set
            {
                _Name = value;
            }
        }
        public string Gender
        {
            get
            {
                return _Gender;
            }
            set
            {
                _Gender = value;
            }
        }        
        public virtual int GetAge()//虚方法
        {
            return _Age;
        }
    }
    class Student: Person
    {
        /// 
        /// 字段
        /// 
        private int _No;
        private double _Score;
        private DateTime _BirthDate;
        private int _Number=0;

        public Student (int Number,int No,string Name,string Gender,int BirthDate, double Score)
        {
            _Number = Number;
            _No = No;          
        }
        /// 
        /// 属性
        /// 
        public int No
        {
            get
            {
                return _No;
            }
            set
            {
                _No=value;
            }
        }
        public double Score
        {
            get
            {
                return _Score;
            }
            set
            {
                _Score=value;   
            }
        }
        public int Number//待修改
        {
            get
            {
                return _Number ++;
            }
            set
            {
                _Number =value;
            }
        }
        public override int GetAge()
        {
            DateTime now = DateTime.Now;
            int age = now.Year - _BirthDate.Year;
            if (now.Month < _BirthDate.Month || (now.Month == _BirthDate.Month && now.Day < _BirthDate.Day))
            {
                age--;
            }
            _Age = age;
            return  _Age;
        }
      public void print()//Number:No,
        {
            Console.WriteLine("{0}:, {1}, {2}, {3}, {4}, {5}, {6}", Number, No, Name, Gender,_Age,Score);
        }
    }

} 

  • 写回答

3条回答

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

      • 已结题 12月2日
      • 已采纳回答 12月1日
      • 创建了问题 12月1日

      悬赏问题

      • ¥20 如何从 .html url 启动/激活 .py 文件(sql debug)
      • ¥15 c#调用soap出错,soapui中可以
      • ¥100 CBIS-DDSM kaggle 资料处理
      • ¥30 python 在 excel 用 OpenPyXL 怎么实现以下代码
      • ¥15 pywinauto 无法捕获到元素
      • ¥15 ARfoundation (可能由于没打开摄像头的)黑屏问题
      • ¥15 C++类模板继承模板本身,有偿
      • ¥15 pycharm打包项目包含mp3文件,运行exe程序后mp3文件没有执行。
      • ¥15 Quantlib求discount factors
      • ¥15 JS宏提取满足比率的字符区段