结构体和枚举
Posted 斐雪
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结构体和枚举相关的知识,希望对你有一定的参考价值。
结构体:
在内存中临时存储数据的方式
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();
运算结果
以上是关于结构体和枚举的主要内容,如果未能解决你的问题,请参考以下文章