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);
3 类型间的转换
数据转换:
计算机运算的时候,必须使用同一类型数据进行运算。
如果不是同一类型数据,则需要进行类型转换。
类型转换的分类:
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(字符串);
模块四 变量与常量
- 常量
Const +数据类型 +常量名 例 const PI ;注:变量名一般为全部大写;
B 变量
命名规则: a 变量名可以由 字母,数字 下划线, @,汉字 组成
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的值加上1。3.把加完的结果再赋给a。
5++ 为什么不正确?
const int b = 5;
b++; 为什么不正确?
++a与a++的区别?
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+10。2.把相加的结果赋给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;
c# 结课小结的更多相关文章
- linux学习第十九天 (Linux就该这么学) 结课了
今天最后一天课程了,结课了,还有点舍不得那,在些也祝 李老师 事业蒸蒸日上,超来超好, 今天内容是部署了 LNMP 部署动态网站环境(linux +nginx+mysql+php) 安装文件挺别多, ...
- 南方IT学校期末PCB结课项目考试(实操)说明书
南方IT学校期末结课项目考试(实操)说明书(一) 课程:<印制电路板设计技术>(二) 项目:笔记本电脑电源适配器的印制电路板设计(三) 背景说明:如今笔记本已经进入千家万户,作为给电脑充电 ...
- OO结课了,狂喜
OO结课了,狂喜 哈哈哈哈哈 哈哈哈 哈哈 哈 第十三次作业 UML类图 简要分析: 本次作业是对UML类图进行解析,给到的接口里面已经有了很多类了,但是自带的类肯定是没有反应这些类的结构的.所以就自 ...
- OO Unit4总结 & 结课总结
OO Unit4总结 & 结课总结 OO课Unit4 UML解析应用技术回顾 BUAA.1823.邓新宇 2020/6/19 总结本单元三次作业的架构设计 本单元的架构设计主要是两方面. 一方 ...
- 这是C语言结课前(期末考试之前)写给牛晓霞的一封信!
致尊敬的牛晓霞老师: 这是黄领衫的感想,也是想告诉你的话! 在老师说要给班里写得好的人发黄领衫的时候,我当时的想法是我很有可能拿到这份奖品的,怎么说呢,算是一种自信吧,或是对自己的态度的认可.虽然我能 ...
- oo作业第四单元总结暨结课总结
目录 一.第四单元作业架构设计 1.第一次UML作业架构设计 2.第二次UML作业架构设计 二.架构设计和OO方法理解演进 三.测试理解与实践的演进 四.课程收获总结 五.三个具体改进建议 一.第四单 ...
- 2017.8.12 dp课小结
这节课难度超级大啊,基本上都是省选+NOI的题. 例1: 1801: [Ahoi2009]chess 中国象棋 Time Limit: 10 Sec Memory Limit: 64 MB Subm ...
- 大一C语言结课设计之《学生信息管理系统》
第一次写这么长的程序,代码仅供參考,有问题请留言. /* ** 学生信息管理系统 ** IDE:Dev-Cpp 4.9.9.2 ** 2014-6-15 */ #include <stdio.h ...
- C#结课报告
Revision History Date Issue Description Author 18/May/2015 v1.0 Initial creation 邓彪翼 模拟图书馆的查询系统 1.ob ...
随机推荐
- UI:页面传值、单例模式传值、属性传值、NSUserDefaults 数据持久化
<单页面传值> 页面传值,从前向后传值,使用属性,在后一个页面定义属性,在前一个页面,用点语法,获得值,在适当的时候传值 页面传值,从后向前面传值,使用协议和代理,在后一个页面指定协议,定 ...
- css去掉a标签点击后的虚线框(转自网络)
outline是css3的一个属性,用的很少. 声明,这是个不能兼容的css属性,在ie6.ie7.遨游浏览器都不兼容. outline控制的到底是什么呢? 当聚焦a标签的时候,在a标签的区域周围会有 ...
- nodejs以及npm的安装
参考资料:http://xiaoyaojones.blog.163.com/blog/static/28370125201351501113581/ 上面的仁兄说的比较清楚,基本解决了安装中遇到的问题 ...
- TT付款方式、前TT和后TT、LC信用证+TT付款方式
TT付款方式是以外汇现金方式结算,由您的客户将款项汇至贵公司指定的外汇银行账号内,可以要求货到后一定期限内汇款. .T/T属于商业信用,也就是说付款的最终决定权在于客户.T/T分预付,即期和远期.现在 ...
- Slony-I的删除:
接前篇:http://www.cnblogs.com/gaojian/p/3196244.html 简单的Slony-I设置实例 如何删除slony相关的内容呢. 我再另外找一台机器,安装slony, ...
- JDBC连接各种数据库的方法(经典)
1)连接Oracle 8/8i/9i/10g/11g(thin模式) Class.forName("oracle.JDBC.driver.OracleDriver").newIns ...
- Swift学习笔记十
枚举 一个枚举为一组相关联的值定义一个通用类型,并且让你可以在代码中类型安全地操作这些值. C中的枚举将关联的名字指派给一系列整型值.Swift中的枚举类型更为活泼,并不需要为每个成员指定值,如果指定 ...
- SQL 32位还原位64位出现3154错误
1:首先检查新建数据库的路径是否正确. 2:勾选覆盖原有数据库. 3:新建查询,选择master.然后新建查询中进行如下直接对bak文件的操作. RESTORE DATABASE TestFROM D ...
- hdu4336 Card Collector 概率dp(或容斥原理?)
题意: 买东西集齐全套卡片赢大奖.每个包装袋里面有一张卡片或者没有. 已知每种卡片出现的概率 p[i],以及所有的卡片种类的数量 n(1<=n<=20). 问集齐卡片需要买东西的数量的期望 ...
- UTF-8 BOM(EF BB BF)
原标题:link标签和script标签跑到body下面,网页顶部有空白,出现“锘匡豢”乱码,UTF-8 BOM,EF BB BF 来自:http://tunps.com/link-and-script ...