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#需要重写来达到指哪打哪的目的。
相关文章推荐
- C#--第四周实验--任务4--定义一个描述坐标点的CPoint类,派生出直线类Cline,在派生出矩形类CRect,实现一些功能。
- 第十周实验指导--任务2--定义一个名为CPerson的类,并在此基础上派生出CEmployee类
- C++第十周【任务2】定义一个名为CPerson的类,有以下私有成员:姓名、身份证号、性别和年龄,成员函数:构造函数、析构函数、输出信息的函数。
- 第九周实验报告任务4 建立一个二维数组类Douary,使该类中有以下数据成员、成员函数及友员函数,完成矩阵的输入、输出、加、减、相等判断等操作。
- 第十周任务二 定义一个名为CPerson的类,有以下私有成员:姓名、身份证号、性别和年龄,成员函数:构造函数、析构函数、输出信息的函数。
- 编写一个程序,定义一个职工类,输入3个职工的编号、姓名、工资和年龄, 类中的成员函数实现输入、输出,在主函数中定义对象,并计算输出3个职工的平均工资。
- 2,改写本章例2.1程序,要求: (1)将数据成员改为私有; (2)将输入和输出的功能改为由成员函数实现; (3)在类体内定义成员函数;
- 第九周实验报告 任务2 定义Complex类中的<<和>>运算符的重载,实现输入和输出,改造原程序中对运算结果显示方式,使程序读起来更自然。
- 第九周任务四之 建立一个二维数组类Douary,使该类中有以下数据成员、成员函数及友员函数,完成矩阵的输入、输出、加、减、相等判断等操作。
- c++第九周【任务4】建立一个二维数组类Douary,使该类中有以下数据成员、成员函数及友员函数,完成矩阵的输入、输出、加、减、相等判断等操作。
- 第九周实验报告(四)建立一个二维数组类Douary,使该类中有以下数据成员、成员函数及友员函数,完成矩阵的输入、输出、加、减、相等判断等操作
- 第四周上机任务--任务一--用VS2008设计一个三角形类--给各个成员函数定义
- C#--第九周实验--任务2--定义一个静态成员方法,该方法实现字符串反转。
- C#--第九周实验--任务3--定义一个静态成员方法,使用Random实现从一组数中随机抽取n个不重复的数。
- 定义一个圆类(Circle),私有数据成员为半径(radius)、圆周长和面积,共有成员函数为输入半径;计算周长、面积;输出半径、周长和面积。要求定义构造函数(以半径为参数,缺省值为0,周长和面积在
- 第四周任务一:设计一个三角形类,给出个成员函数的定义
- 7.20在学生类student和教师类teacher 基础上再派生出一个助教类
- 号)、sex(性别)、birthday(出生日期)、id(身份证号)等等。其中“出生日期”定义为一个“日期”类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函
- 定义一个Teacher(教师)类,和一个Student(学生)类
- C++第三周任务3请在原类基础上,增加成员函数,要求前三个设计成内置函数,在main()数中增加适当的调用以展示扩充类定义后的功能(最好能一次运行)。