结构体主要用于创建小型对象,例如 对象:学生 他包含:学号 姓名 性别 生日 班级 成绩等多个再小的对象
当我们有成千上万个对象组合起来 容易会自己造成混乱 而且占一定的内存
结构体就是把一个对象分支多个对象 组合起来进行计算 运行 并且不会重复运用同一个程序 把内存节省
定义:
它一般定义在Main函数外面,类Class program里面
格式:
struct+结构体名称
{ public int 变量名;
public string 变量名;
public 数据类型 变量名
}
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 练习题 { class Program { struct student //struct 结构体名称 { public double chengji; //public 数据类型 变量名 public string name; public DateTime shengri; public bool jige; } static void Main(string[] args) { student s = new student(); 用结构体定义一个变量 Console.Write("请输入成绩"); s.chengji = Convert.ToDouble(Console.ReadLine()); s.上面的变量名chengji } } }
枚举类型
枚举(enum)是值类型一种特殊形式,是一组常量的集合
就是定义一组号常量 在用的时候给你一个选择项 选择一个
namespace 练习题 { class Program { enum xingbie enume 枚举的名字 { { 男, 给用户列举几个选项选择 选择项中加逗号 女 } } static void Main(string[] args) { xingbie.男 这里的男是在打完xingbie 再打一打点出现一个选项 让我们选择 } } }
练习题:
结构体练习题:
“请输入录入学生的个数:”
记录学生信息,需要输入
“请输入第1个学生的学号”
“请输入第1个学生的姓名”
“请输入第1个学生的生日”
“请输入第1个学生的成绩”
打印格式如下:
================学生信息展示===================
s001 张三 2000年1月1日 17 90 成绩是从大到小排列出来
s002 李四 2000年1月1日 17 80
。。。
namespace 结构体___学生信息 { class Program { struct Student { public string code; public string name; public DateTime dt; public int score; } static void Main(string[] args) {//请输入学生个数 Console.Write("请输入学生个数:"); int gs = Convert.ToInt32(Console.ReadLine()); //请输入学生 学号 姓名 生日 成绩 List<Student> s=new List<Student>(); for (int i = 1; i <= gs;i++ ) { Student ss=new Student(); Console.Write("请输入第"+i+"个学生的学号:"); ss.code = Console.ReadLine(); Console.Write("请输入第" + i + "个学生的姓名:"); ss.name = Console.ReadLine(); Console.Write("请输入第" + i + "个学生的生日:"); ss.dt = Convert.ToDateTime(Console.ReadLine()); Console.Write("请输入第" + i + "个学生的成绩:"); ss.score = Convert.ToInt32(Console.ReadLine()); s.Add(ss); }//冒泡排序 用成绩大小排列 把用户信息排列起来 for (int i = 0; i < gs; i++) { for (int j = i + 1; j < gs;j++ ) { if (s[i].score < s[j].score) { Student aa = s[i]; s[i] = s[j]; s[j] = aa; } } } //===============学生成绩展示================= Console.WriteLine(); Console.WriteLine("===============学生成绩展示================="); // s001 张三 2000年1月1日 17 90 成绩是从小到大排列出来 for (int i = 0; i < s.Count;i++ ) { int age = DateTime.Now.Year - s[i].dt.Year; Console.WriteLine(s[i].code+"\t"+s[i].name+"\t"+s[i].dt.Day+"\t"+age+"\t"+s[i].score); } Console.ReadLine(); } } }
,