ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:924.82KB ,
资源ID:3639781      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3639781.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C#实验报告S8.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C#实验报告S8.docx

1、C#实验报告S8实验8实验日期和时间:2014/11/16实验室:1栋实验楼班级:12计科4学号:20123569姓名:施文君实验环境:硬件:Windows 7旗舰版( 32位/ DirectX 11 ) ,VS2010软件:CPU:英特尔 Pentium(奔腾) 双核 T4300 2.10GHz,内存:2 GB ( 海力士 DDR2 800MHz )硬盘:希捷 ST9500325AS ( 500 GB )显卡:ATI Mobility Radeon HD 4570 (M92) ( 512 MB / 华硕 )实验主要任务:1、设计一个Windows应用程序,随机生成0100之间的10个数字,并

2、通过实现升序排列。操作步骤如下:(1)在Windows窗体中添加窗体控件。(2)切换到源代码编辑视图,在窗体类中定义委托、排序的方法。(3)编写按钮的Click事件方法。(4)运行程序并测试程序。2、设计一个Windows应用程序,模拟高温高压锅炉降压处理。操作步骤如下:(1)在Windows窗体中添加窗体控件。其中,Timer1为计时器控件,用于产生计时事件;pictureBox1是图像框控件,用于显示图片。(2)切换到源代码编辑视图,在窗体类中定义锅炉数据参数BoilerArgs和锅炉类Boiler。前者在发生警报时传递数据给事件接收器,后者包含警报事件,并且能触发警报。(3)在窗体类的构

3、造函数中,创建锅炉对象并预订警报事件。(4)在窗体类中,声明警报事件方法boiler_Alarm。(5)编写“启动锅炉”和“手动降压”按钮的Click事件方法以及Timerl控件的Tick事件方法。(6)运行程序并测试程序。以下内容填写请利用截屏图片和文字对实验原理和实验效果进行说明任务1( )完成情况:实际效果如下:1. 设计效果和代码如下:int a = new int10; delegate bool Compare(int x, int y); void SortArray(Compare compare) for (int i = 0; i a.Length; i+) for (in

4、t j = 0; j = 1; j+) if (compare(ai, aj) int t = ai; ai = aj; aj = t; bool Ascending(int x, int y) return x y; void display() textBox2.Text = ; foreach (int i in a) textBox2.Text += i + rn; private void button1_Click(object sender, EventArgs e) textBox1.Text = ; textBox2.Text = ; Random r = new Rando

5、m(); for (int i = 0; i a.Length; i+) ai = r.Next(100); textBox1.Text += ai + rn; private void button2_Click(object sender, EventArgs e) SortArray(new Compare(Ascending); display(); private void button3_Click(object sender, EventArgs e) SortArray(new Compare(Desecding); display(); 2. 调试运行的结果如下:自我评价:达

6、到了实验预计的效果。任务2( )完成情况:实际效果如下:1.设计效果和代码如下: public class BoilerArgs : EventArgs private int pressure; public BoilerArgs(int n) pressure = n; public int Press get return pressure; public class Boiler public int k; public Boiler() k = 0; public EventHandler onAlarm; public void ProcessAlarm() this.onAlar

7、m(this, new BoilerArgs(k); private Boiler boiler; public Form1() InitializeComponent(); boiler = new Boiler(); if (boiler.onAlarm = null) boiler.onAlarm += new EventHandler(boiler_Alarm); private void boiler_Alarm(object sender, BoilerArgs e) if (e.Press 50 & e.Press = 80 & e.Press = 90 & e.Press 10

8、0) lblShow.Text = 红色警告!; else if (e.Press = 100) lblShow.Text = 已经降压!; txtPressure.Text = 30 + MPa; boiler.k = 30; private void btnStart_Click(object sender, EventArgs e) autoTimer.Start(); private void btmManual_Click(object sender, EventArgs e) txtPressure.Text = 30 + MPa; boiler.k = 30; private v

9、oid autoTimer_Tick(object sender, EventArgs e) boiler.k+; txtPressure.Text = boiler.k + MPa; boiler.ProcessAlarm(); 2.调试运行的结果如下:自我评价:达到了实验预计的效果。实验原理C#中事件机制的工作过程如下:(1)将实际应用中需通过事件机制解决的问题对象注册到相应的事件处理程序上,表示今后当该对象的状态发生变化时,该对象有权使用它注册的事件处理程序。(2)当事件发生时,触发事件的对象就会调用该对象所有已注册的事件处理程序。一、定义委托定义委托的语法如下: delegate 返回

10、类型 委托名();定义委托和定义方法很相似,委托没有具体的实现体,由关键字delegate声明,直接以分号结束。委托能够代表什么样的方法,由它的返回值类型和参数列表决定。如下定义如下委托:public delegate void MyDelegate(string name);那么使用MyDelegate委托代表的只可以是没有返回值,参数为一个字符串的方法。二、实例化委托定义了委托之后,如何使用委托代表方法执行呢?首先要实例化委托。实例化委托就是将其指向某个方法,即调用委托的构造函数,并将相关联的方法作为参数传递。如:如一个方法 private int Add(int num1,int num

11、2) return(num1+num2); 委托声明了以后,就可以象类一样进行实例化,实例化时把要引用的方法(如:Add)做为参数,这样委托和方法就关联了起来,就可以用委托来引用方法了。委托和所引用的方法必须保持一致:1、参数个数、类型、顺序必须完全一致。2、返回值必须一致。3、传入的方法中不能带参数,只写方法名。三、调用委托要调用委托的方法用委托的对象加参数,如果参数为空,也要加小括号。为方法创建一个委托,然后立即通过这个委托调用该方法并没有太大意义,因为直接调用方法更简单。动态调用方法时,委托才真正显示出它的效用。using System;delegate int Operand(int

12、a, int b); /第一步:委托声明class Class1static void Main(stringargs) Class1 c1 = new Class1(); Operand ope = new Operand(c1.Add); /委托实例化,注意参数是要使用的参数名,且不带括号 Console.WriteLine(ope(10, 20); /委托调用,调用委托的方法用委托的对象加参数 Console.ReadLine();/定义一个方法,求两个加数的和private int Add(int num1, int num2) return (num1 + num2);总结你在完成任

13、务1-5的过程中遇到的问题及解决的方法:我在调试运行任务一时,老是出现数组排列不正确的现象,我仔细检查发现是排序算法写错了,我修改后就可以执行了,我明白了再简单的程序都要认真写,这是程序员应有的品质。本次实验小结:本次实验又加深了我对label、button和textBox等控件的应用,掌握了事件的概念,理解了事件处理的机制,掌握了委托的声明、实例化与使用。在设计程序的过程中理解了事件驱动编程的思想和Windows应用程序事件驱动编程方法,也掌握到事件的编程方法,包括事件的声明、预订和引用。要求:1. 报告格式和内容要求: a. 内容和格式整齐。大标题采用黑体四号字加粗,小标题采用小四号字加粗

14、。正文采用五号宋体,单倍行距。 b. 贴图时请剪裁到适当大小,要保证打印时可以看清,但也不要太大以免“越界”。 c. 不要在报告中写与实验无关的话,内容要有条理、完整、并能突出重点,要将遇到的主要问题说明。2. 文件格式要求: a. 将实验成果放入一个文件夹中,文件夹的内容包括:本实验报告、项目。 b. 文件夹以“学号姓名_S1”为文件名。其中,S1表示这是实验1的报告,S大写,以后的实验报告以类似方法编号顺延,注意:你的学号放在姓名前。 c. 注意:所有文件保存后关闭,然后再打包成RAR文件,以免提交的内容丢失或打不开。3. 提交方式和时间:一周内完成。可以将文件包发到我邮箱zcwang。4. 主动查阅资料,坚持自己亲手完成实验,弄清每个步骤和相关原理。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1