用c#定义一个人员类CPerson,包括数据成员:姓名、编号、性别和用于输入/输出的成员函数。在此基础上派生出学生类CStudent(增加成绩)和教师类CTeacher(增加教龄),并实现对学生和教师信息的输入/输出
时间: 2024-09-23 20:10:13 浏览: 73
在 C# 中,首先我们定义一个基础的人员类 `CPerson`:
```csharp
public class CPerson
{
// 数据成员
public string Name { get; set; }
public int ID { get; set; }
public char Gender { get; set; }
// 构造函数
public CPerson(string name, int id, char gender)
{
Name = name;
ID = id;
Gender = gender;
}
// 输入函数(示例,这里通常会使用控制台输入或GUI组件)
public void InputInfo()
{
Console.Write("请输入姓名:");
Name = Console.ReadLine();
Console.Write("请输入编号:");
ID = int.Parse(Console.ReadLine());
Console.Write("请输入性别(M/F):");
Gender = Console.ReadKey().KeyChar;
}
// 输出函数
public void OutputInfo()
{
Console.WriteLine($"姓名:{Name}");
Console.WriteLine($"编号:{ID}");
Console.WriteLine($"性别:{Gender}");
}
}
```
接下来,我们将派生两个子类 `CStudent` 和 `CTeacher`:
```csharp
public class CStudent : CPerson
{
// 子类特有的数据成员
public double GPA { get; set; }
// CStudent的构造函数
public CStudent(string name, int id, char gender, double gpa) : base(name, id, gender)
{
GPA = gpa;
}
// 学生的输入/输出函数
public void InputStudentInfo()
{
Console.Write("请输入GPA:");
GPA = double.Parse(Console.ReadLine());
base.InputInfo(); // 调用父类的输入函数
}
public void OutputStudentInfo()
{
base.OutputInfo();
Console.WriteLine($"GPA:{GPA}");
}
}
public class CTeacher : CPerson
{
// 子类特有的数据成员
public int TeachingYears { get; set; }
// CTeacher的构造函数
public CTeacher(string name, int id, char gender, int teachingYears) : base(name, id, gender)
{
TeachingYears = teachingYears;
}
// 教师的输入/输出函数
public void InputTeacherInfo()
{
Console.Write("请输入教龄:");
TeachingYears = int.Parse(Console.ReadLine());
base.InputInfo(); // 调用父类的输入函数
}
public void OutputTeacherInfo()
{
base.OutputInfo();
Console.WriteLine($"教龄:{TeachingYears}年");
}
}
```
现在你可以使用这两个类来存储和显示学生的和教师的信息:
```csharp
public static void Main()
{
CStudent student = new CStudent("小明", 1234, 'M', 3.5);
student.InputStudentInfo();
student.OutputStudentInfo();
CTeacher teacher = new CTeacher("李老师", 5678, 'F', 10);
teacher.InputTeacherInfo();
teacher.OutputTeacherInfo();
}
```
阅读全文