• C#(结构体_枚举类型)


        结构体一般定义在Main函数上面,位于Class下面,作为一个;一般情况Struct定义在Main函数前面,Main函数里面的地方都可以使用,参数前面加上public代表公用变量。

    用法

     1)在Main函数外面定义了一个student类型的结构体,在Main主函数中使用:

     2)然后为里面的每个元素赋值,结构体名+点+结构体里面变量名称=值。

     3)赋值之后完成之后进行打印。

    struct Student

     {//定义一组变量
    public int no;
    public string name;
     public string sex;
     public Score fen;
    }

    Student st = new Student();//这句是在Main函数里定义了一个名为st的student 类型的结构体。并初始化结构体

    st.no = 20001;                                             //赋值
    st.name = "张三";
    st.sex = "男";
    st.score = 80;
    //将每个人的信息放进ArrayList集合中
    //面向对象思想
    ArrayList al = new ArrayList();
    al.Add(st);
    Student st1 = new Student();
    st1.no = 20002;
    st1.name = "李四";
    st1.sex = "女";
    st1.score = 60;
    al.Add(st1);

    ArrayList al = new ArrayList();

    Console.Write("请输入班级人数:");
    int a = int.Parse(Console.ReadLine());
    for (int i = 0; i < a; i++)
    {
    Student st = new Student();
    Console.Write("请输入第{0}个学生的学号:", i + 1);
    st.no = int.Parse(Console.ReadLine());
    Console.Write("请输入第{0}个学生的姓名:", i + 1);
    st.name = Console.ReadLine();
    Console.Write("请输入第{0}个学生的性别:", i + 1);
    st.sex = Console.ReadLine();
    Console.Write("请输入第{0}个学生的分数:", i + 1);
    st.score = double.Parse(Console.ReadLine());
    al.Add(st);
    }
    查看3号索引位置的学生的所有信息
    接收出来的时候需要接受成添加时候的数据类型(Student)
    Student st1 = (Student)al[3];
    Console.WriteLine(st1.no);
    Console.WriteLine(st1.name);
    Console.WriteLine(st1.sex);
    Console.WriteLine(st1.score);

    Console.ReadLine();

    结构体内部可以直接放置另一个结构体的数据类型

    例如:struct Student

     {

     public int no;
     public string name;
     public string sex;
     public Score fen;
     }
    struct Score
    {
     public double yu;
     public double shu;
     public double ying;
    }

    练习:

    定义一个结构体,里面具有姓名、语文成绩、数学成绩、英语成绩
    将每个人的信息放入结构体中
    将所有人的信息添加进集合中
    求语文分数的总分
    求数学分数的平均分
    查看英语分数的两个最高分的人的所有信息(姓名、语分、数分、英分)
    要求使用冒泡排序,只有一个集合

    struct stu
    {
    public string name;
    public double yu;
    public double shu;
    public double ying;
    }

    ArrayList al = new ArrayList();
    stu s = new stu();
    Console.Write("请输入班级人数:");
    int n = int.Parse(Console.ReadLine());
    double ysum = 0;
    double ssum = 0;
    for (int i = 0; i < n; i++)
    {
    Console.Write("请输入第{0}个同学的姓名:", i + 1);
    s.name = Console.ReadLine();

    Console.Write("请输入 第{0}个同学的语文成绩:", i + 1);
    s.yu = double.Parse(Console.ReadLine());

    ysum += s.yu;
    Console.Write("请输入 第{0}个同学的数学成绩:", i + 1);
    s.shu = double.Parse(Console.ReadLine());

    ssum += s.shu;
    Console.Write("请输入 第{0}个同学的英语成绩:", i + 1);
    s.ying = double.Parse(Console.ReadLine());
    al.Add(s);

    }
    Console.WriteLine("语文总分为{0},数学平均分为{1}", ysum, ssum / n);
    //排序
    for (int i = 0; i < n; i++)
    {
    stu st1 = new stu();
    st1 = (stu)al[i];
    for (int j = i + 1; j < n; j++)
    {
    stu st2 = new stu();
    st2 = (stu)al[j];
    if (st1.ying < st2.ying)
    {
    object zhong = al[i];
    al[i] = al[j];
    al[j] = zhong;
    }
    }
    }
    stu st = new stu();
    st = (stu)al[0];
    Console.WriteLine("英语成绩的最高分是" + st.name + st.ying);
    Console.ReadLine();

    第二部分  枚举类型

    枚举(enum)是值类型的一种特殊形式,它从System.Enum继承而来,并为基础类型的值提供替代名称。枚举类型有名称、基础类型和一组字段。基础类型必须是一个除char 类型外的内置的有符号(或无符号)整数类型(如Byte、Int32或UInt64)。也可以说,枚举类型是一组常量的集合。

    1、定义:Enum....{E}

    枚举元素的默认基础类型为int。默认情况下,第一个枚举数的值为0,后面每个枚举数的值依次递增1。例如:

      enum meiju://枚举是常量的集合,一般冒号后面不指定数据类型

            {

            one=3, //枚举里面有默认的索引,也可以指定;如索引3,但在控制台中不起作用;

            two=6,

            three,//用逗号隔开

            four=two,//如果等于之前的一个常量,那么就等于这个常量;最后一行的逗号可省略

            }      

            static void Main(string[] args)

            {

                Console.WriteLine(meiju.one);

                Console.ReadLine();

    2、用法:

       枚举也可以指定数据类型,一般不指定。

    在定义枚举类型时,可以选择基类型,但可以使用的基类型仅限于long、int、short和byte。例如:

    如: enum meiju:int

  • 相关阅读:
    c#中String跟string的“区别”<转>
    JS中判断对象是否为空
    report builder地址:http://localhost/reports
    今天开始,主攻MS Dynamics CRM
    IO负载高的来源定位
    ORACL学习笔记 之 分区表
    Linux自动删除n天前日志
    Oracle中NVL2 和NULLIF的用法
    Ubuntu学习笔记之Sqldeveloper安装
    给ubuntu的swap分区增加容量
  • 原文地址:https://www.cnblogs.com/zblc2016/p/5734183.html
Copyright © 2020-2023  润新知