版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《C#语言程序设计》实验报告学院: 信息学院专业: 计算机科学与技术指导教师:报告人:学号:班级:实验一简单编程练习一、目的与要求1、熟悉VisualStudio.NET2、熟悉C#源程序语言的编辑、编译和运行过程3、能够创建、编译和执行一个简单的C#程序二、实验仪器Windows操作系统,MicrosoftVisualStudio.NET2010。三、实验内容开发一个简单的控制台应用程序,该程序完成一段字符的输入,然后输出该字符串。开发一个简单的Windows串。四、实验过程及结果控制台应用程序.NET2010。在模板一栏选择“控制台应用程序”,在名称一栏输入项目的名称。统提供的默认路径。按确定以后用下面的代码替换Program.csusingSystem;namespaceTestConsole{classProgram{staticvoidMain(){stringstr;System.Console.WriteLine("Pleaseinputastring!");str=System.Console.ReadLine();System.Console.WriteLine(str);}}}(6)运行应用程序(ctrl+F5)。Windows新建项目,选择Windows。在主窗体上放置一个TextBoxButton。选中TextBox,展开它的属性面板(单击鼠标右键,选择属性),Name属性设txtContent,Text选中Button,展开它的属性面板,将它的Name属性设置为btnType,Text属性设置为“显示”。在窗体上鼠标双击按钮,在生成的事件处理方法内添加如下的代码:txtContent.Text="hello!";(6)运行应用程序(ctrl+F5)。五、实验总结C#较其他语言比如Java,在可视化界面方面更方便。采用拖拽式的界面设计操作,对新手来说更好入门。除了界面其他方面和其他语言还有一定区别。1、必须借助.NETFramework类库实现2、必须定义类3、类的代码主要由方法组成4、C#程序中的方法的结构由头部和方法体构成5、C#程序的输入与输出操做:需要借助Console的类方法(ReadLine、WriteLine)实验二控制结构编程练习一、目的与要求1、掌握分支结构语句的语法书写格式2、掌握循环结构语句的语法书写格式3、综合利用各种结构语句完成特定的任务二、实验仪器Windows操作系统,MicrosoftVisualStudio.NET2010。三、实验内容开发一个简单的控制台应用程序,求1!+2!+3!+„„+10!。四、实验过程及结果1.1!+2!+3!+„„+10!.NET2010。在模板一栏选择“控制台应用程序”,在名称一栏输入项目的名称。按确定以后用下面的代码替换Program.csusingSystem;classEx2{publicstaticvoidMain(){inti,k,m=1,sum=0;for{for(k=1;k<=i;k++)m=m*k;sum=sum+m;m=1;}Console.WriteLine("1!+2!+3!+……+10!={0}",sum);}}(5)运行应用程序(ctrl+F5)。一维数组排序编程.NET。在模板一栏选择“控制台应用程序”,在名称一栏输入项目的名称。按确定以后用下面的代码替换Program.csusingSystem;namespace{classmaopo{publicstaticvoidMain(){int[]a=newint[10];请输入10for(inti=0;i<10;i++){Console.Write("第[{0}]个数:",i+1);a[i]=Int32.Parse(Console.ReadLine());}Console.WriteLine("排序前的十个数是:");for(inti=0;i<10;i++){Console.Write("{0}\t",a[i]);}Console.WriteLine();inttemp;//临时变量for(intj=0;j<9;j++){for(inti=0;i<9-j;i++){if(a[i]>a[i+1]){temp=a[i];a[i]=a[i+1];a[i+1]=temp;}}}for(inti=0;i<10;i++){Console.WriteLine("排序后的结果是:");Console.Write("{0}\t",a[i]);}Console.WriteLine();}}}(5)运行应用程序(ctrl+F5)。五、实验总结而无需每次都编写相同的代码。whiledo始时进行,而不是最后。如果测试结果为false,循环代码将不会被执行,而直接执行循环后面的代码。分支是控制下一步要执行哪些代码的过程。要跳转的代码是由某个条件语句来控制的,这个条件语句使用布尔逻辑,对测试值和一个或多个可能的值进行比较。C#中的分支结构有以下三种:1、三元运算其语法如下:<条件运算>?<运算真的结果>:<运算假的结果>2、if语句其最简单语法:if(<条件运>)<运算真的结>;当然也可以将else语句和if语句合并使用,指定其他的代码。如<条件运的结果为false时就执行else语句其语法结构如下:if(<条件运算>){ <运算真的结果>}else{ <运算假的结果>}3我们知道当进行的比较少的情况下用if与else语句是很方便的但是如果我们进行很多的比较时,就应该考虑使用另一种分支结构语句。实验三类设计练习一、目的与要求1、掌握C#语言定义类的方法。2、掌握派生类的设计方法。3、理解运行时多态的含义。二、实验仪器Windows操作系统,MicrosoftVisualStudio.NET2010。三、实验内容Rectangle,Circle,Cylinder三个类,CircleRectangular,Cylinder继承于Circle。在Rectangle类中需要定义属性,虚拟的Area()方法,虚拟的NameToString()CircleArea()Name属性,重写ToString()方法,定义周长方法。在Cylinder类中要定义Volume方法,重写Area,ToString方法,Name属性。定义一个Test类,加入主方法,在主方法中分别定义三个类的对象和实例;定义Rectangle方法。四、实验过程及结果.NET2010。在模板一栏选择“控制台应用程序”,在名称一栏输入项目的名称。usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceConsoleApplication2{publicclassRectangle{publicconstdoublepi=Math.PI;privateintx,y;privatedoublewidth,height;publicRectangle(intx,inty,doublewidth,doubleheight){this.x=x;this.y=y;this.width=width;this.height=}publicintY{get{returny;}set{y=value;}publicintX{get{returnx;}set{x=value;}publicdoubleHeight{get{returnheight;}set{height=value;}publicdoubleWidth{get{returnwidth;}set{width=value;}publicvirtualdoubleArea()//定义虚拟方法{returnheight*width;}publicvirtualstringName//虚拟属性{get{}}
return"矩形";publicoverridestringToString(){return("左上角坐标"+"("+X+","+Y+")"+"宽"+width+"高"+height);}}}usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceConsoleApplication2{publicclassCircle:Rectangle{privateintxValue,yValue;privatedoubleradius;publicCircle(intx,inty,doubler):base(x-(int)r,y-(int)r,2*r,2*r){this.xValue=x;this.yValue=y;this.radius=r;}publicintYValue//圆心坐标{get{returnyValue;}set{yValue=value;}publicintXValue{get{returnxValue;}set{xValue=value;}publicdoubleRadius{get{returnradius;}set{radius=value;}publicdoubleDiameter//直径{get{}}
returnWidth;publicdoubleCircumference(){return2*pi*radius;}publicoverridedoubleArea()//重写虚拟方法{returnpi*radius*radius;}publicoverridestringName//重写虚拟属性{get{return"圆";}}publicoverridestringToString(){return("圆心:"+"("+xValue+","+yValue+")"+"半径"+Radius);}}}usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceConsoleApplication2{classCylinder:Circle{privatedoubleh;publicCylinder(intx,inty,doubler,doubleh):base(x,y,r){H=h;}publicdoubleH{get{returnh;}set{h=value;}}publicoverridedoubleArea(){returnpi*Radius*Radius;}publicdoubleVolume(){returnbase.Area()*H;}publicoverridestringName{get{return"圆柱";}}publicoverridestringToString(){returnbase.ToString()+"高"+H;}}}usingSystem;usingSystem.Collections.Generic;usingusingnamespaceConsoleApplication2{publicclassTest{publicstaticstringShowArea(Rectangle[]Items){stringoutput="";foreach(RectangleIteminItems)output+="\n"+Item.Name+":"+Item.ToString()+"面积"+Item.Area();returnoutput;}publicstaticvoidMain(){Rectanglerectangle1=newRectangle(0,0,35.2,100);Circlecircle1=newCircle(10,8,10);CylinderCylinder1=newCylinder(12,6,10.35,25.6);Rectangle[]shape=newRectangle[3];shape[0]=rectangle1;shape[1]=circle1;shape[2]=Cylinder1;stringoutput=ShowArea(shape);output+=" Cylinder1.Volume();Console.WriteLine(output,}}}(4)运行应用程序(ctrl+F5)。五、实验总结class总结:1virtual标记;2,虚方法在父类中必须有实现,哪怕是空实现3,子类继承父类后,可以选择对虚方法进行重写也可以选择不进行重写;4class总结:1virtual标记;2,虚方法在父类中必须有实现,哪怕是空实现3,子类继承父类后,可以选择对虚方法进行重写也可以选择不进行重写;4方法名,参数列表完全一致;5virtualoverride的时候都可以重写。1.实现继承和接口继承*实现继承:表示一个类型派生于基类型,它拥有该基类型的所有成员字段和函数。在实现使用这种类型的继承。*具有某些可用的特性时,最好使用这种类型的继承。2.多重继承C#C#C#System.ObjectC#(Object之外)都有一个基类,还可以有任意多个接口。3.结构的继承System.ValueType不能编码实现类型层次的结构,但结构可以实现接口。实验四委托事件处理编程一、目的与要求掌握代理的定义,代理的实例化和代理的调用。掌握代理的本质。的实现。了解事件参数类的定义和使用方法。二、实验仪器Windows操作系统,MicrosoftVisualStudio.NET2010。三、实验内容在一个文本框中输入圆的半径,回车之后,将半径的值赋给circle类(自定义的类)的R方法,事件处理方法才能根据半径的值进行计算。四、实验过程及结果”Windows第二个TextBoxMultiline属性设置为true,ReadOnly属性设置为true,如下图所示。usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceEventExample{classRadiusEventArgs:EventArgs//事件参数类的定义{privatedoubler;public RadiusEventArgs(doubler){this.r=r;}publicdoubleR{get{}}}
returnr;classCircle //Circle类的定义{privatedoubler;publicdelegatevoidMyDelegate(objectob,RadiusEventArgs)e;//定义代理publiceventMyDelegate radiusEvent; publicdoubleR{set{r=value;}}}}回到主窗体的类,添加Circle类的对象;radiusEvent事件的实例化(法);编写事件处理方法。publicpartialclassForm1:Form{privateCirclec;publicForm1(){InitializeComponent();Circle;c.radiusEvent}voidc_radiusEvent(objectob,RadiusEventArgse){textBox2.Text="面积="+(Math.PI*e.R*e.R).ToString()+"\r\n"+"周长="+(2*Math.PI*e.R).ToString()+"\r\n"+"体积="+(4.0/3*Math.PI*e.R*e.R*e.R).ToString();}textBox1KeyDown事件,判断当输入回车时修改Circle类的R属性。c.R=Convert.ToDouble(textBox1.Text);5.运行程序,测试设计的功能。五、实验总结代理就是用来定义指向方法的引用代理声明的语法:[public/private]delegate<><>(<2.代理声明相当于类的定义。有了类的定义后我们要还需生成这个类的对象;同样有了代理的声明我们还需要“实例化”代理委托的方法的使用可以向其他任何方法一样,具有参数和返回值。委托与代理的比较代理:是把一些事情交给某人帮忙去完成。委托:是当某件事情发生的时候,顺便干某件事情。委托就相当于一个触发器罢了。实验四WinForm程序设计一、目的与要求Windows应用程序的创建方法。掌握代理的本质。的实现。了解事件参数类的定义和使用方法。二、实验仪器Windows操作系统,MicrosoftVisualStudio.NET2010。三、实验内容创建一个Windows应用程序能实现简单的打字功能。首先随机生成一段英文字母序列,界面类似下面的形式:在窗体上需要安装一个定时器,出题后设置打字总时间启动定时器,定时器每触发一次click事件修改一次剩余时间,当剩余时间为零时不允许再答题。在输入字符的过程中对输错的字符给出提示。四、实验过程及结果创建名为TyperWindows应用程序。在主窗体上放置如示例所示的控件。两个、三个按钮和多个Label。分别设置好它们的属性。在窗体上放置一个定时器,映射定时器的tickInterval属性设置为1000,即一秒钟更新一次label。if(time>0){time--;inttime1=time/inttime2=time%label3.Text=time1+":"+time2;}else{timer1.Enabled=false;richTextBox2.Enabled=false;MessageBox.Show("正确"+h+"个");}在窗体的构造方法中对存放固定字符的数组进行初始化,例如:a=newchar[]{'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Z','a','b','c','d','e','
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026 年安全生产题库(500 题完整版)
- (新)检讨书总结贺词写作指南介绍2篇
- 生产计划部部门经理岗位职责
- 老年病房健康指导手册
- 人工智能初创公司融资
- 放射性脑病护理-1
- 健康宣教责任人职责
- 宫内节育器置入指南
- 中班幼儿防疫教育
- 2026年用电安全科普知识讲座
- 《商务数据采集与处理》课件 第1节:采集基础
- 2026广东工贸职业技术学院招聘事业编制人员18人笔试备考试题及答案详解
- 专项突破八 电学分类讨论类相关计算 学案(含答案)2026年中考物理复习考点过关(河北)
- 2025年甘肃庆阳市地理生物会考真题试卷(+答案)
- 2025河南省中考题数学试题(原卷版)
- 福建投资集团招聘笔试真题
- 2026年无损检涡流检二级考核模拟题库附参考答案详解【考试直接用】
- 风险预警及处置工作制度
- 2026年春教科版(新教材)小学科学三年级下册第三单元《只有一个地球》知识点清单
- 涉密地理信息保密制度
- 2025-2026统编版三年级语文下册第二单元素养达标(B卷)(含答案)
评论
0/150
提交评论