自定义结构体

  可以在主函数Main中定义,那么该结构体只能在主函数中使用;如果在主函数Main外定义,那么可以在其他项目中使用。

  

 

按上面图片中定义,应用如下

 1             Student_Info wang = new Student_Info();
 2             wang.name = "王明";
 3             wang.classname = 12;
 4             wang.sex = true;
 5             wang.no = 1235;
 6             wang.fenshu.shuxue = 94;
 7             wang.fenshu.wuli = 87;
 8             wang.fenshu.huaxue = 89;
 9 
10             Console.WriteLine("学号{0},姓名{1},性别{2},班级{3},数学{4},物理{5},化学{6}",
11                 wang.no,wang.name,wang.sex==true?"":"",wang.classname,
12                 wang.fenshu.shuxue,wang.fenshu.wuli,wang.fenshu.huaxue);

 

输出结果为:

 

应用举例:

 

 1         public struct fenshu    //自定义结构体fenshu
 2         {
 3             public int csharp;
 4             public int web;
 5             public int db;
 6             public int sum;
 7         }
 8         public struct Student_Info    //自定义结构体Student_Info
 9         {
10             public int no;
11             public string name;
12             public fenshu chengji;
13         }
14 
15         static void Main(string[] args)
16         {
17             //统计学生成绩,并按总分降序排列
18             Student_Info[] st = new Student_Info[5];    //定义一个结构体数组st
19             for (int i = 0; i < 4; i++)
20             {
21                 //输入部分
22                 Console.WriteLine("第{0}位学员成绩:", i + 1);
23                 st[i].no = i + 1;    //自动生成学号
24                 Console.Write("姓名:");
25                 st[i].name = Console.ReadLine();
26                 Console.Write("csharp:");
27                 st[i].chengji.csharp = Convert.ToInt32(Console.ReadLine());
28                 Console.Write("web:");
29                 st[i].chengji.web = Convert.ToInt32(Console.ReadLine());
30                 Console.Write("db:");
31                 st[i].chengji.db = Convert.ToInt32(Console.ReadLine());
32                 st[i].chengji.sum = st[i].chengji.csharp + st[i].chengji.web + st[i].chengji.db;
33             }
34             //快速排序,按总分排序
35             for (int i = 0; i < 4; i++)
36             {
37                 for (int j = i + 1; j < 4; j++)
38                 {
39                     if (st[i].chengji.sum < st[j].chengji.sum)    //比较总分,判断是否交换顺序
40                     {
41                         Student_Info zj = st[i];
42                         st[i] = st[j];
43                         st[j] = zj;
44                     }
45                 }
46             }
47             //按表格形式输出信息
48             Console.WriteLine(" 学号\t姓名\tcsharp\tweb\tdb\t总分\t名次");
49             for (int i = 0; i < 4; i++)
50             {
51                 Console.WriteLine(st[i].no + "\t" + st[i].name + "\t" + st[i].chengji.csharp + "\t" +
52                     st[i].chengji.web + "\t" + st[i].chengji.db + "\t" + st[i].chengji.sum + "\t" + (i + 1));
53             }
54 
55         }

 

 显示结果

 

posted on 2014-08-27 14:21  幻影K  阅读(1079)  评论(0编辑  收藏  举报