结构数组该怎么定义和赋初值??
题目是:添加一个窗体form,在学生结构数组存放10名学生的记录,然后根据用户指定的学号显示相应的学生记录。其运行界面如下图,这里是从组合框中选择2时,在学生记录分组框中显示该学号的记录,如下图所示
我现在只能写出下面的部分代码的程度,该怎么改成结构数组的形式呢??
struct Student
{
public string Number;
public string name;
public string sex;
public string classNum;
public string birth;
};
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
Student[] stu=new Student[5];
Student stu1;
stu1.Number = "0905606201";
stu1.name = "张三";
stu1.sex = "男";
stu1.classNum = "201";
stu1.birth = "1990-11-11";
Student stu2;
stu2.Number = "0905606202";
stu2.name = "李四";
stu2.sex = "男";
stu2.classNum = "202";
stu2.birth = "1991-11-11";
if(comboBox1.Text=="1")
{
textBox1.Text = stu1.Number;
textBox2.Text = stu1.name;
textBox3.Text = stu1.sex;
textBox4.Text = stu1.classNum;
textBox5.Text = stu1.birth;
}
else
{
if(comboBox1.Text=="2")
{
textBox1.Text = stu1.Number;
textBox2.Text = stu1.name;
textBox3.Text = stu1.sex;
textBox4.Text = stu1.classNum;
textBox5.Text = stu1.birth;
}
}
}
[最优解释]
stu[0] = new Student
{
Number = "0905606201",
name = "张三",
sex = "男",
classNum = "201",
birth = "1990-11-11"
};
stu[1] = new Student
{
Number = "0905606201",
name = "张三",
sex = "男",
classNum = "201",
birth = "1990-11-11"
};
可以象这样写,看起来可能优雅一点。
[其他解释]
你可以先将这10个人的学习存储在一个.txt文件中(比如可以用','分隔符隔开),例如:
1,张山,0000001,男,101,1987-1-1
2.李四,0000002,男,102,1988-1-1
可以在窗口初始化的时候,就写个函数调用,将数据全部存储起来,在选择关键字的时候,就读出某个人的数据显示就可以了。
[其他解释]
定义Student类,多个List<Student>
[其他解释]
?struct?Student
?????????{
?????????????public?string?Number;
?????????????public?string?name;
?????????????public?string?sex;
?????????????public?string?classNum;
?????????????public?string?birth;
?????????};
????????
????????private Student[]?stu=new?Student[5];
????????private?void?Form1_Load(object?sender,?EventArgs?e)
????????{
????????????stu[0].Number?=?"0905606201";
????????????stu[0].name?=?"张三";
????????????stu[0].sex?=?"男";
????????????stu[0].classNum?=?"201";
????????????stu[0].birth?=?"1990-11-11";
?
????????????stu[1].Number?=?"0905606202";
????????????stu[1].name?=?"李四";
????????????stu[1].sex?=?"男";
????????????stu[1].classNum?=?"202";
????????????stu[1].birth?=?"1991-11-11";
???????????
????????}
?
????????private?void?button1_Click(object?sender,?EventArgs?e)
????????{
???????????????????int index = comboBox1.SelectIndex;
????????????????????textBox1.Text?=?stu[index].Number;
????????????????????textBox2.Text?=?stu[index].name;
????????????????????textBox3.Text?=?stu[index].sex;
????????????????????textBox4.Text?=?stu[index].classNum;
????????????????????textBox5.Text?=?stu[index].birth;
????????}
是这个意思么?
[其他解释]
haukwong
你的这个方法我先试一下吧,但是如果有十个人,那Form1_Load事件中全都定义出来么?
kjstars
你说的把数据全都存储在.txt文件中,那要怎么才能根据关键字读取.txt文件中的数据呢?能详细点说下么?
[其他解释]
从文件中读出来用split根据逗号拆分就行
或者直接用正则表达式提取
[其他解释]
haukwong
你这个是对的,谢谢!
就是定义的时候有点麻烦,呵呵~~
[其他解释]
该回复于2012-12-04 15:26:44被管理员删除
[其他解释]
好的谢谢
[其他解释]
直接用list不方便点?
[其他解释]
SQL77
Chinajiyong
嗯嗯,我试试,谢谢