思维导图
第一阶段课程
第一章
课时一:从一段代码开始
计算机语言:人类与计算机沟通的方式
源代码:用某种计算机语言编写的类容
例:Console.WriteLine("Hello,World")
C#语言
代码的执行
通过编译器将源代码转化为机械代码
计算机只能识别机械代码10
完整的解释
C#源代码-->通过编译器-->机械代码-->计算机-->控制台显示Hello,World
课时二:Code Compile Run
Code<n.源代码 v.编码>
使用C#进行编写源代码,用记事本保存,格式txt,文件名:MyFirstProgram.txt
源代码
Compile<v.编译>
编译器路径:Windows-->Microsoft.NET-->Framework-->v4.0-->csc.exe
csc.exe的打开方式:windows+R-->cmd(command 命令)
过程
Run<v.运行>
打开MyFirst.exe
课时三:开发工具
IDE(Integrated Development Environment)集成开发环境
Visual Studio
如何新建工程
打开VS2013-->文件-->新建-->项目-->模版-->Visual C#-->控制台应用程序-->名称:MyFirstVS到D盘-->完成
如何编写源代码
代码写在{}之间
若没有代码页:右边解决方案-->Program.cs
如何编译和运行
编译
解决方案资源管理器-->右键,工程-->生成
运行
F5或者运行
VS2008运行:Ctrl+F5
如何找到编译文件
我的电脑-->D盘-->MyFirstVS-->同名文件-->bin-->Debug
如何迁移工程
D盘-->拷贝MyFirstVS文件夹
若忘记存放位置
VS解决资源管理器-->右键解决方案-->在文件资源管理器中打开文件夹-->返回上级目录-->工程文件夹
若想重新打开拷贝之后的工程
C盘-->MyFirstVS-->MyFirstVS.sln
语言不同 IDE不同
课时四:认识主函数
主函数
程序启动时的函数
main函数,入口函数,启动函数
主函数的结构
主函数的声明
函数体
程序将从上到下依次运行主函数的函数体
举例
举例
课时五:输出语句
两种输出语句
Console.Write("文本");
Console.WriteLine("文本");
向当前位置输出一段文本
向当前位置输出一段文本,然后换行
第二章
课时六:什么是数据和数据类型
数据:有用的信息
数据类型:对数据的分类
C#中的数据类型
char 字符类型,单个字符用成对的英文单引号
string 字符串类型,不限数量字符 用成对英文双引号
int 整数类型,直接书写
double 小数类型,直接书写,必须要有小数点
例子
课时七:认识变量
变量的概念:一块存储数据的内存空间,并且该内存区域的数据内容可以变化
在代码中使用变量
变量的声明
指定一块内存空间,用于存放数据
语法
变量的赋值
将数据存放到变量的内存空间
语法
读法示例
a=6; 将6赋值给变量a
变量必须先声明后赋值
声明和赋值的变量名要完全一样,类型也要匹配
课时八:变量命名
变量的定义语法:数据类型 变量名
变量命名的规范
硬性要求
变量名只能由数字,字母,下划线组成
变量名不得以数字开头(可包含数字)
名称不能与关键字相同(关键字为蓝色)
同一个函数中变量名不得相同(大小写也算不同)
C#语言大小写敏感
软性要求
变量名称要能够望文知意
变量的首字母小写
除第一个单词外,其他单词首字母大写
驼峰命名法
课时九:变量的使用技巧
合并声明
对多个同类型的变量声明,可以在一条声明语句中完成
例子
声明时的初始化
在声明一个变量的同时,对变量进行初始化
初始化的概念:给某个变量第一次赋值的过程
例子
变量的三要素
数据类型,变量名,变量值
三者缺一不可
课时十:数据运算1
数字运算,运算规则
只能数字与数字之间进行计算
支持运算
加(+)减(-)乘(*)除(/)求余(%)
注意
返回类型
和运算类型相同
double类型和int类型运算-->double类型
课时十一:数据运算2
和字符串进行运算的规则
支持运算
拼接(+)
可以和任意类型进行运算
返回类型
字符串
课时十二:数据运算案例分析
变量值的复制
变量的自增和自减
多个数据的运算
变量值交换
借用变量三临时存放数据
例子
例子
例子
课时十三:输入语句
在控制台中获取用户输入的内容
书写格式
Console.ReadLine();
string类型,返回也为string类型
详细讲解
课时十四:类型装换
将任意类型转换为string
转换代码:待转换的数据.ToString(); 返回类型:string
例子
int类型与double类型的互转
取值范围小的数字类型-->取值范围大的数字类型
不需要额外代码,计算机自己完成
取值范围大的数字类型-->取值范围小的数字类型
需要额外的代码,有可能造成数据的丢失
隐式转换
显式转换
string转换为数字
string-->int
int.Parse(待转换字符串);返回类型为int
string-->double
double.Parse(待转换字符串);返回类型为double
关于char的转换
double的取值范围大于int的取值范围
拓展资料
课时十五:应用:圆形面积周长计算器
课时十六:转义符
常见的转义符
\"(双引号)
\'(单引号)
\n(换行符)
\t(制表符)
就是让代码间间距整齐的一种转义符
\\(斜杠\)
课时十七:数字类型
整数类型
实数类型
除了decimal其余占位越大取值范围越大,因为计算机对小数的运算不精确,而decimal类型可以精确运算
浮点数
float
单精度,有效位数为7,超出部分四舍五入
double
双精度,有效位数为15,超出部分四舍五入
注意
数字类型的使用原则
对于计算精度要求高的实数用decimal
对于内存使用要求苛刻的软件,在保证取值范围的情况下,用小占位
若没有上述要求,整数用int,实数用double
理解记忆名称,占位,取值范围
课时十八:代码注释
注释内容没有任何实质功能,不参与编译,只存在于源代码之中
单行注释
//注释内容
多行注释
/*注释内容*/
文档注释(后面才会了解到)
课时十九:软件中的错误及调试
编译错误
发现错误:查看开发工具VS的错误列表
解决错误:根据错误提示,做出相应的修改
错误特点:易发现,易修改
运行错误
发现错误:在调试模式下运行,并运行到报错的语句
解决错误:根据错误提示,做出相应修改
错误特点:难发现,难修改
逻辑错误
发现错误:仔细核对运行结果,看与预期是否一致
解决错误:使用VS断点调试,检查每一步的执行结果
错误特点:极难发现,极难修改
导致源代码无法通过编译
在运行中报错
运行结果和预期不符
关于char类型的运算
代码主体
第三章
课时二十:认识运算符
运算符:又叫做操作符,是一个用于运算的符号,它作用于一个或多个操作数
操作数:参与运算的数据
运算符的分类
按操作数的数量
一元(目)运算符
二元(目)运算符
三元(目)运算符
例子
例子
按运算符的功能
算术运算符
用于数学运算
逻辑运算符
用于判断真假
位运算符
用于二进制运算
其他
课时二十一:常见的运算符:小括号
书写方式:()
功能作用
类型转换
改变局部运算顺序
函数调用
例子
例子
例子
课时二十二:常见的运算符:算术运算符
算术运算符:+,-,*,/,%,++,--
加加运算符
书写方式
变量名++
运算方式
第一步:计算返回结果,与变量相同
第二步:将变量的值自增1
++变量名
运算方式
第一步:计算返回结果,为变量值+1
第二步:将变量的值自增1
减减运算符
书写方式
变量名--
运算方式
第一步:计算返回结果,与变量相同
第二步:将变量的值自减1
--变量名
运算方式
第一步:计算返回结果,为变量值-1
第二步:将变量的值自减1
其中++,--为一元运算符
算术运算即数学运算
课时二十三:赋值运算符
赋值运算符
=
x=运算代码;
+=
x+=运算代码
等效于
x=x+(运算代码);
-=
x-=运算代码
等效于
x=x-(运算代码);
*=
x*=运算代码
等效于
x=x*(运算代码);
/=
x/=运算代码
等效于
x=x/(运算代码);
%=
x%=运算代码
等效于
x=x%(运算代码);
推论:以上几个赋值符号(除开=),不能用于变量的初始化
返回结果:与变量值相同
课时二十四:逻辑运算符
概念:用于判断条件是否成立的运算符
用真与假来表示判断结果
C#中常见的逻辑运算符
==,!=,>,>=,<,<=,&&(并且),||(或者),!(非)
除了!(非)为一元运算符,其他全为二元运算符
返回类型:bool
bool(布尔类型)
类型意义:用于表示真和假两种状态的类型
取值范围:ture和false
&&
表示两个bool类型进行运算,真真为真,其他为假
||
表示两个bool类型进行运算,假假为假,其他为真
!
一元运算符,对一个bool类型的数据求反,数据为真运算结果为假,数据为假运算结果为真
课时二十五:三元(目)运算符
书写方式:操作数1?操作数2:操作数3
返回结果
如果操作数1判定结果为真,则将操作数2作为返回结果
如果操作数1判定结果为假,则将操作数3作为返回结果
其中操作数1必须为bool类型,操作数2,3为任意相同类型
例子
课时二十六:位运算符
用于对数字进行二进制运算
&(与)
都为1,取1,否则取0
|(或)
都为0,取0,否则取1
^()异或
相同为0,不同为1
<<(左移)
对一个二进制数字向左移动指定位数
>>(右移)
对一个二进制数字向右移动指定位数
~(取补)
一元运算符,将数字二进制位上的0变为1,1变为0
课时二十七:表达式
概念:一条有意义的语句,并且该语句至少包含一个操作数和一个操作符
返回类型
每个表达式都可以与其他表达式进行运算,只要符合要求
每个表达式都有一个返回类型
例子
例子
课时二十八:运算符优先级
优先级高的运算符,会优先执行,优先级相同的运算符,会从左到右以次执行
多个运算符的常见场景
赋值运算
数学运算(按照数学里运算规则)
类型转换与函数调用
类型转换指的是显式转换
逻辑运算
将&&和||两边的表达式看做一个整体
三目运算
将操作数1.2.3分别看做整体,再进行运算
其他运算
使用小括号或分开书写来控制运算顺序
永远最后执行
先进行函数调用再进行类型转换
课时二十九:健康计算器
运算顺序从先到后依次为:++,--,*,/,%,+,-
代码主体
第四章
课时三十:流程图
流程图中只能出现一个开始和结束
课时三十一:if判断
代码格式
代码
课时三十二:变量的作用域
可以简单的理解为,某个变量在定义时所在的大括号,在大括号内,该变量有效,大括号外无效
在某个位置定义变量的时候,变量名不得与作用域覆盖该位置的变量名相同。
课时三十三:收益计算器
课时三十四:switch选择
代码格式
支持类型:string char bool 枚举 整数
代码
课时三十五:while循环
代码格式
代码
课时三十六:do while循环
代码格式
代码
课时三十七:for循环
代码格式
代码
课时三十八:九九乘法表
课时三十九:break和continue
break
switch
立即结束switch选择
循环
立即结束循环
continue
循环
立即结束当前循环,进入下一次循环
课时四十:查找问题
简单查找
概念解释
具体场景1
具体场景2
概念
场景1
场景2
代码主体
代码主体
第五章
课时四十一:数组
能存放任意多个同类型的数据
数组的索引(下标)
是一个int类型的数字
从0开始,依次为数组中每一个数组项编号
每一个数据叫做数组项
数组的代码书写
数组的声明与赋值
声明
数据类型[ ]变量名
赋值
变量名=new 数据类型[长度]
声明和赋值合并书写
数据类型[ ]变量名=new 数据类型[长度]
这其中的数据类型必须相同
数组项类型的默认值
数组项的读取与修改
读取
变量名[索引]
修改
变量名[索引]=值;
读取数组的长度
变量名.Length
返回类型为int
数组初始化器(在创建数组时为数组每一项赋值)
示例
默认值
返回类型要相同
练习例子
课时四十二:数组的定长性
一个数组在创建后,它的长度固定不变
由于这个性质,数组适用于数据量固定的场景
课时四十三:数组的遍历
概念
指从数组的第一项开始,依次取完数组的所有项
要实现数组的遍历,可以使用循环,循环变量从0开始,依次取到最大下标(数组的长度-1)在循环体中,使用循环变量作为下标,可以取出每一项的值
例子
课时四十四:交换排序
数组数字排序
简化问题:如何把最小的数字,放置到数组索引为0的位置
实现方法
课时四十五:数组分析器
课时四十六:集合
C#支持的集合类型:List,Queue,Stack,LinkedList,HashSet
最常见的集合:List
创建
定义:List<数据类型>变量名;
赋值:变量名=new List<数据类型>();
初始化器:变量名=new List<数据类型>{元素1,...元素n};
集合的初始化器没有简化写法
操作
添加元素
变量名.Add(要添加的数据);
插入元素
变量名.Insert(索引,要插入的数据);
删除元素
删除指定索引:变量名.RemoveAt(索引);
删除第一个相同匹配项:变量名.Remove(数据);
修改元素
变量名.[索引]=值;
获取元素数量
变量名.Count
课时四十七:foreach循环
代码格式
代码格式
只能用于遍历,而且是只读循环,不能更改数据,优点是遍历速度快,效率高
课时四十八:集合管理器
代码主体
代码主体
第七章
课时五十六:认识函数
定义:具有独立功能,并能通过名称重复使用的代码
函数的声明
在调用前必须先声明
函数的声明位置必须在类中
函数声明的语法
代码格式
函数的调用
通过函数名称去执行函数体
课时五十七:作用域和标识符
作用域
1.不同的函数之间,变量相互独立,互不干扰
2.每一次对函数的调用,都是独立运行
标识符
1.标识符,必须由数字,字母,下划线组成,并且不能以数字开头
2.不同的标识符有自己特殊要求
例子
课时五十八:声明带参数的函数
参数:要完成一件事,需要知道的额外条件
声明带参数的函数
参数列表 书写方法
数据类型 参数名,数据类型 参数名,.......
参数在函数体中的应用
在函数体中,可以将参数当做已经声明的变量来使用
参数的作用域
仅在函数体中有效
代码格式
课时五十九:调用带参数的函数
函数声明时用的参数叫做形参
数据类型 形参名
函数调用时使用的参数叫做实参
值或变量或表达式
不标注类型
实参的数量和类型必须和形参完全对应
当调用带参数的函数时,会将实参的数据传递给形参
实参和形参相互独立
课时六十:声明带返回值的函数
语法
总结
1.如果一个函数完成后需要产生一个结果,该函数就有返回值
2.在声明一个带返回值的函数时,必须指明返回值的类型
3.函数仅能有一个返回类型
4.如果一个函数不需要返回,那么它的返回类型为void
5.使用return关键字来返回结果
6.返回的结果必须和声明的返回类型匹配
7.代码运行到return语句时,会立即结束函数,然后返回return后面的结果
代码格式
课时六十一:调用带返回值的函数
函数的调用语法
函数名(实参列表)
函数调用时一个表达式
返回类型与函数声明的返回类型一致
课时六十二:函数签名
函数签名
函数签名:是一个函数的函数名,参数列表,返回类型的名称
函数名
代表函数的功能
参数列表
函数为完成它的功能,需要的额外信息
返回类型
函数完成功能后,产生的结果的类型。如果不需要产生结果,则返回类型为void
两个视角分析
函数调用者的视角
对于函数调用者,仅需要知道函数签名即可。
函数实现者的视角
对于函数调用者,仅需要知道函数签名即可。(只用考虑如何去实现函数的功能)
如何书写正确的函数签名
仔细阅读需求,理解需求的含义
为函数取一个贴合需求含义的函数名
仔细考虑,该函数是否需要参数,需要哪些参数
仔细考虑,该函数是否需要返回类型
课时六十三:文档注释
通常写到函数体外,用于描写函数体外的代码
课时六十四:函数重载
函数重载(overload)
作用:可以将意义相近的函数,命名为相同的名称,从而降低了调用的难度
指多个函数可以使用同一个函数名,只要他们的参数列表不同
调用重载函数
调用重载的函数,和普通函数完全一样
计算机会根据传递的实参类型,匹配最合适的重载
参数的类型或数量不同
课时六十五:函数的相互调用
在任何一个函数体中,都可以调用函数
只要代码运行到调用函数的语句,就会去执行调用的函数体
充分利用已有的函数,降低开发难度
课时六十六:递归
递归:是指一个函数,直接或间接的调用自身
递归必须有终止条件,否则,将出现无限递归
无限递归会耗尽内存,导致程序崩溃,必须避免
例子
自由主题
浙公网安备 33010602011771号