c#实验报告17.docx
《c#实验报告17.docx》由会员分享,可在线阅读,更多相关《c#实验报告17.docx(12页珍藏版)》请在冰豆网上搜索。
![c#实验报告17.docx](https://file1.bdocx.com/fileroot1/2022-11/29/7f652c1f-d3d9-4969-8c71-3aca3028e9fc/7f652c1f-d3d9-4969-8c71-3aca3028e9fc1.gif)
c#实验报告实验报告17实验报告学院:
计算机与信息学院专业:
软件工程年级:
2008姓名:
学号:
实验室号:
田312/313计算机号:
实验日期:
2010年4月2日指导教师签字:
成绩:
报告退发(订正、重做)实验一基本的代码风格
(一)1、实验目的掌握基本的代码风格;能指出不符合基本代码风格的代码。
2、实验仪器(环境):
计算机及C#3、实验操作方法:
了解和熟悉.NETC#IDE(集成开发环境)的使用方法,输入程序,对程序进行编译、调试和运行。
4、报告内容:
(1)新建一个控制台应用程序,含有(Hello,0,World!
);的输出语句,并执行通过此程序,把看到的结果截屏写入报告;输入代码为:
usingSystem;using;using;namespaceConsoleApplication2classProgramstaticvoidMain(stringargs)(helloworld);();执行程序截屏如图图
(2)将以下代码合理地分行,并改正其中不符合所学规范的地方,并逐条加以报告:
bitmap=newBitmap,if(f=|f=supportsPropertyItems=true;elsesupportsPropertyItems=false;这句要求分成两行:
doublecontainerAspectRatio=(double);privatestaticvoidExchage(objecta,objectb)objecttemp;temp=a;a=b;b=temp;如何给下面各个变量加注释,注释内容分别是累加和、因子、索引、长度:
intnum,factor,index,length;自找一段稍长的代码,使用空行分隔代码块使用缩进改进以下程序:
intkmp_match(chart,charp,intflink,intn,intm)inti=0,j=0;While(ib)x+;elsey+;或者for(inti=0;i10;i+)desti=sourcei;这种单个语句体的结构该如何写得更易读一些,请各举一例加以说明;(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(i10)i+=;();ETC#IDE(集成开发环境)的使用方法,输入程序,对程序进行编译、调试和运行。
4、报告内容:
(1)说说下面两个判断语句的区别,请在C#环境下带入实际值运行并将两种结果截屏写入本报告中。
为保持程序在不同语言环境下的通用性,编码时应该采用下面哪一个1)if(!
(x%2)(“偶数”);2)if(x%2=0)(“偶数”);
(2)在C#环境中运行如下程序,再改变m的值,查看结果;如果缺其中某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;publicclassMyClasspublicstaticvoidUseParams(paramsintlist)for(inti=0;i;i+)(listi);();publicstaticvoidUseParams2(paramsobjectlist)for(inti=0;i;i+)(listi);();publicstaticvoidMain()UseParams(1,2,3,5);UseParams2(1,a,test,true,false);intmyarray=newint510,11,12,14,16;UseParams(myarray);MainETC#IDE(集成开发环境)的使用方法,输入程序,对程序进行编译、调试和运行。
4、报告内容:
(1)值类型和引用类型的关系usingSystem;classDemopublicstaticvoidMain()intx=123;objectobj1=x;MainMainMainMainETC#IDE(集成开发环境)的使用方法,输入程序,对程序进行编译、调试和运行。
4、报告内容:
(1)抽象类抽象方法的实现输入以下程序,理解抽象类抽象方法的实现并将结果截屏输出。
/定义基类ShapepublicabstractclassShapeprotectedstringColor;publicShape();publicShape(stringColor)=Color;publicstringGetColor()returnColor;publicabstractdoubleGetArea();/抽象方法的写法/定义Circle类,从Shape类中派生publicclassCircle:
ShapeprivatedoubleRedius;publicCircle(stringColor,doubleRedius)=Color;=Redius;publicoverridedoubleGetArea()/派生类重载的实现return*Redius*Redius;/派生类Rectangular,从Shape类中派生publicclassRectangular:
ShapeprotecteddoubleLength,Width;publicRectangular(stringColor,doubleLength,doubleWidth)=Color;=Length;=Width;publicoverridedoubleGetArea()returnLength*Width;publicdoublePerimeterIs()return(2*(Length+Width);/派生类Square,从Rectangular类中派生publicclassSquare:
RectangularpublicSquare(stringColor,doubleSide):
base(Color,Side,Side);publicclassTestInheritancepublicstaticvoidMain(stringargs)CircleCir=newCircle(orange,;(Circlecoloris0,Circleareais1,(),();RectangularRect=newRectangular(red,;(Rectangularcoloris0,Rectangularareais1,RectangularPerimeteris2,(),(),();SquareSqu=newSquare(green,;(Squarecoloris0,SquareAreais1,Squareperimeteris2,(),(),();
(2)运行以下关于接口的程序,理解程序中定义的两个接口和一个类,接口之间也有继承关系以及继承了接口中的方法;接口只能定义方法,实现要由类或者结构来完成等概念。
并给出运行结果的截图。
usingSystem;using;/定义接口IPartApublicinterfaceIPartAvoidSetDataA(stringsataA);/定义接口IPartB,继承接口IPartApublicinterfaceIPartB:
IPartAvoidSetDataB(stringdataB);/定义类SharedClass,继承接口IPartBpublicclassSharedClass:
IPartBprivatestringDataA;privatestringDataB;/实现接口IPartA的方法SetDataApublicvoidSetDataA(stringdataA)DataA=dataA;(0,DataA);/实现接口IPartB的方法SetDataBpublicvoidSetDataB(stringdataB)DataB=dataB;(0,DataB);classProgramstaticvoidMain(stringargs)SharedClassa=newSharedClass();(interfaceIPartA);(interfaceIPartB);