C# 结构体 枚举类型

结构体主要用于创建小型对象,例如   对象:学生  他包含:学号 姓名  性别  生日 班级   成绩等多个再小的对象

当我们有成千上万个对象组合起来   容易会自己造成混乱 而且占一定的内存

结构体就是把一个对象分支多个对象  组合起来进行计算 运行  并且不会重复运用同一个程序  把内存节省

 

 

定义:

它一般定义在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();
        }
    }
}

 

posted @ 2017-03-03 00:17  天晴微笑  阅读(632)  评论(0编辑  收藏  举报