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 = ; i < ; 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 = ; i < bb.Count-; i++) //冒泡排序,嵌套循环,外循环是集合的第一个元素,也就是0号索引
{
for (int j = i+; 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();
}
}
}

c# 结构体 集合 复习的更多相关文章
- C# 结构体集合元素属性不可修改疑惑
背景:用C#的人都知道结构体在C#中是值类型的,由于这个原因出现了一个有趣的问题,那就是结构体集合通过数字索引修改对应属性的值能不能影响到集合中的结构体呢?答案很多人可能会说不能,因为结构体是值类型的 ...
- iOS 阶段学习第十天笔记(结构体)
iOS学习(C语言)知识点整理 一.数据结构 1)概念:数据结构是指计算机程序中所操作的对象——数据以及数据元素之间的相互关系和运算. 2)结构体必须有struct 关键字修饰. 实例代码: stru ...
- [C#参考]Struct结构体
结构体是一种简单的用户自定义类型,也是类的一种轻量级的替代品. 相似之处:他们都有构造函数.属性.方法.字段.操作符.嵌套类型和索引器. 差异之处:类是一种引用类型,而结构体是一种值类型.因此结构体一 ...
- 4-17疑难点 c语言之【结构体对齐】
今天学习了结构体这一章节,了解到了结构体在分配内存的时候采取的是对齐的方式 例如: #include<stdio.h> struct test1 { int a; char b; shor ...
- 例题:超市买东西的程序。输入商品信息,计算价格,价格满多少元打折。这道题用到结构体,集合,for循环,if else语句
知识要点: 集合和数组的区别:数组是连续的,同一类型的一块区域,而集合可以是不连续的,多种数据类型的. 集合属性:.count 方法:.Add() 将对象添加到ArrayList中实际包含的元素数 ...
- c#---部分;把数组或者结构体存入集合里,然后再从集合中取出之后,输出;foreach既可以用到提取数组重点额数据,也可以提取集合中的数据(前提是集合中的元素是相同数据类型)
1.输入班级人数,统计每个人的姓名,性别,年龄:集合与数组 //Console.Write("请输入班级人数:"); //int a = int.Parse(Console.Rea ...
- c# 课堂总结6 --集合与结构体
一.集合 使用时必须添加 System.Collections 集合与数组的区别: 1:数组声明了它容纳的元素的类型,而集合不声明.这是由于集合以object形式来存储它们的元素.初始化时集合无需定义 ...
- 【2017-03-02】C#集合,结构体,枚举
集合 集合与数组的区别 数组:同一类型,固定长度 集合:不同类型,不固定长度 使用集合前需要: 引用命名空间:using System.Collections; 1.普通集合 定义: Arra ...
- 数据结构复习之C语言指针与结构体
数据结构指针复习: #include <stdio.h> void main() { ] = {, , , , }; // a[3] == *(3+a) printf(+a)); // a ...
随机推荐
- 2017头条笔试题:二维点集中找出右上角没有点的点并按x坐标从小到大打印坐标
PS:这篇是之前本来就想发的但是一直没时间写,加上今天做了京东的题,结果代码名就命名为jingdong了……懒得改代码名重新跑一遍结果了=.= 暴力法去做就是遍历每个点,判断它是不是“最大点”.判断过 ...
- (转!)大话websocket
邪正看眼鼻,真假看嘴唇,功名看气概,富贵看精神. ---曾国藩<冰鉴> 转自https://www.cnblogs.com/fuqiang88/p/5956363.html 原文http: ...
- sklearn.externals import joblib模块保存和下载使用模型的用法实例
#加载模块 from sklearn import datasets from sklearn.externals import joblib from sklearn.linear_model im ...
- Ubuntu-14.04.1 desktop安装时及安装后遇到的小问题
ubuntu安装时,进入桌面就黑屏:ctrl+alt+F1进入终端1,输入:startx,此时桌面会重新出现,快速修改桌面的分辨率即可.没有及时修改可以重复上面操作. su root认证失败:sudo ...
- web前端开发企业级CSS常用命名,书写规范总结
1.常用命名 标题: title 摘要: summary 箭头: arrow 商标: label 网站标志: logo 转角/圆角: corner 横幅广告: banner 子菜单: subMenu ...
- Python预编译语句防止SQL注入
这个月太忙,最近不太太平,我的愿望是世界和平! ================================== 今天也在找python的预编译,早上写的sql是拼接来构成的.于是找了2篇文章,还 ...
- Vue基础知识之组件及组件之间的数据传递(五)
vue中的组件是自定的标签,可以扩展的原生html元素,封装可复用的代码 note: 1.在标签命中不要使用大写,标签名字必须用短横线隔开 2.模板中只能有一个根元素,不能使用并列标签. 定义组件 全 ...
- SpringBoot 返回json 字符串(jackson 及 fast json)
一.jackson 1.Controller 类加注解@RestController 这个注解相当于@Controller 这个注解加 @ResponseBody 2.springBoot 默认使 ...
- CSS3基础
内容: 1.圆角 border-radius 2.阴影 text-shadow.box-shadow 3.渐变 linear.radial 4.rgba rgb+alpha opacity 5.tra ...
- python入门-测试代码
断言 测试函数 def get_formatted_name(first,last): """generate a neatly formattef full name& ...