zoukankan      html  css  js  c++  java
  • 结构体和枚举

    结构体:
    在内存中临时存储数据的方式
    1、变量、常量
    2、数组,可以存储固定长度统一类型的数据
    3、集合
    4、结构体

    结构体含义:就是将生活中的一些个体,封装成一个特殊的类型

    结构体是:用户自定义数据类型

    创建:
    创建的位置:main函数之外
    struct Student
    {
      public int Code;
      public string Name;
      public string Sex;
      public int Old;
      public DateTime Birthday;
    }

    定义:声明
    Student s = new Student(); //实例化

    赋值:
    s.Code = 1;
    s.Name = "张三";
    s.Sex = "男";
    s.Old = 18;
    s.Birthday = Convert.ToDateTime("1999-1-1");

    取值:
    s.Code //放在等号左边就是给它赋值,放在右边就是使用它的值

    枚举

    枚举的作用:统一,规范化的开发,个人用处不大,一般是团队开发时常用。

    枚举也是一种用户自定义类型;

    创建赋值: enum
    public enum Sex
    {
      男,
      女
    }

    取值:
    Sex.值

    练习

    请输入学生个数:n
    请输入第1个学生的姓名:
    请输入第1个学生的性别:
    请输入第1个学生的年龄:
    请输入第1个学生的成绩:
    ...
    n
    ****************************
    学生的总成绩为:xxx,平均分为:xxx。
    ****************************
    年龄排名(由大到小):
    姓名:xxx,性别:xxx,年龄:xxx,成绩:xxx。
    ...
    n
    ****************************
    成绩排名(由高到低):
    姓名:xxx,性别:xxx,年龄:xxx,成绩:xxx。
    ...
    n

                //输入学生个数
                Console.Write("请输入学生的个数:");
                int a = Convert.ToInt32(Console.ReadLine());
                ArrayList arr = new ArrayList();
                decimal end = 0;
                //输入学生姓名,性别,年龄,成绩。并判断是否正确
                for (int i = 0; i < a; i++)
                {
                    student s = new student();
                    Console.Write("请输入" + (i + 1) + "个学生的名字:");
                    s.name  = Console.ReadLine();
                    while (true)
                    {
                        if (s.name ==""||s.name==" ")
                        {
                            Console.Write("姓名输入错误!请重新输入:");
                            s.name = Console.ReadLine();
                        }
                        else
                        {
                            break;
                        }
                    }
                    Console.Write("请输入" + (i + 1) + "个学生的性别:");
                    s.sex = Console.ReadLine();
                    while(true)
                    {
                        if (s.sex == "" || s.sex == "")
                        {
                            break;
                        }
                        else
                        {
                            Console.WriteLine("性别输入错误!请重新输入:");
                            s.sex = Console.ReadLine();
                        }
                    }
                    Console.Write("请输入" + (i + 1) + "个学生的年龄:");
                    while (true)
                    {
                        try
                        { 
                            s.old = Convert.ToInt32(Console.ReadLine());
                            break;
                        }
                        catch
                        {
                            Console.Write("输入的不是数字,请重新输入:");
                        }
                    }
                    Console.Write("请输入" + (i + 1) + "个学生的成绩:");
                    while (true)
                    {
                        try
                        {
                            s.result = Convert.ToDecimal(Console.ReadLine());
                            break;
                        }
                        catch
                        {
                            Console.Write("输入的不是数字,请重新输入:");
                        }
                    }
                    arr.Add(s);
                    end += s.result;
                }
                Console.WriteLine("*********************************************************");
                //打印总分和平均分
                Console.WriteLine("总分是:" + end + ",平均分是:" + end / a + "");
                Console.WriteLine("*********************************************************");
                //打印分别按照年龄和成绩从大到小的排序
                for (int i = 0; i < a; i++)
                {
                    for (int j = i + 1; j < a; j++)
                    {
                        student s=(student)arr[i];
                        student ss =(student)arr[j];
                        if (s.old < ss.old)
                        {
                            object zhong = arr[i];
                            arr[i] = arr[j];
                            arr[j] = zhong;
                        }
                    }
                }
                foreach (student c in arr)
                {
                    Console.WriteLine("姓名:"+c.name+",性别:"+c.sex+",年龄:"+c.old+",成绩:"+c.result+"");
                }
                Console.WriteLine("*********************************************************");
                for (int i = 0; i < a; i++)
                {
                    for (int j = i + 1; j < a; j++)
                    {
                        student s = (student)arr[i];
                        student ss = (student)arr[j];
                        if (s.result < ss.result)
                        {
                            object zhong = arr[i];
                            arr[i] = arr[j];
                            arr[j] = zhong;
                        }
                    }
                }
                foreach (student c in arr)
                {
                    Console.WriteLine("姓名:" + c.name + ",性别:" + c.sex + ",年龄:" + c.old + ",成绩:" + c.result + "");
                }
                    Console.ReadLine();    

    运算结果

  • 相关阅读:
    Java面试之对象拷贝
    Java面试之反射
    Java面试之多线程
    Java面试之容器
    Java面试之基础一
    Java面试之Hibernate
    Mysql进阶
    高并发,不怕不怕「限流算法第一把法器:计数器法」
    SpringBoot加载速度慢
    idea VM options参数优化
  • 原文地址:https://www.cnblogs.com/sunshuping/p/5543726.html
Copyright © 2011-2022 走看看