自定义结构体
可以在主函数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 }
显示结果