关于C#编程问题,望解答,谢谢,悬赏80分!!

题目:定义一个人员类clsPerson,包括属性:姓名,编号,性别和用于输入输出的方法,在此基础上派生出学生类clsStudent(增加成绩)和教师类clsTeacher(增加教龄),并实现对学生信息和教师信息的输入输出。

C#程序:

using System;

class Program

{

    static void Main()

    {

        clsStudent s = new clsStudent("张三其", "201207330001", "男", 86);

        s.Display();

        clsTeacher t = new clsTeacher("李师", "A1231", "女", 10);

        t.Name = "李师煊";

        t.Display();

    }

}

//人员类

class clsPerson

{

    protected String name;          //姓名

    protected String id;            //编号

    protected String gender;        //性别

    //构造方法

    public clsPerson()

    {

        name = null;

        id = null;

        gender = null;

    }

    //构造方法

    public clsPerson(String name, String id, String gender)

    {

        this.name = name;

        this.id = id;

        this.gender = gender;

    }

    //“姓名”属性

    public String Name

    {

        get

        {

            return name;

        }

        set

        {

            name = value;

        }

    }

    //“编号”属性

    public String Id

    {

        get

        {

            return id;

        }

        set

        {

            id = value;

        }

    }

    //“性别”属性

    public String Gender

    {

        get

        {

            return gender;

        }

        set

        {

            gender = value;

        }

    }

}

//学生类

class clsStudent : clsPerson

{

    protected double score;         //成绩

    //构造方法

    public clsStudent():base()

    {        

        score = 0;

    }

    //构造方法

    public clsStudent(String name, String id, String gender, double score)

        : base(name, id, gender)

    {

        this.score = score;

    }

    public void Display()

    {

        Console.WriteLine("学生信息:");

        Console.WriteLine("姓名:{0}", Name);

        Console.WriteLine("编号:{0}", id);

        Console.WriteLine("性别:{0}", gender);

        Console.WriteLine("成绩:{0}", score);

    }

}

//教师类

class clsTeacher : clsPerson

{

    protected double teachAge;      //教龄

    //构造方法

    public clsTeacher()

        : base()

    {

        teachAge = 0;

    }

    //构造方法

    public clsTeacher(String name, String id, String gender, double teachAge)

        : base(name, id, gender)

    {

        this.teachAge = teachAge;

    }

    public void Display()

    {

        Console.WriteLine("教师信息:");

        Console.WriteLine("姓名:{0}", name);

        Console.WriteLine("编号:{0}", id);

        Console.WriteLine("性别:{0}", gender);

        Console.WriteLine("教龄:{0}", teachAge);

    }

}

运行测试:

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-03-13
类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Test
{
public class Person
{
//编号
private string number;
public string Number { get; set; }

//姓名
private string name;
public string Name { get; set; }

//性别
private string sex;
public string Sex { get; set; }

public Person(string number, string name, string sex)
{
this.number = number;
this.name = name;
this.sex = sex;
}

public virtual void Show()
{
System.Console.Write(string.Format("编号:{0} , 姓名:{1} , 性别:{2} ", this.number, this.name, this.sex));
}
}

public class Student : Person
{
//成绩
private int score;
public int Score
{
get { return score; }
set { score = value; }
}

public Student(string number, string name, string sex)
: base(number, name, sex) { }

public override void Show()
{
base.Show();
System.Console.Write(string.Format("成绩:{0} ", this.score));
}
}

public class Teacher : Person
{
//教龄
private int experience;
public int Experience
{
get { return experience; }
set { experience = value; }
}

public Teacher(string number, string name, string sex)
: base(number, name, sex) { }

public override void Show()
{
base.Show();
System.Console.Write(string.Format("教龄:{0} ", this.experience));
}
}
}

调用的例子:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Test
{
class Program
{
static void Main(string[] args)
{
Person person = new Person("001", "xiaoli", "man");
person.Show();

Student student = new Student("002", "xiaowamg", "man");
student.Score = 80;
student.Show();

Teacher teacher = new Teacher("002", "xiaowamg", "man");
teacher.Experience = 20;
teacher.Show();

System.Console.ReadKey();
}
}
}
第2个回答  2012-03-13
class Program
{
static void Main(string[] args)
{
clsStudent s = new clsStudent();
s.name = "小小生";
s.成绩 = "100";
s.say();
clsTeacher t = new clsTeacher();
t.name = "123";
t.教龄 = "20";
t.say();

Console.ReadKey();
}
}
abstract class clsPerson
{
public string name{set;get;} //定义公共属性name,sex,age
public string sex { set; get; }
public string age { set; get; }
public abstract void say(); //定义抽象的say方法,子类里边必须包含此方法
}
class clsStudent : clsPerson //学生类继承porson类
{
public string 成绩 { get; set; }

public override void say() //只需要实现say方法就可以了,属性字段不用重新定义了
{
Console.WriteLine("我的名字是:{0},我的成绩是{1}",this.name,this.成绩);
}
}
class clsTeacher : clsPerson
{
public string 教龄 { get; set; }

public override void say()
{
Console.WriteLine("我的名字是:{0},我的教龄是{1}", this.name,this.教龄);
}
}
}

我这里用的抽象类,有不明白的可以问我e_mail:hackerxxs@163.com
第3个回答  2012-03-13
等下回答追问

嗯,好,谢谢

追答

不好意思,电脑拿去修了。。。

...谢谢了。80分希望能找到解答,感兴趣的互相学习
1:利用配置文件保存窗体的新加信息。每次打开窗体时先检查配置文件,读出按键信息并加到页面上;每新加按钮时,同时将对应按钮信息添加到配置文件。注:按钮信息包含名称、位置坐标、响应事件等(你的例子好像只要个数就够了)。2:可以让所有的按钮都响应同一个单击事件(如你的butClick),只是在单击事...

想深入学习C#语言,有没有达人知道C#的好的资料呢?
53. 编写程序,将一年中12个月,建立一个枚举类型数据,并对其进行调用。54. 在窗体上建立一个标签,一个文本框,一个命令按钮,标签的text属性设置为“VC#程序设计”,设计一个程序,单击命令按钮,将标签上的信息显示在文本框中。55. 设计一个简单的计算器,在文本框中,显示输入值和计算结果,用命令按钮做为数字键和...

...是undo、redo或其他方式,怎样可以实现啊?谢谢,悬赏80分
比如,你单击某按扭进行的操作,是不能撤销的,除非自己再写一个可以撤销的方法对事件就行可逆操作。但文本等控件是自带撤销和重复操作的,如:richTextBox1.Undo();richTextBox1.Redo();

献出本人80%财富,求哈工大2010年计算机考研复试
考试方式:“C语言程序设计”在计算机上直接编程提交,由计算机自动判定成绩;其他各科在计算机上答题并提交,并根据题目类型由计算机或老师判定成绩。3、面试主要内容(共80分)(1)从事科研工作的基础与能力;(2)综合分析与语言表达能力;(3)外语听力及口语;(4)大学学习情况及学习成绩;(5)专业课以外其他知识技能的掌握情况...

关于asp.net (C#)控制新闻标题显示条数的问题!高手请进。
然后 private string txtList(DataTable dt){ string TempStr = "";TempStr += "";for (i = 0; i < dt.Rows.Count; i++){ TempStr += "<TD class=sSign vAlign=center width=0><IMG src=\\"images\/gitem.gif\\"><\/TD>";TempStr += "<TD class=sSign width=\\"80%\\" style=\\...

浙江高考python满分多少(浙江高考满分多少分2018)
今天首席CTO笔记来给各位分享关于浙江高考python满分多少的相关内容,其中也会对浙江高考满分多少分2018进行详细介绍,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧! 本文目录一览: 1、Python纳入高考了吗2、2022浙江高考技术有python吗3、高考考python编程的有哪些省?4、如何看待浙江17级高考技术考python5...

关于澳洲技术移民问题
3. 算一算分吧: a) 75-80分以下(除非你有亲属住在悉尼,纽卡斯尔,卧龙岗,布里斯班,帕斯之外,也就是你可以走亲属475类,将另附文章详述,或你的职业属于州政府紧缺职业或雇主提名职业,也就是你可以走州担保475类,将另附文章详述),你基本上就不能办了。 b) 90分:恭喜你,你可以有条件的移民澳大利亚了。你可以...

相似回答