C# 实验指导书Word文件下载.docx
《C# 实验指导书Word文件下载.docx》由会员分享,可在线阅读,更多相关《C# 实验指导书Word文件下载.docx(29页珍藏版)》请在冰豆网上搜索。
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)编写代码来完成以下功能:
“TypeyournameandpressEnter:
c.判断用户输入的是否为自己的名字,并把判断的结果保存在bool型变量isMySelf中。
d.检测isMySelf的值,如果为真则输出“Hi,Welcomcomeback!
”,否则输出“Nameisinvalid,pleaseinputagain!
”,转到a。
e.结束应用程序。
重点可以使用快捷键Ctrl+F5快速生成并运行应用程序。
3)运行生成的可执行程序。
假设自己的姓名为Jerry
TypeyournameandpressEnter:
Tom
Nameisinvalid,pleaseinputagaiin!
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#的控制台应用程序,项目名称为:
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.编译并运行该程序。
七、判断输入年份是否为闰年
Exam6
a.定义ushort类型变量year,用来保存用户输入的年份.
b.定义bool类型变量isLeapYear,用来保存判断输入年份是否为闰年的逻辑结果.
c.在屏幕中输出文本”请输入年份:
“,提示用户输入年份.
d.从键盘读入用户输入的年份,并把输入的年份保存在变量year中,注意进行适当的类型转换(即把数字字符串转换在ushort类型)
e.使用if语句对用户输入的年份year进行判断,如果输入的年份是闰年,则把变量isLeapYear的值置为true,否则置为false
f.输出变量isLeapYear的值.
实验六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.其它情况则输出“不及格!
1)运行生成的可执行程序。
请输入分数:
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。
二,循环的嵌套-打印九九乘法表
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
实验八使用C#编写一个对用户输入的整数进行排序的程序
在本练习中,将使用C#编写一个对用户输入的整数进行排序的程序,并输出排序的结果,排序次序为升序。
1)打开VS2005,新建一个名为ArraySample的Console应用程序项目。
2)导入System命名空间。
3)定义程序的入口点。
4)定义一个用来存储用户输入数据的一维数组intArray,并初始化长度为10。
5)创建方法来完成以下功能:
“Pleaseinputnumbers:
”。
b.从控制台读取用户输入的10个数,并分存储在数组中。
c.使用简单的算法对用户输入的数据进行升序排序。
d.输出排序结果。
8)按”F5”键生成并运行程序。
C#程序将生成如下输出:
Pleaseinputnumbers:
此时若输入
10
5
9
1
3
2
6
4
7
8
则应输出:
实验九使用C#编写一个课程表查询程序
在本练习中,将使用C#编写一个课程表查询程序,根据用户输入的星期和课时,显示相应时间的课程名称与任课教师名称。
1)
CourseInfo[,]timetable=newCourseInfo[星期数,每天课时数];
打开VS2005,新建一个名为TimetableSample的Console应用程序项目。
3)定义表示课程信息结构体CourseInfo,其中包含字段”CourseName”、”Teacher”。
4)定义程序的入口点。
5)定义用来储存课程表的类型为CourseInfo的二维数组timetable。
分别使用矩阵数组和交错型数组来存储课表信息:
a.使用矩阵型数组,定义提示:
b.使用交错型数组,定义提示:
6)创建方法来初始化课程表数组:
a.提示用户输入课程表信息,分别记录下课程名和教师名。
b.提示格式因为:
录入课程信息
请输入星期一的课程:
第一节:
XXXX,XX老师
第二节:
..........
请输入星期二的课程:
第一节:
.......................
c.要求程序能忽略无效字符,如空格等。
7)创建方法来查询课程表的内容:
a.提示用户输入星期和课时,并输出查询结果。
b.提示格式如下:
请输入星期和课时,使用”,”号隔开:
2,2
星期二的第2节课为C#上机,任课老师为贾玮。
7)按”F5”键生成并运行程序。
课程查询程序
是否继续查询?
Yeeesss
3,1
星期三的第2节课为C#上机,任课老师为贾玮。
No
实验十使用C#创建一个表示星期的枚举类型
在本练习中,将使用C#创建一个表示星期的枚举类型,而后要求用户输入当前星期,并判断用户输入的是否为双休日。
4)打开VS2005,新建一个名为EnumSample的Console应用程序项目。
5)导入System命名空间。
6)定义表示星期的’Days’枚举类型。
7)定义程序的入口点。
8)创建方法来完成以下功能:
“Pleaseinputcurrentweek:
b.读取用户输入的结果。
c.使用(Days)Enum.Parse(typeof(Days),<
输入字符串>
)来将用户输入的字符串转换成Days枚举类型。
(注意转换结果的类型转换)
d.判断用户输入的值是否为双休日,并进行相应的处理。
4)按”F5”键生成并运行程序。
Pleaseinputcurrentweek:
此时若输入”Sun”,则应输出当前为双休日的提示。
实验十一使用C#创建一个表示日期的结构类型
在本练习中,将使用C#创建一个表示日期的结构类型,而后要求用户输入当前日期,并按指定格式输出用户输入的日期。
2)打开VS2005,新建一个名为StructSample的Console应用程序项目。
6)导入System命名空间。
7)定义表示星期的’Days’枚举类型。
8)定义表示日期的’Date’类型的结构体,其中包含年、月、日和星期这些字段。
a.元素的访问级别为’public’。
b.星期使用Days枚举类型。
9)定义程序的入口点。
10)创建方法来完成以下功能:
“Pleaseinputcurrentdate:
b.读取用户输入的结果,使用空格分割各元素,格式为yyyymmddwww。
c.输出用户输入的日期,格式为yyyy年mm月dd日www。
9)按”F5”键生成并运行程序。
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的结果,如:
计数器数组.Length;
if(当前字符计数值>
0)
{
输出其计数结果
}
9)打开VS2005,新建一个语言为C#的控件台应用程序,项目名称为CharCounter。
10)在Main函数中编写代码来完成程序的功能要求。
实验十三异常的处理
●处理C#中的异常。
60min
使用VS2005创建一个控制台应用程序项目,项目名为ExceptionSample。
练习1处理试图除零所产生的异常。
在本练习中,将使用C#捕获试图除零所产生的异常。
在Program类的加入一静态函数DivZero,该函数有一个int型的参数num,该函数的返回类型为int,在该函数中输入如下内容。
return10/num;
在Main函数中调用DivZero函数,并使用异常处理的方式捕捉其所产生异常,在异常处理的代码中输出自定的提示信息——“除数不能为零”。
练习2处理数组索引超出范围所产生的异常。
在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。
二,把数组做为函数的参数传递
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函数,并输出函数返回的结果。
三,使用可变数目的参数
6)打开VS20