首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

结构数组该如何定义和赋初值?

2012-12-23 
结构数组该怎么定义和赋初值??题目是:添加一个窗体form,在学生结构数组存放10名学生的记录,然后根据用户指

结构数组该怎么定义和赋初值??
题目是:添加一个窗体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;
               }
            }
          
        }


[最优解释]
引用:
haukwong
你这个是对的,谢谢!
就是定义的时候有点麻烦,呵呵~~


            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被管理员删除
[其他解释]
引用:
引用:haukwong
你这个是对的,谢谢!
就是定义的时候有点麻烦,呵呵~~
C# code?1234567891011121314151617            stu[0] = new Student             {                Number = "0905606201",        ……



好的谢谢
[其他解释]
直接用list不方便点?
[其他解释]
SQL77

Chinajiyong

嗯嗯,我试试,谢谢

热点排行