c#实验报告.docx
- 文档编号:28472475
- 上传时间:2023-07-14
- 格式:DOCX
- 页数:14
- 大小:18.78KB
c#实验报告.docx
《c#实验报告.docx》由会员分享,可在线阅读,更多相关《c#实验报告.docx(14页珍藏版)》请在冰豆网上搜索。
c#实验报告
学院:
计算机与信息学院专业:
软件工程年级:
2008
姓名:
学号:
实验室号:
田312/313计算机号:
实验日期:
2010年4_月2_日指导教师签字:
成绩:
报告退发(订正、重做)
实验一基本的代码风格
(一)
1、实验目的
掌握基本的代码风格;
能指出不符合基本代码风格的代码。
2、实验仪器(环境):
计算机及C#
3、实验操作方法:
了解和熟悉.NETC#IDE(集成开发环境)的使用方法,输入程序,对程序进行编译、调试和运行。
4、报告内容:
(1)新建一个控制台应用程序,含有("Hello,{0}","World!
");的输出语句,并执
行通过此程序,把看到的结果截屏写入报告;
输入代码为:
usingSystem;
using;
using;
namespaceConsoleApplication2
{
classProgram
{
staticvoidMain(string[]args)
{
("helloworld");
();
}
}
}
执行程序截屏如图
(2)将以下代码合理地分行,并改正其中不符合所学规范的地方,并逐条加以报告:
①bitmap=newBitmap,,②if(f==||f==supportsPropertyItems=true;}
else{supportsPropertyItems=false;}③这句要求分成两行:
doublecontainerAspectRatio=(double);
4privatestaticvoidExchage(objecta,objectb){
objecttemp;
temp=a;a=b;b=temp;
}
5如何给下面各个变量加注释,注释内容分别是累加和、因子、索引、长度:
intnum,factor,index,length;
6自找一段稍长的代码,使用空行分隔代码块
7使用缩进改进以下程序:
intkmp_match(char[]t,char[]p,int[]flink,intn,intm)
{
inti=0,j=0;
While(i { While(j! =-1&&p[j]! =t[i]) { j=flink[j]; } if(j==m-1) { returni-m+1; } i++; j++; } Return-1; } 8举出因换行采用缩进的例子; 9C#文本编辑器用Tab键进行代码缩进方式是怎么设置的? 请设置用Tab键大小,选择 “插入空格”模式。 写出设置过程并说说“插入空格”模式的好处。 实验报告 学院: 计算机与信息学院专业: 软件工程年级: 2008 姓名: 学号: 实验室号: 田312/313计算机号: 实验日期: 2010年4_月_9—日指导教师签字: 成绩: 报告退发(订正、重做) 实验二基本的代码风格 (二) 1、实验目的 掌握基本的代码风格中大括号的使用以及保持项目文件条例性的方法; 能指出不符合基本代码风格的代码。 2、实验仪器(环境): 计算机及C# 3、实验操作方法: 了解和熟悉.NETC#IDE(集成开发环境)的使用方法,输入程序,对程序进行编译、调试和运行。 4、报告内容: (1)K&R的大括号位置风格的练习: 自己寻找3个程序代码(要能在.NETC#IDE环境中通过运行),按照K&RM格输入这 些代码,并提供源代码及截图报告这些代码的运行结果; (2)C#使用的大括号位置风格的练习: 自己寻找3个程序代码(要能在.NETC#IDE环境中通过运行),按照C#使用的大括 号位置风格输入这些代码,并提供源代码及截图报告这些代码的运行结果; (3)开发过程中,很可能只写了某个类或者函数的空声明,如何处理这种空复合体? 请 举例说明; (4)对于 if(a>b)x++; elsey++; 或者 for(inti=0;i<10;i++) dest[i]=source"]; 这种单个语句体的结构该如何写得更易读一些,请各举一例加以说明; (5)在原项目的命名空间下新建了一个名为SubFolder的新文件夹,观察C#会自动将文 件夹作为子命名空间的名称以及这个文件夹下的新建代码文件就自动以原项目的命名空 间.SubFolder作为默认的命名空间。 截图报告此现象; (6)用#region和#endregion标记这两个指令在VisualStudio.NET编辑器中将其中的代码折叠或展开,便于浏览和编辑。 试试会不会对程序的编译与运行产生影响,说说此两指令的作用。 截图输出自己的实验结果。 实验报告 学院: 计算机与信息学院专业: 软件工程年级: 2008 姓名: 学号: 实验室号: 田312/313计算机号: 实验日期: 2010年4_月16日指导教师签字: 成绩: 报告退发(订正、重做) 实验三注释与命名 1、实验目的 正确掌握注释语句的使用方法; 掌握正确的命名方法。 2、实验仪器(环境): 计算机及C# 3、实验操作方法: 了解和熟悉.NETC#IDE(集成开发环境)的使用方法,输入程序, 对程序进行编译、调试和运行。 4、报告内容: (1)举出if语句中在“判断还未发生之前,引入了判断之后的事情的注释”的例子, 说说这种注释的不良之处以及如何改进并给出改进后的例子。 例子应能在C#环境下通过运 行; 例子: inta=1; intb=2; ETC#IDE(集成开发环境)的使用方法,输入程序,对程序进行编译、调试和运行。 4、报告内容: (1)叙述十进制浮点数的整数部分和小数部分转换成二进制的方法,并给出转换实例; (2)运行如下程序,说说为什么无法出现期望的输出(("OK! ");) doublei=; while(i<10) { i+=; ()); ETC#IDE(集成开发环境)的使用方法,输入程序,对程序进行编译、 调试和运行。 4、报告内容: (1)说说下面两个判断语句的区别,请在C#环境下带入实际值运行并将两种结果截屏 写入本报告中。 为保持程序在不同语言环境下的通用性,编码时应该采用下面哪一个? 1)if(! (x%2)) { (“偶数”); } 2)if(x%2==0) { (“偶数”); } (2)在C#环境中运行如下程序,再改变mt勺值,查看结果;如果缺其中某break;语句会有 什么结果? 为什么要有default语句? 给出截图报告。 intm=4; stringdesc=null; switch(m) { case1: case2: case3: desc="第一季度"; break; case4: case5: case6: desc="第二季度"; break; case7: case8: case9: desc="第三季度"; break; case10: case11: case12: desc="第四季度"; break;default: desc="无此数相应勺季度"; break; ("{0}",desc); (3)可变长参数的函数的练习 usingSystem; using; publicclassMyClass { publicstaticvoidUseParams(paramsint[]list) { for(inti=0;i<;i++) (list[i]); (); } publicstaticvoidUseParams2(paramsobject[]list) { for(inti=0;i<;i++) (list[i]); (); } publicstaticvoidMain() { UseParams(1,2,3,5); UseParams2(1,'a',"test",true,false); int[]myarray=newint[5]{10,11,12,14,16}; UseParams(myarray); MainETC#IDE(集成开发环境)的使用方法,输入程序,对程序进行编译、 调试和运行。 4、报告内容: (1)值类型和引用类型的关系 usingSystem; classDemo { publicstaticvoidMain() { intx=123; objectobj1=x;MainMainMainMainETC#IDE(集成开发环境)的使用方法,输入程序,对程序进行编译、调试和运行。 4、报告内容: (1)抽象类抽象方法的实现输入以下程序,理解抽象类抽象方法的实现并将结果截屏输出。 //定义基类Shape publicabstractclassShape { protectedstringColor; publicShape() { J } publicShape(stringColor) { =Color; } publicstringGetColor() { returnColor; } publicabstractdoubleGetArea();//抽象方法的写法 } //定义Circle类,从Shape类中派生 publicclassCircle: Shape { privatedoubleRedius; publicCircle(stringColor,doubleRedius) { =Color; =Redius; } publicoverridedoubleGetArea()//派生类重载的实现 { return*Redius*Redius; } } //派生类Rectangular,从Shape类中派生publicclassRectangular: Shape { protecteddoubleLength,Width; publicRectangular(stringColor,doubleLength,doubleWidth) { =Color; =Length; =Width; } publicoverridedoubleGetArea() {returnLength*Width; } publicdoublePerimeterIs() {return(2*(Length+Width)); } } //派生类Square,从Rectangular类中派生 publicclassSquare: Rectangular { publicSquare(stringColor,doubleSide): base(Color,Side,Side) { J } } publicclassTestInheritance { publicstaticvoidMain(string[]args) { CircleCir=newCircle("orange",; ("Circlecoloris{0},Circleareais{1}",(),()); RectangularRect=newRectangular("red",,; ("Rectangularcoloris{0},Rectangularareais{1},RectangularPerimeteris{2}",(),(),()); SquareSqu=newSquare("green",; (),(),()); ("Squarecoloris{0},SquareAreais{1},Squareperimeteris{2}" } } (2)运行以下关于接口的程序,理解程序中定义的两个接口和一个类,接口之间也有继承关系以及继承了接口中的方法;接口只能定义方法,实现要由类或者结构来完成等概念。 并给出运行结果的截图。 usingSystem; using; //定义接口IPartA publicinterfaceIPartA { voidSetDataA(stringsataA); } //定义接口IPartB,继承接口IPartA publicinterfaceIPartB: IPartA { voidSetDataB(stringdataB); } //定义类SharedClass,继承接口IPartB publicclassSharedClass: IPartB { privatestringDataA; privatestringDataB; //实现接口IPartA的方法SetDataA publicvoidSetDataA(stringdataA) { DataA=dataA; ("{0}",DataA); } //实现接口IPartB的方法SetDataB publicvoidSetDataB(stringdataB) DataB=dataB; ("{0}",DataB); } } classProgram { staticvoidMain(string[]args) { SharedClassa=newSharedClass();("interfaceIPartA"); ("interfaceIPartB"); } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c# 实验 报告