c#很详细学习汇报很适合初学者和深度学习的人案例讲解都有Word文档格式.docx
《c#很详细学习汇报很适合初学者和深度学习的人案例讲解都有Word文档格式.docx》由会员分享,可在线阅读,更多相关《c#很详细学习汇报很适合初学者和深度学习的人案例讲解都有Word文档格式.docx(40页珍藏版)》请在冰点文库上搜索。
//字符
stringmsg="
Hello!
//字符串
boolx=true,y=false;
//布林(逻辑)
stringstr="
a="
+a+"
b="
+b;
Console.Write(str);
移位运算<
<
的意义,代表左移,而>
>
则是右移的意思。
举例而言,x<
2代表将x视为位元串,并且向左移两位。
因此若x是一个值为2的整数(int),由于其二进位表达式为00000010。
所以当我们执行表达式x=x<
2后,x将会变成00001000,也就是十进制的8,请看下列范例。
intx=2;
//x=00000010=2
x=x<
<
2;
//x=00001000=8
表达式测验案例
intx=3,y=5;
x=y;
boolt=true,u=false;
boola=t&
&
u;
//a=trueandfalse=false
boolb=t||u;
//b=trueorfalse=true
boolc=!
u;
//c=!
false=true
intd=x&
y;
//d=00010100AND00000101=00000100=4
inte=x|y;
//e=00010100OR00000101=00010101=21
10.流程控制
11.简介
在结构化的程序语言中,流程控制是以判断(if,switch)与循环(for,while)为主的。
12.if语句实现平年闰年的判断
//intyear=2018;
Console.Write(“请输入年份”)
Stringmonth=console.ReadLine();
if(year%4=0&
year%100!
=0)||(year%400==0)
Console.WriteLine(year+“该年为闰年”);
elseConsole.WriteLine(year+“该年为平年”);
13.for语句
C#当中的循环语法,包含for,while,foreach等,foreach的语法则是新创造的,其使用上比for语法更方便。
for循环的语法如下所示,其中的EXP1用来设定索引变量的初值,EXP2用来判断是否应跳出循环,EXP3则是累加条件。
for(EXP1;
EXP2;
EXP3)
BLOCK;
举例计算从1加到100的结果,就可以利用下列程序
intsum=0;
for(inti=1;
i<
=100;
i++)
sum+=i;
14.While语句
while循环的语法比for循环更简单,其语法如下范例所示,其中的EXP是一个逻辑判断式,用来判断是否应该离开循环。
在还没离开之前,会不断的重复执行BLOCK区块。
while(EXP)
BLOCK
举例用while实现计算从1加到100的结果,就可以利用下列程序
intsum=0;
inti=1;
while(i<
=100)
sum=sum+i;
i++;
}
7.31学习汇报
15.阅读了C#程序设计学习资料,总结为以下几点
16.阵列
17.简介:
阵列是传统程序设计上用来存储很多个元素的资料结构。
有了阵列,我们就可以将无数的资料放入程序当中以供存取、排序或搜寻。
虽然在现代化的语言当中都会有其他更方便的容器存在,象是字典,但这些容器也通常是利用阵列所实做出来的。
18.一维阵列
∙C#当中的阵列式用中括号的方式宣告的。
举例用一个阵列存储一年当中每个月的天数,用下列程序表示。
int[]days={31,28,31,30,31,30,31,31,30,31,30,31};
∙我们可以通过循环的方式,逐一存储阵列的内容。
例如存储一年中所有月份的天数总和。
intcount=0;
for(inti=0;
12;
count+=days[i];
∙也可以用foreach语句计算天数的总和,用d变量取出每个月的天数,然后加入count中
foreach(intdindays)
count+=d;
1.二维阵列
以下我们用「矩阵加法」作为范例,以说明C#二维阵列的用法。
写出矩阵的加法int[,]c=matrixAdd(a,b)
staticvoidMain(string[]args)
int[]a={1,2,3,4,5};
int[]b={3,3,3,3,3};
int[]c=newint[5];
for(inti=0;
i<
a.Length;
c[i]=a[i]+b[i];
int[]d=newint[5];
arrayAdd2(a,b,d);
int[]e=arrayAdd(a,b);
printArray(a);
printArray(b);
printArray(c);
printArray(d);
printArray(e);
staticvoidprintArray(int[]x)
x.Length;
Console.Write(x[i]+"
"
Console.WriteLine();
staticvoidarrayAdd2(int[]x,int[]y,int[]z)
z[i]=x[i]+y[i];
staticint[]arrayAdd(int[]x,int[]y)
int[]z=newint[x.Length];
returnz;
2.函数
3.简介
C#分为静态函数与成员函数两类,静态函数附属于类别,呼叫时可以直接指定类别名称即可。
成员函数附属于物件,呼叫时必须透过物件变量进行呼叫。
C#参数分为两类传值参数象是int,double,char,...等,传址参数象是StringBuilder,阵列等。
4.C#的静态函数
传值参数范例,其中的square就是静态函数,其功能是将传入的数值进行平方动作后传回。
classFunc1
publicstaticvoidMain(string[]args)
intx=square(5);
x="
+x);
publicstaticintsquare(intn)
returnn*n;
5.函数的参数
6.阵列也可以用来作为函数的参数,由于阵列的传递采用传址的方式,因此在函数中对阵列的修改将会是永久性的修改,离开函数后并不会恢复成原先的数值。
以下范例中的add函数用来将两个二维阵列(x,y)相加,然后将结果放入z当中,print函数则是将传入的阵列x印出来。
必须注意的是,对于二维阵列而言,要取得阵列的第一维元素个数(列数),可GetLength(0),要取得阵列的第二维元素个数(行数),必须使用GetLength
(1)。
举例
sum(10);
sum(20);
sum(30);
staticvoidsum(intn)
ints=0;
for(inti=1;
=n;
s=s+i;
s="
+s);
8.1学习汇报
7.阅读了C#程序设计学习资料,总结为以下几点
8.物件
9.简介:
C#将资料与程序被合并成一个结构,这个结构就称为物件。
一个物件可以包含资料部分(资料成员)与函数部分(函数成员),函数成员可以对资料成员进行操作,以下是一个C#的物件范例,该范例中定义了一个人员(Person1)的结构,该结构包含两个资料成员(name,weight)与一个成员函数(checkWeight),该函数会检查人员结构的体重(weight)看看是重还是轻。
另外,还包含了一个建构函数Person1(),这个建构函数可以让使用者在建立物件时顺便将参数传入,这是物件导向的一种常见手法。
10.举例测试体重
classObject1{
publicstaticvoidMain(String[]args){
Person1p1,p2;
p1=newPerson1("
大雄"
50);
p2=newPerson1("
胖虎"
80);
p1.checkWeight();
p2.checkWeight();
p2.weight=68;
classPerson1{
publicstringname;
publicintweight;
publicPerson1(stringpName,intpWeight){
name=pName;
weight=pWeight;
publicvoidcheckWeight()
Console.Write(name+"
体重"
+weight+"
公斤,"
if(weight<
70)
很苗条!
else
很稳重!
11.封装
12.简介:
在传统的结构化程序设计(象是C,Fortran,Pascal)当中,我们用函数来处理资料,但是函数与资料是完全区隔开来的两个世界。
然而,在物件导向当中,函数与资料被合为一体,形成一种称为物件的结构,我们称这种将函数与资料放在一起的特性为「封装」。
13.范例一:
封装--将函数与资料装入物件当中
classRectangle
doublewidth,height;
doublearea()
returnwidth*height;
Rectangler=newRectangle();
r.width=5.0;
r.height=8.0;
r.area()="
+r.area());
执行结果
r.area()=40
修改进化版,加上建构函数也叫构造函数
publicRectangle(){}
publicRectangle(doublew,doubleh)
width=w;
height=h;
publicdoublearea()
Rectangler=newRectangle(5.0,8.0);
Rectangler2=newRectangle();
r2.width=7.0;
r2.height=4.0;
r2.area()="
+r2.area());
8.2学习汇报
14.阅读了C#程序设计学习资料,总结为以下几点
15.向量物件
16.简介:
案例如下
classVector
double[]a;
publicVector(double[]array)
a=newdouble[array.GetLength(0)];
a.GetLength(0);
a[i]=array[i];
publicVectoradd(Vectorv2)
Vectorrv=newVector(v2.a);
rv.a.GetLength(0);
rv.a[i]=this.a[i]+v2.a[i];
returnrv;
publicvoidprint()
Console.Write(a[i]+"
classTest
Vectorv1=newVector(newdouble[]{1.0,2.0,3.0});
Vectorv2=newVector(newdouble[]{4.0,5.0,6.0});
Vectorv3=v1.add(v2);
v1.print();
v2.print();
v3.print();
17.继承
18.范例一:
矩形、圆形继承形状(Shape)
classShape
publicdoublethick;
publicvirtualdoublearea(){return0.0;
}
publicdoublevolume()
returnarea()*thick;
classRectangle:
Shape
thick=2.0;
publicoverridedoublearea()
classCircle:
doubler;
publicCircle(doubler)
this.r=r;
thick=3.0;
return3.1416*r*r;
Shapes=newShape();
s.area()="
+s.area());
r.volume()="
+r.volume());
Circlec=newCircle
(2);
c.area()="
+c.area());
c.volume()="
+c.volume());
c.thick=5;
请定义「人、学生与老师」等三个类别,其中的人有「姓名、性别、年龄」三个栏位,学生另外有「学号、年级」等两个栏位,老师另外有「职等」的栏位,所有物件都有print()函数,可以将该物件的所有栏位印出。
请建立一个具有3个学生与两个老师的阵列,利用多型机制,呼叫print函数以便印出这5个人的基本资料,如下所示。
学生--姓名:
王小明,性别:
男,年龄:
20,学号:
R773122456,年级:
一年级
李小华,性别:
女,年龄:
19,学号:
R773122432,年级:
教师--姓名:
陈福气,性别:
40,职等:
教授
黄大虎,性别:
22,学号:
R773122721,年级:
四年级
李美女,性别:
35,职等:
助理教授
解答:
usingSystem.Collections.Generic;
usingSystem.Text;
namespacePerson
/*
*请定义「人、学生与老师」等三个类别,其中的人有「姓名、性别、年龄」三个栏位,
*学生另外有「学号、年级」等两个栏位,老师另外有「职等」的栏位,所有物件都有
*print()函数,可以将该物件的所有栏位印出。
*
*请建立一个具有3个学生与2个老师的阵列,利用多型机制,呼叫print函数以便
*印出这5个人的基本资料,如下所示。
*学生--姓名:
*教师--姓名:
*/
classProgram
Students1=newStudent("
王小明"
"
男"
20,"
R773122456"
1);
Students2=newStudent("
李小华"
女"
19,"
R773122432"
Students3=newStudent("
黄大虎"
22,"
R773122721"
4);
Persont1=newPerson("
陈福气"
40);
Persont2=newPerson("
李美女"
35);
Person[]list={s1,s2,t1,s3,t2};
foreach(Personpinlist)
p.print();
}}}
classPerson
Stringname;
Stringsex;
intage;
publicPerson(Stringname,Stringsex,intage)
this.name=name;
this.sex=sex;
this.age=age;
publicvirtualPersonprint()
Console.Write("
姓名:
+name+"
性别:
+sex+"
年龄:
+age);
returnthis;
classStudent:
Person
Stringid;
intdegree;
publicStudent(Stringname,Stringsex,intage,Stringid,intdegre