定義枚舉類型
Public enum SexType {男, 女, 未知};
Public enum ProTitle (助教,講師,副教授、教授、未知)
Public enum StuTitle {班長,副班長,學委,學員}
定義下面類
Person類(抽象類)
包含的字段:姓名Name(字符串型)、身高Height(單精度型,單位:米)、體重Weight(單精度,單位:kg)、性別Sex(枚舉類型SexType)
包含的屬性:身份證號ID(字符串型,長度固定為18,且不包含空格字符)、年齡Age(只讀方法)
包含的方法:
Public abstract void Saying(); //該方法為抽象方法
構造函數(帶參數和不帶參數的各定義一個):
Public Person(){}; //在該構造函數對字段進行初始化,按默認值進行初始化,其中身份證號碼初始化為“999999999999999999”
Public person(string name, string id, float height, float weight, SexType sex)
{}; //添加代碼,利用實例化時傳遞的參數對類中的字段進行初始化
Public abstract void Write(FileStream fs); //功能:將數據保存到文件中
Public abstract void Read(FileStream fs); //功能:從文件中讀取數據
Teacher類,該類從Person類繼承
包含的字段:職稱Title(ProTitle枚舉類型)、課程Courses(集合類型,集合元素類型為字符串,訪問控制符為private)
包含的屬性:CourseNumber (數據類型:int,只讀屬性,含義:課程的數量)
包含的方法:
Public string CourseAdd(string coursename) //增加一門課程,同一門課程不能重復添加
Public string CourseDelete(string coursename); //刪除一門課程,當要刪除的課程不存在時,應給出提示
對父類中的抽象函數Saying()進行重寫;//在控制台上輸出:“我正在講課,不方便接電話”
對Object類中的虛函數ToString()進行重寫;//將有關教師的所有信息整合成一個字符串,並返回。該虛函數在Object中的定義如下:
Public virtual string ToString()
對父類的中Read()、Write()方法進行重寫。(方法中的代碼可暫時不寫)
定義結構體
Public struct coursescore
{
String coursename; //課程的名稱
Float score; //課程的成績
}
定義學生類Student,從Person類派生
包含的字段:學號StuID(字符串類型,長度固定,以實際學號的長度為准)、課程成績CourseScore(集合類型,集合中的元素類型為結構體coursescore,訪問修飾符采用private)、學生身份title(類型為枚舉類型StuTitle)
包含的屬性:
課程門數CourseNumber,定義為只讀屬性,表示學生所選的課程門數
包含的方法:
Public void CourseAdd(string coursename, float score);
Public void CourseAdd(coursescore course);
上述2個方法為重載,功能是實現增加一門課程及該課程的成績
對父類的中的Saying()進行重寫,要求輸出“我正在上課,不方便接電話”
對父類的中的Read、Write方法進行重寫(方法體中可暫時不寫代碼)
增加如下方法:
//功能:獲取學生的所有課程的最高分、最低分和平均分
Public void GetScore(ref double HighScore, ref double LowScore, ref double AverageScore)
參數的含義:
HighScore:所有課程中的最高分
LowScore:所有課程中的最低分
AverageScore:所有課程的平均分
對Object類中的虛函數ToString()進行重寫,要求該方法將學生的所有信息整合為一個字符串,並返回
class abstract Person
{
string Name;
float Height;
float Weight;
SexType sex;
public string id;
public string ID
{
get { return id; }
set { if (Regex.Match(value, "^\\d{18}$")) id = value; }
}
public int Age { get; private set; }
public abstract void Saying();
public Person() { id = "999999999999999999"; }
public Person(string name, string id, float height, float weight, SexType sex)
{
Name = name;
this.id = id;
Height = height;
Weight = weight;
Sex = sex;
}
public abstract void Write(FileStream fs);
public abstract void Read(FileStream fs);
}