简介: 设计一个Windows应用程序,在该程序中首先构造一个学生基本类,在分别构造小学生、中学生、中职生、大学生等派生类,要求具有不同的特征和行为,能通过静态成员自动记录不同的学生人数。
- 界面截图
- 分部实现
- 总代码
界面截图:
知识点:需要用到tabcontrol控件,button控件,label控件,Textbox控件,foreach循环遍历,list动态数组
1.小学生类:
class MinStudent {
protected string name;
protected string sex;
protected string school;
private int grade;
private static int sum = 0;
public string Name
{
get {
return name;
}
}
public void add()
{
sum++;
}
public MinStudent(string name ,string sex ,string school,int grade)
{
this.name = name;
this.sex = sex;
this.school = school;
this.grade = grade;
}
public string Search()
{
return string.Format("{0}的性别为{1}\n学校为{2}\n成绩为{3}\n学生人数{4}",name,sex,school,grade,sum);
}
}
}
2.添加按钮点击事件:
private void btn_add1_Click(object sender, EventArgs e)
{
if(txtBN.Text == "" || txtBS.Text==""||txtBSh.Text ==""||txtBG.Text=="")
{
label5.Text = "信息填写错误或不完全";
}
else
{
label5.Text = "添加成功";
string nam = txtBN.Text;
string sex = txtBS.Text;
string school = txtBSh.Text;
int garde = int.Parse(txtBG.Text);
MinStudent min = new MinStudent(nam, sex, school, garde);
mins.Add(min);
min.add();
}
}
3.查询按钮点击事件
private void btn_search1_Click(object sender, EventArgs e)
{
foreach (MinStudent min in mins)
{
if (min.Name == txtBN.Text)
{
label5.Text = min.Search();
return;
}
}
label5.Text = "存储数据中无此人信息";
}
4.创建中学生派生类:
class MidStudent : MinStudent
{
private int age;
private static int sum = 0;
public MidStudent(string name,string sex,string school):base (name,sex,school){}
public override int Get
{
set { age = value; }
}
public override string Search()
{
return string.Format("{0}的性别为{1}\n学校为{2}\n年龄为{3}\n学生人数{4}", name, sex, school, age, sum);
}
public override void add()
{
sum++;
}
}
总代码:
namespace 实验四
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
List<MinStudent> mins = new List<MinStudent>();
List<MidStudent> mids = new List<MidStudent>();
List<ProStudent> pros = new List<ProStudent>();
List<ColStudent> cols = new List<ColStudent>();
private void btn_add1_Click(object sender, EventArgs e)
{
if(txtBN.Text == "" || txtBS.Text==""||txtBSh.Text ==""||txtBG.Text=="")
{
label5.Text = "信息填写错误或不完全";
}
else
{
label5.Text = "添加成功";
string nam = txtBN.Text;
string sex = txtBS.Text;
string school = txtBSh.Text;
int garde = int.Parse(txtBG.Text);
MinStudent min = new MinStudent(nam, sex, school);
min.Get = garde;
mins.Add(min);
min.add();
}
}
private void btn_search1_Click(object sender, EventArgs e)
{
foreach (MinStudent min in mins)
{
if (min.Name == txtBN.Text)
{
label5.Text = min.Search();
return;
}
}
label5.Text = "存储数据中无此人信息";
}
private void btn_add2_Click(object sender, EventArgs e)
{
if (txtBN2.Text == "" || txtBS2.Text == "" || txtBSh2.Text == "" || txtBAge.Text == "")
label10.Text = "信息填写错误或不全";
else
{
label10.Text = "添加成功";
string nam = txtBN2.Text;
string sex = txtBS2.Text;
string school = txtBSh2.Text;
int age = int.Parse(txtBAge.Text);
MidStudent mid = new MidStudent(nam, sex, school);
mid.Get = age;
mids.Add(mid);
mid.add();
}
}
private void btn_search2_Click(object sender, EventArgs e)
{
foreach (MidStudent mid in mids)
{
if (mid.Name == txtBN2.Text)
{
label10.Text = mid.Search();
return;
}
}
label10.Text = "存储数据中无此人信息";
}
private void btn_add3_Click(object sender, EventArgs e)
{
if (txtBN3.Text == "" || txtBS3.Text == "" || txtBSh3.Text == "" || txtBYear.Text == "")
label11.Text = "信息填写错误或不全";
else
{
label11.Text = "添加成功";
string nam = txtBN3.Text;
string sex = txtBS3.Text;
string school = txtBSh3.Text;
int year = int.Parse(txtBYear.Text);
ProStudent pro = new ProStudent(nam, sex, school);
pro.Get = year;
pros.Add(pro);
pro.add();
}
}
private void btn_search3_Click(object sender, EventArgs e)
{
foreach (ProStudent pro in pros)
{
if (pro.Name == txtBN3.Text)
{
label11.Text = pro.Search();
return;
}
}
label11.Text = "存储数据中无此人信息";
}
private void btn_search4_Click(object sender, EventArgs e)
{
foreach (ColStudent col in cols)
{
if (col.Name == txtBN4.Text)
{
label16.Text = col.Search();
return;
}
}
label16.Text = "存储数据中无此人信息";
}
private void btn_add4_Click(object sender, EventArgs e)
{
if (txtBN4.Text == "" || txtBS4.Text == "" || txtBSh4.Text == "" || txtBsubject.Text == "")
label16.Text = "信息填写错误或不全";
else
{
label16.Text = "添加成功";
string nam = txtBN4.Text;
string sex = txtBS4.Text;
string school = txtBSh4.Text;
string subject = txtBsubject.Text;
ColStudent col =new ColStudent(nam, sex, school);
col.Get = subject;
cols.Add(col);
col.add();
}
}
}
class MinStudent {
protected string name;
protected string sex;
protected string school;
private int grade;
private static int sum = 0;
public virtual int Get
{
set
{
this.grade = value;
}
}
public string Name
{
get {
return name;
}
}
public virtual void add()
{
sum++;
}
public MinStudent(string name ,string sex ,string school)
{
this.name = name;
this.sex = sex;
this.school = school;
}
public virtual string Search()
{
return string.Format("{0}的性别为{1}\n学校为{2}\n成绩为{3}\n学生人数{4}",name,sex,school,grade,sum);
}
}
class MidStudent : MinStudent
{
private int age;
private static int sum = 0;
public MidStudent(string name,string sex,string school):base (name,sex,school){}
public override int Get
{
set { age = value; }
}
public override string Search()
{
return string.Format("{0}的性别为{1}\n学校为{2}\n年龄为{3}\n学生人数{4}", name, sex, school, age, sum);
}
public override void add()
{
sum++;
}
}
class ProStudent : MidStudent
{
public ProStudent(string name,string sex,string school) : base(name, sex, school) { }
private int year;
private static int sum = 0;
public override int Get { set { this.year = value; } }
public override string Search()
{
return string.Format("{0}的性别为{1}\n学校为{2}\n年制为{3}\n学生人数{4}", name, sex, school,year, sum);
}
public override void add()
{
sum++;
}
}
class ColStudent : ProStudent
{
public ColStudent(string name, string sex, string school) : base(name, sex, school) { }
private string subject;
private static int sum = 0;
new public string Get
{
set { this.subject = value; }
}
public override string Search()
{
return string.Format("{0}的性别为{1}\n学校为{2}\n学科为{3}\n学生人数{4}", name, sex, school, subject, sum);
}
public override void add()
{
sum++;
}
}
}