vb函数曲线动态绘制报告.docx
- 文档编号:10242229
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:18
- 大小:20.38KB
vb函数曲线动态绘制报告.docx
《vb函数曲线动态绘制报告.docx》由会员分享,可在线阅读,更多相关《vb函数曲线动态绘制报告.docx(18页珍藏版)》请在冰豆网上搜索。
vb函数曲线动态绘制报告
计算机实习二
需求分析:
函数曲线动态绘制
使用面向对象设计环境,编程实现函数曲线的自动绘制。
程序功能是:
根据选择的演示函数,允许用户输入参数,然后动态用不同颜色绘制出相应函数曲线。
在用户没有做出其他选择之前,一直重复动态演示曲线绘制过程。
要求
函数名
函数式
需要输入的参数
及格要求
一次函数
Y=Ax+B
A,B
及格要求
二次函数
Y=Ax2+Bx+C
A,B,C
中等要求
正弦函数
Y=Asin(Bx+C)+D
A,B,C,D
中等要求
余弦函数
Y=Acos(Bx+C)+D
A,B,C,D
良好要求
幂函数
Y=xa
A
良好要求
指数函数
Y=ax
A
良好要求
对数函数
Y=logax
A
优秀要求
正切函数
Y=tan(Ax+B)
A,B
优秀要求
余切函数
Y=cot(Ax+B)
A,B
程序设计:
1,对面向对象设计环境的认识:
第一次接触面向对象设计环境,觉得和C语言和汇编语言有很大差别,不是给你一个界面一条条代码往下写,而是给出很多的控件备选,在这些控件的代码添写处写该孔件所要执行的功能,很多控件是相互联系的,一个控件会启用其他一个或几个控件的功能。
还要设计一个合理的外观,通过设置相应的属性选项设计界面。
但是编程的思想和以前学习的语言是完全一样的,数据类型,定义,顺序,循环,选择结构的设计都和其他语言没太大分别,所以学习起来并不困难。
2,程序构思;
把要绘制的函数放在一个列表框中,用时钟的启用和停止控制图像的都态绘制。
选择列表框中的一个函数,对应的一个时钟启用,其他的时钟禁用,在时钟控件的代码填写处写图像绘制的代码,用RGB函数产生随机颜色。
直线用两点法绘图,其他的用描点法绘图,用FOR循环产生X值,再根据函数公式计算出Y值。
使用全局变量,因为每次只绘一个函数的图,所以全部函数可以用同样的变量,每次绘图给变量付值即可。
开始
程序流程图:
函数九
函数一
开时钟九
开时钟一
函数二
开时钟四
开时钟八
画图
I自增
结束画点
该学生毕业设计中经过老师的指导能及时纠正自己的行为,端正学习态度。
通过指导和自学,对所承担的任务进行了实施,结果较好。
报告中因为没有按指导要求使用画图软件,导致流程图不规范。
语言不规范。
结果得分:
中
批改老师:
章小莉
2006.9.29
程序代码和注释
Dima,b,c,dAsSingle‘定义单精度的通用变量
PrivateSubcancel_Click()
UnloadMe退出程序
EndSub
PrivateSubForm_Load()‘在列表狂中显示函数信息
List1.AddItem"y=ax+b"‘在列表狂中显示函数信息
List1.AddItem"y=ax^2+bx+c"‘在列表狂中显示函数信息
List1.AddItem"y=asin(bx+c)+d"‘在列表狂中显示函数信息
List1.AddItem"y=acos(bx+c)+d"‘在列表狂中显示函数信息
List1.AddItem"y=x^a"‘在列表狂中显示函数信息
List1.AddItem"y=a^x"‘在列表狂中显示函数信息
List1.AddItem"y=loga^x"‘在列表狂中显示函数信息
List1.AddItem"y=tan(ax+b)"‘在列表狂中显示函数信息
List1.AddItem"y=cot(ax+b)"‘在列表狂中显示函数信息
EndSub
PrivateSublt1_Click()‘使所有时钟停止,即停止绘图
Timer1.Interval=0
Timer2.Interval=0
Timer3.Interval=0
Timer4.Interval=0
Timer5.Interval=0
Timer6.Interval=0
Timer7.Interval=0
Timer8.Interval=0
Timer9.Interval=0
EndSub
PrivateSublt2_Click()
IfList1.ListIndex=0Then
a=InputBox("直线参数输入","请输入系数a",0)
b=InputBox("直线参数输入","请输入系数b",0)
Timer1.Interval=1000‘当选择第一个函数时开启时钟一
EndIf
IfList1.ListIndex=1Then
a=InputBox("抛物线参数输入","请输入系数a",0)
b=InputBox("抛物线参数输入","请输入系数b",0)
c=InputBox("抛物线参数输入","请输入系数c",0)
Timer2.Interval=1000‘当选择第二个函数时开启时钟二
EndIf
IfList1.ListIndex=2Then
a=InputBox("正弦线参数输入","请输入系数a",0)
b=InputBox("正弦线参数输入","请输入系数b",0)
c=InputBox("正弦线参数输入","请输入系数c",0)
d=InputBox("正弦线参数输入","请输入系数d",0)
Timer3.Interval=1000‘当选择第三个函数时开启时钟三
EndIf
IfList1.ListIndex=3Then
a=InputBox("余弦线参数输入","请输入系数a",0)
b=InputBox("余弦线参数输入","请输入系数b",0)
c=InputBox("余弦线参数输入","请输入系数c",0)
d=InputBox("余弦线参数输入","请输入系数d",0)
Timer4.Interval=1000‘当选择第四个函数时开启时钟四
EndIf
IfList1.ListIndex=4Then
a=InputBox("幂函数参数输入","请输入系数a",0)
Timer5.Interval=1000‘当选择第五个函数时开启时钟五
EndIf
IfList1.ListIndex=5Then
a=InputBox("指数函数参数输入","请输入系数a",0)
Timer6.Interval=1000‘当选择第六个函数时开启时钟六
EndIf
IfList1.ListIndex=6Then
a=InputBox("对数函数参数输入","请输入系数a",0)
Timer7.Interval=1000‘当选择第七个函数时开启时钟七
EndIf
IfList1.ListIndex=7Then
a=InputBox("正切函数参数输入","请输入系数a",0)
b=InputBox("正切函数参数输入","请输入系数b",0)
Timer8.Interval=1000‘当选择第八个函数时开启时钟八
EndIf
IfList1.ListIndex=8Then
a=InputBox("余切函数参数输入","请输入系数a",0)
b=InputBox("余切函数参数输入","请输入系数b",0)
Timer9.Interval=1000‘当选择第九个函数时开启时钟九
EndIf
EndSub
PrivateSublt3_Click()
Picture1.Cls‘清屏
EndSub
PrivateSubText1_Change()
EndSub
PrivateSubTimer1_Timer()
Picture1.Cls
Picture1.Scale(-10,10)-(10,-10)‘定义坐标
red=Rnd*255
green=Rnd*255
blue=Rnd*255
Intcolor=RGB(red,green,blue)‘产生随机颜色
X1=-10
X2=10
Y1=a*X1+b‘用已知的X值计算Y值
Y2=a*X2+b
Picture1.Line(-10,0)-(10,0)
Picture1.Line(0,10)-(0,-10)‘画坐标
Picture1.Line(X1,Y1)-(X2,Y2),Intcolor‘用随机颜色画图
EndSub
PrivateSubTimer2_Timer()
Picture1.Cls‘清屏
Picture1.Scale(-10,10)-(10,-10)‘定义坐标
red=Rnd*255
green=Rnd*255
blue=Rnd*255
Intcolor=RGB(red,green,blue)‘产生随机颜色
Fori=0To20Step0.01‘循环产生等步长的很多X值
X1=-10+i
Y1=a*X1^2+b*X1+c‘用已知的X值计算Y值
Picture1.Line(-10,0)-(10,0)
Picture1.Line(0,10)-(0,-10)‘画坐标
Picture1.PSet(X1,Y1),Intcolor‘用随机颜色画点
Nexti
EndSub
PrivateSubTimer3_Timer()
Picture1.Cls‘清屏
Picture1.Scale(-10,10)-(10,-10)‘定义坐标
red=Rnd*255
green=Rnd*255
blue=Rnd*255
Intcolor=RGB(red,green,blue)‘产生随机颜色
Fori=0To20Step0.01‘循环产生等步长的很多X值
X1=-10+i
Y1=a*Sin(b*X1+c)+d‘用已知的X值计算Y值
Picture1.Line(-10,0)-(10,0)
Picture1.Line(0,10)-(0,-10)‘画坐标
Picture1.PSet(X1,Y1),Intcolor‘用随机颜色画点
Nexti
EndSub
PrivateSubTimer4_Timer()
Picture1.Cls‘清屏
Picture1.Scale(-10,10)-(10,-10)‘定义坐标
red=Rnd*255
green=Rnd*255
blue=Rnd*255
Intcolor=RGB(red,green,blue)‘产生随机颜色
Fori=0To20Step0.01‘循环产生等步长的很多X值
X1=-10+i
Y1=a*Cos(b*X1+c)+d‘用已知的X值计算Y值
Picture1.Line(-10,0)-(10,0)
Picture1.Line(0,10)-(0,-10)‘画坐标
Picture1.PSet(X1,Y1),Intcolor‘用随机颜色画点
Nexti
EndSub
PrivateSubTimer5_Timer()
Picture1.Cls‘清屏
Picture1.Scale(-10,10)-(10,-10)‘定义坐标
red=Rnd*255
green=Rnd*255
blue=Rnd*255
Intcolor=RGB(red,green,blue)‘产生随机颜色
Fori=0To20Step0.01‘循环产生等步长的很多X值
X1=-10+i
Y1=X1^a‘用已知的X值计算Y值
Picture1.Line(-10,0)-(10,0)
Picture1.Line(0,10)-(0,-10)‘画坐标
Picture1.PSet(X1,Y1),Intcolor‘用随机颜色画点
Nexti
EndSub
PrivateSubTimer6_Timer()
Picture1.Cls‘清屏
Picture1.Scale(-10,10)-(10,-10)‘定义坐标
red=Rnd*255
green=Rnd*255
blue=Rnd*255
Intcolor=RGB(red,green,blue)‘产生随机颜色
Fori=0To20Step0.01‘循环产生等步长的很多X值
X1=-10+i
Y1=a^X1‘用已知的X值计算Y值
Picture1.Line(-10,0)-(10,0)
Picture1.Line(0,10)-(0,-10)‘画坐标
Picture1.PSet(X1,Y1),Intcolor‘用随机颜色画点
Nexti
EndSub
PrivateSubTimer7_Timer()
Picture1.Cls‘清屏
Picture1.Scale(-10,10)-(10,-10)‘定义坐标
red=Rnd*255
green=Rnd*255
blue=Rnd*255
Intcolor=RGB(red,green,blue)‘产生随机颜色
Fori=0.01To20Step0.01‘循环产生等步长的很多X值
X1=0+i
Y1=Log(X1)/Log(a)‘用已知的X值计算Y值
Picture1.Line(-10,0)-(10,0)
Picture1.Line(0,10)-(0,-10)‘画坐标
Picture1.PSet(X1,Y1),Intcolor‘用随机颜色画点
Nexti
EndSub
PrivateSubTimer8_Timer()
Picture1.Cls‘清屏
Picture1.Scale(-10,10)-(10,-10)‘定义坐标
red=Rnd*255
green=Rnd*255
blue=Rnd*255
Intcolor=RGB(red,green,blue)‘产生随机颜色
Fori=0To20Step0.001‘循环产生等步长的很多X值
X1=-10+i
Y1=Tan(a*X1+b)‘用已知的X值计算Y值
Picture1.Line(-10,0)-(10,0)
Picture1.Line(0,10)-(0,-10)‘画坐标
Picture1.PSet(X1,Y1),Intcolor‘用随机颜色画点
Nexti
EndSub
PrivateSubTimer9_Timer()
Picture1.Cls‘清屏
Picture1.Scale(-10,10)-(10,-10)‘定义坐标
red=Rnd*255
green=Rnd*255
blue=Rnd*255
Intcolor=RGB(red,green,blue)‘产生随机颜色
Fori=0To20Step0.001‘循环产生等步长的很多X值
X1=-9.9995+i
Y1=1/Tan(a*X1+b)‘用已知的X值计算Y值
Picture1.Line(-10,0)-(10,0)
Picture1.Line(0,10)-(0,-10)‘画坐标
Picture1.PSet(X1,Y1),Intcolor‘用随机颜色画点
Nexti
EndSub
使用说明:
双击启动程序,在列表中选一个函数,点击开始绘图按钮,根据提示输入参数,就会自动用随机颜色画图,每秒画一次,单击一下“停止绘图”,即可使画图停止,保留最后一次的图型,单击一下“清屏”,就可以把屏幕清理干净。
单击“退出程序”程序结束。
实习体会:
第一次接触面向对象设计环境,觉得和C语言和汇编语言有很大差别,但是学习起来并不困难。
因为以前学习过几门语言,对编程的思想有较深的认识。
这次实习只用到了VB一些很基本的知识,还有好多的东西需要学习,我会继续把这门课学下去,争取学会灵活的运用。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vb 函数 曲线 动态 绘制 报告