vb程序设计实例.docx
- 文档编号:28045405
- 上传时间:2023-07-07
- 格式:DOCX
- 页数:21
- 大小:38.08KB
vb程序设计实例.docx
《vb程序设计实例.docx》由会员分享,可在线阅读,更多相关《vb程序设计实例.docx(21页珍藏版)》请在冰豆网上搜索。
vb程序设计实例
vb程序设计实例
2009-5-2215:
37
提问者:
淘淘的某在|悬赏分:
20|浏览次数:
1688次
编写程序,设银行定期存款的年利率为:
1年期2.25%,2年期2.43%,3年期为2.70%,5年期为2.88%(不记复利)。
今有X元,5年以后使用,共有如下6中存法:
①存一次5年期;
②存一次3年期,一次2年期;
③存一次3年期,两次1年期;
④存两次2年期,一次1年期;
⑤存一次2年期,三次1年期;
⑥存五次1年期.
分别计算各种存法5年后到期的本息合计,如图所示
2009-5-2217:
06
最佳答案
PrivateSubForm_Activate()
'1年期2.25%,2年期2.43%,3年期为2.70%,5年期为2.88%(不记复利)。
今有X元,5年以后使用,共有如下6中存法:
Constx1AsDouble=0.0225,x2AsDouble=0.0243,x3AsDouble=0.027,x5AsDouble=0.0288
DimxAsDouble
x=Val(InputBox(""))
Print"①存一次5年期,5年后到期的本息合计";ss(x,5,x5)
Print"②存一次3年期,一次2年期,5年后到期的本息合计";ss(ss(x,3,x3),2,x2)
Print"③存一次3年期,两次1年期,5年后到期的本息合计";ss(ss(ss(x,3,x3),1,x1),1,x1)
Print"④存两次2年期,一次1年期,5年后到期的本息合计";ss(ss(ss(x,2,x2),2,x2),1,x1)
Print"⑤存一次2年期,三次1年期,5年后到期的本息合计";ss(ss(ss(ss(x,2,x2),1,x1),1,x1),1,x1)
Print"⑥存五次1年期,5年后到期的本息合计";ss(ss(ss(ss(ss(x,1,x1),1,x1),1,x1),1,x1),1,x1)
EndSub
PrivateFunctionss(ByValaAsDouble,bAsInteger,cAsDouble)AsDouble
ss=a+a*c*b
EndFunction
PrivateSubForm_Load()
AutoRedraw=True
EndSub
如下
DimstrAsString
PrivateSubCommand1_Click()
str=Text1.SelText
Text1.SelText=""
Command3.Enabled=True
EndSub
PrivateSubCommand2_Click()
str=Text1.SelText
Command3.Enabled=True
EndSub
PrivateSubCommand3_Click()
Text1.SelText=str
EndSub
PrivateSubCommand4_Click()
End
EndSub
PrivateSubCommand5_Click()
Form2.Show
Form1.Hide
EndSub
PrivateSubForm_Load()
Command1.Enabled=True
Command2.Enabled=True
Command3.Enabled=False
Command4.Enabled=True
EndSub
如何让Command1~4功能键的目标转向text1内的内容
我点的时候必须把text1里面的内容去选定后才能进行操作
如何让他自己选定为text1的内容--!
上面的Command1剪切功能
Command2复制功能
Command3粘贴功能
Command4退出--!
三、利用VB三维面板控件设计流动条
2000-09-1500:
00:
00·王金柱·yesky
VB提供了一个三维面板控件,利用这个控件可设计图形效果的立体界面,从而使应用程序的界面显得更生动、美观,该控件还可以设置各种形式的背景,然后在背景上显示各种形式的字符,令人感兴趣的是,使用三维面板控件,还可设计我们经常在安装程序中看到的表示安装进程的流动条,并可显示进程百分比,改变流动条的颜色等。
一、介绍属性
FloodColor:
确定流动条的颜色,缺省为蓝色。
FloodPercent:
显示当前过程如流动条进行的百分比,参数改变时显示的百分数和流动条的面积改变,设为一整型值,取值范围是0~100。
FloodShowpct:
决定是否在三维面板控件上显示百分比,是一个逻辑值。
为True时显示,为False时不显示。
FloodType:
表示用户对三维面板控件的使用方式。
可取值有6个,如下所示:
0 缺省设置
1 表示流动条方向从左到右
2 表示流动条方向从右到左
3 表示流动条方向从上到下
4 表示流动条方向从下到上
5 表示使用指定的颜色从圆心向外画圆
二、流动条设计
如果在Windows3?
X下,工具箱中不存在三维面板控件,可选择File菜单中的“AddFile…”进行添加,在弹出的对话框中找到Windows\System目录,然后选定Threed?
vbx文件即可,如果使用VB4.0,需在Tools菜单中选择CustomControls命令,选定Sheridan3dControls项,按OK按钮,可在工具箱中增加三维面板控件。
启动VB3?
0,在窗体中画一水平方向的长方形三维面板控件,按F4,在属性窗口中设置其Name为P3d、Bevellnner为2-Raised、FloodType为1、FloodshowPct为True,再在窗体中画一个按钮Command1,双击该按钮,键入下面的代码:
SubCommand1_Click()
P3d?
floodpercent=0
ForN%=1To100
IfN%$#@62;100THEN
ExitSub
EndIf
P3d?
FloodPercent=N%
NextI%
EndSub
按F5,运行该程序,点击Command按钮,即可看到流动条效果。
四、
使用VB设计具有动感的命令图标栏
2000-09-1500:
00:
00·张嵘·VB编程乐园
p> 我们在使用Word、Excel等Windows应用程序时,经常会见到在程序界面顶端有一行“立体式”图标按钮。
当用鼠标按下某一个图标按钮时,程序就执行相应的操作。
这一行“立体式”图标按钮通常就称作命令图标栏或工具条。
命令图标栏一般提供一些最常用的命令,供用户快速地取用,并且它设计时采用了“立体式”按钮,操作时会产生凹下去和凸出来的“动感”,笔者这里就谈谈如何用VB来建立具有“动感”的命令图标栏。
使命令图标具有“动感”是依靠对命令图标的不同状态的图像切换来获得的。
当鼠标按下时,图标显示为凹入状态的图像;当松开时,图标显示为凸出状态的图像。
通过图像切换就使命令图标具有了“动感”,具体设计步骤如下:
1。
首先在窗体中创建一个图片框(PictureBox),将其Align属性置为1,使图片框固定在窗体上端,调节其宽度使其能安置图像或命令按钮。
2。
在图标框内创建若干个图像框(ImageControl),设置其Autosize=True,Picture属性在程序运行中设置。
3。
编写程序代码。
这里假设某个命令图标凸出状态的图像文件名为"zrup.bmp",凹入状态的图像文件名为"zrdown.bmp"。
窗体装入时:
Subform-load()
Imagel.picture=Loadpicture("zrup.bmp")’命令图标凸出
Endsub
鼠标按下时:
SubImagel-mousedown(ButtonAsIntegerShiftAsInteger,XAssingle,YAssingle)
Imagel.picture=Loadpicture("zrdown.bmp")’命令图标如下:
Endsub
鼠标松开时:
SubImagel-mouseup(ButtonAsInteger,ShiftAsInteger,XAssingle,YAssingle) Imagel.picture=Loadpicture("zrup.bmp")’命令图标凸出
Endsub
以上只能使命令图标具备凹下去的功能,但当在按鼠标按钮不放,并拖曳鼠标使光标移到外头,原来图标仍然处于凹下状态。
要使其自动凸起,就要编写如下代码:
SubImagel-mouseup(ButtonAsInteger,ShiftAsInteger,XAssingle,YAssingle)
SelectCaseButton
Case1
IfX$#@60;=0orX$#@62;Imagel.WidthorY$#@60;=0orY$#@62;Imagel.Heightthen Imagel.picture=Loadpicture("zrup.bmp")’凸出
else
Imagel.picture=Loicture("zrdown.bmp")’凹入
Endif
Endselect
Endsub
通过以上三步骤就可以建立具有“动感”的命令图标,若具有多个命令图标时,可通过创建图像控制数组来实现。
BMP是常见的一种图像格式,也可以使用VB提供的丰富的不同状态的命令图标位图文件,它在VB的子目录\bitmaps\中。
窗体顶端
窗体底端
五、
实现窗体内部的左右移动
'分割区的宽度
PrivateConstSPL99vTERWIDTH=45
'最小移动宽度
PrivateConstHMIN=15
'picLeft和picRight的宽度相对于窗体的比例
PrivatePercentAsSingle
'正在拖动的标志
PrivateDragFlagAsBoolean
'每次拖动后需要重排窗体上的控件
PrivateSubRedrawMe()
DimNewWidthAsSingle
'忽略窗体缩小的情况
IfWindowState=vbMinimizedThenExitSub
NewWidth=(ScaleWidth-SPL99vTERWIDTH)*Percent
Picleft.Move0,0,NewWidth,ScaleHeight
Picright.MoveNewWidth+SPL99vTERWIDTH,0,ScaleWidth-NewWidth-SPL99vTERWIDTH,ScaleHeight
EndSub
PrivateSubForm_Load()
'PicLeft和PicRight的MousePointer=1
Percent=0.5
EndSub
PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
DragFlag=True
EndSub
PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
'定义鼠标为vbSizeWE型
MousePointer=vbSizeWE
Percent=X/ScaleWidth
RedrawMe
EndSub
PrivateSubForm_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
DragFlag=False
MousePointer=0'此行语句实际没有起作用
EndSub
六、
封面的设计
一、封面的设计是这样的,先出现一窗体,上面为你喜欢的图案。
然后出现一艘从左向右行驶着的船。
屏幕上方从两侧分别移动出“欢迎”两个字。
具体的制作方法是:
把预先选好的背景图案装入封面窗体中,窗体命名为CAI。
再分别在三个图像控件(image)中装入预先制作好的位图“欢”、“迎”和船型图案。
然后把三个image放置在初始位置(即图案刚在窗体出现时的位置),并把它们的可视属性都设置为“false”。
程序如下:
SubForm_load()
cai.Show′显示封面窗体
Dimi′定义变量
image3.visible=True′船型图像控件出现
a1:
Ifimage3.Left<6120Then
′6120为船移动到屏幕右边的坐标,此值可以随需要选取
image3.Moveimage3.Left+50
′移动此图像控件如嫌移动慢,可改变移动值
Gotoa1
EndIf
image1.visible=True′“欢”字出现
a2:
Ifimage1.Left<2120Then
′2120为“欢”字移动到屏幕中间的位置
image1.Moveimage1.Left+50′移动此图像控件
Gotoa2
EndIf
image2.visible=True′“迎”字出现
a3:
Ifimage2.Left>5420Then
′5420为“迎”字移动到屏幕中间的位置
image2.Moveimage2.Left-50′移动此图像控件
Gotoa3
EndIf
Fori=1To10000
′使窗体暂停一段时间时间长短可通过改变循环次数实现
Nexti
menul.Show′显示程序主窗体
Unloadcai′卸载封面窗体
EndSub
二、简单的“动画”
点击一3D按钮后,屏幕表现光线平行进入一玻璃管,在管中有一散射中心,有的光线射到此中心后反射到管的初始端。
程序如下:
SubCommand3Dl_Click()
Dimi,j,k,m,n′定义变量
Fori=2080To5520
′显示出三条线,直到图像中的散射中心处,颜色为黑色
Line(2080,2760)-(i,2760),RGB(0,0,0)
Line(2080,2860)-(i,2860),RGB(0,0,0)
Line(2080,2660)-(i,2660),RGB(0,0,0)
Nexti
Forj=5520To4800Step-1′反射光线第一次射到管壁上
Line(5520,2760)-(j,2760-(5520-j)*.33333333),RGB
(255,0,0)′反射光线,颜色为红色
Line(5520,2660)-(5520+(5520-j),2660),RGB(0,0,0)
Line(5520,2860)-(5520+(5520-j),2860),RGB(0,0,0)
′没有遇到散射中心的两条光线,为黑色,继续前进
Nextj
Fork=4800To3360Step-1′反射光线第二次射到管壁上
Line(4800,2520)-(k,2520+(4800-k)*.33333333),
RGB(255,0,0)′反射光线,颜色为红色
Line(6240,2660)-(6240+(4800-k),2660),RGB(0,0,0)
Line(6240,2860)-(6240+(4800-k),2860),RGB(0,0,0)
′没有遇到散射中心的两条光线,颜色为黑色
Nextk
Form=3360To2080Step-1′反射光线第三次射到管壁上
Line(3360,3000)-(m,3000-(3360-m)*.33333333),
RGB(255,0,0)′反射光线,颜色为红色
Nextm
EndSub
三、封底
封底的设计是:
先出现全黑的屏幕,然后从上至下逐渐拉出白底红字的“再见”的字样。
先按要求在画板中做一个BMP图,上面写着“再见”。
然后在一名为BYE的窗体中加入一个全屏大的Picturel,将BMP图装入。
程序如下:
SubForm_Load()
Dimi′定义变量
bye.Show′封底出现
Unloadmenu1′卸载主菜单
al:
Ifpicture1.Height<7130Then′7130为图的高度
picturel.Height=picture1.Height+50′下拉屏幕
GoToal
EndIf
Fori=1To20000′使窗体暂停一段时间
Nexti
End′结束所有操作
EndSub
利用VisualBasic让命令行软件全面转向Windows
众所周知,Windows以其优美的图形界面,方便快捷的操作环境,已成为当今的主流操作系统,但由于其程序编写过于复杂,有很多用户常用的工具和小程序仍然只能运行于DOS环境下,造成Windows和DOS的频繁切换、使工作缺乏连续性和效率低下。
有什么方法可以解决这一问题呢?
等待ForWindows版本的面市,但仍会造成重复投资。
据笔者观察发现,常用工具中有一部分为命令行软件,这些软件完全可以利用VB改编成ForWindows版本的。
首先由于VB的简单易用,使Windows的界面设计变得异常简单直观。
所以可轻而易举的将命令选项、开关等转化为对应的图形界面(如复选钮等)。
其次由于VB为用户提供了Shell函数,也使得命令调用非常简单。
通过Shell其实你只做了个界面,核心还是DOS下的原来工具。
其函数格式如下:
Shell(命令字符串<,窗口类型>)
命令字符串即具体执行的命令(如字符串“arjea:
user.arjc:
\user”)有关字符串的操作可查阅有关书籍。
至于窗口型类型缺省即可。
最后只须注意,在Shell执行函数之前,有必要对命令行中有可能引发错误的参数进行检测,如在执行前检查用户给的源文件是否存在等,以保证达到预期结果。
笔者用VB改编的ArjforWindows版本,其结果出乎想象。
希望大家能自己动手全面转向Windows。
七、
利用VB产生屏幕变暗的效果
想利用VB编程实现屏幕变暗的效果(像关闭Win95时的效果),只要按下面的步骤来做:
1.在Form1中加入两个CommandButton和一个PictureBox.
2.在Form1的代码窗口中添加以下代码:
PrivateTypeRECT
LeftAsLong
TopAsLong
RightAsLong
BottomAsLong
EndType
PrivateDeclareFunctionGetDCLib"user32"(ByValhwndAsLong)AsLong
PrivateDeclareFunctionReleaseDCLib"user32"(ByValhwndAsLong,ByValhdcAsLong)AsLong
PrivateDeclareFunctionCreatePatternBrushLib"gdi32"(ByValhBitmapAsLong)AsLong
PrivateDeclareFunctionPatBltLib"gdi32"(ByValhdcAsLong,ByValxAsLong,ByValyAsLong,ByValnWidthAsLong,ByValnHeightAsLong,ByValdwRopAsLong)AsLong
PrivateDeclareFunctionDeleteObjectLib"gdi32"(ByValhObjectAsLong)AsLong
PrivateDeclareFunctionCreateBitmapLib"gdi32"(ByValnWidthAsLong,ByValnHeightAsLong,ByValnPlanesAsLong,ByValnBitCountAsLong,lpBitsAsAny)AsLong
PrivateDeclareFunctionSelectObjectLib"gdi32"(ByValhdcAsLong,ByValhObjectAsLong)AsLong
PrivateDeclareFunctionInvalidateRectLib"user32"(ByValhwndAsLong,ByVallpRectAsLong,ByValbEraseAsLong)AsLong
Privatebybits(1To16)AsByte
PrivatehBitmapAsLong,hBrushAsLong
PrivatehDesktopWndAsLong
PrivateSubCommand1_Click()
DimropAsLong,resAsLong
Dimhdc5AsLong,width5AsLong,height5AsLong
hdc5=GetDC(0)
width5=Screen.Width\Screen.TwipsPerPixelX
height5=Screen.Height\Screen.TwipsPerPixelY
rop=&HA000C9
CallSelectObject(hdc5,hBrush)
res=PatBlt(hdc5,0,0,width5,height5,rop)
CallDeleteObject(hBrush)
res=ReleaseDC(0,hdc5)
EndSub
PrivateSubCommand2_Click()
DimaaAsLon
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vb 程序设计 实例
![提示](https://static.bdocx.com/images/bang_tan.gif)