c# 结课小结

C#总结知识点

模块一:知识点梳理

输入输出表达式---数据类型---变量与常量 ----运算符---语句-----数组与集合---函数--结构体;

模块二:输入与输出

输入:  console.resdline();   console.read();

输出:  console.writeline() ;     console.write();

模块三:数据类型

 A  分类: 值类型  对象类型(引用类型)

    1 值类型:

基本类型: int shart long  double float decimal  char bool

字符串的字面值:

\’ 表达为单引号        \’’  双引号     \\ 反斜杠    \0 空格   \a 蜂鸣   \b退格   \f  换页  \n 换行    \r 回车    \t 水平制表符   \v垂直制表符

★技巧1 String  a=@”www.baidu.\ddeg\\frfr\.com.“(@“包含特殊符号的要输出的语句”);

  复杂类型  datetime类  math 类  

 

Datetime:表达形式

 

 

 

 

Math:表达形式

 

 

 

2对象类型

String   表达形式

定义  字符串名字 str

1) str.lenth(); //获取字符串长度; str.toupper/str.lower(); 将字符串全部调整为大写/小写; str.replace(要被替换的字符,要去替换的字符返回已经替换完成的字符串;

 2) Str.trim()  str.trimstar()  str.trimend()  分别为去除字符串前后空格 去除字符串前空格 去除字符串后面空格

3)截取指定位置字符串:str.substring(起始位置int,截取长度int)返回值为字符串  

     string a="rfrrggfsggrrfgsfghggs";

        string  s = a.Substring(4, 4);

        Console.Write(s);

4)str.indexof(); str.lastindexof();

  例子 : string a="rfrrggfsggrrfgsfghggs";

        int w = a.IndexOf("r");//某个字符串在这个字符串中第一次出现的位置

        int e = a.LastIndexOf("r");//某个字符在这个字符串中最后一次出现的位置

        Console.Write(w); //返回值为整数

        Console.WriteLine(e); 

5)bool 型(返回bool值 true or fause

   例 :string a="rfrrggfsggrrfgsfghggs";

        bool w = a.EndsWith("g");//是否以 g结尾

        bool e = a.StartsWith("f");//是否 以f 开头

        bool t = a.Contains("e");//是否包含e

            Console.Write(w);//返回值为ture 或者是fause

            Console.WriteLine(t);

        Console.WriteLine(e);

类型间的转换

数据转换:

计算机运算的时候,必须使用同一类型数据进行运算。

如果不是同一类型数据,则需要进行类型转换。

类型转换的分类:

1.自动转换:只要不会出现丢数据的可能,就自动转。

byte->short->int->long->float->double

2.强制转换:凡是可能会出现丢数据的情况,就需要强制转。

在被转换的数据左边加上小括号:(要被转换成的数据类型)

使用Convert.ToXXXX(要被转换的数据)

例子:

int d = (int)3.14;

int d = Convert.ToInt32( 3.14);

float f = (float)3.14;

float f = Convert.ToSingle(3.14);

 

如果是字符串转换基本数据的话必须使用Convert.ToXXX(字符串);

模块四  变量与常量

  1. 常量 

   Const +数据类型 +常量名   例 const  PI  ;注:变量名一般为全部大写;

B  变量

  命名规则:  变量名可以由 字母,数字 下划线, @,汉字  组成

              b 变量名首字符 不能是数字;

              c 变量名不能为关键字;

 (一)变量——U

1.定义:

数据类型 变量名[=[,变量名=]];

变量名的命名规则:a.组成。b.首字符。c.关键词

2.赋值:变量名=;

3.取值:直接使用变量名。

 

注意变量的作用域:变量只在它所在的花括号里面起作用,出了花括号就访问不到了。

1.在同一个花括号内,不能出两个重名的变量定义。

2.如果多重花括号,外层和里层都出现同一个变量的定义,则使用的时候遵循“就近原则”。

 

(二)常量——光盘

在程序只能定义的时候赋值,在运算的时候无法修改值(不能放在等号的左边)

1.定义:

const 数据类型 常量名 ;   //一般来说常量名统统大写。

2.取值:直接使用常量名。

3.分类:符号常量和字面常量。

int a = 10;  //10就是字面常量

const int PI = 3.14; //PI-符号常量;3.14字面常量

 

模块五 运算符

 

运算符:

一、算术运算:

+ - * / % ++ --

注意:

1.做除法运算的时候,如果两个操作数同为整数,则运算结果也是整数,不会出现小数。

2.上面这些运算,如果两个操作数不同是一类型,在运算的时候会自动进行类型转化。

 

取余用途有哪些?

1.判断能不能整除?

2.用来把数变成某个范围之内的数。

 

自增与自减操作:

语法:

变量名++; ++变量名;

int a = 4;

a++;  ++a;

 

意义:

a++ ++a <==> a = a+1; <==> 1.a的值取出来。2.a的值加上13.把加完的结果再赋给a

5++ 为什么不正确?

const int b = 5;

b++; 为什么不正确?

 

++aa++的区别?

1.如果这一行语句中,只有唯一的++--运算,不再有其它运算的话,前++++效果是一样的。

2.如果这一行语句中,除了++ --外,还有其它运算。

++,最先执行。后++,最后执行。

例如:

int a = 5;

int b;

b = a++; //相当于b = a; a = a+1;

Console.WriteLine(a); //a=6

Console.WriteLine(b); //b=5

b = ++a; //相当于a = a+1;b=a;

Console.WriteLine(a); //a=6

Console.WriteLine(b); //b=6

 

二、关系运算符:6

== != > >= < <=

所有关系运算符,运算的结果都是bool型。

 

int a = 5;

int b = 6;

Console.WriteLine(a == b); //False

Console.WriteLine(a != b); //True

Console.WriteLine(a > b); //False

Console.WriteLine(a < b); //True

Console.WriteLine(a >= b); //False

Console.WriteLine(a <= b); //True

 

注意:不要把== 写成 =

 

三、逻辑运算符

&& || !

 

int a = 5;

int b = 6;

a>6 && b<=10 //结果是False

 

18<a<35 ==> a>18 && a<35

a<18 或 a>35 ==> a<18 || a>35

 

&&——只有两个条件都成立,结果才成立True;如有一个不成立,或者两个都不正确,结果就False

||——除非两个都不成立,结果才不成立False;只要有一个成立,结果就成立True

!——取反运算。

 

int a = 16;

bool b =  a>18 && a<35; //b == false

bool c = !(a>18 && a<35); //c == true

 

四、其它运算

= -- 赋值运算,把右侧的值赋给左侧。因此它的左侧只能是变量,不能是常量或表达式。

+= -= *= /= %= --- 复合运算符。

int a = 5;

a += 10;  // <==> a = a+10; //1. 执行a+102.把相加的结果赋给a;

?: -- 条件运算符。

逻辑(关系)式?式子二:式子三;

int a = 10

int b = 5;

bool c = a>b?a:b;

 

模块六  语句(顺序 循环 分支)

五、语句:顺序、分支、循环

(一)分支:

1.if

(1)if(条件){}

(2)if(条件){} else {}

(3)if(条件){} else if(条件){}...else{}

(4)if(条件){if(条件){}..else{}} else{if(条件){}...else{}}

案例:

a.18岁抓当兵。

b.相亲

c.体重

d.平年闰年 ——判断一个日期是否正确。

e.一元二次方程根的情况。

 

2.switch

switch(表达式)

{

case 常量:

...

break;

case 常量:

...

break;

default

break;

}

 

(二)循环:

1.基本语法:

(1).for

for(初始条件;循环条件;状态改变)

{

循环体

}

循环的四要素:。。。。。。

 

(2).while

初始条件

while(循环条件)

{

循环体

状态改变

}

2.循环嵌套:

for(;;)

{

for(;;)

{

}

}

 

3.应用:

a.打印星号。好多图形。

b.穷举。把各种可能的情况都走一遍,筛选出符合条件的。

100以内所有与7有关的数。

●买牙刷,洗发水,香皂

●百鸡百钱,百马百石

●兑硬币

●填+-号使等式成立的。

●侦察兵

************关与本文中的例题不明白可以加793059747 相互探讨一下************

c.迭代。找到规律,使用变量不断累计的功能实现运算。不断求中间结果,直到得出最终的结果。

100以内所有数的和

●猴子吃桃

●小朋友算年龄

●折纸-珠峰

●棋盘分米

●富翁与程序员

●兔子

 

模块七 数组与集合

六、数组与集合

(一)数组:同一类型,连续存储

1.一维:——豆角

定义: 数据类型[] 数组名 = new 数据类型[长度]{初始值列表};

赋值:数组名[下标] = ;

取值:数组名[下标]

for语句配合用:——使用循环来控制下标。 

数组常用的属性:Length。要搞清下标与长度的关系。

 

应用:

●球员打分。

●彩票

●排序

●二分法查找。

 

2.二维:——表格

定义:数据类型[,] 数组名 = new 数据类型[行数,列数]{初始值列表};

赋值:数组名[行下标,列下标] = 值。

取值:数组名[行下标,列下标]

与循环配合用:

for(;;) //循环行

{

for(;;)//循环列

{

}

}

 

应用:

●推箱子。

 

3.锯齿:——数组中的数组

定义:

1.定义数组中的数组:数据类型[][] 数组名 = new 数据类型[行数][];

2.定义一维数组:

3.把一维数组赋给数组的数组。

 

★★★★锯齿数组详解★★★★

.锯齿数组——数组的数组

定义:

a.定义数组的数组:

int[][] a = new int[3][];

b.定义一维数组:

int[] b1 = new int[4]{1,2,3,4};

int[] b2 = new int[3]{5,6,7}; 

int[] b3 = new int[5]{9,10,11,12,13};

c.把一维数组加到数组的数组中去

a[0] = b1;

a[1] = b2;

a[2] = b3;

 

使用:

a[][] = 。。。

a[][]

 

a.Length == ???  3

a[0].Length = ????? 4

 

 

 

 

 

 

 

(二)集合:不用连续

1.链表

弱类型:ArrayList list = new ArrayList(); //using System.Collection;

强类型:List<类型> list = new List<类型>(); //using System.Collection.Generic;

2.哈希表

弱类型:Hashtable table = new Hashtable();

强类型:Dictionary<key类型,value类型> table = new Dictionary<key类型,value类型>();

 

栈,队

★★★★集合详解★★★★

集合:

(1)链表——每个存储的值都会分配一个索引号,通过索引号可对每个元素赋值或取值。

弱类型:

using System.Collection;

ArrayList list = new ArrayList();

 

强类型:

using System.Collection.Generic;

List<类型> list = new List<类型>();

 

list.Clear();

list.Add(value);

list.Insert(索引号,value);

list.RemoveAt(索引号);

list.Count;

 

(2)哈希表——每个元素都由两部分组成,一部分叫key,一部分叫value

弱类型:

using System.Collection;

Hashtable table = new Hashtable();

 

强类型:

using System.Collection.Generic;

Dictionary<类型,类型> dic = new Dictionary<类型,类型>();

 

dic.Clear();

dic.Add(key,value);

dic.Remove(key)

dic.Count;

 

 

模块 八 函数  结构体

个人理解 函数 与结构体只是为了美化已经完成的程序提高程序的利用率,或者是说为了提高工作效率完成的;

函数

 

函数 :结构与枚举:

(一)结构体——自己定义的复杂的类型。

什么是结构体?为什么需要用到结构体?

定义:

struct 结构体名

{

public 数据类型 成员变量名;

public 数据类型 成员变量名;

public 数据类型 成员变量名;

...

}

使用:

 

结构体名 变量 = new 结构体名();

变量.成员变量 

变量.成员变量

 

说明:结构体的成员,还可以用其它结构体来定义。

 

(二)枚举:使用枚举来替代一些难以记忆的整数。

枚举和整数之间可以相互强制转换。

定义:

enum 枚举名

{

成员名[=整数],

成员名[=整数],

成员名[=整数],

....

成员名[=整数]

}

  

 

结构体:

★★★★结构体详解:★★★★

结构体:

由多种简单类型,组合成一种复杂的类型。使用这种复杂的类型来解决生活中的实际例子。

 

一、结构体定义:

struct 结构体的名子                      

{

public 类型名 变量名;

.....

}

    struct Student

    {

        public string NO;

        public string Name;

        public double YuWen;

        public double ShuXue;

        public double WaiYu;

        public double ZongFen;

    }

 

二、结构体的使用:

1.使用结构体来定义变量

Student s1 = new Student();

2.给结构体变量赋值。

s1.Name = "";

s1.NO = "";

3.给结构体变量取值。

s2.YuWen

 

三、复杂结构体。

使用结构体类型的成员变量,来组成更大的结构体。

1.先造个小的结构体

2.使用小的结构体来组合成更大的结构体。

    struct Student

    {

        public string NO;

        public string Name;

        public ChengJi Score = new ChengJi();

        public LianXiFangShi Contact = new LianXiFangShi():

    }

    struct LianXiFangShi

    {

        public string DianHua;

        public string QQ;

        public string YouXiang;

        public string ZhuZhi;

    }

    struct ChengJi

    {

        public double YuWen;

        public double ShuXue;

        public double WaiYu;

        public double ZongFen;

    }

复杂结构体的定义:

Student s1 = new Student();

复杂结构体成员变量的使用。

            s1.NO = "s001";

            s1.Name = "张三";

            s1.Contact.DianHua="18500002222";

            s1.Contact.QQ="88888888";

            s1.Contact.YouXiang="88888888@qq.com";

            s1.Contact.ZhuZhi = "地球";

            s1.Score.YuWen=89;

            s1.Score.ShuXue=99;

            s1.Score.WaiYu=79;

            s1.Score.ZongFen = s1.Score.YuWen+s1.Score.ShuXue+s1.Score.WaiYu;

 

 

posted on 2015-05-20 09:41  a-po  阅读(323)  评论(0编辑  收藏  举报