您的位置:首页 > 职场人生

08黑马程序员_枚举,结构,数组

2013-03-11 21:49 295 查看
------- Windows Phone 7手机开发.Net培训、期待与您交流! -------

常量:

跟变量相对应
语法:

const 类型 常量名=常量值;



在定义时赋值,在其他地方不允许赋值

枚举:

让我们定义一种枚举类型并且在定义这种类型时我们要制定这个类型的所有值

语法:

Enum 自己起的类型名称{1,2,3,...n};

枚举的定义,一般和类定义在同一个级别,这样,在同一个命名空间下的所有的类就都可以使用这个枚举了.(方法中/类中也可以)

namespace 枚举
{
enum Gender
{
男,
女
}
class Program
{
static void Main(string[] args)
{
Gender sex;
Console.WriteLine("请输入你的性别?");

string s = Console.ReadLine();
try
{
sex = (Gender)(Enum.Parse(typeof(Gender), s));
Console.WriteLine("你输入的性别为:" + sex);
}
catch
{
Console.WriteLine("你输入的性别有误");
}
Console.WriteLine();
Console.ReadKey();
}
}
}

枚举的作用:

1)限制用户不能随意赋值,只能在定义枚举时列举的值中选择.

2)不需要死记每一个值是什么,只需要选择相应的值

注意;定义枚举时,值不能是int类型.

枚举类型的变量都可以强制转换成一个int类型

枚举的值在定义时是有一个默认编号的,编号从0开始

如果把一个字符串转换成枚举类型;

(自枚)(enum.parse(typeof)(自枚),”带转换的字符串”);

为什么要用结构:

1)比如我们上课讲的为了储存一个人的信息,要声明一组变量,但我们要存储n个人的信息是,就要声明n组变量,麻烦.

2)存储一个人的信息的这几个变量间没有关系,容易记乱.

语法:

访问修饰符struct 结构名

{

定义结构成员

}

注意好一个结构后,就可以直接声明相应的变量了.

声明好变量后,通过变量名.成员名 来访问结构的成员

namespace 结构06
{
enum Gender
{
男,
女
}

public struct Person//定义一个名称叫person的结构
{
public string name;
public char sex;
public int age;

}
class Program
{
static void Main(string[] args)
{
Person onePerson;
onePerson.name = "zhangsan";
onePerson.age = 20;
onePerson.sex = '男';

Person secperson;
secperson.name = "lisi";
secperson.age = 26;
secperson.sex = '男';

Console.ReadKey();
}
}
}


其他

计算机中最小单位叫”位”,bit 比特    010100101001111   b

就把8个二进制位分成一组,那么8个二进制位就叫字节byte B计算机能够处理的最小单位

0-11111111=255

Kb mb gb tb

Bps 传输速度 bit per second

数组

可以帮我们一次声明多个同类型的变量.这些变量在内存中是连续存储的

数组声明语法:

数据类型[]数组名=new 类型[数组长度]

 Int a;表示要声明的是一个int类型变量

例如:int[]  score = new int[5];     编号是 01234

就声明了一个长度为5 的数组,数组叫score

通俗点说:就是声明了一个数组,里面包含5个int类型的变量.

数组名叫:score   里面的5个int类型的变量叫做:数组的元素

如何访问数组:

通过下标(索引)来访问数组.

比如,我们要向第0个元素赋一个3.可以这样写

Score[0]=3



Int类型数组一旦声明,里面的每一个元素被初始化为0..

通过 数组名.lenth 可以获得数组的长度

练习输入计算成绩并显示

int sum = 0;
int[] score = new int[5];
for (int i = 0; i < score.Length; i++)
{
Console.WriteLine("请输入第{0}个人的成绩", i + 1);
score[i] = Convert.ToInt32(Console.ReadLine());
//sum=sum+score[i];
}
for (int i = 0; i < score.Length; i++)
{
sum += score[1];
}
Console.WriteLine("本班共有{0}人,平均成绩为{1}分",
score.Length, sum / score.Length);
for (int i = 0; i < score.Length; i++)
{
Console.WriteLine("第{0}个学生的成绩为{1}", i + 1, score[i]);
}


清屏

Console.clear();

冒泡排序:

使数组中的元素两两比较(第i个与第i+1个比较),经过n(i-1)遍比较,数组的元素按照我们预期的规律排序.

要从大到小排序,我们进行两两比较的时候用<





int numbers;
for (int i = 0; i < numbers.length - 1; i++)
{
for (int j = 0; ij < numbers.length - 1-i; j++)
{
}
if(>)
{
交换
}
}


综合例题

namespace test9
{
class Program
{
//9、 班级学生总成绩和平均成绩计算:
//      1)让用户输入班级人数
//      2)让用户依次输入该班级每个学员的姓名和成绩(0-100之间)
//      3)按成绩进行排序,按成绩由高到低依次输出学生的姓名和成绩

static void Main(string[] args)
{
Console.WriteLine("请输入本次考试人的数量");
//1)让用户输入班级人数
int x = Convert.ToInt32(Console.ReadLine());
//定义输入的考试人数,并转换为int

string[] name = new string[x];
int[] fen = new int[x];
//定义多个名字,分数,个数为输入的x
int sum = 0;
//定义一个成绩

// 2)让用户依次输入该班级每个学员的姓名和成绩(0-100之间)
for (int i = 0; i < x; i++)//进入循环,输入姓名跟成绩
{

Console.WriteLine("请输入第{0}个同学的名字", i + 1);

name[i] = Console.ReadLine();

Console.WriteLine("请输入第{0}个同学的成绩", i + 1);
fen [i]= Convert.ToInt32(Console.ReadLine());

if (fen[i] < 0 || fen[i] > 100)//限制输入的分数大小
{
Console.WriteLine("成绩必须在1~100之间,请重新输入");
break;
}
}
for (int i = 0; i < x; i++)//计算总分
{
sum += fen[i];

}
Console.WriteLine("这次考试的总成绩为{0},平均成绩为{1}",
sum,sum/x);//显示分数

//3)按成绩进行排序,按成绩由高到低依次输出学生的姓名和成绩
for (int i = 0; i < x - 1; i++)//冒泡排序,排列分数的顺序,并使姓名跟着排列
{
for (int j = 0; j < x - 1 - i; j++)
{
if(fen[j]<fen[j+1])
{
int temp = fen[j];
fen[j] = fen[j + 1];
fen[j+1] = temp;

string temp2 = name[j];
name[j] = name[j + 1];
name[j + 1] = temp2;
}
}
}
Console.WriteLine("将按成绩排列同学们的顺序");

for (int i = 0; i < x; i++)//循环输出姓名与成绩
{
Console.WriteLine("{0}的成绩为{1}",name[i],fen[i]);
}

Console.ReadKey();

}
}
}


------- Windows Phone 7手机开发.Net培训、期待与您交流! -------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息