C# 实验指导书.docx
- 文档编号:6429816
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:29
- 大小:47.41KB
C# 实验指导书.docx
《C# 实验指导书.docx》由会员分享,可在线阅读,更多相关《C# 实验指导书.docx(29页珍藏版)》请在冰豆网上搜索。
C#实验指导书
实验一生成一个简单的.NET应用程序
●目标
完成本实验,将能够:
●使用C#编写、编译以及运行一个简单的应用程序
●使用MSIL反汇编程序来查看程序集
●实验预估时间:
20min
练习1用C#创建程序
在本练习中,将使用C#编写一个小的控制台应用程序的源代码,用来获取用户输入并将字符串输出到控制台。
本实验使用经典的HelloWorld应用程序,使你能够将注意力集中在托管执行环境的基本概念上。
为了帮助你将主要精力集中在本实验的语言方面,将使用记事本来来创建和编辑源文件。
在命令提示符窗口下,你就可以编译该应用程序并测试可执行程序的结果。
●编写源代码
1)打开记事本,使用C#创建一个名为MainApp的类。
2)定义程序的入口点。
程序入口点不获取任何参数,也不返回任何值。
3)创建方法来完成以下功能:
a.将以下文本输出控制台:
“TypeyourfirstnameandpressEnter:
”。
b.读取用户输入的结果并保存在适当的变量中。
c.将以下文本输出控制台:
“TypeyourlastnameandpressEnter:
”。
d.读取用户输入的结果并保存在适当的变量中。
e.输出文本“Hello,”并追加用户输入的lastname和firstname的内容。
注意采用适当的变量命名方法(骆驼命名法或Pascal命名法)
5)将文件命名为HelloLabCS.cs并保存到当前文件夹下。
●生成并测试程序
重点为了在命令提示符窗口使用MicrosoftVisualStudio.NET工具,必须有正确的环境设置。
VisualStudio.NET命令提示符窗口提供了这样一个环境。
要运行VisualStudio.NET命令提示符窗口,单击“开始”,“所有程序”,“MicrosoftVisualStudio.NET”,“VisualStudio.NET工具”和“VisualStudio.NET命令提示”。
1)在VisualStudio.NET在命令提示符窗口,键入命令将源文件HelloLabCS.cs生成可执行程序。
编译方法:
csc<源代码文件名>
2)运行生成的可执行程序。
C#程序运行结果如下:
TypeyourfirstnameandpressEnter:
stroustrup
TypeyourlastnameandpressEnter:
Bjarne
Hello,Bjarnestroustrup
_
练习2使用MSIL反汇编程序
在本练习中,将使用MSIL反汇编程序打开单个程序集并熟悉程序集清单。
在后面的实验中,将更详细地了解程序集。
●查看HelloWorld应用程序的元数据
1)打开VisualStudio.NET的命令提示符窗口。
2)在VisualStudio.NET命令提示符窗口,键入:
ildasm/source
3)打开HelloLabCS.cs并双击“清单”。
4)注意以下内容:
a.名为mscorlib的外部引用库。
b.名为HelloLabCS的程序集。
c.(HelloLabCS程序集和mscorlib的)版本信息。
5)关闭“清单”窗口。
双击“MainApp”,双击“Main”,查看MSIL和源代码。
实验二布尔类型的使用
在本练习中,将使用C#编写一个小的控制台应用程序的源代码,用来获取用户输入,并根据输入的字符串进行相应的操作。
●编写源代码
1)打开VS2005,新建一个语言为C#的控件台应用程序,项目名称为Exam2。
2)编写代码来完成以下功能:
a.将以下文本输出控制台:
“TypeyournameandpressEnter:
”。
b.读取用户输入的结果并保存在适当的变量中。
c.判断用户输入的是否为自己的名字,并把判断的结果保存在bool型变量isMySelf中。
d.检测isMySelf的值,如果为真则输出“Hi,Welcomcomeback!
”,否则输出“Nameisinvalid,pleaseinputagain!
”,转到a。
e.结束应用程序。
注意采用适当的变量命名方法(骆驼命名法或Pascal命名法)
●生成并测试程序
重点可以使用快捷键Ctrl+F5快速生成并运行应用程序。
3)运行生成的可执行程序。
C#程序运行结果如下:
假设自己的姓名为Jerry
TypeyournameandpressEnter:
Tom
Nameisinvalid,pleaseinputagaiin!
TypeyournameandpressEnter:
Jerry
Hi,Welcomcomeback!
_
实验三运算符与表达式的使用
在本练习中,将使用C#编写一个小的控制台应用程序的源代码,主要练习C#中的运算符和表达式的使用。
一、自增自减运算符的使用
1.启动VS2005,新建一个C#的控制台应用程序,项目名称为:
Exam4
2.在Main函数中输入以下代码:
inta=0;
intb=0;
Console.WriteLine(“++a={0}”,++a);
Console.WriteLine(“b++={0}”,b++);
3.编译并运行该程序,比较前增量运算符与后增量运算的不同之处。
二、复合赋值运算符的使用
在之前输入的代码后,添加代码,完成以下功能:
1.定义int型变量c,并赋初值为0
2.使用复合赋值运算符+=实现与c=c+10相同的功能
3.输出变量c的值
4.试着使用其它复合赋值运算符完成类似练习
三、赋值表达式的使用
在之前输入的代码后,添加代码,完成以下功能:
1.定义int型变量d,e,f
2.使用赋值表达式同时为d、e、f赋初值123。
(即按照var1=var2=var3=123的形式)
3.输出表变量d、e、f的值
四、运算符的优先级的确定
在之前输入的代码后,添加代码,完成以下功能:
1.定义double型变量g.
2.使用括号来调整表达式1+a++*3.0/b--–5,使其语义更为明确,并把结果赋给变量g(即按照运算符的优先级为表达式加上括号,如1+2*3调整后为1+(2*3))
3.输出变量g的值
实验四verbatim字符串的使用
在本练习中,将使用C#编写一个小的控制台应用程序的源代码,用来输出verbatim型字符串。
●编写源代码
3)打开VS2005,新建一个语言为C#的控件台应用程序,项目名称为Exam3。
4)编写代码来完成以下功能:
分别使用常规字符串和verbatim字符串在控制台输出以下内容:
classProgram
{
staticvoidMain()
{
System.WriteLine(“Helloworld!
”);
}
}
_
实验五if语句的使用
在本练习中,将使用C#编写一个小的控制台应用程序的源代码,主要练习C#中的if语句的使用。
五、简单if语句的使用
4.启动VS2005,新建一个C#的控制台应用程序,项目名称为:
Exam4
5.在Main函数中输入代码,完成以下功能:
a.定义float类型变量score
b.在屏幕中输出文本”请输入你的成绩:
“,提示用户输入自己的成绩.
c.从键盘读入用户输入的成绩,并把输入的成绩保存在变量score中,注意进行适当的类型转换(即把数字字符串转换在float类型)
d.使用if语句对用户输入的成绩score进行判断,如果成绩大于等于60分,则输出”及格”,否则输出”不及格”
6.编译并运行该程序。
六、求两数中最大数
1.启动VS2005,新建一个C#的控制台应用程序,项目名称为:
Exam5
2.在Main函数中输入代码,完成以下功能:
a.定义int型变量a,b,max
b.要求用户从键盘输入两个整数,分别存放在变量a和b中.
c.比较变量a和b,把其中较大数保存在变量max中.
d.输出变量max的值.
3.编译并运行该程序。
七、判断输入年份是否为闰年
1.启动VS2005,新建一个C#的控制台应用程序,项目名称为:
Exam6
2.在Main函数中输入代码,完成以下功能:
a.定义ushort类型变量year,用来保存用户输入的年份.
b.定义bool类型变量isLeapYear,用来保存判断输入年份是否为闰年的逻辑结果.
c.在屏幕中输出文本”请输入年份:
“,提示用户输入年份.
d.从键盘读入用户输入的年份,并把输入的年份保存在变量year中,注意进行适当的类型转换(即把数字字符串转换在ushort类型)
e.使用if语句对用户输入的年份year进行判断,如果输入的年份是闰年,则把变量isLeapYear的值置为true,否则置为false
f.输出变量isLeapYear的值.
3.编译并运行该程序。
实验六switch语句的使用
在本练习中,将使用C#编写一个控制台应用程序,用来实现对输入的成绩进行评定。
主要考察对switch语句的使用。
●编写源代码
5)打开VS2005,新建一个语言为C#的控件台应用程序,项目名称为SwitchExam。
6)在Main函数中编写代码来完成以下功能:
a.将以下文本输出到控制台:
“请输入分数:
”。
b.读取用户输入的结果并保存在字符串变量scoreText中。
c.把输入的数字字符串成绩scoreText转换成float类型,并保存在float型的score变量中,转换的方法为:
floatscore=float.Parse(scoreText);
d.定义byte型变量level来保存成绩等级,并使用如下方法计算level的值:
i.level=(byte)(score/10);
e.使用switch语句,根据输入成绩的等级level,进行相应的操作:
i.当level的值为9、10时,输出“成绩优秀!
”
ii.当level的值为7、8时,输出“成绩良好!
”
iii.当level的值为6时,输出“成绩及格!
”
iv.其它情况则输出“不及格!
”
注意采用适当的变量命名方法(骆驼命名法或Pascal命名法)
●生成并测试程序
重点可以使用快捷键Ctrl+F5快速生成并运行应用程序。
1)运行生成的可执行程序。
C#程序运行结果如下:
请输入分数:
85
成绩良好!
_
请输入分数:
90
成绩优秀!
_
请输入分数:
55
不及格!
_
实验七循环语句的使用
在本练习中,将使用C#编写一个控制台应用程序,主要考察对三种循环语句的使用。
一,简单循环语句的使用
●编写源代码
7)打开VS2005,新建一个语言为C#的控件台应用程序,项目名称为CycleExam1。
8)在Main函数中编写代码来完成以下功能:
a.分别用while、do..while以及for循环实现计算1到10的累加和乘积,即计算1+2+..+20。
b.输出计算的结果,即累加值和乘积。
c.(可选内容)改进以上程序,使之能够计算用户指定的区间范围内的数的累加和乘积,即运行程序时,要求用户输入要计算的起点和终点,这时如果用户输入10和20,则程序计算10到20之前的累加和乘积,即10+11+...+20、1*2*..*20。
●生成并测试程序
重点可以使用快捷键Ctrl+F5快速生成并运行应用程序。
_
二,循环的嵌套-打印九九乘法表
●编写源代码
1)打开VS2005,新建一个语言为C#的控件台应用程序,项目名称为CycleExam2。
2)在Main函数中编写代码来完成以下功能:
a.使用for循环的嵌套形式计算并输出九九乘法表,输出的格式如下:
1*1=1
1*2=22*2=4
1*3=32*3=63*3=9
1*4=42*4=83*4=124*4=16
..................
.............................................................................9*9=81
●生成并测试程序
重点可以使用快捷键Ctrl+F5快速生成并运行应用程序。
_
实验八使用C#编写一个对用户输入的整数进行排序的程序
在本练习中,将使用C#编写一个对用户输入的整数进行排序的程序,并输出排序的结果,排序次序为升序。
●编写源代码
1)打开VS2005,新建一个名为ArraySample的Console应用程序项目。
2)导入System命名空间。
3)定义程序的入口点。
程序入口点不获取任何参数,也不返回任何值。
4)定义一个用来存储用户输入数据的一维数组intArray,并初始化长度为10。
5)创建方法来完成以下功能:
a.将以下文本输出控制台:
“Pleaseinputnumbers:
”。
b.从控制台读取用户输入的10个数,并分存储在数组中。
c.使用简单的算法对用户输入的数据进行升序排序。
d.输出排序结果。
●生成并测试程序
8)按”F5”键生成并运行程序。
C#程序将生成如下输出:
Pleaseinputnumbers:
此时若输入
10
5
9
1
3
2
6
4
7
8
则应输出:
1
2
3
4
5
6
7
8
9
10
实验九使用C#编写一个课程表查询程序
在本练习中,将使用C#编写一个课程表查询程序,根据用户输入的星期和课时,显示相应时间的课程名称与任课教师名称。
●编写源代码
1)
CourseInfo[,]timetable=newCourseInfo[星期数,每天课时数];
打开VS2005,新建一个名为TimetableSample的Console应用程序项目。
2)导入System命名空间。
3)定义表示课程信息结构体CourseInfo,其中包含字段”CourseName”、”Teacher”。
4)定义程序的入口点。
程序入口点不获取任何参数,也不返回任何值。
5)定义用来储存课程表的类型为CourseInfo的二维数组timetable。
分别使用矩阵数组和交错型数组来存储课表信息:
a.使用矩阵型数组,定义提示:
b.使用交错型数组,定义提示:
6)创建方法来初始化课程表数组:
a.提示用户输入课程表信息,分别记录下课程名和教师名。
b.提示格式因为:
录入课程信息
请输入星期一的课程:
第一节:
XXXX,XX老师
第二节:
XXXX,XX老师
..........
请输入星期二的课程:
第一节:
XXXX,XX老师
..........
.......................
c.要求程序能忽略无效字符,如空格等。
7)创建方法来查询课程表的内容:
a.提示用户输入星期和课时,并输出查询结果。
b.提示格式如下:
请输入星期和课时,使用”,”号隔开:
2,2
星期二的第2节课为C#上机,任课老师为贾玮。
c.要求程序能忽略无效字符,如空格等。
●生成并测试程序
7)按”F5”键生成并运行程序。
C#程序将生成如下输出:
录入课程信息
请输入星期一的课程:
第一节:
XXXX,XX老师
第二节:
XXXX,XX老师
..........
请输入星期二的课程:
第一节:
XXXX,XX老师
..........
.......................
课程查询程序
请输入星期和课时,使用”,”号隔开:
2,2
星期二的第2节课为C#上机,任课老师为贾玮。
是否继续查询?
Yeeesss
请输入星期和课时,使用”,”号隔开:
3,1
星期三的第2节课为C#上机,任课老师为贾玮。
是否继续查询?
No
_
实验十使用C#创建一个表示星期的枚举类型
在本练习中,将使用C#创建一个表示星期的枚举类型,而后要求用户输入当前星期,并判断用户输入的是否为双休日。
●编写源代码
4)打开VS2005,新建一个名为EnumSample的Console应用程序项目。
5)导入System命名空间。
6)定义表示星期的’Days’枚举类型。
7)定义程序的入口点。
程序入口点不获取任何参数,也不返回任何值。
8)创建方法来完成以下功能:
a.将以下文本输出控制台:
“Pleaseinputcurrentweek:
”。
b.读取用户输入的结果。
c.使用(Days)Enum.Parse(typeof(Days),<输入字符串>)来将用户输入的字符串转换成Days枚举类型。
(注意转换结果的类型转换)
d.判断用户输入的值是否为双休日,并进行相应的处理。
●生成并测试程序
4)按”F5”键生成并运行程序。
C#程序将生成如下输出:
Pleaseinputcurrentweek:
此时若输入”Sun”,则应输出当前为双休日的提示。
实验十一使用C#创建一个表示日期的结构类型
在本练习中,将使用C#创建一个表示日期的结构类型,而后要求用户输入当前日期,并按指定格式输出用户输入的日期。
●编写源代码
2)打开VS2005,新建一个名为StructSample的Console应用程序项目。
6)导入System命名空间。
7)定义表示星期的’Days’枚举类型。
8)定义表示日期的’Date’类型的结构体,其中包含年、月、日和星期这些字段。
a.元素的访问级别为’public’。
b.星期使用Days枚举类型。
9)定义程序的入口点。
程序入口点不获取任何参数,也不返回任何值。
10)创建方法来完成以下功能:
a.将以下文本输出控制台:
“Pleaseinputcurrentdate:
”。
b.读取用户输入的结果,使用空格分割各元素,格式为yyyymmddwww。
c.输出用户输入的日期,格式为yyyy年mm月dd日www。
●生成并测试程序
9)按”F5”键生成并运行程序。
C#程序将生成如下输出:
Pleaseinputcurrentdate:
此时若输入”2006920Wed”,则应输出2006年9月20日Wed。
实验十二字符串的处理
在本练习中,将使用C#编写一个控制台应用程序,主要练习字符串的处理。
一、字符串的简单应用——统计字符串中各字符出现的频率
●功能要求
编写程序,完成如下功能
从键盘读入用户的输入,要求程序能统计用户输入的每个字符出现的次数。
例如:
用户输入“helloworld”
则程序输出如下结果:
Result:
e:
1h:
1l:
3o:
2r:
1w:
1
●算法描述
该程序假定用户只能输入小写英文字符,实现思路为:
可以定义一个长度为26的字符数组,它们分别对26个字符中的每个字符出现的次数,统计时可以采用遍历输入字符的方法,如:
for(inti=0;i<输入字符串.Length;i++)
{
//统计时,采用<输入字符>–‘a’的方式,以方便统计
计数器数组[输入字符串[i]–‘a’]++
}
在输出计数值时,可以跳过所有计数为0的结果,如:
for(inti=0;i<计数器数组.Length;i++)
{
if(当前字符计数值>0)
{
输出其计数结果
}
}
●编写源代码
9)打开VS2005,新建一个语言为C#的控件台应用程序,项目名称为CharCounter。
10)在Main函数中编写代码来完成程序的功能要求。
实验十三异常的处理
●目标
完成本实验,将能够:
●处理C#中的异常。
●实验预估时间:
60min
使用VS2005创建一个控制台应用程序项目,项目名为ExceptionSample。
练习1处理试图除零所产生的异常。
在本练习中,将使用C#捕获试图除零所产生的异常。
在Program类的加入一静态函数DivZero,该函数有一个int型的参数num,该函数的返回类型为int,在该函数中输入如下内容。
return10/num;
在Main函数中调用DivZero函数,并使用异常处理的方式捕捉其所产生异常,在异常处理的代码中输出自定的提示信息——“除数不能为零”。
练习2处理数组索引超出范围所产生的异常。
在本练习中,将使用C#捕获试图除零所产生的异常。
在Program类的加入一静态函数ArrayAccess,该函数无参数无返回值,在该函数中输入如下内容。
int[]array=newint[4];
int[4]=10;
Console.WriteLine(int[4]);
清除Main函数中的内容,并在Main函数中调用ArrayAccess函数,使用异常处理的方式捕捉其所产生异常,并在异常处理代码中输出自定的提示信息——“数组索引超出数组范围”。
实验十四函数的定义与使用
在本练习中,将使用C#编写一个控制台应用程序,主要考察对函数的使用。
一,函数的定义与使用
●编写源代码
11)打开VS2005,新建一个语言为C#的控件台应用程序,项目名称为FunctionExam1。
12)编写函数Welcome,该函数没有任何参数,不返回值,该函数的功能是,向屏幕打印“WelcometoC#world!
”
13)在Main函数中调用之前定义的函数Welcome。
●生成并测试程序
重点可以使用快捷键Ctrl+F5快速生成并运行应用程序。
_
二,把数组做为函数的参数传递
●编写源代码
3)打开VS2005,新建一个语言为C#的控件台应用程序,项目名称为FunctionExam2。
4)编写函数Sum,该函数接收一个int型的数组numbers作为参数,返回类型发int,该函数的功能为对传入的数组numbers进行求和,并把返回求和的结果。
5)在Main函数中编写代码来完成以下功能:
a.定义int型数组numbers,并为赋初值为:
1,2,3,4,5,6,7,8,9,10
b.使用numbers作为参数调用Sum函数,并输出函数返回的结果。
●生成并测试程序
重点可以使用快捷键Ctrl+F5快速生成并运行应用程序。
_
三,使用可变数目的参数
●编写源代码
6)打开VS20
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 实验指导书 实验 指导书