欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOC文档下载  

    C语言程序设计实验报告.doc

    • 资源ID:21189       资源大小:234KB        全文页数:18页
    • 资源格式: DOC        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言程序设计实验报告.doc

    wordC#语言程序设计实 验 报 告实验一 简单编程练习一、目的与要求1、熟悉集成开发环境(IDE)2、熟悉C#源程序语言的编辑、编译和运行过程3、能够创建、编译和执行一个简单的C#程序二、实验仪器Windows操作系统,Microsoft Visual Studio .NET 2010。三、实验内容1.开发一个简单的控制台应用程序,该程序完成一段字符的输入,然后输出该字符串。2.开发一个简单的Windows应用程序,该程序通过鼠标单击按钮在文本框中显示一行字符串。四、实验过程与结果 1启动.NET 2010。 2在“文件菜单上找到“新建->“项目,打开“新建项目对话框。 3在模板一栏选择“控制台应用程序,在名称一栏输入项目的名称。 4位置一栏内指定的是项目存放的目录,可以更改为自己定制的目录,也可以使用系统提供的默认路径。 5按确定以后用下面的代码替换Program.cs已有的所有代码:using System;namespace TestConsole class Program static void Main() string str; System.Console.WriteLine("Please input a string !"); str = System.Console.ReadLine(); System.Console.WriteLine(str); 6运行应用程序(ctrl + F5)。1新建项目,选择Windows应用程序,输入名称为:TestWindows。2在主窗体上放置一个TextBox和一个Button。3选中TextBox,展开它的属性面板单击鼠标右键,选择属性,将它的Name属性设置为txtContent,Text属性设置为空。4选中Button,展开它的属性面板,将它的Name属性设置为btnType,Text属性设置为“显示。5在窗体上鼠标双击按钮,在生成的事件处理方法内添加如下的代码:txtContent.Text = "hello!"6运行应用程序(ctrl + F5)。五、实验总结C#较其他语言比如Java,在可视化界面方面更方便。采用拖拽式的界面设计操作,对新手来说更好入门。除了界面其他方面和其他语言还有一定区别。1、必须借助 .NET Framework类库实现2、必须定义类3、类的代码主要由方法组成4、C#程序中的方法的结构由头部和方法体构成5、C#程序的输入与输出操做:需要借助Console的类方法(ReadLine、WriteLine)实验二 控制结构编程练习一、目的与要求1、掌握分支结构语句的语法书写格式2、掌握循环结构语句的语法书写格式3、综合利用各种结构语句完成特定的任务二、实验仪器Windows操作系统,Microsoft Visual Studio .NET 2010。三、实验内容1. 开发一个简单的控制台应用程序,求1!+2!+3!+10!。2. 开发一个简单的控制台应用程序,该程序完成一个一维数组排序编程,然后输出该数组。四、实验过程与结果1. 1!+2!+3!+10! 1启动.NET 2010。 2在“文件菜单上找到“新建->“项目,打开“新建项目对话框。 3在模板一栏选择“控制台应用程序,在名称一栏输入项目的名称。4按确定以后用下面的代码替换Program.cs已有的所有代码:using System;class Ex2public static void Main()int i,k,m=1,sum=0;for (i=1;i<=10;i+)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)。2. 一维数组排序编程1启动.NET 2010。2在“文件菜单上找到“新建->“项目,打开“新建项目对话框。3在模板一栏选择“控制台应用程序,在名称一栏输入项目的名称。4按确定以后用下面的代码替换Program.cs已有的所有代码:using System;namespace shuzuclass maopopublic static void Main()int a=new int10;Console.WriteLine("请输入10个整数");for(int i=0;i<10;i+)Console.Write("第0个数:",i+1);ai=Int32.Parse(Console.ReadLine();Console.WriteLine("排序前的十个数是:");for(int i=0;i<10;i+)Console.Write("0t",ai);Console.WriteLine();int temp;/临时变量for(int j=0;j< 9;j+)for(int i=0;i<9-j;i+)if(ai>ai+1)temp=ai; ai=ai+1;ai+1=temp;for (int i=0;i<10;i+)Console.WriteLine("排序后的结果是:");Console.Write("0t",ai);Console.WriteLine();5运行应用程序(ctrl + F5)。五、实验总结循环就是重复执行一些语句。这个技术使用起来非常方便,因为可以对操作重复任意屡次,而无需每次都编写一样的代码。while循环非常类似于do循环,但有一个重要的区别:while语句中的布尔测试是在循环开始时进展,而不是最后。如果测试结果为false,循环代码将不会被执行,而直接执行循环后面的代码。分支是控制下一步要执行哪些代码的过程。要跳转的代码是由某个条件语句来控制的,这个条件语句使用布尔逻辑,对测试值和一个或多个可能的值进展比拟。 C#中的分支结构有以下三种: 1、三元运算 其语法如下: <条件运算>?<运算真的结果>:<运算假的结果>2、if语句 其最简单语法: if(<条件运算>) <运算真的结果> 当然也可以将else语句和if语句合并使用,指定其他的代码。如果<条件运算>的结果为false时就执行else语句。其语法结构如下: if(<条件运算>) <运算真的结果> else <运算假的结果> 3、我们知道当进展的比拟少的情况下用if与else语句是很方便的,但是如果我们进展很多的比拟时,就应该考虑使用另一种分支结构:switch语句。实验三 类设计练习一、目的与要求1、掌握C#语言定义类的方法。2、掌握派生类的设计方法。3、理解运行时多态的含义。二、实验仪器Windows操作系统,Microsoft Visual Studio .NET 2010。三、实验内容1. 依次定义Rectangle, Circle, Cylinder三个类,Circle类继承于Rectangular,Cylinder继承于Circle。在Rectangle类中需要定义属性,虚拟的Area()方法,虚拟的Name属性,重写ToString()方法;在Circle类中需要定义属性,重写Area()方法,重写Name属性,重写ToString()方法,定义周长方法。在Cylinder类中要定义Volume方法,重写Area,ToString方法,Name属性。 定义一个Test类,参加主方法,在主方法中分别定义三个类的对象和实例;定义Rectangle类的对象数组,将数组元素分别引用到刚定义的三个实例上,然后通过基类对象调用重写的方法。四、实验过程与结果 1启动.NET 2010。 2在“文件菜单上找到“新建->“项目,打开“新建项目对话框。 3在模板一栏选择“控制台应用程序,在名称一栏输入项目的名称。using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication2 public class Rectangle public const double pi = Math.PI; private int x, y; private double width, height; public Rectangle(int x, int y, double width, double height) this.x = x; this.y = y; this.width = width; this.height = height; public int Y get return y; set y = value; public int X get return x; set x = value; public double Height get return height; set height = value; public double Width get return width; set width = value; public virtual double Area()/定义虚拟方法 return height * width; public virtual string Name /虚拟属性 get return "矩形" public override string ToString() return ("左上角坐标" + "(" + X + "," + Y + ")" + " 宽 " + width + " 高 " + height); using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication2 public class Circle : Rectangle private int xValue, yValue; private double radius; public Circle(int x, int y, double r) : base(x - (int)r, y - (int)r, 2 * r, 2 * r) this.xValue=x; this.yValue=y; this.radius=r; public int YValue/圆心坐标 get return yValue; set yValue = value; public int XValue get return xValue; set xValue = value; public double Radius get return radius; set radius = value; public double Diameter/直径 get return Width; public double Circumference() return 2*pi*radius; public override double Area() /重写虚拟方法 return pi * radius * radius; public override string Name/重写虚拟属性 get return "圆" public override string ToString() return ("圆心:" + "(" + xValue + "," + yValue + ")" + " 半径 " + Radius); using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication2 class Cylinder : Circle private double h; public Cylinder(int x, int y, double r, double h) : base(x, y, r) H = h; public double H get return h; set h = value; public override double Area() return pi * Radius * Radius; public double Volume() return base.Area() * H; public override string Name get return "圆柱" public override string ToString() return base.ToString() + " 高 " + H; using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication2 public class Test public static string ShowArea(Rectangle Items) string output = "" foreach (Rectangle Item in Items) output += "n" + Item.Name + ":" + Item.ToString() + " 面积 " + Item.Area(); return output; public static void Main() Rectangle rectangle1 = new Rectangle(0, 0, 35.2, 100); Circle circle1 = new Circle(10, 8, 10); Cylinder Cylinder1 = new Cylinder(12, 6, 10.35, 25.6); Rectangle shape = new Rectangle3; shape0 = rectangle1; shape1 = circle1; shape2 = Cylinder1; string output = ShowArea(shape); output += " 体积 " + Cylinder1.Volume(); Console.WriteLine(output, "运行结果"); 4运行应用程序(ctrl + F5)。五、实验总结类的定义是以关键字 class 开始,后跟类的名称。类的主体,包含在一对花括号内。虚方法特点总结:1,在父类中把需要设置为虚方法的方法前加virtual标记;2,虚方法在父类中必须有实现,哪怕是空实现3,子类继承父类后,可以选择对虚方法进展重写也可以选择不进展重写;4,当子类重写父类方法的时候,必须保证重写后的方法和原方法的访问修饰符,返回值类型,方法名,参数列表完全一致;5,当方法的标记是virtual和override的时候都可以重写。*实现继承:表示一个类型派生于基类型,它拥有该基类型的所有成员字段和函数。在实现继承中,派生类型采用基类型的每个函数的实现代码,除非在派生类型的定义中指定某个函数的实现代码。在需要给现有的类型添加功能,或许多相关的类型共享一组重要的公共功能时,可以使用这种类型的继承。*接口继承:表示一个类型只继承了函数的签名,没有继承任何的代码。在需要指定该类型具有某些可用的特性时,最好使用这种类型的继承。C#不支持多重继承,但C#允许类型派生自多个接口多重接口继承。这说明,C#类可以派生自另一个类和任意多个接口。更准确的说,因为System.Object是一个公共的基类,所以每个C#除Object之外都有一个基类,还可以有任意多个接口。使用结构的一个限制是结构不支持实现继承,但每个结构都自动派生自System.ValueType。不能编码实现类型层次的结构,但结构可以实现接口。同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。换句话说,实际上就是同一个类型的实例调用“一样的方法,产生的结果是不同的。这里的“一样打上双引号是因为这里的一样的方法仅仅是看上去一样的方法,实际上它们调用的方法是不同的。实验四 委托事件处理编程一、目的与要求1.掌握代理的定义,代理的实例化和代理的调用。2.掌握代理的本质。3.掌握事件代理的定义,事件的定义,事件的触发以与实例化事件代理和事件处理方法的实现。4.了解事件参数类的定义和使用方法。二、实验仪器Windows操作系统,Microsoft Visual Studio .NET 2010。三、实验内容在一个文本框中输入圆的半径,回车之后,将半径的值赋给circle类自定义的类的R属性,从而触发一个事件,在主窗体类中设计事件处理方法,在事件处理方法中要根据半径的值计算对应的圆的面积,周长和对应的球的体积。计算的结果通过文本框的方式显示出来。注意需要定义一个事件参数类来记录半径的值,事件触发后将半径的值传递给事件处理方法,事件处理方法才能根据半径的值进展计算。四、实验过程与结果 1.创建一个名为“EventExample的Windows应用程序,在主窗体上放置两个TextBox,将第二个TextBox的Multiline属性设置为true,ReadOnly属性设置为true,如如下图所示。 2.向应用程序添加一个类,在对应文件中添加如下代码:using System;using System.Collections.Generic;using System.Text;namespace EventExample class RadiusEventArgs : EventArgs /事件参数类的定义 private double r; public RadiusEventArgs(double r) this.r = r; public double R get return r; class Circle /Circle 类的定义 private double r; public delegate void MyDelegate(object ob, RadiusEventArgs e);/定义代理 public event MyDelegate radiusEvent; /定义事件 public double R set r = value; 3.回到主窗体的类,添加Circle类的对象;radiusEvent事件的实例化封装事件处理方法;编写事件处理方法。 public partial class Form1 : Form private Circle c; public Form1() Initializeponent(); 创建Circle类的实例; c.radiusEvent 事件实例化; void c_radiusEvent(object ob, RadiusEventArgs e) textBox2.Text = "面积=" + (Math.PI * e.R * e.R).ToString() + "rn" + "周长 =" + (2 * Math.PI * e.R).ToString() + "rn" + "体积 =" + (4.0 / 3 * Math.PI * e.R * e.R * e.R).ToString(); 4.映射textBox1的KeyDown事件,判断当输入回车时修改Circle类的R属性。c.R = Convert.ToDouble(textBox1.Text); 5.运行程序,测试设计的功能。五、实验总结代理就是用来定义指向方法的引用1.代理声明的语法: public/private delegate <返回值类型> <代理名称>(<参数列表>);“实例化: 代理声明相当于类的定义。有了类的定义后我们要还需生成这个类的对象;同样有了代理的声明我们还需要“实例化代理委托是一种引用方法的类型。一旦为委托分配了方法,委托将于该方法具有完全一样的行为。委托的方法的使用可以向其他任何方法一样,具有参数和返回值。委托与代理的比拟代理:是把一些事情交给某人帮助去完成。委托:是当某件事情发生的时候,顺便干某件事情。委托就相当于一个触发器罢了。实验四 WinForm程序设计一、目的与要求1.熟悉Windows应用程序的创建方法。2.掌握代理的本质。3.掌握事件代理的定义,事件的定义,事件的触发以与实例化事件代理和事件处理方法的实现。4.了解事件参数类的定义和使用方法。二、实验仪器Windows操作系统,Microsoft Visual Studio .NET 2010。三、实验内容创建一个Windows应用程序能实现简单的打字功能。首先随机生成一段英文字母序列,这段文本只能由英文大小写字母、数字、空格组成。用户可以在文本框中输入对应的文本,实现打字操作,待完成后,程序能给出此次打字的成绩,并重新随机生成一段文本。程序的界面类似下面的形式: 在窗体上需要安装一个定时器,出题后设置打字总时间启动定时器,定时器每触发一次click事件修改一次剩余时间,当剩余时间为零时不允许再答题。在输入字符的过程中对输错的字符给出提示。四、实验过程与结果r的Windows应用程序。2.在主窗体上放置如示例所示的控件。两个TextBox、三个按钮和多个Label,一个richTextBox。分别设置好它们的属性。3.在窗体上放置一个定时器,映射定时器的tick事件。将定时器的Interval属性设置为1000,即一秒钟更新一次label。 if (time > 0) time-; int time1 = time / 60; int time2 = time % 60; label3.Text = time1 +":"+time2; else timer1.Enabled = false; richTextBox2.Enabled = false; MessageBox.Show("正确" + h + "个"); 4.打开主窗体对应的代码文件,在成员定义中参加以下几个成员的定义:存放随机生成的源字符串对象;存放输入字符的目的字符串对象;存放固定字符的字符数组;存放设置字符个数的整型变量。5.在窗体的构造方法中对存放固定字符的数组进展初始化,例如:a = new char'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','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'6.分别映射三个按钮的单击按钮事件,对三个按钮应当起到的作用描述如下:“设置按钮,应当根据它旁边的编辑框中输入的数字来设置出题的字符个数;“开始出题并计时按钮应当构造一个随机数发生器,然后循环随机生成061X围内的随机数,将这个随机数作为字符数组的下标,继而获得随机字符串。交卷按钮要比拟源串和目标字符串之间一样字符的个数,利用消息框给出成绩。随机字符串的生成代码:string str = "" int i, t;Random rand = new Random(); for (i = 0; i < n; i+) t = rand.Next(0, 61); str += at.ToString(); richTextBox的TextChanged事件,在事件处理方法中将出错的字符进展变色显示提醒用户。参考代码如下:private void richTextBox1_TextChanged(object sender, System.EventArgs e)int t = richTextBox1.TextLength;if(t != 0)if(t> n)MessageBox.Show("输入的字符超出计划数目","警告",MessageBoxButtons.YesNo,MessageBoxIcon.Error);return ;else if(richTextBox1.Textt-1 != textBox1.Textt-1 )richTextBox1.Select(t-1,1);richTextBox1.SelectionColor = Color.Red;richTextBox1.Select(t,0);elserichTextBox1.Select(t-1,1);richTextBox1.SelectionColor = Color.Black;richTextBox1.Select(t,0);五、实验总结事件event是一个非常重要的概念,我们的程序时刻都在触发和接收着各种事件:鼠标点击事件,键盘事件,以与处理操作系统的各种事件。所谓事件就是由某个对象发出的消息。比如用户按下了某个按钮,某个文件发生了改变,socket上有数据到达。触发事件的对象称作发送者sender,捕获事件并且做出响应的对象称作接收者receiver,一个事件可以存在多个承受者。 在异步机制中,事件是线程之间进展通信的一个非常常用的方式。比如:用户在界面上按下一个按钮,执行某项耗时的任务。程序此时启动一个线程来处理这个任务,用户界面上显示一个进度条指示用户任务执行的状态。这个功能就可以使用事件来进展处理。可以将处理任务的类作为消息的发送者,任务开始时,发出“TaskStart事件,任务进展中的不同时刻发出“TaskDoing事件,并且携带参数说明任务进展的比例,任务完毕的时候发出“TaskDone事件,在画面中接收并且处理这些事件。这样实现了功能,并且界面和后台执行任务的模块耦合程度也是最低的。18 / 18

    注意事项

    本文(C语言程序设计实验报告.doc)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开