vb实验模拟图
- 格式:docx
- 大小:264.22 KB
- 文档页数:5
目录实验一整流、滤波、稳压电路 (1)实验二单级交流放大器(一) (5)实验三单级交流放大器(二) (7)实验四两级阻容耦合放大电路 (9)实验五负反馈放大电路 (11)实验六射极输出器的测试 (14)实验七 OCL功率放大电路 (16)实验八差动放大器 (18)实验九运算放大器的基本运算电路(一) (20)实验十集成运算放大器的基本运算电路(二) (22)实验十一比较器、方波—三角波发生器 (24)实验十二集成555电路的应用实验 (26)实验十三 RC正弦波振荡器 (30)实验十四集成功率放大器 (32)实验十五函数信号发生器(综合性实验) (34)实验十六积分与微分电路(设计性实验) (36)实验十七有源滤波器(设计性实验) (38)实验十八电压/频率转换电路(设计性实验) (40)实验十九电流/电压转换电路(设计性实验) (41)实验一整流、滤波、稳压电路一、实验目的1、比较半波整流与桥式整流的特点。
2、了解稳压电路的组成和稳压作用。
3、熟悉集成三端可调稳压器的使用。
二、实验设备1、实验箱(台)2、示波器3、数字万用表三、预习要求1、二极管半波整流和全波整流的工作原理及整流输出波形。
2、整流电路分别接电容、稳压管及稳压电路时的工作原理及输出波形。
3、熟悉三端集成稳压器的工作原理。
四、实验内容与步骤首先校准示波器。
1、半波整流与桥式整流:●分别按图1-1和图1-2接线。
●在输入端接入交流14V电压,调节使I O=50mA时,用数字万用表测出V O,同时用示波器的DC档观察输出波形记入表1-1中。
图1-1图1-2Vi(V) V O(V) I O (A) V O波形半波桥式2、加电容滤波:上述实验电路不动,在桥式整流后面加电容滤波,如图1-3接线,比较并测量接C 与不接C两种情况下的输出电压V O及输出电流I O,并用示波器DC档观测输出波形,记入表1-2中。
图1-33上述电路不动,在电容后面加稳压二极管电路(510Ω、VDz),按图1-4接线。
程序设计基础(Visual Basic)实验指导书西南林学院计算机与信息科学系实验说明一、实验文档下载:老师的实验上机文档下载的地址:/~hjp/下的“VB”文件夹拷贝到计算机中。
然后从该文件夹中找到本次实验的文档。
二、个人文件夹建立在实验前,请先在电脑桌面上建立个人自己的文件夹,名称以个人的姓名加学号组成。
如:“20130208001XXX”。
同学们自己个人的VB程序设计实验文档都存放在该文件夹中。
而且要求,每个实验都保存在单独的文件夹中。
如,本次实验有三个例子,那么就需要建立三个文件夹,第一个文件夹的命名可为“实验1-1”,如此类推。
相应的例子程序文件保存在相应的文件夹中。
三、实验结果上传给老师实验完成后,同学们需将自己的文件夹上传给老师,以备检查。
上传步骤如下。
1.压缩文件夹。
请将保存有VB实验上机程序的个人文件夹(在之前建立好的,如:“20130208001XXX”)进行压缩处理。
压缩方法如下:选中该文件夹,单击鼠标右键,选中“添加到“20130208001XXX.rar””。
计算机自动完成生成该文件夹的压缩文件。
2.进入FTP。
上传的地址为:ftp://192.168.1.2(或按任课老师指定的地址),输入地址后进入该FTP网。
打开“XXX”文件(该文件夹以任课老师姓名而命名)下的“上传”文件夹。
3.上传文件。
将第一步中生成的压缩文件拷贝到第二步打开的“上传”文件夹中去。
等待拷贝完成后,才能确认程序上传成功。
四、实验内容说明本实验指导书共包含15次实验上机内容。
每次实验上机内容中包括三种题型:验证题、设计题和选做题。
验证题为教材中的例题,通过参考书上的说明和操作步骤来熟悉相应知识点,一般有1-2道题。
设计题为书上习题或其他来源的题目,目的是让学生能够在不照搬照抄的情况下自己独立思考完成VB程序设计,一般有1-2道。
选做题为学有余力的同学练习,一般有1-2道。
每次实验上机学生必须完成相应的验证题和设计题。
VB6.0环境下基于USB的虚拟串口通讯实现电路图以FTDI公司的FT232BL芯片为核心设计并实现了基于USB接口的计算机与单片机之间的虚拟串口通讯。
单片机采用Philips公司P89系列单片机,完成数据的存储。
计算机在Windows 环境下利用MSComm通讯控件实现上位机与下位机之间的数据传输。
在此提出了PC机对虚拟串口的自动识别方法,并提供了程序的源代码。
实验结果表明,用虚拟串口实现计算机与单片机之间的USB通信,具有速度快,软件实现简单等优点。
0引言数据传输是现代通讯过程中的一个重要环节,在数据传输过程中,不仅要求数据传输的准确率要高,而且要求速度快、连接方便。
传统的RS232串口通讯和并口通讯都存在传输速度低、扩展性差、安装麻烦等缺点,而基于USB接口的数据传输系统能够较好地解决这些问题。
目前,USB接口以其传输速率高、即插即用、支持热插拔等优点,逐步成为PC机的标准接口。
本文中的数据传输系统采用了USB接口进行上位机与下位机之间的数据通讯。
下位机采用Philips公司P89系列单片机,完成数据的存储。
上位机通过VB6.0编程,实现上位机与下位机之间的数据传输。
1数据传输系统的总体设计系统的硬件部分主要包括2部分:上位机端和下位机端。
上位机采用PC机或笔记本电脑,操作系统为Windows XP,实现上位机和下位机之间的数据传输、显示、处理、存储及查询功能。
系统的下位机采用philips公司P89系列单片机,完成数据的存储。
下位机为一个手持的数据存储仪,由USB转串口数据转换模块、TTL转RS422总线模块、中央处理模块、显示模块、存储模块、电源模块等组成。
上位机与下位机的连接利用PC机自带的USB接口,原理框图如图1所示。
图1数据传输系统原理框图把数据记录卡插入数据存储仪内,可把卡内数据转存到存储模块。
数据存储仪通过USB口与PC机连接,把所存数据传输到上位机,上位机对数据进行显示、处理及存储。
一、程序运行界面如下图所示。
程序实现的功能:1、程序运行时,首先随机产生30个100-3000之间的任意年份,并显示在List1中。
2、当单击“判断”按钮时,选出是闰年的年份,显示在List2中。
3、当单击“排序”按钮时,将选出的闰年的年份值按从小到大的顺序排序,并重新显示在List2中。
说明:判断某一年是否是闰年有两个条件:1、能被4整除,但不能被100整除。
2、既能被4整除,又能被400整除二、在磁盘上有顺序文件test22in.txt。
要求编程实现以下功能:1.单击“读入串”按钮,从文件中读出一个字符串并显示在text1中;2.淡季“排序”按钮,将字符串按字母ASCⅡ码值从小到大排序,并显示在text2中;3.单击“追加”按钮,将排序后生成的字符串添加到文件末尾(要求采用冒泡法排序)。
三、编写程序,实现对任意字符串的加密和解密操作。
其中,对大小写英文字母的加密规则为:A→D,B→E,C→F,……,M→P,N→Q,……,W→Z,X→A,Y→B,Z→C;其他字符保持原样不变。
要求程序界面如下所示。
当在test1中输入需要加密的源文后,单击“加密”按钮,得到密文,并显示在test2中;当在test3中输入需要解密的密文后,单击“解密”按钮,得到源文,并显示在test4中。
四、建立一个成绩查询窗体如下图所示:要求在Form_Load时打开磁盘文件test42in.txt度曲数据,并将读入的学号和姓名分别添加进两个列表框中,同时将三门课的考试成绩读入c,d,e三个数组(每个数组可定义为200个元素);并将两个列表框Listindex属性置为0。
当点击姓名中任意一项,学号的Listindex应随之改变,同样点击学号中任意一项,姓名的Listindex应随之改变。
点击“查询”则将该学生的三项成绩显示在右边的三个文本框内,同时将平时成绩置空。
点击“计算”则将该学生三项成绩的平时值显示出来。
点击“退出”则结束程序。
信息技术 2005年第10期 中图分类号:TP311 文献标识码:B 文章编号:1009-2552(2005)10-0076-03利用VB编程实现实时数据曲线绘制关维娟,陈清华(安徽理工大学,淮南232001)摘 要:实时动态数据曲线的绘制与显示,是各种工业测控系统的重要功能。
而实现方法也不尽相同。
提出了一种基于VB编程,简单易懂的实时数据曲线绘制方法,实际使用证明完全能够满足实时监控要求。
文中通过一个实例介绍了其实现的具体方法。
关键词:测控系统;实时数据曲线;Visual BasicR ealization o f real-tim e d ata curve dra w ing using VB programmingG UAN Wei2juan,CHE N Qing2hua(Anhui U niversity of Science and T echnology,H u ainan232001,China) Abstract:Drawing and showing the real-time and dynamic data curve is an im portant function of the indus2 trial testing and controlling system,and various realizing methods are different.A sim ple method of real-time and dynamic data curve drawing based on VB programming is introduced in this paper,and it proved that the program could satis fy the real-time control requirements.It is illustrated by a coucrete exam ple.K ey w ords:testing and controlling system;real-time data curve;Visual Basic(VB)0 引言各种工业测控系统中,通常利用动态实时数据曲线,实时监测某点在现场工况变化下的控制稳定性。
VB图形和绘图操作VB图形和绘图操作⼀、坐标:X值:是沿X轴的位置,窗体中最左端是缺省位置0Y值:是沿Y轴的位置,窗体中最上端是缺省位置0X,Y的值可以⼩于0,也可以⼤于容器宽度或⾼度⼆、坐标值的刻度:缺省使⽤缇(Twip)为测量单位. 「Twip」中⽂译为"缇",是⼀种和屏幕⽆关的长度单位,⽬的是为了让应⽤程序元素输出到不同设备时都能保持⼀致的计算⽅式。
打印机的⼀个点,即我们说的“磅”,相当于20个 Twips,⼀英吋相当于 1440个Twips, ⼀公分(厘⽶)则相当于567 Twips ,也就是说,如果屏幕上某个对象的长度是1440 Twip的话,将会印出⼀英吋来。
由于我们在屏幕上操作时会习惯⽤「像素」(也就是我们常说的屏幕分辨率DPI,系统可以设置各种DPI值),所以我们直接输⼊数字时必须再将「像素」换算成「Twip」。
当DPI设置为96时(系统默认值),1个像素=(1/96)*1440=15 Twip;当DPI设置为120时,1个像素=(1/120)*1440=12 Twip。
当DPI为96时,如果希望窗体的⾼是「400」像素,宽是「300」像素,属性的设定值就是: Height=400×15=6000 Twip,Width =300×15=4500 Twip.在VisualBasic应⽤程序中,屏幕(Screen)是⼀个对象。
其Width和Height属性以Twip为单位反映出屏幕的宽度和⾼度。
⽽TwipsPerPixelX和TwipsPerPixelY这两个属性只与硬件有关,⽽与屏幕上可设定的分辨率⽆关。
将Width除以TwipsPerPixelX可以计算出屏幕的⽔平分辨率(像素数),同样将Height除以TwipsPerPixelY也可以计算出屏幕的垂直分辨率。
要想保持⼀个窗⼝或是控件的物理⼤⼩不变,只要计算出设计时的分辨率与实际运⾏时的分辨率的⽐值,然后根据这个⽐值来调节窗⼝和其中的控件的⼤⼩和相对位置,以及显⽰的字体尺⼨,就可以保持同⼀应⽤程序的窗⼝在不同的系统下的物理外观(当然在不同尺⼨的显⽰器上只能保持⽐例不变,物理⼤⼩还是不同的)。
3.2 实验记录(核心代码及调试过程)1.核心代码:'.............驱动力与行驶阻力平衡图Private Sub Command1_Click()Picture1.DrawWidth = 1Picture1.ClsDim i, j, n As IntegerDim Ft, Ff, Fw, Umax, Uumax As SinglePicture1.Scale (-20, 18000)-(150, -2000)Picture1.Line (0, 0)-(125, 0): Picture1.Line (0, 0)-(0, 16000)Picture1.CurrentX = 125: Picture1.CurrentY = -300: Picture1.Print "Ua(km/h)"Picture1.CurrentX = 125: Picture1.CurrentY = 192: Picture1.Print "→"Picture1.CurrentX = 5: Picture1.CurrentY = 16000: Picture1.Print "F/N"Picture1.CurrentX = -2: Picture1.CurrentY = 16000: Picture1.Print "↑"Picture1.CurrentX = -5: Picture1.CurrentY = -1: Picture1.Print "0"For i = 20 To 120 Step 20Picture1.Line (i, 0)-(i, 200)Picture1.CurrentX = i - 5: Picture1.CurrentY = -10: Picture1.Print iNext iFor i = 1000 To 15000 Step 1000Picture1.Line (0, i)-(1.5, i)Picture1.CurrentX = -15: Picture1.CurrentY = i + 50: Picture1.Print iNext iPicture1.DrawWidth = 2For n = 600 To 4000Tq = -19.313 + 295.27 * (n / 1000) - 165.44 * (n / 1000) ^ 2 + 40.874 * (n / 1000) ^ 3 - 3.8445 * (n / 1000) ^ 4For j = 1 To 5Ft = Tq * i0 * ηt * x(j) / rFf = f * 9.8 * mUa = 0.377 * r * n / (i0 * x(j))Fw = 0.5 * 1.2258 * ca * (Ua / 3.6) ^ 2Picture1.Circle (Ua, Ft), 0.1, vbBluePicture1.Circle (Ua, (Ff + Fw)), 0.1, vbRedUmax = UmaxIf Ua > Umax ThenUmax = UaElseUmax = UmaxEnd IfNext jNext nUumax = CInt(Umax * 100) / 100Picture1.CurrentX = 40: Picture1.CurrentY = 16000: Picture1.Print "最高车速为:"; Uumax; "km/h"End Sub'...........动力特性图Private Sub Command3_Click()Picture1.DrawWidth = 1Picture1.ClsDim i, j, n As IntegerDim Ft, Fw, D As SinglePicture1.Scale (-20, 90)-(150, -10)Picture1.Line (0, 0)-(125, 0): Picture1.Line (0, 0)-(0, 85)Picture1.CurrentX = 125: Picture1.CurrentY = -3: Picture1.Print "Ua(km/h)"Picture1.CurrentX = 125: Picture1.CurrentY = 0.9: Picture1.Print "→"Picture1.CurrentX = 5: Picture1.CurrentY = 85: Picture1.Print "D"Picture1.CurrentX = -2: Picture1.CurrentY = 85: Picture1.Print "↑"Picture1.CurrentX = -5: Picture1.CurrentY = -1: Picture1.Print "0"For i = 20 To 120 Step 20Picture1.Line (i, 0)-(i, 1)Picture1.CurrentX = i - 5: Picture1.CurrentY = -1: Picture1.Print iNext iFor i = 20 To 80 Step 20Picture1.Line (0, i)-(2, i)Picture1.CurrentX = -10: Picture1.CurrentY = i + 1: Picture1.Print "0"; i / 200Next iPicture1.DrawWidth = 2For n = 600 To 4000For j = 1 To 5Tq = -19.313 + 295.27 * (n / 1000) - 165.44 * (n / 1000) ^ 2 + 40.874 * (n / 1000) ^ 3 - 3.8445 * (n / 1000) ^ 4Ft = Tq * i0 * ηt * x(j) / rUa = 0.377 * r * n / (i0 * x(j))Fw = 0.5 * 1.2258 * ca * (Ua / 3.6) ^ 2D = 200 * (Ft - Fw) / (m * 9.8)If D > 0 ThenPicture1.Circle (Ua, D), 0.1, vbBlueEnd IfNext jNext nEnd Sub'.............功率平衡图Private Sub Command4_Click()Picture1.DrawWidth = 1Picture1.ClsDim i, j, n As IntegerDim Pe, Pf, Pw As SinglePicture1.Scale (-20, 80)-(150, -10)Picture1.Line (0, 0)-(125, 0): Picture1.Line (0, 0)-(0, 75)Picture1.CurrentX = 125: Picture1.CurrentY = -3: Picture1.Print "Ua(km/h)"Picture1.CurrentX = 125: Picture1.CurrentY = 0.9: Picture1.Print "→"Picture1.CurrentX = 5: Picture1.CurrentY = 75: Picture1.Print "Pe/kw"Picture1.CurrentX = -2: Picture1.CurrentY = 75: Picture1.Print "↑"Picture1.CurrentX = -5: Picture1.CurrentY = -1: Picture1.Print "0"For i = 20 To 120 Step 20Picture1.Line (i, 0)-(i, 1)Picture1.CurrentX = i - 5: Picture1.CurrentY = -1: Picture1.Print iNext iFor i = 10 To 70 Step 10Picture1.Line (0, i)-(2, i)Picture1.CurrentX = -10: Picture1.CurrentY = i + 1: Picture1.Print iNext iPicture1.DrawWidth = 2For n = 600 To 4000For j = 1 To 5Tq = -19.313 + 295.27 * (n / 1000) - 165.44 * (n / 1000) ^ 2 + 40.874 * (n / 1000) ^ 3 - 3.8445 * (n / 1000) ^ 4Pe = Tq * n / 9550Ua = 0.377 * r * n / (i0 * x(j))Pf = (m * f * Ua / 3600) / ηtPw = (ca * Ua ^ 3 / 76140) / ηtPicture1.Circle (Ua, Pe), 0.1, vbBluePicture1.Circle (Ua, (Pf + Pw)), 0.1, vbRedNext jNext nEnd Sub'...........外特性曲线Private Sub Command5_Click()Picture1.DrawWidth = 1Picture1.ClsDim i, n As IntegerDim Pe As SinglePicture1.Scale (-400, 250)-(5000, -20)Picture1.Line (0, 0)-(4500, 0): Picture1.Line (0, 0)-(0, 200)Picture1.CurrentX = 4300: Picture1.CurrentY = -3: Picture1.Print "n(r/min)"Picture1.CurrentX = 4500: Picture1.CurrentY = 3: Picture1.Print "→"Picture1.CurrentX = 100: Picture1.CurrentY = 200: Picture1.Print "Ttq(N*m)"Picture1.CurrentX = 100: Picture1.CurrentY = 80: Picture1.Print "Pe(kw)"Picture1.CurrentX = -60: Picture1.CurrentY = 205: Picture1.Print "↑"Picture1.CurrentX = -5: Picture1.CurrentY = -1: Picture1.Print "0"For i = 500 To 4000 Step 500Picture1.Line (i, 0)-(i, 3)Picture1.CurrentX = i - 200: Picture1.CurrentY = -1: Picture1.Print iNext iFor i = 20 To 180 Step 20Picture1.Line (0, i)-(50, i)Picture1.CurrentX = -300: Picture1.CurrentY = i + 3: Picture1.Print iNext iPicture1.DrawWidth = 2For n = 600 To 4000Tq = -19.313 + 295.27 * (n / 1000) - 165.44 * (n / 1000) ^ 2 + 40.874 * (n / 1000)^ 3 - 3.8445 * (n / 1000) ^ 4Pe = Tq * n / 9550Picture1.Circle (n, Pe), 2, vbRed Picture1.Circle (n, Tq), 2, vbBlue Next nEnd Sub2.数据图表:驱动力与行驶阻力平衡图:动力特性图:爬坡度图:发动机外特性曲线:发动机功率平衡图:3.2 实验记录(核心代码及调试过程)1.核心代码:'.........加速度的倒数曲线Private Sub Command7_Click()Picture1.DrawWidth = 1Picture1.ClsDim i, j, n As IntegerDim Ff, Ft, Fw, a, δ As SinglePicture1.Scale (-20, 160)-(150, -10)Picture1.Line (0, 0)-(125, 0): Picture1.Line (0, 0)-(0, 150)Picture1.CurrentX = 125: Picture1.CurrentY = -3: Picture1.Print "Ua(km/h)"Picture1.CurrentX = 125: Picture1.CurrentY = 1.8: Picture1.Print "→"Picture1.CurrentX = 5: Picture1.CurrentY = 150: Picture1.Print "1/a"Picture1.CurrentX = -2: Picture1.CurrentY = 150: Picture1.Print "↑"Picture1.CurrentX = -5: Picture1.CurrentY = -1: Picture1.Print "0"For i = 20 To 120 Step 20Picture1.Line (i, 0)-(i, 1.5)Picture1.CurrentX = i - 5: Picture1.CurrentY = -1: Picture1.Print iNext iFor i = 10 To 140 Step 10Picture1.Line (0, i)-(2, i)Picture1.CurrentX = -10: Picture1.CurrentY = i + 1: Picture1.Print i / 10Next iPicture1.DrawWidth = 2For n = 600 To 4000For j = 1 To 5Tq = -19.313 + 295.27 * (n / 1000) - 165.44 * (n / 1000) ^ 2 + 40.874 * (n / 1000) ^ 3 - 3.8445 * (n / 1000) ^ 4Ft = Tq * i0 * ηt * x(j) / rUa = 0.377 * r * n / (i0 * x(j))Fw = 0.5 * 1.2258 * ca * (Ua / 3.6) ^ 2Ff = f * 9.8 * mδ = 1 + Iw / (m * r ^ 2) + If1 * x(j) ^ 2 * i0 ^ 2 * ηt / (m * r ^ 2) a = (Ft - Ff - Fw) / (δ * m)If a > 0 ThenPicture1.Circle (Ua, 10 / a), 0.1, vbBlueEnd IfNext jNext nEnd Sub'..............直接挡加速时间曲线Private Sub Command8_Click()Picture1.DrawWidth = 1Picture1.ClsDim i, n As IntegerDim Ff, Ft, Fw, a, δ, t, tt As SinglePicture1.Scale (-10, 90)-(60, -10)Picture1.Line (0, 0)-(55, 0): Picture1.Line (0, 0)-(0, 75)Picture1.CurrentX = 53: Picture1.CurrentY = -3: Picture1.Print "t(s)"Picture1.CurrentX = 55: Picture1.CurrentY = 0.9: Picture1.Print "→"Picture1.CurrentX = 2: Picture1.CurrentY = 75: Picture1.Print "Ua(km/h)"Picture1.CurrentX = -0.7: Picture1.CurrentY = 75: Picture1.Print "↑"Picture1.CurrentX = -3: Picture1.CurrentY = -1: Picture1.Print "0"For i = 10 To 50 Step 10Picture1.Line (i, 0)-(i, 1)Picture1.CurrentX = i - 1.5: Picture1.CurrentY = -1: Picture1.Print iNext iFor i = 10 To 70 Step 10Picture1.Line (0, i)-(1, i)Picture1.CurrentX = -5: Picture1.CurrentY = i + 1: Picture1.Print iNext it = 0For Ua = 0 To 70 Step 0.01n = Ua * i0 * x(4) / 0.377 / rIf n >= 600 ThenTq = -19.313 + 295.27 * (n / 1000) - 165.44 * (n / 1000) ^ 2 + 40.874 * (n / 1000) ^ 3 - 3.8445 * (n / 1000) ^ 4Ft = Tq * i0 * ηt * x(4) / rFw = 0.5 * 1.2258 * ca * (Ua / 3.6) ^ 2Ff = f * 9.8 * mδ = 1 + Iw / (m * r ^ 2) + If1 * x(4) ^ 2 * i0 ^ 2 * ηt / (m * r ^ 2)a = (Ft - Ff - Fw) / (δ * m)t = t + 1 * 0.01 / a / 3.6Picture1.Circle (t, Ua), 0.1, vbBlueEnd IfNext Uatt = CInt(t * 100) / 100Picture1.CurrentX = 15: Picture1.CurrentY = 80: Picture1.Print "0-70(km/h)直接挡加速时间为:"; tt; "s"End Sub2.数据图表:加速度曲线图:加速度倒数曲线:直接挡加速时间图:3.2 实验记录(核心代码及调试过程)1.核心代码'.........最高挡百公里耗油量Private Sub Command1_Click()Dim n(1 To 8), B0(1 To 8), B1(1 To 8), B2(1 To 8), B3(1 To 8), B4(1 To 8)n(1) = 815: n(2) = 1207: n(3) = 1614: n(4) = 2012: n(5) = 2603: n(6) = 3006: n(7) = 3403: n(8) = 3804B0(1) = 1326.8: B0(2) = 1354.7: B0(3) = 1284.4: B0(4) = 1122.9: B0(5) = 1141#: B0(6) = 1051.2: B0(7) = 1233.9: B0(8) = 1129.7B1(1) = -416.46: B1(2) = -303.98: B1(3) = -189.75: B1(4) = -121.59: B1(5) = -98.893: B1(6) = -73.714: B1(7) = -84.478: B1(8) = -45.291B2(1) = 72.379: B2(2) = 36.657: B2(3) = 14.524: B2(4) = 7.0035: B2(5) = 4.4763: B2(6) = 2.8593: B2(7) = 2.9788: B2(8) = 0.71113B3(1) = -5.8629: B3(2) = -2.0553: B3(3) = -0.51184: B3(4) = -0.18517: B3(5) = -0.091077: B3(6) = -0.05138: B3(7) = -0.047449: B3(8) = -0.00075215B4(1) = 0.17768: B4(2) = 0.043072: B4(3) = 0.0068164: B4(4) = 0.0018555: B4(5) = 0.00068906: B4(6) = 0.00035032: B4(7) = 0.0002823: B4(8) = -0.000038568Picture1.Scale (-10, 50)-(150, -10)Picture1.Line (0, 0)-(120, 0): Picture1.Line (0, 0)-(0, 45)Picture1.CurrentX = 120: Picture1.CurrentY = -3: Picture1.Print "Ua(km/h)"Picture1.CurrentX = 120: Picture1.CurrentY = 1: Picture1.Print "→"Picture1.CurrentX = 5: Picture1.CurrentY = 45: Picture1.Print "Qs(L/100km)"Picture1.CurrentX = -2.5: Picture1.CurrentY = 46: Picture1.Print "↑"Picture1.CurrentX = -3: Picture1.CurrentY = -1: Picture1.Print "0"For i = 20 To 100 Step 20Picture1.Line (i, 0)-(i, 1)Picture1.CurrentX = i - 6: Picture1.CurrentY = -1: Picture1.Print iNext iFor i = 10 To 40 Step 10Picture1.Line (0, i)-(3, i)Picture1.CurrentX = -12: Picture1.CurrentY = i + 1: Picture1.Print iNext ig = 3880 * 9.8f = 0.013CdA = 2.77ηt = 0.85i0 = 5.83r = 0.367Uamin = 0.377 * r * n(1) / (0.793 * i0)Qmin = 100Picture1.DrawWidth = 2For ua = Uamin To 100 Step 0.01Pe = (g * f * ua / 3600 + CdA * ua ^ 3 / 76140) / ηtnn = 0.793 * i0 * ua / (0.377 * r)For i = 1 To 7If nn >= n(i) And nn <= n(i + 1) ThenB0B0 = B0(i) + (B0(i + 1) - B0(i)) * (nn - n(i)) / (n(i + 1) - n(i))B1B1 = B1(i) + (B1(i + 1) - B1(i)) * (nn - n(i)) / (n(i + 1) - n(i))B2B2 = B2(i) + (B2(i + 1) - B2(i)) * (nn - n(i)) / (n(i + 1) - n(i))B3B3 = B3(i) + (B3(i + 1) - B3(i)) * (nn - n(i)) / (n(i + 1) - n(i))B4B4 = B4(i) + (B4(i + 1) - B4(i)) * (nn - n(i)) / (n(i + 1) - n(i))End IfNext iBe = B0B0 + B1B1 * Pe + B2B2 * Pe ^ 2 + B3B3 * Pe ^ 3 + B4B4 * Pe ^ 4Qs = Pe * Be / (1.02 * 7 * ua)Picture1.PSet (ua, Qs), vbBlueIf Qs < Qmin ThenQmin = QsUj = uaEnd IfNext uaText1.Text = CInt(Uj * 100) / 100Text2.Text = CInt(Qmin * 100) / 100End Sub'..............次高挡百公里耗油量Private Sub Command2_Click()Picture1.ClsPicture1.DrawWidth = 1Dim n(1 To 8), B0(1 To 8), B1(1 To 8), B2(1 To 8), B3(1 To 8), B4(1 To 8)n(1) = 815: n(2) = 1207: n(3) = 1614: n(4) = 2012: n(5) = 2603: n(6) = 3006: n(7) = 3403: n(8) = 3804B0(1) = 1326.8: B0(2) = 1354.7: B0(3) = 1284.4: B0(4) = 1122.9: B0(5) = 1141#: B0(6) = 1051.2: B0(7) = 1233.9: B0(8) = 1129.7B1(1) = -416.46: B1(2) = -303.98: B1(3) = -189.75: B1(4) = -121.59: B1(5) = -98.893: B1(6) = -73.714: B1(7) = -84.478: B1(8) = -45.291B2(1) = 72.379: B2(2) = 36.657: B2(3) = 14.524: B2(4) = 7.0035: B2(5) = 4.4763: B2(6) = 2.8593: B2(7) = 2.9788: B2(8) = 0.71113B3(1) = -5.8629: B3(2) = -2.0553: B3(3) = -0.51184: B3(4) = -0.18517: B3(5) = -0.091077: B3(6) = -0.05138: B3(7) = -0.047449: B3(8) = -0.00075215B4(1) = 0.17768: B4(2) = 0.043072: B4(3) = 0.0068164: B4(4) = 0.0018555: B4(5) = 0.00068906: B4(6) = 0.00035032: B4(7) = 0.0002823: B4(8) = -0.000038568Picture1.Scale (-10, 50)-(150, -10)Picture1.Line (0, 0)-(120, 0): Picture1.Line (0, 0)-(0, 45)Picture1.CurrentX = 120: Picture1.CurrentY = -3: Picture1.Print "Ua(km/h)"Picture1.CurrentX = 120: Picture1.CurrentY = 1: Picture1.Print "→"Picture1.CurrentX = 5: Picture1.CurrentY = 45: Picture1.Print "Qs(L/100km)"Picture1.CurrentX = -2.5: Picture1.CurrentY = 46: Picture1.Print "↑"Picture1.CurrentX = -3: Picture1.CurrentY = -1: Picture1.Print "0"For i = 20 To 100 Step 20Picture1.Line (i, 0)-(i, 1)Picture1.CurrentX = i - 6: Picture1.CurrentY = -1: Picture1.Print iNext iFor i = 10 To 40 Step 10Picture1.Line (0, i)-(3, i)Picture1.CurrentX = -12: Picture1.CurrentY = i + 1: Picture1.Print iNext iPicture1.DrawWidth = 2m = 3880g = 3880 * 9.8f = 0.013CdA = 2.77ηt = 0.85i0 = 5.83r = 0.367Qmin = 100For ua = 25 To 100 Step 0.01Pe = (g * f * ua / 3600 + CdA * ua ^ 3 / 76140) / ηtnn = 0.793 * i0 * ua / (0.377 * r)For i = 1 To 7If nn >= n(i) And nn <= n(i + 1) ThenB0B0 = B0(i) + (B0(i + 1) - B0(i)) * (nn - n(i)) / (n(i + 1) - n(i)) B1B1 = B1(i) + (B1(i + 1) - B1(i)) * (nn - n(i)) / (n(i + 1) - n(i)) B2B2 = B2(i) + (B2(i + 1) - B2(i)) * (nn - n(i)) / (n(i + 1) - n(i)) B3B3 = B3(i) + (B3(i + 1) - B3(i)) * (nn - n(i)) / (n(i + 1) - n(i)) B4B4 = B4(i) + (B4(i + 1) - B4(i)) * (nn - n(i)) / (n(i + 1) - n(i)) End IfNext iBe = B0B0 + B1B1 * Pe + B2B2 * Pe ^ 2 + B3B3 * Pe ^ 3 + B4B4 * Pe ^ 4Qs = Pe * Be / (1.02 * 7 * ua)Picture1.PSet (ua, Qs), vbRedIf Qs < Qmin ThenQmin = QsUj = uaEnd IfNext uaText1.Text = CInt(Uj * 100) / 100Text2.Text = CInt(Qmin * 100) / 100End Sub2.数据图表:最高档等速百公里燃油消耗量曲线图:次高档等速百公里燃油消耗量曲线图:河南工业大学第 页21。
'添加个picture1和command1Option ExplicitDim lngCenter As LongDim lngMax As LongDim lngPad&Dim PCurrent As POINT, PLast As POINTPrivate Type POINTx As Longy As LongEnd TypePrivate Sub Form_Load()lngCenter = (Picture1.Top + Picture1.Height) / 2lngMax = Picture1.HeightPLast.x = 0PLast.y = lngCenterDim i&For i = 0 To Picture1.Width Step 100Picture1.Line (i, 0)-(i, Picture1.Height), &HFFC0C0NextFor i = 0 To Picture1.Height Step 100Picture1.Line (0, i)-(Picture1.Width, i), &HFFC0C0NextPicture1.DrawWidth = 1.5Picture1.Line (0, lngCenter)-(Picture1.Width, lngCenter), vbBlue Picture1.DrawWidth = 1End SubPrivate Sub Timer1_Timer()PCurrent.x = PCurrent.x + 50RandomizePCurrent.y = Rnd * lngMaxPicture1.Line (PCurrent.x, PCurrent.y)-(PLast.x, PLast.y), vbRed PLast.x = PCurrent.xPLast.y = PCurrent.yEnd SubPrivate Sub Command1_Click()Timer1.Enabled = Not Timer1.EnabledEnd Sub效果图:如果需要带有点规律性可以将获得y的坐标稍加处理下:Private Function getRndY() As IntegerDim lngTmp%If intRnd = 0 ThenRandomizeintRnd = Rnd * 3 + 1End IfRandomizelngTmp = Rnd * lngCenterIf PLast.y > lngCenter ThengetRndY = lngCenter + lngTmpElsegetRndY = lngTmpEnd IfintCurRnd = intCurRnd + 1If intCurRnd > intRnd ThenRandomizeintRnd = Rnd * 3 + 1&nb ......Public Sub Draw_Sin _( _pic1 As PictureBox, _sngXFrom As Single, _sngXTo As Single, _)Dim x1 As Single, y1 As SingleDim x2 As Single, y2 As Singlex1 = sngXFromy1 = Sin(x1)For x2 = (sngXFrom + sngStep) To sngXTo Step 0.1y2 = Sin(x2)pic1.Line (ScaleX_MathToScreen(x1),ScaleY_MathToScreen(y1)) _-(ScaleX_MathToScreen(x2),ScaleY_MathToScreen(y2))x1 = x2y1 = y2NextEnd SubPrivate Function ScaleX_MathToScreen(sngX As Single) ScaleX_MathToScreen = 500+ sngX * 500End FunctionPrivate Function ScaleY_MathToScreen(sngY As Single)ScaleY_MathToScreen = 500- sngY * 500End FunctionOption ExplicitPrivate Sub Form_click()ClsDim i, j As SingleMe.Scale (-1, 10)-(25, -1) '定义坐标系,原点靠近左下角Line (-1, 0)-(25, 0) '画x轴Line (0, -1)-(0, 10) '画Y轴For i = -1 To 25 Step 1 '画X轴刻度If i <> 0 ThenLine (i, 0)-(i, 0.2)CurrentX = i - 0.3: CurrentY = -0.2Print iEnd IfNextFor j = -1 To 10 '画Y轴刻度If j <> 0 ThenLine (0, j)-(0.3, j)CurrentX = -0.7: CurrentY = j + 0.1Print jEnd IfNextCurrentX = -0.4: CurrentY = -0.2Print "0" '画原点CurrentX = 0.5: CurrentY = 9.5Print "Y"CurrentX = 24: CurrentY = 0.5Print "X"RandomizeCurrentX = 1: CurrentY = Format(Rnd * 10, "0.00")For i = 2 To 24Line -(i, Format(Rnd * 10, "0.00")) '这里是随机生成的数据!NextEnd Sub在Form1中加Picture1控件Option ExplicitPrivate Sub Form1.Picture1_click()ClsDim i, j As SingleMe.Scale (-1, 10)-(25, -1) '定义坐标系,原点靠近左下角with Form1.Picture1Line (-1, 0)-(25, 0) '画x轴Line (0, -1)-(0, 10) '画Y轴For i = -1 To 25 Step 1 '画X轴刻度If i <> 0 ThenLine (i, 0)-(i, 0.2)CurrentX = i - 0.3: CurrentY = -0.2Print iEnd IfNextFor j = -1 To 10 '画Y轴刻度If j <> 0 ThenLine (0, j)-(0.3, j)CurrentX = -0.7: CurrentY = j + 0.1Print jEnd IfNextCurrentX = -0.4: CurrentY = -0.2Print "0" '画原点CurrentX = 0.5: CurrentY = 9.5Print "Y"CurrentX = 24: CurrentY = 0.5Print "X"RandomizeCurrentX = 1: CurrentY = Format(Rnd * 10, "0.00")For i = 2 To 24Line -(i, Format(Rnd * 10, "0.00")) '这里是随机生成的数据!Nextend withEnd Sub还可以更完善.。
VB程序代码Dim a(1 To 10) As Single, i As Integer
Private Sub Form_Load()
Form1.Show
Text1.SetFocus
Print
Label1.AutoSize = True
Label2.AutoSize = True
Command1.Caption = "统计"
Command1.Enabled = False
Command2.Enabled = False
Label1.ForeColor = RGB(255, 0, 0)
Label1.BackColor = RGB(255, 255, 0)
Text1.ForeColor = vbBlue
Text1.BackColor = RGB(255, 255, 0)
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
i = i + 1
If i = 10 Then
Text1.Enabled = False '控制输入次数Command1.Enabled = True
Command2.Enabled = True
End If
a(i) = Text1.Text
Print a(i); Spc(1);
Text1.Text = " "
End If
End Sub
Private Sub Command1_Click()
Dim sum As Single, aver As Single, total As Single
For i = 1 To 10
sum = sum + a(i) '求和
Next i
total = sum
aver = sum / 10 '平均值
For i = 1 To 10
Next i
For i = 1 To 10
If a(i) > aver Then
t = t + 1
End If
Next
Label4.Caption = "超过平均成绩的人数为:" & t
Label2.Caption = "10人的总成绩:" & Str(total)
Label3.Caption = "平均成绩:" & Str(aver)
Label2.ForeColor = RGB(255, 0, 0)
Label2.BackColor = RGB(255, 255, 0)
Label3.ForeColor = RGB(255, 0, 0)
Label3.BackColor = RGB(255, 255, 0)
Label4.ForeColor = RGB(255, 0, 0)
Label4.BackColor = RGB(255, 255, 0)
End Sub
Private Sub Command2_Click()
Label2.Caption = ""
Label3.Caption = ""
Label4.Caption = ""
Text1.Enabled = True '控制输入次数
Command1.Enabled = False
Text1.SetFocus
End Sub
“该程序有个问题:为什么【清除键】清楚不完窗口上输入的数字”
为什么,怎样才能清楚呢???
程序运行图
科目:Vb
班级:0920271
学好:38
姓名:周波
时间:2011.11.20。