学习情境2.docx

上传人:b****3 文档编号:26701327 上传时间:2023-06-21 格式:DOCX 页数:97 大小:272.41KB
下载 相关 举报
学习情境2.docx_第1页
第1页 / 共97页
学习情境2.docx_第2页
第2页 / 共97页
学习情境2.docx_第3页
第3页 / 共97页
学习情境2.docx_第4页
第4页 / 共97页
学习情境2.docx_第5页
第5页 / 共97页
点击查看更多>>
下载资源
资源描述

学习情境2.docx

《学习情境2.docx》由会员分享,可在线阅读,更多相关《学习情境2.docx(97页珍藏版)》请在冰豆网上搜索。

学习情境2.docx

学习情境2

学习情境二:

“C#基础:

结构化程序设计

——实现学生成绩从小到大的排序即”冒泡排序””

学习领域

C#程序设计

总课时

48

学习情境

C#基础:

结构化程序设计

参考课时

15

教学安排:

第2学期

学习任务:

♦C#程序结构

♦控制台的输入/输出操作

♦C#中数据类型

♦常量和变量、变量的赋值

♦C#常用的运算符和表达式

♦C#程序的基本结构、标识符的相关概念

♦C#的主要数据类型以及类型标识符

♦使用C#中的运算符,选择结构和循环结构

♦定义和使用数组,了解结构和枚举

♦熟悉C#中的预处理指令

♦熟悉C#中的字符串处理

♦实现学生成绩从小到大的排序“冒泡排序”应用程序。

学习目标:

♦掌握控制台的输入/输出操作

♦熟悉C#的主要数据类型以及类型标识符

♦熟悉数据类型的转换

♦熟悉常量和变量、变量的赋值、常用的运算符

♦使用C#中的运算符,选择结构和循环结构

♦定义和使用数组,了解结构和枚举

难点:

♦结构化程序设计的应用。

♦C#的结构和枚举

♦熟悉数组的定义和使用

♦ 嵌套循环的应用

主要内容及标准:

单项能力

评价内容

评价标准

♦熟悉掌握控制台的输入/输出操作

♦使用C#中的运算符,选择结构和循环结构

♦判断语句、循环语句的运用

1.熟悉掌握控制台的输入/输出操作

2.使用C#中的运算符,选择结构和循环结构

3.判断语句、循环语句的运用

4、掌握“冒泡排序”程序设计方法的应用

1.建立结构化程序设计思想。

2.熟悉C#程序结构

3.常量和变量、变量的赋值、常用的运算

4.熟练定义和使用数组,了解结构和枚举

5.灵活运用判断语句、循环语句。

教学方法建议:

讲述法项目式教学法任务教学法实践操作法

考核与评价:

1.基本知识技能应用评价

2.任务完成情况评价

3.工作态度评价

4.工作态度评价

教学环境:

微机、白板、投影仪、多媒体教学系统、多媒体课件、网络教学资源

Win2000、IIS、Dreamweaver、VisualStudio2008、SQLServer

教师需要的能力与知识:

1、C#程序设计相关的基础知识

2、C#程序的基本结构、标识符的相关概念

3、C#程序的编译和执行

4、控制台的输入/输出操作

5、C#的主要数据类型以及类型标识符

6、数据类型的转换

7、常量和变量、变量的赋值

8、C#常用的运算符

9、使用C#中的运算符,选择结构和循环结构

10、定义和使用数组,了解结构和枚举

11、熟悉C#中的预处理指令

12、熟悉C#中的字符串处理

学生需要的能力与知识:

1、C#程序设计相关的基础知识

2、C#程序的基本结构、标识符的相关概念

3、C#程序的编译和执行

4、控制台的输入/输出操作

5、C#的主要数据类型以及类型标识符

6、数据类型的转换

7、常量和变量、变量的赋值

8、C#常用的运算符

9、使用C#中的运算符,选择结构和循环结构

10、定义和使用数组,了解结构和枚举

11、熟悉C#中的预处理指令

12、熟悉C#中的字符串处理

学习情境二“C#基础:

结构化程序设计

—实现学生成绩从小到大的排序即”冒泡排序””任务书

1.设计

通过学习C#程序设计相关的基础知识,理解常用的四个有关控制台输入、输出方法;熟悉C#的数据类型、运算符和表达式;熟悉三种控制结构:

顺序结构、选择结构和循环结构;熟悉数组的定义和使用;熟悉结构和枚举。

开发环境的配置:

提供开发所需环境,包括VisualStudio2008和.NETFramework

2.任务分配

分角色进行,按组完成该项目。

要求在项目中分为不同角色完成下列任务:

(1)完成总体设计任务

要求完成项目规划设计

(2)完成概要设计任务

要求完成项目目标、开发及运行环境的配置

(3)完成详细设计任务

要求完成集成环境的面板配置,新项目的创建,并测试功能。

“C#基础:

结构化程序设计”学习指导

在上一情境里读者接触到了第一个C#应用程序,虽只是简单地在控制台输出了一句问候语,但它却充分体现了VisualStudio2008的易用性及C#语言的特点。

理解了C#的用途之后,就可以学习如何使用它。

本章将介绍C#的基本语法知识,通过本章学习,读者将了解以下内容:

●理解C#中的数据类型。

●理解常量和变量的含义及用法。

●理解数据类型转换的含义。

●会运用常用的运算符和表达式。

1、C#中的数据类型

应用任何一种程序语言,需要充分了解它提供的数据类型,这样才能明白它的功能与限制,以便选择合适的数据类型来处理不同的数据。

例如在平时生活中,我们会用整数来表达东西的数量,而在工程、金融领域我们要用到很高精度小数。

但对计算机来说,数据的含义更要宽泛些,比如说一句话、一个字符等,对计算机来说都是数据。

计算机会用不同的方式来处理它遇到的不同类型的数据。

C#中数据类型主要分为两大类:

值类型和引用类型。

这里我们先讲解这两种类型,然后再讨论数据类型之间的转换。

1.1值类型

什么是值类型呢?

值类型的数据存储在内存的堆栈中,可以提供快速访问。

如果变量是值类型,这个变量就包含实际数据,在一个独立的内存区域保存自己的值,如果在代码中修改其值后,在内存中会保存修改后的值。

C#中大多数基本数据类型如:

整型、字符型、浮点型、布尔型等都属于值类型,结构、枚举也属于值类型。

1.整数类型

整数类型的数据值只能是整数,计算机语言所提供的数据类型有一定的范围。

 

类型标识符

描述

可表示的数值范围

sbyte

8位有符号整数

-128~+127

byte

8位无符号整数

0~255

short

16位有符号整数

-32768~+32767

ushort

16位无符号整数

0~65535

int

32位有符号整数

-2147483648~+2147483647

uint

32位无符号整数

0~232-1

long

64位有符号整数

-9223372036854775805~+9223372036854775807

ulong

64位无符号整数

0~264-1

2.浮点类型

浮点类型的数据包含两种:

单精度浮点型(float)和双精度浮点型(double),其区别在于取值范围和精度的不同。

float类型是32位宽,double类型是64位宽。

单精度:

取值范围在+1.5×10-45~3.4×1038之间,精度为7位数。

双精度:

取值范围为+5.0×-324~1.7×10308之间,精度为15~16位数。

3.小数类型

小数类型(decimal)占用16个字节(128位),主要为了满足需要高精度的财务和金融计算机领域。

小数类型数据的取值范围和精度如下:

取值范围在+1.0×10-28~7.9×1028之间,精度为29位数。

注意:

小数类型数据的后面必须跟m或者M后缀来表示它是decimal类型的,如3.14m、0.28m等,否则就会被解释成标准的浮点类型数据,导致数据类型不匹配。

例如:

138f代表float类型的数值138.0

518u代表uint类型的数值518

36897123ul代表ulong类型的数值36897123

22.1m代表decimal类型的数值22.1

12.68代表double类型的数值12.68

36代表int类型的数值36

刚开始学习,不可能一下子掌握这么多数值类型,先牢记以下几种:

int型:

凡是要表示带符号的整数时,先考虑使用int型;

uint型:

凡是需要不带符号的整数时,先考虑使用uint型;

double型:

凡是需要做科学计算,并且精度要求不是很高时,考虑使用double型。

4.字符类型

字符类型的类型标识符是char,采用Unicode字符集。

凡是在单引号中的一个字符,就是一个字符常数,如:

‘你’、‘A’、‘?

’、‘6’、‘2’

注意:

在表示一个字符常数时,单引号内的有效字符数量必须且只能是一个,并且不能是单引号或者反斜杠(\)。

为了表示单引号和反斜杠等特殊的字符常数,C#提供了转义符。

C#常用的转义符

转义符

字符名称

\’

单引号

\"

双引号

\\

反斜杠

\0

空字符(Null)

\a

发出一个警告

\b

倒退一个字符

\f

换页

\n

新的一行

\r

换行并移到同一行的最前面

\t

水平方向的Tab

\v

垂直方向的Tab

如Console.WriteLine(“Hello,”+”\’”+”打印出单引号“+”\‘“);

例:

usingSystem;

classStrDemo

{

staticvoidMain()

{

Console.WriteLine(“FirstLine\nSecondLine”);

Console.WriteLine(“A\tB\tC”);

Console.WriteLine(“D\tE\tF”);

}

}

5.布尔类型

布尔类型的类型标识符是bool。

布尔类型常数只有两种值:

true(代表“真”)和false(代表“假”)。

布尔类型数据主要应用在流程控制中。

例:

boolb=5>3;//b的值为true;

b=false;

1.2引用类型

引用类型指向存储在内存堆中的数据的指针或引用。

与纯粹的地址不同,引用总是指向一个对象,而且这个对象具有指定的类型,并且在堆上分配了地址。

字符串、数组、接口、类都属于引用类型。

C#支持两个引用类型:

object类和string类。

1.object类

object类是系统提供的基类型,是所有类型的基类,C#中所有的类型都直接或间接派生于对象类型。

对于任一个object变量,均可以赋以任何类型的值。

doubled=3.14;

objectobj1;

obj1=d;

obj1=‘k’;

对于object类型的变量,声明必须使用object关键字。

2.string类

一个字符串是被双引号包含的一系列字符。

string类是专门用于对字符串进行操作的。

如:

stringstr1="中国,";

stringstr2="你好!

";

stringstr3=str1+str2;//这相当于str3="中国,你好!

charc=str3[0];//取出str3的第一个字符,即“中”字。

C#支持两种形式的字符串常数。

(1)常规字符串常数

如:

“thisisatest”

“C#程序设计教程”

例:

usingSystem;

classStrDemo

{

staticvoidMain()

{

Console.WriteLine("First\0line\nSecond\0line");

Console.WriteLine("你好\a");

Console.WriteLine(“1\t2\t3");

Console.WriteLine(“*\t**\t***”);

}

}

例如:

usingSystem;

classStringDemo

{

publicstaticvoidMain()

{

stringstr1=“Astring”;

stringstr2="Anotherstring.";

Console.WriteLine(“{0}\n{1}”,str1,str2);

}

}

运行结果如下:

 

(2)逐字字符串常数

逐字字符串常数以@开头,后跟一对双引号,在双引号中放入字符。

如:

@“电子高专”

@“Thisisabook.”

逐字字符串常数同常规字符串常数的区别:

在逐字字符串常数的双引号中,每个字符都代表其最原始的意义,在逐字字符串常数中没有转义字符。

注意:

如果要包含双引号("),就必须在一行中使用两个双引号("")。

例:

stringstr1;//定义字符串类型

stringstr2="hello,world";//规则字符串常数:

hello,world

stringstr3=@"hello,world";//逐字字符串常数:

hello,world

stringstr4="hello\tworld";//helloworld

stringstr5=@"hello\tworld";//hello\tworld

stringstr6=“Hesaid\"Hello\"toyou";//Tomsaid"Hello"toyou

stringstr7=@“Hesaid""Hello""toyou";//Tomsaid"Hello"toyou

例如:

usingSystem;

classTest

{staticvoidMain()

{

Console.WriteLine(@"Thisisaverbatim

stringliteral

thatspansseverallines.");

Console.WriteLine(@"Hereissometabbedoutput:

1234

5678");

Console.WriteLine(@"Programmerssay,""IlikeC#""");

}

}

运行结果如下:

 

1.3数据类型转换

数据类型在一定条件下是可以相互转换的。

C#允许使用两种转换的方式:

隐式转换和显式转换。

1.隐式转换

隐式转换是系统默认的、不需要加以声明就可以进行的转换。

隐式数据转换的使用方法如下:

inti=518;//a为整型数据

longb=i;//b为长整型数据

floatf=i;//f为单精度浮点型数据

2.显式转换

显式转换又叫强制类型转换,显式转换要明确指定转换类型。

显式转换格式:

(类型标识符)表达式

意义为:

将表达式的值的类型转换为类型标识符的类型。

比如:

(char)65//把int类型的65转换成char类型

注意:

(1)显式转换可能会导致错误。

(2)对于将float,double,decimal转换为整数,将通过舍入得到最接近的整型值,如果这个整型值超出目标域,则出现转换异常。

比如:

(int)6.28m//转换的结果为6

(int)3e25f//将产生溢出错误

3、字符串与数值之间的转换

C#中不仅仅存在数值类型数据之间的互相转换,字符串和数值之间也是可以互相转换的,只是方法不同而已。

(1)数值型转换为字符串

数值型数据转换为字符串用ToString()方法即可实现。

如:

intnum1=10;

stringmynum=num1.ToString();

(2)字符串转化为数值型

字符串数据转换为数值型使用Parse()方法。

字符串转换为整型:

int.Parse(string);例如:

stringstr="13";

intnumber=int.Parse(str);

字符串转换为双精度浮点型:

double.Parse(string);例如:

stringstr="14";

doublenumber=double.Parse(str);

字符串转换为单精度浮点型:

float.Parse(string);例如:

stringstr="15";

floatnumber=float.Parse(str);

注意:

Parse()括号中的参数只能是字符串,不能是其他数据类型。

4、用Convert类实现数据类型转换

通过前面的学习我们知道.NetFramework提供了很多类库,其中Convert类就是专门进行类型转换的类,它能够实现各种基本数据类型之间的相互转换。

 

一面代码演示了Convert类转换数据类型的方法。

namespaceExample_ConvertTest2

{

classConvertEX

{

staticvoidMain(string[]args)

{

floatnum1=82.26f;//原始数值

intinteger,num2;//转换后的整型

stringstr,strdate;//转换后的字符串型

DateTimemydate=DateTime.Now;//把当前时间赋给日期型变量

//Convert类的方法进行转换

integer=Convert.ToInt32(num1);

str=Convert.ToString(num1);

strdate=Convert.ToString(mydate);

//num2=Convert.ToInt32(mydate);

//输出结果

Console.WriteLine("转换为整型数据的值{0}",integer);

Console.WriteLine("转换为字符串{0}",str);

Console.WriteLine("日期型数据转换为字符串值为{0}",strdate);

Console.ReadKey();

}

}

}

1.4装箱和拆箱

C#语言类型系统中有两个重要的概念,分别是装箱和拆箱。

通过装箱和拆箱,任何值类型都可以被当作object引用类型来看待。

本节将对装箱和拆箱进行详细讲解。

1.装箱

装箱是指将值类型换成引用类型的过程。

例如:

下面的两条语句就执行了装箱转换:

inti=518;

objectobj=i;

例:

在程序中执行装箱转换。

usingSystem;

classBoxingDemo

{

staticvoidMain()

{

Console.WriteLine("执行装箱转换:

");

intk=200;//声明一个int类型变量k,并初始化为200

objectobj=k;//声明一个object类型变量obj,其初始化值为i

k=300;//重新将i赋值为300

Console.WriteLine("obj={0}",obj);

Console.WriteLine("k={0}",k);

}

}

从程序运行结果可以看出,值类型变量的值复制到装箱得到的对象中,装箱后改变值类型变量的值,并不会影响装箱对象的值。

2.拆箱

和装箱相反,拆箱是指将引用类型转化为值类型的过程。

拆箱的执行过程大致可以分为一下两个阶段:

●检查对象的实例,看它是不是值类型的装箱值。

●把这个实例的值复制给值类型的变量。

例如:

objectobj=228;

intk=(int)obj;

例如:

在程序中使用拆箱转换。

usingSystem

classUnboxingDemo

{

staticvoidMain()

{

intk=228;//声明int类型变量

objectobj=k;//执行装箱操作

Console.WriteLine("装箱操作:

值为{0},装箱之后对象为{1}",k,obj);

intj=(int)obj;//拆箱转换

Console.WriteLine("拆箱操作:

拆箱对象为{0},值为{1}",obj,j);

}

}

该程序执行后,输出结果如下:

从程序运行结果可以看出,拆箱后得到的值类型数据的值与装箱对象相等。

注意:

在执行拆箱操作时,要符合类型一致的原则,否则会出现异常。

1.5字符串应用—String类

字符串是我们在程序中用的非常多的数据类型,是最常用的一种引用类型。

在前面的示例代码中几乎都用到了string这个数据类型。

这节主要学习String类的用法。

1.常用的字符串处理方法

.NETFramework提供了很多处理字符处的方法,下表列出了常用的一些方法,并对每个方法的作用加以说明。

boolEquals(stringstr)

与“==”作用相同,用于比较一个字符串和另一个字符串是否相等,相等返回true,不相等返回false

ToLower()

返回字符串的小写形式

ToUper()

返回字符串的大写形式

Trim()

去掉字符串两端的空格

SubString(intstartindex,intlength)

从字符串的指定位置startindex开始获取长度为length的子字符串

IntIndexOf(stringstr)

获取指定的字符串str在当前字符串中第一个匹配项的索引,有匹配项就返回索引,没有就返回-1

IntLastIndexOf(stringstr)

获取指定的字符串str在当前字符串中最后一个匹配项的索引,有匹配项就返回索引,没有就返回-1

String[]Split(charseparator)

用指定分隔符分割字符串,返回分割后的字符串组成的数组

StringJoin(stringSeparator,string[]str)

字符串数据str中的每个字符用指定的分隔符Separator连接,返回连接后的字符串

StringCompare(stringstrA,stringstrB)

比较两个字符串的大小,返回一个指数。

如果strA小于strB,返回值小于0;如果两个字符串相等,返回值等于0;如果strA大于strB,返回值小于0

Replace(stringoldvalue,stringnewvalue)

用newvalue值替换oldvalue

实例:

本程序实现下列功能:

输入Email邮箱,获取邮箱的用户名。

输入带空格的字符串,分割并连接。

输入写大英文字符转化为小写

staticvoidMain(string[]args)

{

stringstrname;//email的用户名

stringinputStr;//输入的字符串

string[]splitString;//分割后的字符串数组

stringjoinString;//连接后的字符串

stringstrEnglish;//输入的大写英文字符

stringemail;//email

Console.WriteLine("请输入您的邮箱");

email=Console.ReadLine().Trim();//接收输入

Console.WriteLine("您的邮箱是{0}",email);

//抽取邮箱用户名

intintindex=email.IndexOf("@");//获取@的索引

if(intindex>0)

{

strname=email.Subs

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 社交礼仪

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1