您的位置:首页 > 编程语言 > C#

C#--第四周实验--任务3--定义一个人员类Cperson,在此基础上派生出学生类CStudent和教师类CTeacher,实现输入输出功能的成员函数。

2012-09-23 11:47 1141 查看
/* (程序头部注释开始)
 * 程序的版权和版本声明部分
 * Copyright (c) 2011, 烟台大学计算机学院学生 
 * All rights reserved.
 * 文件名称:定义一个人员类Cperson,在此基础上派生出学生类CStudent和教师类CTeacher,实现输入输出的成员函数。
 * 作 者: 雷恒鑫 
 * 完成日期: 2012 年 09 月 23 日
 * 版 本 号: V1.0 
 * 对任务及求解方法的描述部分
 * 输入描述:
 * 问题描述:
 * 程序输出:
 * 程序头部的注释结束
 */
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Four__week
{
    class Program
    {
        static void Main(string[] args)
        {
            Cperson cp1 = new Cperson();
            cp1.output_data();
            Cperson cp2 = new Cperson("小王", 10001, "男");
            cp2.output_data();
            CStudent cs1 = new CStudent();
            cs1.output_data();
            CStudent cs2 = new CStudent("小李", 10002, "男",100);
            cs2.output_data();
            CTeacher ct1 = new CTeacher();
            ct1.output_data();
            CTeacher ct2 = new CTeacher("小陈",10003,"女",32);
            ct2.output_data();
            Console.ReadKey(true);
        }
    }

    class Cperson
    {
        private string name;
        private int number;
        private string sex;

        public Cperson(string name1,int number1,string sex1)
        {
            name = name1;
            number = number1;
            sex = sex1;
        }
    

        public Cperson()
        {
          name = "";
            number = 0;
            sex = "";

        }

        public virtual void input_data()
        {
            Console.WriteLine("请输入您的姓名:");
            string name = Console.ReadLine();
            set_name(name);
            Console.WriteLine("请输入您的姓别:");
            string sex = Console.ReadLine();
            set_sex(sex);
            Console.WriteLine("请输入您的编号:");
              int number=int.Parse(Console.ReadLine());
            set_number(number);
        }
        public virtual void output_data()
        {
            //Console.WriteLine("您的姓名为:{0}  ","您的编号为:{1}  ","您的性别为:{2}",this.get_name(),this.get_number(),this.get_sex());
            Console.WriteLine("您的姓名为:{0}   您的编号为:{1}   您的性别为:{2}", this.get_name(), this.get_number(), this.get_sex());
            Console.WriteLine();
        }
         public string get_name()
        {
            return name;
        }
        public int get_number()
        {
            return number;
        }
        public string get_sex()
        {
            return sex;
        }
        public void set_name(string name1)
        {
             name=name1;
        }
        public void set_number(int number1)
        {
             number=number1;
        }
        public void set_sex(string sex1)
        {
             sex=sex1;
        }
    }

    class CStudent : Cperson
    {
        public double score;
        public CStudent(string name1,int number1,string sex1,double score1):base(name1,number1,sex1)
        {
            score = score1;
        }
        public CStudent():base()
        {
           score = 0;
        }
        public double get_score()
        {
            return score;
        }
        public void set_score(double score1)
        {
            score = score1;
        }
        public override void input_data()
        {
            Console.WriteLine("请输入学生的姓名:");
            string name = Console.ReadLine();
            set_name(name);
            Console.WriteLine("请输入学生的姓别:");
            string sex = Console.ReadLine();
            set_sex(sex);
            Console.WriteLine("请输入学生的编号:");
            int number = int.Parse(Console.ReadLine());
            set_number(number);
            Console.WriteLine("请输入学生的成绩:");
            double score = double.Parse(Console.ReadLine());
            set_score(score);
        }
        public override void output_data()
        {
            //Console.WriteLine("学生的姓名为:{0}", this.get_name(), "学生的编号为:{1}", this.get_number(), "学生的性别为:{2}", this.get_sex(), "学生的成绩为:{3}", this.get_score());
            Console.WriteLine("学生的姓名为:{0}  学生的编号为:{1}  学生的性别为:{2}  学生的成绩为:{3}", this.get_name(), this.get_number(), this.get_sex(), this.get_score());
            Console.WriteLine();
        }
    }
    class CTeacher : Cperson
    {
        public int teach_age;
        public CTeacher(string name1, int number1, string sex1, int teach_age1):base(name1,number1,sex1)
        {
            teach_age = teach_age1;
        }
        public CTeacher():base()
        {
            teach_age = 0;
        }
        public int get_teach_age()
        {
            return teach_age;
        }
        public void set_teach_age(int teach_age1)
        {
            teach_age = teach_age1;
        }
        public override void input_data()
        {
            Console.WriteLine("请输入老师的姓名:");
            string name = Console.ReadLine();
            set_name(name);
            Console.WriteLine("请输入老师的姓别:");
            string sex = Console.ReadLine();
            set_sex(sex);
            Console.WriteLine("请输入老师的编号:");
            int number = int.Parse(Console.ReadLine());
            set_number(number);
            Console.WriteLine("请输入老师的教龄:");
            int teach_age = int.Parse(Console.ReadLine());
            set_teach_age(teach_age);
        }
        public override void output_data()
        {
            //Console.WriteLine("老师的姓名为:{0}", this.get_name(), "老师的编号为:{1}", this.get_number(), "老师的性别为:{2}",this.get_number(),  "老师的教龄为:{3}", this.get_teach_age());
            Console.WriteLine("老师的姓名为:{0}  老师的编号为:{1}  老师的性别为:{2}  老师的教龄为:{3}", this.get_name(), this.get_number(), this.get_number(), this.get_teach_age());
            Console.WriteLine();
        }
    }
}




运行结果:



经验积累:

1.学了下base的使用方法,base关键字是调用父类的构造函数。

2.this代表对象本身。

3.和C++中的那个虚函数不同,C#需要重写来达到指哪打哪的目的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐