admin 管理员组

文章数量: 1086019


2024年4月19日发(作者:openfire安装配置)

****大学课程设计

Vb函数绘图软件设计

单 位 ** 学院(系)

专 业 **

学 号 **

学生姓名 **

指导教师 **

完成日期 年 月 日

摘 要

进行数学教学高校重要工作之一。传统的数学函数绘图过程繁冗且容易出

错。随着计算机和程序语言的高速发展,越来越多的高校都拥有自己的函数绘图

软件,而以Visual Basic 6.0 语言为基础的软件具有很大优势。

该软件的基础核心是Visual Basic 6.0,它有许多优点,例如:“随处运

行,随时保存”的特性、方便修改和使用等等。满足高便利性、高可靠性以及高

时效性的应用需求,为学生及时,快速绘制函数图像提供了良好的平台。

该软件基于Visual Basic 6.0 程序语言基础、采用Pset方法,

设计并实现

了系统的绘图等相关功能。

论文首先介绍了软件开发涉及的相关知识,主要围绕Visual Basic 6.0的

相关控件的使用。其次,介绍了软件的总体分析与设计,包括需求分析、功能分

析和窗体界面的设计。最后,利用各种控件对软件功能进行了实现,并作了详细

描述,主要采用图片与代码结合的方式详细地叙述了软件功能的实现。

关键词:程序语言,Visual Basic 6.0,Pset方法

目录

1. 选题意义 ............................................................ 4

2.系统功能需求分析 .................................................... 4

2.1

系统概述 .......................................................................................................................

2.2

系统的构成 ...................................................................................................................

2.3

系统的运行环境 ...........................................................................................................

3.系统设计 ............................................................ 5

3.1

总体结构设计 ..............................................................................................................

4.系统实现 ............................................................ 6

4.1

函数录入的设计与实现 ...............................................................................................

4.2

图像生成及坐标定位的设计与实现 ...........................................................................

5.总结 ............................................................... 13

5.1总结 ................................................................................................................................

5.2

存在的主要问题 ...........................................................................................................

参考文献 .............................................................. 13

第1章 选题意义

本软件基于Visual Basic 6.0,能有效实现一次函数以及二次函数智能绘图功

能, 解决简单的数学绘图问题。Visual Basic 是种可视化的、面向对象的采用事

件驱动方式的结构化高级程序设计语言,简单易学,效率高,且功能强大,可以

与Windows的专业开发工具SDK媲美。

第2章 系统功能需求分析

2.1系统概述

本软件基于Visual Basic 6.0,能有效实现一次函数以及二次函数智能绘图功

能, 解决简单的数学绘图问题。Visual Basic 是种可视化的、面向对象的采用事

件驱动方式的结构化高级程序设计语言,简单易学,效率高,且功能强大,可以

与Windows的专业开发工具SDK媲美。

2.2

系统的构成

一方面该软件的开发运用vb的多种控件,包括对话框,图形框,标签,按

钮等等,该软件的颜色选择更是使用控件数组,功能强大、图形界面丰富。

另一方面功能各异的代码编辑控制着控件的相关功能,实现了软件的绘图,

编辑,保存等多想功能。

2.3 系统的运行环境

该软件基于Visual Basic 6.0 程序语言基础,VB采用了面向对象的程序设计思想。

它的基本思路是把复杂的程序设计问题分解为一个个能够完成独立功能的相对简单的对象

集合,所谓“对象”就是一个可操作的实体,如窗体、窗体中的命令按钮、标签、文本框等。

在Windows环境下,程序是以事件驱动方式运行的,每个对象都能响应多个不同的事件,

每个事件都能驱动一段代码——事件过程,该代码决定了对象的功能。VB为编程提供了一

个集成开发环境,结构化的程序设计语言,强大的数据库访问功能,VB提供了多种向导,

如应用程序向导、安装向导、数据对象向导和数据窗体向导,通过它们可以快速地创建不同

类型、不同功能的应用程序。

第3章 系统设计

3.1 总体结构设计

基于课程设计任务书的以下要求:

1. 实现任意函数(一次函数、二次函数)的绘图功能。

2. 实现坐标系的自由设定。

3. 可以在一个坐标系统显示多个函数图像。

4. 图像的颜色可以设定。

软件使用了两个窗体,一个插入图片与文字,做成一个简单的封面,另一个

用来控制软件使用。

该软件用Visual Basic Pset和for next循环方法绘点成线,实现绘图功能,并

使用参量解决一次和二次的函数设置问题,采用了记录鼠标坐标的方法,实现了

坐标原点的自由设定,并运用相关参数解决坐标系的数值范围,以及绘制坐标及

刻度。

利用控件数组实现了颜色的自由设定。

窗体的结构设计主要遵循美观大方的原则,并使用多种控件,在顾及界面的

同时,又能充分发挥各个控件的作用。

第4章 系统实现

4.1 函数录入的设计与实现

该软件针对的是一次函数和二次函数的录入并绘图,所以设计的时候采用的

是变量控制函数的变化,通过窗体上text的输入值,导入代码种的参数实现任意

一次函数以及二次函数的录入,而通过菜单的切换实现界面一次和二次的转换,

同时隐藏或显示text3的输入。

代码方面采用函数的标准方程,控制系数的变化实现绘图时图像情况。

4.2 图像生成及坐标定位的设计与实现

图像生成方面,软件采用VB的Pset绘点方法,并使用for循环,通过控制

step的数值将点连成线,实现绘图的目标。

坐标定位通过鼠标的mouse_up事件,记录鼠标在picture的坐标值,再用line

方法绘制坐标系,实现坐标原点的自由设定。通过菜单编辑设定坐标宽度,在其

单击事件中用scale方法绘制坐标的横纵长。

二者结合实现图像生成及坐标定位的实现

相关图片及代码:

Public c!, a!, b!, d%, z!, x!, y!, k!, m!, n!, e!, h!

'a,b,c-函数系数,d-qbcolor数值,z-函数值,x,y-鼠标当前坐标 m=x n=y,e-绘图step值,

h-最大坐标值

Private Sub bai_Click()

(-100, 100)-(100, -100)

k = 20

End Sub

Private Sub bc_Click()

tExt = ".bmp"

= "位图文件.bmp|*.bmp|JPG文件.jpg|*.jpg"

Index = 1

ve

If me <> "" Then

SavePicture , me

End If

End Sub

Private Sub Command1_Click()

a = Val()

b = Val()

c = Val()

If k = 0.2 Then

e = 0.001

Else

e = 0.01

End If

If n = "一次函数y=a·x+b" Then

For i = m - 20 * k To m + 20 * k Step e

z = a * i + b

(i + m, z + n), QBColor(d)

If a <> 0 And b > o Then

n = "y=" & a & "·x+" & b

ElseIf a <> 0 And b = o Then

n = "y=" & a & "·x"

ElseIf a <> 0 And b < o Then

n = "y=" & a & "·x" & b

Else

n = "y=" & b

End If

Next

Else

For i = x - 20 * k To x + 20 * k Step e

z = a * i * i + b * i + c

(i + m, z + n), QBColor(d)

If a <> 0 And b <> 0 And c <> o Then

If b < 0 And c > 0 Then

n = "y=" & a & "·x2" & b & "·x+" & c

ElseIf b < 0 And c < 0 Then

n = "y=" & a & "·x2" & b & "·x" & c

ElseIf b > 0 And c < 0 Then

n = "y=" & a & "·x2+" & b & "·x" & c

Else

n = "y=" & a & "·x2+" & b & "·x+" & c

End If

ElseIf a = 0 And b <> 0 And c <> 0 Then

If b > o And c > 0 Then

n = "y=" & b & "·x+" & c

ElseIf b < 0 And c < 0 Then

n = "y=" & b & "·x" & c

ElseIf b > 0 And c < 0 Then

n = "y=" & b & "·x" & c

Else

n = "y=" & b & "·x+" & c

End If

ElseIf a <> 0 And b = 0 And c <> 0 Then

If a > o And c > 0 Then

n = "y=" & a & "·x2+" & c

ElseIf a < 0 And c < 0 Then

n = "y=" & a & "·x2" & c

ElseIf a > 0 And c < 0 Then

n = "y=" & a & "·x2+" & c

Else

n = "y=" & a & "·x2" & c

End If

ElseIf a <> 0 And b <> 0 And c = 0 Then

If a > o And b > 0 Then

n = "y=" & a & "·x2+" & b & "·x"

ElseIf a < 0 And b < 0 Then

n = "y=" & a & "·x2" & b & "·x"

ElseIf a > 0 And b < 0 Then

n = "y=" & a & "·x2+" & b & "·x"

Else

n = "y=" & a & "·x2" & b & "·x"

End If

ElseIf a <> 0 And b = 0 And c = 0 Then

n = "y=" & a & "·x2"

ElseIf a = 0 And b <> 0 And c = 0 Then

n = "y=" & b & "·x"

Else

n = "y=" & c

End If

Next

End If

End Sub

Private Sub Command2_Click()

End

End Sub

Private Sub ec_Click()

n = ""

n = "二次函数y=a·x2+b·x+c"

e = True

e = True

e = False

End Sub

Private Sub Form_Load()

Show

(-50, 50)-(50, -50)

k = 10

ze = 14

"请用鼠标点击绘图框确定中心坐标位置。"

e = False

e = False

End Sub

Private Sub Option1_Click(Index As Integer)

Select Case Index

Case 0

d = 0

Case 1

d = 1

Case 2

d = 2

Case 3

d = 3

Case 4

d = 4

Case 5

d = 5

End Select

End Sub

Private Sub P1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)

(x - 10 * k, y)-(x + 10 * k, y)

(x, y - 10 * k)-(x, y + 10 * k)

tX = x: tY = y: 0

m = x

n = y

If h = 1000 Then

ze = 6

ElseIf h = 100 Then

ze = 7

ElseIf h = 1 Then

ze = 7

Else

ze = 8

End If

For i = m To m + k * 10 Step k / 2

(i, n)-(i, n + k / 20)

Next

'x正半轴坐标刻度

For j = 1 To 20

tX = m + 0.9 * k * j / 2: tY = n

k * j / 2

Next

'x正半轴坐标刻度值

For i = n To n + k * 10 Step k / 2

(m, i)-(m + k / 20, i)

Next

'y正半轴坐标刻度

For j = 1 To 20

tX = m: tY = n + k * j / 2

k * j / 2

Next

'y正半轴坐标刻度值

For i = m To m - k * 10 Step -k / 2

(i, n)-(i, n + k / 20)

Next

'x负半轴坐标刻度

For j = 1 To 20

tX = m - 1.1 * k * j / 2: tY = n

-k * j / 2

Next

'x负半轴坐标刻度值

For i = n To n - k * 10 Step -k / 2

(m, i)-(m + k / 20, i)

Next

'y负半轴坐标刻度

For j = 1 To 20

tX = m + k / 20: tY = n - k * j / 2

-k * j / 2

Next

'y负半轴坐标刻度值

If k = 0.2 Then

h = 1

tX = h - 0.2: tY = h: "(1×1)"

ElseIf k = 2 Then

h = 10

tX = h - 3: tY = h: "(10×10)"

ElseIf k = 10 Then

h = 50

tX = h - 15: tY = h: "(50×50)"

ElseIf k = 20 Then

h = 100

tX = h - 30: tY = h: "(100×100)"

Else

h = 1000

tX = h - 300: tY = h: "(1000×1000)"

End If

tX = h * 0.9: tY = n - h / 10: "X"

If h = 100 Or h = 1000 Then

tX = m + h / 6: tY = h * 0.9: "Y"

Else

tX = m + h / 7: tY = h * 0.9: "Y"

End If

(h * 0.95, n - h / 20)-(h, n)

(h * 0.95, n + h / 20)-(h, n)

(m + h / 20, h * 0.95)-(m, h)

(m - h / 20, h * 0.95)-(m, h)

'画坐标箭头

End Sub

Private Sub qian_Click()

(-1000, 1000)-(1000, -1000)

k = 200

End Sub

Private Sub shi_Click()

(-10, 10)-(10, -10)

k = 2

End Sub

Private Sub tch_Click()

End

End Sub

Private Sub wushi_Click()

(-50, 50)-(50, -50)

k = 10

End Sub

Private Sub yc_Click()

n = ""

e = True

e = False

e = False

n = "一次函数y=a·x+b"

End Sub

Private Sub yi_Click()

(-1, 1)-(1, -1)

k = 0.2

End Sub

第5章 总结

5.1总结

通过本次课程设计,我基本上掌握了软件开发过程的问题分析,系统设计,

程序编写,测试等基本方法和技能。

虽然完成了设计,但还有很多不足之处,所以要在这次宝贵经验的基础上进

一步学习。

通过这次实践我认识到了计算机程序设计的复杂和艰难,受益匪浅。感谢老

师对我们的谆谆教导。

5.2 存在的主要问题

功能单一,支持的函数类型太少。

界面相对有些简单。

坐标刻度与刻度值位置有差异。

参考文献:/question/?si=1

/question/?si=1

《Visual Basic 程序设计》 中国铁道出版社 王学军 张玉梅

《全国计算机等级考试二级教程-Visual Basic语言程序设计》 高等教育出版 刘

炳文 杨明福 陈定中


本文标签: 实现 坐标 功能 函数 绘图