C#实验指导书(新)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《C#程序设计》实验指导实验一熟悉C#的编辑和编译环境【实验目的与要求】熟悉VisualStudio.NET集成开发环境(IDE)熟悉C#源程序语言的编辑、编译和运行过程能够创建、编译和执行一个简单的C#程序【实验内容与步骤】1、练习使用C#编写第一个控制台应用程序示例(1)usingSystem;classHelloWord{publicstaticvoidMain(){//在控制台出“Hello,这是我的第一个C#程序”System.Console.WriteLine(“Hello,这是我的第一个C#程序”);}}保存文件为D:\myCs\HelloWord.cs选择开始——程序——MicrosoftVisualStudio.Net——.Net工具——命令提示,打开命令提示窗口。如下图所示:运行CSC/?,可以看到编译器的各种相关命令参数。执行CSCD:\mycs\HelloWord.cs2、练习使用C#编写第一个Windows应用程序usingSystem;usingSystem.Windows.Forms;namespacesample4{publicclassWinApp2:Form{TextBoxtxtTest;publicstaticvoidMain(){Application.Run(newWinApp2());}publicWinApp2(){Formmyfrm=newForm();txtTest=newTextBox();txtTest.Size=newSystem.Drawing.Size(50,20);txtTest.Location=newSystem.Drawing.Point(20,20);ButtonbtnOk=newButton();btnOk.Size=newSystem.Drawing.Size(50,20);btnOk.Location=newSystem.Drawing.Point(80,20);btnOk.Text=ClickMe;btnOk.Click+=newSystem.EventHandler(btnClick);this.Controls.Add(txtTest);this.Controls.Add(btnOk);}voidbtnClick(objectsender,System.EventArgse){stringuserInput;userInput=txtTest.Text;MessageBox.Show(userInput);}}}输入以上代码,并保存文件为:TestWinApp.cs使用:csc/target:winexeD:\mycs\TestWinApp.cs进行编译,将其编译为Windows应用程序,然后执行该可执行文件。3、练习使用.NET下C#和VB.NET语言的互操作(1)编写以下VB.NET程序NameSpaceVBMethodpublicclassMyVBpublicFunctionAdd(ByValaasinteger,ByValbasinteger)asIntegerAdd=a+bEndFunctionendclassEndNameSpace将该程序保存为:VBAdd.VB,然后在命令行用VBC命令将该文件编译成一个动态链接库文件:VBC/target:libraryvbadd.vb(2)编写以下C#调用程序usingSystem;usingVBMethod;//使用Using关键字引入前面定义的用户命名空间namespaceCallVB//定义一个新的用户命名空间{publicclassTestCallAdd//定义用户类{publicstaticvoidMain(){MyVBMyAdd=newMyVB();intsum=MyAdd.Add(32,21);Console.WriteLine(32+21=+sum.ToString());}}}将文件保存为:CallVb.cs,然后在命令行按以下格式进行编译:csc/reference:VBAdd.dllCallVB.cs运行编译后的可执行文件,看看能否用C#程序调用VB编写的类方法。(3)用ILDasm.exe程序,反汇编VBAdd.dll和CallVB.exe,看看有什么差异。4、调试并运行下列程序(1)usingSystem;classOrdLength{publicstaticvoidmain(String[]args){Console.Write(“显示自变量的个数”);Console.WriteLine(“命令行中自变量的个数是:{0}”,args.Length);}}(2)classwayRead{publicstaticvoidMain(){Console.Write(MayIgetyourname?_);Strings=Console.ReadLine();Console.WriteLine(Nicetomeetyou,{o},S);Console.Write(Areyoumaleorfemale?_(M/F));chari=(char)Console.Read();if(i=='M'||i=='m'){Console.WriteLine(Youareboy,aren’tyou?);}elseif(i='F'||i='f'){Console.WriteLine(“YouareGirl,aren’tyou?”);}else{Console.WriteLine(Iamsorry,Ithinkyoumadeawrongchoice!!);}}}(3)编写一个应用程序,输入一个圆的半径,打印该圆的直径、周长和面积。使用下面的公式(R是半径,直径=2R,周长等于2πR,面积等于πR^2)(4)编写一个应用程序,输入一个五位数,把这五个数分成单独的阿拉伯数字,并且把这五个数字用四个空格彼此分开逆序输出。例如用户输入31245,则输出54213。(5)任意输入一个正整数,请分别取出该整型数内存中各字节上的二进制数并将其转换为十进制输出。运行结果如下图所示。实验二熟悉C#的基本语言与语法规则【实验目的与要求】掌握分支结构语句的语法书写格式掌握循环结构语句的语法书写格式综合利用各种结构语句完成特定的任务【实验内容与步骤】一、分支结构语句1.1if语句if语句根据布尔表达式的值选择要执行的语句。if语句:if(布尔表达式1){if(布尔表达式2){(语句组1)}}elseif(布尔表达式3){(语句组2)}else(语句组3)}示例1:根据输入的学生成绩,显示相应的等级:优,良,中,差,及格和不及格。usingSystem;classStuGrade{publicstaticvoidMain(){intscore;stringgrade;Console.Write(请输入学生的确学习成绩);score=Int32.Parse(Console.ReadLine());if(score=90)grade=优秀!;elseif(score=80)grade=良好!;elseif(score=70)grade=中等!;elseif(score60)grade=及格!;elsegrade=不及格!;Console.WriteLine(该学生的确学习成绩等级为:{0},grade);}}1.2switch语句switch语句选择要执行的语句列表,此列表具有一个对应于switch表达式的值的相关联的switch标签。switch语句:switch(表达式)switch块switch块:{switch节可选}switch节:switch节switch节switch节switch节:switch标签语句列表switch标签:switch标签switch标签switch标签switch标签:case常数表达式:default:switch语句包含关键字switch,后跟带括号的表达式(称为switch表达式),然后是一个switch块。switch块包含零个或多个括在大括号内的switch节。每个switch节包含一个或多个switch标签,后跟一个语句列表。switch语句的主导类型由switch表达式建立。如果switch表达式的类型为sbyte、byte、short、ushort、int、uint、long、ulong、char、string或枚举类型,那么这就是switch语句的主导类型。否则,必须有且只有一个用户定义的从switch表达式的类型到下列某个可能的主导类型的隐式转换:sbyte、byte、short、ushort、int、uint、long、ulong、char、string。如果不存在这样的隐式转换,或者存在一个以上这样的隐式转换,将发生编译时错误。每个case标签的常数表达式必须表示可以隐式转换为switch语句的主导类型的类型的值。如果同一switch语句中的两个或更多个case标签指定同一个常数值,将发生编译时错误。一个switch语句中最多只能有一个default标签。switch语句的执行方式如下:计算switch表达式并将其转换为主导类型。如果在同一switch语句中的case标签中指定的常数之一等于switch表达式的值,控制将转到匹配的case标签后的语句列表。如果在同一switch语句中的case标签中指定的常数都不等于switch表达式的值,且如果存在一个default标签,控制将转到default标签后的语句列表。如果在同一switch语句中的case标签中指定的常数都不等于switch表达式的值,且如果不存在default标签,控制将转到switch语句的结束点。如果switch节的语句列表的结束点是可到达的,将发生编译时错误。这称为“非贯穿”规则。示例2:usingSystem;classThrowRoll{publicstaticvoidMain(){introll=0;Randomrnd=newRandom();//创建一个存储随机数的变量roll=(int)rnd.Next(1,7);//生成一个1-6之间的随机整数Console.Write(开始掷筛子);Console.WriteLine(这次掷的筛子是:{0},roll);switch(roll){case1:case3:case5:Console.WriteLine(筛子是奇数);break;case2:case4:case6:Console.WriteLine(筛子是偶数);break;default:Console.WriteLine(筛子不在1-6之间);break;}}}二、循环结构语句2.1while语句while语句有条件地执行嵌入语句零次或多次。while语句:while(布尔表达式)嵌入语句while语句的执行方式如下:计算布尔表达式。如果布尔表达式产生true,控制将转到嵌入语句。当(和如果)控制到达嵌入语句的结束点(可能是通过执行一个continue语句)时,控制将转到while语句的开头。如果布尔表达式产生false,控制将转到while语句的结束点。在while语句的嵌入语句内,break语句可用于将控制转到while语句的结束点(从而结束嵌入语句的迭代),而continue语句可用于将控制转到嵌入语句的结束点(从而执行while语句的另一次迭代)。如果while语句是可到达的且布尔表达式不具有常数值false,则该while语句的嵌入语句是可到达的。如果下列条件中至少有一个为真,则while语句的结束点是可到达的:while语句包含一个退出while语句的可到达的break语句。while语句是可到达的且布尔表达式不具有常数值true。示例3:使用while语句,计算1+2+3……+100的值。usingSystem;classsum{publicstaticvoidMain(){intsum=0,i=1;while(i1

1 / 144
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功