• c# 结构体 集合 复习


    添加5个学生的信息到集合中,
    每个学生都有:学号,姓名,成绩,3个内容,
    添加完毕后将学生的分数从高到低排列并打印出来,使用结构体

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Collections;
    namespace ConsoleApplication1
    {
        class Program
        {
            struct xuesheng //创建一个名为学生的结构体,结构体固定格式前面struct 后面加名字
            {
                public int code;//设置一个整数类型的变量,名为code
                public string name;//设置一个字符串类型的变量,名为name
                public double fenshu;//设置一个小数类型的变量,
                public int m;//设置一个整数类型变量,此变量用于接收学生一次循环第几个学生
            }
            static void Main(string[] args)
            {  
    //1.打印接收学生信息,放在集合中

    ArrayList bb
    = new ArrayList();//实例化一下 for (int i = 1; i < 6; i++) //此处循环打印接收5个学生信息 { xuesheng xs = new xuesheng();//实例化,以便量xs Console.Write("请输入第"+i+"个学生姓名:"); xs.name = Console.ReadLine();//用变量xs直接点出结构体中的属性并接收输入的信息 Console.Write("请输入第1个学生学号:"); xs.code = int.Parse(Console.ReadLine()); Console.Write("请输入第1个学生分数:"); xs.fenshu = double.Parse(Console.ReadLine()); xs.m = i;//每循环一次接收第几个学生到变量m中 bb.Add(xs);//把每次循环的学生信息打包放进集合bb中,xs共接收三个属性值 Console.WriteLine("================================"); } Console.WriteLine("----------------------学生数据展示----------------------"); //2.进行排序 for (int i = 0; i < bb.Count-1; i++) //冒泡排序,嵌套循环,外循环是集合的第一个元素,也就是0号索引 { for (int j = i+1; j < bb.Count; j++) //内循环是集合第二个元素,也就是1号索引 { xuesheng a= (xuesheng)bb[i];//因为集合中接收到的是三个属性打包的元素,需要强制转换一下到一个变量中 xuesheng b= (xuesheng)bb[j];// if(a.fenshu<b.fenshu)//用变量中接收到的直接点出结构体中的属性所填写的值进行比较,此处用分数排序,点出分数 { //因为是从大到小排序,需要前面的比后面小时,用冒泡排序把后面一个拿过来 object zhong = bb[i];//冒泡排序,先定义一个中间变量,把第一个元素值放进去,为避免数值类型冲突,直接用一个大范围的数值类型object来定义 bb[i] = bb[j];//外部条件是前面数小于后面数时执行排序,把后面索引的元素放进前面去 bb[j] = zhong;//再把刚刚放进中间变量的元素值放到下一个元素中,实行了前后调换 } } }

    //3.打印集合
    foreach (object n in bb) //遍历集合,打印集合的一种方式,定义一个变量n ,把集合bb接收在其中 { xuesheng s = (xuesheng)n;//把n强制转换一下在变量s中 Console.WriteLine(""+s.m+"个学生的学号:"+s.code+",姓名:"+s.name+",成绩:"+s.fenshu+""); }//s就可以直接点出集合中排好序的每个打包元素里面的属性 Console.ReadLine(); } } }

  • 相关阅读:
    css3新特性总结
    H5新特性总结
    小程序本地移除有一条数据
    字符串截取(某个指定字符前面和后面的值)(指定前几位后几位)
    uni-app 创建项目
    数组转数组对象及数组对象中的某个属性值拼成一个数组
    VUE 解决单页使用keep-alive页面返回不刷新的问题
    小程序弹窗真机不动
    js 数组去重方法
    VUE 列表页中实现分页(下拉到底部触发下一页 )
  • 原文地址:https://www.cnblogs.com/zyg316/p/5592485.html
Copyright © 2020-2023  润新知