vb实验报告
VB课程实验报告
山西财经大学《程序设计(VB+Acces)》实验报告****年*月**日实验题目1选择结构程序设计选课课号2015-2016-2-N081002S00-08034-学院*****学院班级*******姓名***学号*********理论课教师李平珍上机指导教师李平珍实验目的及要求:1.掌握条件表达式和分支语句2.正确使用If...Then...Else和If...Then...ElseIf等语句3.使用选择性控件实现程序应用编写以下程序段:求一元二次方程ax2+bx+c=0的根设计一个四则运算计算器实验的详细操作步骤、程序代码及运行截图:一.Private Sub Command1_Click()Dim A As Single, B As Single, C As SingleDim R1 As Single, R2 As SingleA = ValB = ValIf B ^ 2 - 4 * A * C < 0 ThenMsgBox "该方程无解."ElseIf B ^ 2 - 4 * A * C = 0 ThenR1 = -B / 2 / AMsgBox "该方程仅有一个根为" & R1 & "."ElseR1 = (-B + Sqr(B ^ 2 - 4 * A * C)) / (2 * A)R2 = (-B - Sqr(B ^ 2 - 4 * A * C)) / (2 * A) MsgBox "该方程有两个根分别为" & R1 & "和" & R2 & "." End IfEnd Sub二.Private Sub cmdCal-Click()Dim x1 As Single,sign As String,x2 As SingleX1=Val(txtA):sign=txtB:x2=Val(txtC)Case “+”=Str(x1+x2)Case”-“=Str(x1-x2)Case”*”=Str(x1*x2)Case“/”If x2<>0 Then=Str(x1/x2)ElseMsgBox”分母不能为0”End IfCase ElseI=MsgBox(“请重新输入运算符:”vbRetryCancel)If I =vbretry Then =”“ Else EndEnd SelectEnd Sub实验中发现的问题及解决方法:表格之间的距离把握不是很准,通过上方调整距离来实现教师评语成山西财经大学《程序设计(VB+Acces)》实验报告****年*月**日Private Sub Form-Click()n=1:pi=0:j=1Do while n<=20Pi=pi+j*1/(2*n-1)j=-jn=n+1Looppi=4*piEnd Sub实验中发现的问题及解决方法:For next语句 if then语句运用不是很熟练教师评语成绩山西财经大学《程序设计(VB+Acces)》实验报告****年*月**日实验题目3过程选课课号2015-2016-2-N081002S00-08034-学院*******班级********姓名***学号****理论课教师李平珍上机指导教师李平珍实验目的及要求:1.理解模块和过程的概念和意义,并能够创建和使用模块2.理解传值和引用的概念,并能够正确采用参数传递方式3.理解变量的作用域与生存期,能够正确使用各种变量使用过程求:1!+2!+…+9!,实验的详细操作步骤、程序代码及运行截图:实验中发现的问题及解决方法:Dim 的运用不是很到位,经过学习了解深刻教师评语山西财经大学《程序设计(VB+Acces)》实验报告****年*月**日。
VB实验报告(含答案)
If Check1.Value = 1 Then
Label1.FontBold = True
Else
Label1.FontBold = False
End If
If Check2.Value = 1 Then
Label1.FontItalic = True
Else
Label1.FontItalic = False
图1.1实验1-1运行界面
三.实验结果:对象属性设置
对象
属性
属性值
说明
Form1
caption
我的第一个vb程序
窗体
Label1
caption
请输入姓名
标签
Text1
text
““
文本框
Command1
caption
显示
命令按钮
Command2
caption
清除
命令按钮
四.实验思考:
1.标签label控件设置的属性代码有哪些?
加粗
复选框
Check2
Caption
倾斜
复选框
Check3
Caption
下划线
复选框
Check4
Caption
删除线
复选框
四.实验思考:
1.模拟简易计算器Command1命令的单击事件的程序代码是什么?
Private Sub Command1_Click()
Dim a!, b!
Dim c As String
If Option1.Value = True Then
Label1.FontName = “宋体”
ElseIf Option2.Value = True Then
VB实验报告册
实验报告一(循环与数组)实验目的:通过学习,要求掌握选择语句结构if 语句、 Select case 语句、While wend 语句 、For Next 语句,do while (until ) loop 语句的基本书写格式,以及要掌握累和与累乘以及杨辉三角的算法进行演算。
实验要求:1.编辑,输入X 值,按下式计算并输出Y 的值Y=f(x)=2.计算下式的和,变量X 与N 的数据值用输入对话框输入)!1(............!4!3!232+++++=n x x x x s n3.用近似公式求自然对数据的底数E 的值,直到前后两项之差小于10-4为止。
E ≈!1..............31!21!111n ++++ 4.编程,输入n(n 为1位整数),输出n+1层的杨辉三角形。
如n 为6时,输出结果如下所示。
11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 11 6 15 20 15 6 1实验步骤:实验体会:x+3 x>3 x 2 1<=x<= 3Sqr(x) 0<x<1 0 x<=0实验目的:通过学习,要求熟练掌握常用控件:textbox commandbox labelbox 控制的用法;掌握optionbox 与listbox的方法,属性及事件,对于定时器与滚动条的基本用法要学会运用与操作。
实验要求:1.编制一个用于进制转换的应用程序,运行时的界面如图2.编制一个“偶数迁移”程序设计,运行界面如图:具体要求为:窗体的标题为“偶数迁移”,单击“产生”按钮,计算机随机产生10个两位正整数放入列表框里list1中,同时清空列表框list2中的内容。
单击“- ”按钮,将列表框list1中所有的偶数迁移到列表框list2中。
3.设计一个字幕推出程序。
标签的字号在定时时器的控制下每个时间间隔放大2磅并且保持标签在窗体中水平居中,当标签的字号超过72时,定时器停止响应Timer事件,字号放大的速度由水平滚动条控制。
vb实训报告
vb实训报告1. 引言本文旨在对VB实训进行全面的报告和总结。
报告内容包括实训的目的、实训的步骤和方法、实训过程中遇到的问题及解决方法、实训结果的分析与评价等。
2. 实训目的本次VB实训的目的是通过编写一个实用的程序,来提高学生们的VB编程能力和实践操作能力。
通过实际操作,学生们能够更好地了解VB的工作原理和应用场景,为他们将来从事相关工作奠定基础。
3. 实训步骤和方法(1)熟悉VB开发环境:学生首先进行VB开发环境的安装和配置,并熟悉VB开发工具的功能和操作方法。
(2)了解VB基础知识:学生通过上课和自学的方式,对VB 的基础语法、界面设计、事件处理等进行学习和掌握。
(3)实践操作:在掌握了VB的基础知识后,学生们开始进行实践操作,根据老师布置的任务,编写相应的VB程序。
(4)调试和优化:学生们在编写程序的过程中,遇到问题需要进行调试,并对程序进行优化,以提高程序的运行效率和稳定性。
4. 实训过程中遇到的问题及解决方法在实践操作过程中,学生们遇到了一些问题,在这里列举并给出了解决方法。
(1)界面设计问题:学生们在进行界面设计时,遇到了一些难题。
他们通过查找相关资料和请教老师同学,最终解决了这些问题,并得到了满意的界面设计结果。
(2)程序逻辑问题:学生们在编写程序的过程中,遇到了一些逻辑上的困惑。
他们通过仔细思考和与老师的交流,逐步找到了解决方法,并成功实现了程序的功能。
5. 实训结果的分析与评价经过一段时间的实训,学生们完成了任务,并提交了他们编写的VB程序。
这些程序在功能上较好地实现了要求,并具备较高的用户体验。
然而,我们也发现了一些问题。
首先,在实训过程中,学生们对VB的理解和熟练程度存在差异,部分学生可能由于基础薄弱,对实训内容的掌握有一定困难。
其次,在实训过程中,有些学生对问题的解决方法存在依赖性,对于独立思考和解决问题的能力还有一定的提升空间。
综上所述,通过本次VB实训,学生们获得了较好的实践经验和编程能力的提升。
vb用户界面设计实验报告(共9篇)
vb用户界面设计实验报告(共9篇) VB第7章用户界面设计一、选择题1、下列控件中,没有Caption属性的是( )。
A. 框架B. 列表框C. 复选框D. 单选按钮2、复选框的Value属性为1时,表示( )。
A. 复选框未被选中B. 复选框被选中C. 复选框内有灰色的勾D. 复选框操作有错误3、用来设置粗体字的属性是( )。
A. FontItalicB. FontNameC. FontBoldD. FontSizeE. FontUnderline4、假定定时器的Interval属性为1000,Enabled属性为Ture,调用下面的事件过程,程序运行结束后变量x的值为( )。
Dim x As IntegerSub Timer1_Timer( )For i = 1 To 10x = x + 1Next iEnd SubA. 1000B. 10000C. 10D. 以上都不对5、在下列说法中,正确的是( )。
A. 通过适当的设置,可以在程序运行期间让定时器显示在窗体上B. 在列表框中不能进行多项选择C. 在列表框中能够将项目按字母顺序从大到小排列D. 框架也有Click和DblClick事件6、在用菜单编辑器设计菜单时,必须输入的项有( )。
A. 快捷键B. 标题C. 索引D. 名称7、在下列关于菜单的说法中,错误的是( )。
A. 每个菜单项都是一个控件,与其他控件一样也有自己的属性和事件B. 除了Click事件之外,菜单项还能响应其他的,如DblClick等事件C. 菜单项的捷径键不能任意设置D. 在程序执行时,如果菜单项的Enabled属性为False,则该菜单项变成灰色,不能被用户选择8、在下列关于通用对话框的叙述中,错误的是( )。
A. CommandDialog1.ShowFont显示“字体”对话框B. 在“打开”或“另存为”对话框中,用户选择的文件名可以经FileTitle属性返回C. 在“打开”或“另存为”对话框中,用户选择的文件名及其路径可以经FileName属性返回D. 通用对话框可以用来制作和显示“帮助”对话框二、填空题1、复选框( )属性设置为2——Grayed时,变成灰色,禁止用户选择。
vb实训报告
vb实训报告一、引言在软件开发领域中,Visual Basic(VB)是一门广泛使用的编程语言。
通过使用VB,开发人员可以轻松创建各种功能强大且易于使用的软件应用程序。
本篇文章旨在分享我在VB实训过程中的经验和收获。
二、背景介绍VB实训是为了培养学生的软件开发技能。
实训课程旨在通过实践操作,让学生了解软件开发的各个方面,并提供机会让学生将所学知识应用到真实的软件项目中。
我参加了一个为期两个月的VB实训课程,这是我第一次接触这门语言和开发环境。
三、实训过程1. 学习环境搭建在开始实训之前,我们首先需要安装VB开发环境。
第一次接触VB的时候,我对环境的配置感到有些困惑,但通过查找相关资料和请教同学,我迅速完成了环境的搭建。
2. 理解基本概念VB语言的学习过程需要理解一些基本概念,比如变量、数据类型、函数等。
在实际的编写代码中,这些概念扮演着至关重要的角色。
为了更好地理解这些概念,我们进行了一系列的练习和编程任务。
3. 界面设计与用户交互在VB中,界面设计是一个重要的部分。
我们花了很多时间学习如何使用VB的界面设计器来创建各种用户界面。
通过实践,我了解了控件的使用方法,例如文本框、按钮、标签等,并学会了如何通过这些控件与用户进行交互。
4. 数据处理与存储软件应用程序通常需要处理和存储大量的数据。
在VB实训中,我们学习了如何使用VB提供的数据库连接和查询功能,以及如何使用SQL语句来操作数据。
这对于我来说是一个重要的突破,因为我能够将用户输入的数据存储在数据库中,或从数据库中检索出所需的信息。
5. 软件功能实现在实训的最后阶段,我们将所学知识应用到一个实际的软件项目中。
我们小组的任务是创建一个简单的学生信息管理系统。
我们需要设计一个用户友好的界面来输入和管理学生信息,还需要实现增删改查等基本功能。
通过分工合作,我们顺利完成了这个项目,并且在最后进行了一场演示。
四、心得体会通过这个VB实训项目,我对软件开发有了更深入的理解。
VB上机实验报告详细易懂
VB上机实验报告详细易懂实验五数组的应用一、实验目的1.掌握一维数组的概念、定义、数组元素的引用和初始化。
2.学会用数组和程序基本控制结构实现数据的求和、求平均、求极值和排序等算法程序的设计3.加深对循环控制结构的理解和使用二、实验环境1.计算机2.Visual Basic 6.0开发环境三、实验说明1.熟练运用Visual Basic 6.0开发环境2.熟悉建立VB应用程序的步骤3.学会使用一维数组实现简单的应用程序四、实验内容和步骤1.实验内容随机产生10个两位整数,找出其中的最大值、最小值和平均值。
2.实验步骤(1)打开计算机,在Visual Basic 6.0系统环境下,选择“文件”菜单中的“新建工程”菜单选项,打开“新建工程”窗口;(2)在“新建工程”窗口按下“确定”按钮打开“工程设计”窗口;(3)在“工程设计”窗口,首先设计窗口的属性,然后打开“工具箱”窗口添加所需控件,设计该实验的界面;(4)选择“视图”菜单中的“代码窗口”菜单选项,打开“代码窗口”窗口,设计命令按钮控件的事件代码;考虑到要在不同的过程中使用数组,所以首先在模块的通用段中声明数组:Dim a(1 To 10) As Integer随机整数的生成由窗体的Load事件代码完成:Private Sub Form_Load( )Dim p As StringRandomizep = ""For i = 1 To 10a(i) = Int(Rnd * 90) + 10p = p & Str(a(i)) & ","NextLabel1.Caption = L Trim(Left(p, Len(p) – 1))End Sub求最大、最小以及平均值由“确定”按钮Command2的Click事件代码完成:Private Sub Command2_Click( )Dim n As Integer, m As Integer, s As Singlemin = 100: max = 10: s = 0For i = 1 To 10If a(i) > n Then max = a(i)If a(i) < m Then min = a(i)s = s + a(i)NextText1.Text = maxText2.Text = minText3.Text = s / 10End Sub“重置”按钮Command1的Click事件代码:Private Sub Command1_Click( )Form_LoadText1.Text = ""Text2.Text = ""Text3.Text = ""End Sub最后是“关闭”按钮Command3的Click事件代码:Private Sub Command3_Click( )Unload MeEnd Sub(5)运行程序,观察结果;(6)保存窗体,保存工程。
(完整版)vb实用案例50例
实验报告11实验报告2:实验题目1:设计窗体。
参考界面如下:运行前运行后要求:1)在窗体上添加一个标签,通过属性窗囗设置标签格式:Caption:字体格式Alignment:2—Center(居中)BorderStyle :1—Fixed Single(有边框)Backstyle:0—Tansparent(背景透明)2)运行时,单击“字号”,将标签内容的字号设置为30;单击“加粗”,将标签内容加粗;单击“下划线”,则在标签内容下加下划线。
提示:字号FontSize、加粗FontBold、下划线FontUnderline实验题目1源程序代码:Private Sub Command1_Click()Label1.FontSize = 30End SubPrivate Sub Command2_Click()Label1.FontBold = trueEnd SubPrivate Sub Command3_Click()Label1.FontUnderline = TrueEnd Sub实验题目2:设计一个计算器。
参考界面如下:要求:1)实现算术运算(+、-、*、/)的功能;2)实现清除和结束的功能;3)实现清除后,将焦点移到第一个文本框中。
实验题目2源程序代码:Private Sub Command1_Click()Text3.Text = Val(Text1.Text) + Val(Text2.Text)End SubPrivate Sub Command2_Click()Text3.Text = Val(Text1.Text) - Val(Text2.Text)End SubPrivate Sub Command3_Click()Text3.Text = Val(Text1.Text) * Val(Text2.Text)End SubPrivate Sub Command4_Click()Text3.Text = Val(Text1.Text) / Val(Text2.Text)End Sub实验题目3:设计一个能够统计某学生三门课程成绩总分和平均分的程序。
VB实验报告一2024
VB实验报告一(二)引言概述:VB(VisualBasic)是一种面向对象的程序设计语言,广泛应用于Windows操作系统中的软件开发。
本实验报告旨在详细介绍VB实验一(二)的内容与实验结果,并对其进行分析和总结。
正文内容:一、实验目的1.1学习VB语言的基本语法和开发环境的使用;1.2熟悉VB的界面设计和事件处理;1.3掌握VB语言中的数据类型、循环结构和条件语句。
二、实验步骤2.1搭建VB开发环境2.1.1并安装VisualStudio;2.1.2配置VB开发环境。
2.2界面设计2.2.1创建一个新的WindowsForms应用程序;2.2.2在设计窗口中添加控件,如按钮、文本框等;2.2.3设置控件的属性和事件。
2.3事件处理2.3.1编写相应按钮的Click事件处理程序;2.3.2实现按钮的功能,如计算、跳转等。
2.4数据类型的应用2.4.1声明和初始化变量;2.4.2使用不同数据类型进行计算和赋值。
2.5循环结构和条件语句2.5.1使用For循环和While循环实现特定功能;2.5.2利用条件语句实现条件判断。
三、实验结果3.1搭建VB开发环境成功;3.2界面设计符合预期,控件添加和属性设置正确;3.3事件处理程序编写无误,按钮功能正常;3.4数据类型的应用正确,计算和赋值结果准确;3.5循环结构和条件语句的实现正确。
四、分析与讨论4.1在搭建VB开发环境的过程中,可能会遇到版本兼容性问题,需要根据实际情况进行相应的配置和调整;4.2界面设计的合理布局与控件的正确设置对用户体验起到重要作用;4.3事件处理程序的编写需要注意语法的正确性和逻辑的严谨性;4.4在应用不同数据类型进行计算和赋值时,要注意数据类型的转换和溢出的问题;4.5循环结构和条件语句的合理运用能够简化程序的逻辑结构,提高代码的可读性和可维护性。
五、总结通过本次VB实验一(二)的学习和实践,我对VB语言的基本语法和开发环境的使用有了更加深入的了解。
vb实训报告
vb实训报告1. 引言在本次VB实训中,我们小组的任务是设计和开发一个员工管理系统。
该系统旨在帮助企业管理员工信息、薪资、考勤等日常管理事务。
本文将介绍我们在实训过程中的项目规划、功能实现、问题解决以及项目总结等方面的内容。
2. 项目规划在项目规划阶段,我们首先明确了系统的功能需求和主要模块划分。
根据实际情况,我们将系统划分为员工信息模块、薪资管理模块、考勤模块以及权限管理模块。
每个模块都有相应的功能要求和优先级。
3. 功能实现3.1 员工信息模块在员工信息模块中,我们实现了员工的基本信息录入、修改和查询功能。
通过设计合理的界面布局和表单格式,使用户能够方便快捷地操作相关功能。
我们还添加了员工照片上传和显示的功能,增强了系统的可视化和人性化。
3.2 薪资管理模块薪资管理模块是该员工管理系统的关键部分之一。
我们实现了薪资的计算、发放和统计功能。
通过与员工信息模块的数据交互,能够自动计算薪资、生成工资条等相关操作。
同时,我们提供了统计报表的功能,帮助管理人员迅速了解企业的薪资概况。
3.3 考勤模块在考勤模块中,我们实现了考勤打卡、请假申请和考勤统计等功能。
通过与系统日历的结合,员工能够方便地进行考勤操作,并及时查看自己的考勤记录。
考勤统计功能可以帮助企业管理人员掌握员工的出勤情况,及时进行奖惩和管理。
3.4 权限管理模块为了保证系统的安全性和数据的机密性,我们设计了权限管理模块。
该模块实现了用户角色的划分、账号权限的设置和登录验证等功能。
只有经过验证的用户才能够访问系统,并根据其角色的不同进行相应的操作。
4. 问题解决在项目开发过程中,我们遇到了一些问题,并采取了相应的解决策略。
例如,在员工信息模块中,由于员工照片的上传和显示涉及到文件操作和路径设置,我们遇到了一些路径错误和图片加载问题。
通过仔细检查代码和路径设置,最终解决了这些问题。
同样,在权限管理模块中,我们遇到了一些安全性和数据保护的问题。
通过加密算法和访问控制的设置,我们增强了系统的安全性,避免了未授权用户的非法访问。
vb实训报告
vb实训报告一、引言VB,即Visual Basic,是一种基于事件驱动的编程语言,由微软公司开发。
通过VB,程序员可以使用图形用户界面(GUI)来创建应用程序。
本报告将详细介绍我在VB实训课程中所学到的知识和经验,以及我的实训项目的设计和实现过程。
二、实训项目概述我的实训项目是一个学生管理系统,旨在帮助学校管理学生的信息和成绩。
通过该系统,学校可以方便地浏览、添加、修改和删除学生的个人信息和成绩记录。
三、系统设计与实现1. 界面设计我采用了经典的菜单栏和工具栏布局,以及直观明了的界面设计。
通过菜单栏和工具栏可以实现对学生信息和成绩的增删改查等基本操作。
2. 数据库设计为了存储学生的信息和成绩,我设计了一个学生数据库。
数据库包括两个表,一个是学生信息表,包含学生ID、姓名、年龄等字段;另一个是成绩表,包含学生ID、科目、分数等字段。
3. 功能实现根据实训要求,我实现了以下功能:- 显示学生列表:从数据库中读取学生信息,并在界面上以表格的形式展示出来,方便用户查看。
- 添加学生:用户可以通过输入学生信息,并点击添加按钮将学生信息保存到数据库中。
- 修改学生信息:用户可以选择某个学生,并对其信息进行修改。
- 删除学生:用户可以选择某个学生,点击删除按钮将其从数据库中删除。
- 成绩输入与查询:用户可以输入学生的科目和分数,并保存到成绩表中。
用户也可以查询某个学生的成绩信息。
四、实训总结通过本次VB实训,我深入了解了VB的基本原理和应用技巧。
我学会了如何设计和实现一个功能完善的学生管理系统,并对数据库操作、界面设计和逻辑编程等方面有了更深入的了解。
在实训过程中,我遇到了一些挑战和困难。
例如,数据库操作时需要注意事务的处理,以保证数据的完整性;界面设计需要符合用户的思维习惯,以提高用户体验。
通过解决这些问题,我不仅提高了自己的技能水平,也对项目开发的重要性有了更深入的认识。
在未来的学习和工作中,我将继续学习和掌握VB以及其他相关技术,不断提高自己的编程能力和项目开发能力。
vb实验报告实验一
vb实验报告实验一
实验一:VB实验报告
实验目的:通过VB编程实现简单的计算器功能,加深对VB语言的理解和掌握。
实验内容:
1. 设计计算器界面,包括数字按钮、运算符按钮和等号按钮。
2. 实现数字按钮的点击事件,将点击的数字显示在计算器界面上。
3. 实现运算符按钮的点击事件,将点击的运算符保存下来。
4. 实现等号按钮的点击事件,根据保存的运算符进行相应的计算,并将结果显
示在计算器界面上。
实验步骤:
1. 打开VB开发环境,创建一个新的Windows窗体应用程序项目。
2. 在窗体上设计计算器界面,包括数字按钮、运算符按钮和等号按钮。
3. 编写VB代码,实现数字按钮和运算符按钮的点击事件,将点击的数字或运
算符保存下来。
4. 编写VB代码,实现等号按钮的点击事件,根据保存的运算符进行相应的计算,并将结果显示在计算器界面上。
实验结果:
经过实验,成功实现了一个简单的计算器功能。
用户可以通过点击数字按钮输
入数字,点击运算符按钮选择运算符,点击等号按钮进行计算,最终得到正确
的计算结果。
实验总结:
通过本次实验,我进一步掌握了VB语言的编程技巧,对VB编程有了更深入的
理解。
通过实际操作,我对计算器功能的实现有了更清晰的认识,为以后的VB 编程打下了良好的基础。
希望通过不断的实践和学习,能够更加熟练地运用VB 语言,实现更多更复杂的功能。
vb实验总结通用模板(热门9篇)
vb实验总结通用模板第1篇一个月的时间非常快就过去了,这一个月我不敢说自己有多大的进步,获得了多少知识,但起码是了解了项目开发的部分过程。
虽说上过数据库相关的课程,但是没有亲身经历过相关的设计工作细节。
这次课程设计给我提供了一个很好的机会。
通过这次课程设计发现这其中需要的很多知识我们没有接触过,上网查找资料的时候发现我们以前所学到的仅仅是皮毛,还有很多需要我们掌握的东西我们根本不知道。
同时也发现有很多已经学过的东西我们没有理解到位,不能灵活运用于实际,不能很好的用来解决问题,这就需要自己不断的大量的实践,通过不断的自学,不断地发现问题,思考问题,进而解决问题。
在这个过程中我们将深刻理解所学知识,同时也可以学到不少很实用的东西。
这次的数据库课程设计,我们组负责的企业信息文档管理系统的设计。
这课题是自拟的。
我们组实行的分工合作。
我主要是负责数据库功能模块设计这部分。
从各种文档的阅读到需求分析、概要设计、数据库总体设计、代码编写与调试,我们都准备了好长时间。
组内分工合作的整个过程,我亲身体验了一回系统的设计开发过程,分工合作的好处。
很多东西书上写的很清楚,貌似看着也很简单,思路非常清晰。
但真正需要自己想办法去设计一个系统的时候才发现其中的难度。
经常做到后面突然就发现自己一开始的设计有问题,然后又回去翻工,在各种反复中不断完善自己的想法我想有这样的问题不止我一个,事后想想是一开始着手做的时候下手过于轻快,或者说是根本不了解自己要做的这个系统是给谁用的。
因为没有事先做过仔细的用户调查,不知道整个业务的流程,也不知道用户需要什么功能就忙着开发,这是作为设计开发人员需要特别警惕避免的,不然会给后来的工作带来很大的麻烦,甚至可能会需要全盘推倒重来。
所以以后的课程设计要特别注意这一块的设计。
经过组内讨论,我们确定的课题是企业信息文档管理系统。
说实话,我对这个系统不是很了解。
通过上网查找资料、相关文献的阅读,我对该系统有了大体的了解。
vb课程设计实践报告
vb课程设计实践报告一、教学目标本课程的教学目标是使学生掌握VB编程的基础知识,培养学生运用VB解决实际问题的能力。
具体分为三个部分:1.知识目标:学生需要掌握VB的基本语法、数据类型、变量、常量、运算符、控制结构、函数等编程基础知识和技能。
2.技能目标:学生能够运用VB编写简单的程序,解决实际问题,如计算器、文本排序等。
3.情感态度价值观目标:培养学生对编程的兴趣和主动性,提高学生分析问题、解决问题的能力。
二、教学内容根据教学目标,本课程的教学内容主要包括以下几个部分:1.VB基本语法和数据类型2.变量、常量和运算符3.控制结构:顺序结构、选择结构、循环结构4.函数:数学函数、字符串函数、日期时间函数等5.面向对象编程:类和对象、属性、方法、事件等6.常用控件及其属性和方法7.数据库访问技术三、教学方法为了达到教学目标,本课程将采用以下几种教学方法:1.讲授法:讲解VB的基本语法、数据类型、变量、常量、运算符、控制结构、函数等基础知识。
2.案例分析法:通过分析实际案例,使学生掌握面向对象编程、常用控件及其属性和方法。
3.实验法:让学生动手编写程序,解决实际问题,提高学生的编程能力。
4.讨论法:分组讨论,分享学习心得,互相答疑解惑。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《VB编程与应用》2.参考书:《VB编程实例教程》3.多媒体资料:教学PPT、视频教程4.实验设备:计算机、网络环境、编程软件以上教学资源将有助于丰富学生的学习体验,提高学生的编程能力。
五、教学评估为了全面、客观、公正地评估学生的学习成果,我们将采取以下评估方式:1.平时表现:评估学生的出勤、课堂参与度、提问回答等情况,占总成绩的20%。
2.作业:布置适量的作业,评估学生的编程能力和应用能力,占总成绩的30%。
3.考试:进行期中和期末考试,评估学生对VB基础知识和技能的掌握程度,占总成绩的50%。
大一vb的实验报告
大一vb的实验报告一、实验目的掌握VB语言的基础知识和编程技巧,并通过实践掌握VB的常用控件和事件处理方法。
二、实验材料1.计算机2.VB开发环境三、实验步骤1.搭建VB开发环境在计算机上安装VB开发环境,并进行必要的配置。
2.创建一个新的VB项目打开VB开发环境,点击“新建项目”按钮,选择“Windows桌面应用程序”模板,填写项目名称并确定。
3.设计用户界面在VB的设计器中,拖动控件到窗体上,设置其属性,并进行布局设计。
4.添加事件处理程序对每个控件添加相应的事件处理程序,以实现交互功能。
例如,对于按钮控件,可以添加点击事件的处理程序。
5.编写VB代码在VB的代码编辑器中,编写处理事件的代码,以实现所需的功能。
可以使用VB的基础语法、分支结构、循环结构等。
6.调试与运行对代码进行调试,确保程序运行没有错误,然后点击运行按钮,查看程序的运行效果。
四、实验结果通过以上步骤,成功实现了一个基础的VB程序,具备一定的交互功能和相应的逻辑处理。
五、实验总结通过本次实验,我学会了如何搭建VB开发环境,编写VB代码,设计用户界面,以及添加事件处理程序。
这些都是VB编程的基础知识和技能,对于以后的学习和应用都具有重要的意义。
通过不断的实践和探索,我相信自己能够在VB编程方面有更深入的理解和应用。
六、实验心得本次实验对我来说是一次很好的学习机会。
通过亲自动手实践,我加深了对VB语言和开发环境的了解,对于如何设计用户界面和编写代码也有了一定的经验。
实验过程中,我遇到了不少问题,但通过查阅资料和请教同学,我一一解决了这些问题。
实验不仅让我学到了知识,还培养了我的动手能力和解决问题的能力。
我会继续努力学习,提升自己的编程水平。
vb实验报告三
vb实验报告三VB实验报告三引言:VB(Visual Basic)是一种基于事件驱动的编程语言,广泛应用于Windows操作系统上的软件开发中。
本篇实验报告将详细介绍我在VB实验三中的实验过程、结果和分析。
实验目的:本次实验旨在通过VB编程实现一个简单的学生信息管理系统。
通过该系统,能够实现学生信息的录入、查询、修改和删除等功能,并将数据存储在数据库中。
实验步骤:1. 设计数据库结构:在实验前,首先需要设计数据库的表结构。
我选择了三个字段:学生姓名、学生年龄和学生性别。
2. 创建VB窗体:打开VB开发环境,创建一个新的窗体。
在窗体上设计相应的控件,如文本框、按钮和标签等,以实现学生信息的录入和操作。
3. 连接数据库:使用VB提供的ADO(ActiveX Data Objects)技术,连接到事先创建的数据库。
通过VB代码,建立与数据库的连接,并打开数据库。
4. 实现数据录入功能:在VB窗体上添加文本框和按钮,通过编写相应的事件处理程序,实现学生信息的录入功能。
当用户在文本框中输入完整的学生信息后,点击按钮即可将数据保存到数据库中。
5. 实现数据查询功能:在VB窗体上添加查询按钮和文本框,通过编写事件处理程序,实现学生信息的查询功能。
用户可以在文本框中输入学生姓名或其他关键词,点击查询按钮后,系统将从数据库中检索相关数据,并显示在窗体上。
6. 实现数据修改和删除功能:在VB窗体上添加修改和删除按钮,通过编写事件处理程序,实现学生信息的修改和删除功能。
用户可以选择要修改或删除的学生信息,并点击相应按钮进行操作。
实验结果:经过以上步骤的实现,我成功地完成了学生信息管理系统的开发。
通过运行程序,我可以在VB窗体上录入学生信息,并实现查询、修改和删除等操作。
数据能够准确地保存到数据库中,并能够根据用户的需求进行相应的操作。
实验分析:通过本次实验,我深入了解了VB编程语言和数据库的应用。
VB作为一种简单易学的编程语言,具有良好的可视化编程环境,使得开发者能够快速实现各种功能。
VB实训报告,学生成绩管理系统
附录:一、设计的系统界面示意图二、涉及的代码清单简易计算器代码:Dim v As BooleanDim s As StringDim x As DoubleDim y As DoublePrivate Sub Command1_Click(Index As Integer) If Form.Tag = "T" ThenIf Index = 10 ThenText1.Text = "0."ElseText1.Text = command1(Index).CaptionEnd IfForm1.Tag = ""Elsea = Text1.TextText1.Text = a & Command1(Index).Caption End IfEnd SubPrivate Sub Command2_Click(Index As Integer) Form1.Tag = "T"If v Thenx = Text1.Text: v = Not vElsey = Text1.TextSelect Case sCase 0Text1.Text = x + yCase 1Text1.Text = x - yCase 2Text1.Text = x * yCase 3If y <> 0 ThenText1.Text = x / yElseMsgBox ("不能以0为除数") Text1.Text = xv = FalseEnd IfEnd Selectx = Text1.TextEnd Ifs = IndexEnd SubPrivate Sub Command3_Click() Form1.Tag = "t": y = Text1.Text Select Case sCase 0Text1.Text = x + yCase 1Text1.Text = x - yCase 2Text1.Text = x * yCase 3If y <> 0 ThenText1.Text = x / yElseMsgBox ("不能以0为除数")Text1.Text = xEnd IfEnd Selectx = Text1.Text: y = 0: v = False: s = 5End Sub学生成绩查询代码:Private Sub Form_Load() '初始化开的课程,在这里所有的班级都开设了这九门课程!Combo1.AddItem "数学"Combo1.AddItem "语文"Combo1.AddItem "英语"Combo1.AddItem "生物"Combo1.AddItem "化学"Combo1.AddItem "物理"Combo1.AddItem "政治"Combo1.AddItem "历史"Combo1.AddItem "地理"End SubPrivate Sub command4_Click()Dim a As SingleDim b As IntegerDim c As StringIf Combo1.Text = "数学" ThenAdodc1.Recordset("数学成绩") = Text3.TextAdodc1.Recordset.UpdateEnd IfIf Combo1.Text = "语文" ThenAdodc1.Recordset("语文成绩") = Text3.TextAdodc1.Recordset.UpdateEnd IfIf Combo1.Text = "英语" ThenAdodc1.Recordset("英语成绩") = Text3.TextAdodc1.Recordset.UpdateEnd IfIf Combo1.Text = "生物" ThenAdodc1.Recordset("生物成绩") = Text3.TextAdodc1.Recordset.UpdateEnd IfIf Combo1.Text = "化学" ThenAdodc1.Recordset("化学成绩") = Text3.TextAdodc1.Recordset.UpdateEnd IfIf Combo1.Text = "物理" ThenAdodc1.Recordset("物理成绩") = Text3.TextAdodc1.Recordset.UpdateEnd IfIf Combo1.Text = "政治" ThenAdodc1.Recordset("政治成绩") = Text3.TextAdodc1.Recordset.UpdateEnd IfIf Combo1.Text = "历史" ThenAdodc1.Recordset("历史成绩") = Text3.TextAdodc1.Recordset.UpdateEnd IfIf Combo1.Text = "地理" ThenAdodc1.Recordset("地理成绩") = Text3.TextAdodc1.Recordset.UpdateEnd IfAdodc1.Recordset("学生总分") = Val(Adodc1.Recordset("数学成绩")) + Val(Adodc1.Recordset("语文成绩")) + Val(Adodc1.Recordset("英语成绩")) + Val(Adodc1.Recordset("化学成绩")) + Val(Adodc1.Recordset("生物成绩")) +Val(Adodc1.Recordset("物理成绩")) + Val(Adodc1.Recordset("政治成绩")) + Val(Adodc1.Recordset("历史成绩")) + Val(Adodc1.Recordset("地理成绩"))a = CSng(Val(Adodc1.Recordset("学生总分")) / 9)b = InStr(Trim(Str(a)), ".")If b <> 0 ThenIf Val(Mid(Str(a), b + 3, 1)) >= 5 Thenc = Str(Val(Mid(Trim(Str(a)), 1, b + 2)) + 0.01)Elsec = Str(Val(Mid(Trim(Str(a)), 1, b + 2)))End IfAdodc1.Recordset("学生平均分") = Trim(c)ElseAdodc1.Recordset("学生平均分") = Trim(Str(a) & ".00")End IfAdodc1.Recordset.UpdateMsgBox "修改完毕!"End SubPrivate Sub Command2_Click()If Combo1.Text = "" ThenMsgBox "请选课程名!"Exit SubEnd IfAdodc1.RefreshAdodc1.Recordset.Find ("studentname like '" & Text4.Text & "' ")If Adodc1.Recordset.EOF Or Adodc1.Recordset.BOF ThenMsgBox "123"ElseIf Combo1.Text = "数学" ThenText3.Text = Adodc1.Recordset("数学成绩")End IfIf Combo1.Text = "语文" ThenText3.Text = Adodc1.Recordset("语文成绩")End IfIf Combo1.Text = "英语" ThenText3.Text = Adodc1.Recordset("英语成绩")End IfIf Combo1.Text = "生物" ThenText3.Text = Adodc1.Recordset("生物成绩")End IfIf Combo1.Text = "化学" ThenText3.Text = Adodc1.Recordset("化学成绩")End IfIf Combo1.Text = "物理" ThenText3.Text = Adodc1.Recordset("物理成绩")End IfIf Combo1.Text = "政治" ThenText3.Text = Adodc1.Recordset("政治成绩")End IfIf Combo1.Text = "历史" ThenText3.Text = Adodc1.Recordset("历史成绩")End IfIf Combo1.Text = "地理" ThenText3.Text = Adodc1.Recordset("地理成绩")End IfEnd IfEnd SubPrivate Sub Command1_Click()Dim a As SingleDim b As IntegerDim c As StringIf Combo1.Text = "" ThenMsgBox "请选课程名!"Exit SubEnd IfAdodc1.RefreshAdodc1.Recordset.Find ("studentname like '" & Text4.Text & "' ") If Adodc1.Recordset.EOF Or Adodc1.Recordset.BOF ThenMsgBox "123"ElseIf Combo1.Text = "数学" ThenAdodc1.Recordset("数学成绩") = Text2.TextAdodc1.Recordset.UpdateEnd IfIf Combo1.Text = "语文" ThenAdodc1.Recordset("语文成绩") = Text2.TextAdodc1.Recordset.UpdateEnd IfIf Combo1.Text = "英语" ThenAdodc1.Recordset("英语成绩") = Text2.TextAdodc1.Recordset.UpdateEnd IfIf Combo1.Text = "生物" ThenAdodc1.Recordset("生物成绩") = Text2.TextAdodc1.Recordset.UpdateEnd IfIf Combo1.Text = "化学" ThenAdodc1.Recordset("化学成绩") = Text2.TextAdodc1.Recordset.UpdateEnd IfIf Combo1.Text = "物理" ThenAdodc1.Recordset("物理成绩") = Text2.TextAdodc1.Recordset.UpdateEnd IfIf Combo1.Text = "政治" ThenAdodc1.Recordset("政治成绩") = Text2.TextAdodc1.Recordset.UpdateEnd IfIf Combo1.Text = "历史" ThenAdodc1.Recordset("历史成绩") = Text2.TextAdodc1.Recordset.UpdateEnd IfIf Combo1.Text = "地理" ThenAdodc1.Recordset("地理成绩") = Text2.TextAdodc1.Recordset.UpdateEnd IfAdodc1.Recordset("学生总分") = Val(Adodc1.Recordset("数学成绩")) + Val(Adodc1.Recordset("语文成绩")) + Val(Adodc1.Recordset("英语成绩")) + Val(Adodc1.Recordset("化学成绩")) + Val(Adodc1.Recordset("生物成绩")) + Val(Adodc1.Recordset("物理成绩")) + Val(Adodc1.Recordset("政治成绩")) + Val(Adodc1.Recordset("历史成绩")) + Val(Adodc1.Recordset("地理成绩"))a = CSng(Val(Adodc1.Recordset("学生总分")) / 9)b = InStr(Trim(Str(a)), ".")If b <> 0 ThenIf Val(Mid(Str(a), b + 3, 1)) >= 5 Thenc = Str(Val(Mid(Trim(Str(a)), 1, b + 2)) + 0.01)Elsec = Str(Val(Mid(Trim(Str(a)), 1, b + 2)))End IfAdodc1.Recordset("学生平均分") = Trim(c)ElseAdodc1.Recordset("学生平均分") = Trim(Str(a) & ".00")End IfAdodc1.Recordset.UpdateMsgBox "录入完毕!"End IfEnd SubPrivate Sub Command3_Click()Dim i As IntegerDim a(1 To 9) As SingleDim b(1 To 9) As StringAdodc1.RefreshAdodc1.Recordset.Find (" class like '" & Text1.Text & "' ")If Adodc1.Recordset.EOF Or Adodc1.Recordset.BOF ThenMsgBox "123"ElseFor i = 1 To 9a(i) = Val(DataGrid1.Columns(DataGrid1.Col + i + 1))Next ij = 1End IfEnd Sub。
大一vb的实验报告
大一vb的实验报告篇一:VB实验报告一、实验目的和要求1、掌握正确书写表达式、赋值语句的规则。
2、掌握InputBox与MsgBox的使用。
3、掌握Print方法和Format格式使用。
4、掌握单分支与双分支条件语句的使用。
5、掌握多分支条件语句的使用。
6、掌握For语句和Do语句的各种形式的使用。
7、掌握如何控制循环条件,防止死循环和不循环。
二、实验内容和原理1、输入半径,计算圆周长和圆面积。
为了保证程序运行的正确,对输入半径要进行合法性检查,数据检查调用IsNumeric函数;若有错,利用MsgBox显示错误信息,通过SetFocus方法定位于出错的文本框处,重新输入;计算结果保留两位小数。
提示:使用Text1_KeyPress事件,按Enter键,返回参数“KeyAscii”的值为13表示输入结束。
2、随机产生三个整数,按从小到大的顺序显示。
3、计算π的近似值,π的计算公式为:?2n?224262π=2×××…× 2n-1?2n+11?33?55?7 注意:①、分别显示当n=10、100、1000时的结果,由此可见,此计算公式收敛如何?②、要防止大数相乘时结果溢出的问题,将变量类型改为长整型或实数型。
三、主要仪器设备计算机四、实验结果与分析实验界面:1、输入半径,计算圆周长和圆面积。
程序:Private Sub Form_ActivateText1.Text = "输入半径值"Text1.SetFocusText1.SelStart = 0Text1.SelLength = Len(Text1.Text)End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer) '圆面积,周长Dim rr = Text1.TextConst PI = 3.14159If KeyAscii = 13 ThenClsIf IsNumeric(r) ThenPrint "当圆的半径为"; r; "时:"Print "圆面积为:"; Format(PI * r ^ 2, "0.00") Print "圆面积为"; Format(PI * r ^ 2, "0.00")ElseText1 = "半径值输入有误"End IfText1.SetFocusText1.SelStart = 0Text1.SelLength = Len(Text1.Text)ElseEnd IfEnd Sub运行结果:输入值:22、随机产生三个整数,按从小到大的顺序显示。
VB实验报告(实验5)
电子信息工程学系实验报告课程名称:面向对象程序设计实验项目名称:实验5 Function过程实验时间:2011-10-17班级:姓名:学号:实验目的:1)掌握Function过程的定义和调用。
2)掌握变量的有效范围和静态存储。
3)掌握递归过程的定义和调用。
实验环境:Windows XPVisual 2003实验内容及过程:使用静态变量用数组计算乘法口诀1、新建一个“Vusual Basic”项目2、界面设计如图1所示图1 界面设计3、编写程序代码Dim a(9) As IntegerDim x As IntegerPrivate Sub txtX_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles_ txtX.TextChangedx = Val(txtX.Text)txtResult.Text = ""End SubPrivate Sub cmdStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles_cmdStart.ClickDim i As Integer, j As IntegerFor i = 1 To xa(i - 1) = func(x)NextFor i = 1 To xtxtResult.Text = txtResult.Text & i & "x" & x & "=" & a(i - 1) & " "NextEnd SubFunction func(ByVal k As Integer)Static s As Integers = k + sfunc = sEnd FunctionPrivate Sub cmdEnd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdEnd.Click EndEnd Sub4、保存项目5、运行结果(图2 所示)图2 运行结果实验心得:通过本次实验让我熟悉了Function过程的运用和静态变量的运用,通过此次实验,让我更加深刻体会到了过程运用的重要性,它对简化程序的编写起着至关重要的意义。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2009-2010学年度第二学期Vi s u a l B a s i c 6.0实习报告姓名:XX班级:XXXX学号:XXXXXXXXX指导教师:XX时间:XXXXXXXXXXXXXXX目录目录 ............................................................................................................................................. - 1 -一、实习目的和要求.......................................................................................................... - 2 -二、实验内容...................................................................................................................... - 2 -三、实验步骤(界面设计).............................................................................................. - 2 -四、程序代码编写.............................................................................................................. - 5 -五、错误分析.................................................................................................................... - 11 -六、实习的心得体会........................................................................................................ - 11 -七、教师评语.................................................................................................................... - 13 -一、实习目的和要求a)通过上机实训,加深对VB6.0的认识,能够更加熟练对VB6.0进行一些操作,并编写出简单的Windows应用程序;b)掌握一些基本控件的事件和属性;c)掌握一些API函数的应用;d)能够运用自定义过程及其调用;e)模块的应用。
二、实验内容设计一个电子琴,当程序运行后,单击电子琴键或用鼠标在电子琴键上滑动,都可以产生音乐。
运行时,也可以选择具体的设备和乐器,并能以拖动滚动条来调节音量和音调。
双击窗体可退出程序。
三、实验步骤(界面设计)a)单击菜单栏中的“文件/新建工程”命令,这时会弹出“新建工程”对话框,如图1。
图 1b)选择窗体,设置窗体的几个属性:Caption改为“电子琴”,Boardstyle为“1-Fixed Single”。
c)单击工具箱中的工具按钮,在窗体中,按下鼠标左键进行拖动,并设置Caption属性为“设备与乐器”,BackColor 属性为黑色,ForeColor为白色。
d)单击工具箱中的工具按钮,在Frame1框架中添加2个下拉列表框,再向该框架中添加2个标签。
e)单击工具箱的工具按钮,在窗体中按下鼠标左键进行拖动,BackColor属性为黑色。
f)在Frame2框架中添加2个水平滚动条、3个标签。
g)单击工具箱中的工具按钮,在窗体中添加图片框数组,共65个元素,它们的名称为“Picture1”,Index属性分别为“1”、“2”、、、、、、“64”。
h)在窗体中添加2个计时器控件、1个标签,如图2所示。
i)添加模块。
单击菜单栏中的“工程/添加模块”命令,弹出“添加模块”对话框,如图3。
单击“打开”就可以创建一个模块。
图 2图 3四、程序代码编写a)模块中的代码如下:Option ExplicitPrivate Declare Function midiOutGetDevCaps Lib "winmm.dll" Alias "midiOutGetDevCapsA" (ByVal uDeviceID As Long, lpCaps As MIDIOUTCAPS, ByVal uSize As Long) As LongPrivate Declare Function midiOutGetNumDevs Lib "winmm" () As IntegerPrivate Declare Function MIDIOutOpen Lib "winmm.dll" Alias "midiOutOpen" (lphMidiOut As Long, ByVal uDeviceID As Long, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal dwFlags As Long) As LongPrivate Declare Function midiOutClose Lib "winmm.dll" (ByVal hMidiOut As Long) As LongPrivate Declare Function midiOutShortMsg Lib "winmm.dll" (ByVal hMidiOut As Long, ByVal dwMsg As Long) As LongPrivate Declare Function midiOutGetErrorText Lib "winmm.dll" Alias "midiOutGetErrorTextA" (ByVal err As Long, ByVal lpText As String, ByVal uSize As Long) As LongPrivate Const MAXERRORLENGTH = 128Private Const MIDIMAPPER = (-1)Private Const MIDI_MAPPER = (-1)Type MIDIOUTCAPSwMid As IntegerwPid As IntegervDriverVersion As LongszPname As String * 32wTechnology As IntegerwVoices As IntegerwNotes As IntegerwChannelMask As IntegerdwSupport As LongEnd TypeDim hMidi As LongPublic Function Midi_OutDevsToList(Obj As Control) As BooleanDim i As IntegerDim midicaps As MIDIOUTCAPSDim isAdd As BooleanObj.ClearisAdd = FalseIf midiOutGetDevCaps(MIDIMAPPER, midicaps, Len(midicaps)) = 0 Then Obj.AddItem midicaps.szPnameObj.ItemData(Obj.NewIndex) = MIDIMAPPERisAdd = TrueEnd IfFor i = 0 To midiOutGetNumDevs() - 1If midiOutGetDevCaps(i, midicaps, Len(midicaps)) = 0 ThenObj.AddItem midicaps.szPnameObj.ItemData(Obj.NewIndex) = iisAdd = TrueEnd IfNextMidi_OutDevsToList = isAddEnd FunctionPublic Function MIDI_OutOpen(ByVal dev_id As Integer) As IntegerDim midi_error As Integermidi_OutClosemidi_error = MIDIOutOpen(hMidi, dev_id, 0, 0, 0)If Not midi_error = 0 ThenCall midi_outerr(midi_error)End IfMIDI_OutOpen = (hMidi <> 0)End FunctionPublic Sub midi_OutClose()Dim midi_error As IntegerIf hMidi <> 0 Thenmidi_error = midiOutClose(hMidi)If Not midi_error = 0 ThenCall midi_outerr(midi_error)End IfhMidi = 0End IfEnd SubPublic Sub note_on(ch As Integer, ByVal kk As Integer, v As Integer) Call midi_outshort(&H90 + ch, kk, v)End SubPublic Sub note_off(ch As Integer, ByVal kk As Integer)Call midi_outshort(&H80 + ch, kk, 0)End SubSub midi_outshort(b1 As Integer, b2 As Integer, b3 As Integer)Dim midi_error As Integermidi_error = midiOutShortMsg(hMidi, b3 * &H10000 + b2 * &H100 + b1)If Not midi_error = 0 ThenCall midi_outerr(midi_error)End IfEnd SubSub program_change(ch As Integer, cc0nr As Integer, ByVal pnr As Integer) Call control_change(ch, 0, cc0nr)Call midi_outshort(&HC0 + ch, pnr, 0)End SubSub control_change(ch As Integer, ccnr As Integer, ByVal v As Integer)Call midi_outshort(&HB0 + ch, ccnr, v)End SubSub midisetrpn(ch As Integer, pmsb As Integer, plsb As Integer, msb As Integer, lsb As Integer)Call midi_outshort(ch, &H65, pmsb)Call midi_outshort(ch, &H64, plsb)Call midi_outshort(ch, &H6, msb)Call midi_outshort(ch, &H26, lsb)End SubSub midi_outerr(ByVal midi_error As Integer)Dim s As StringDim x As Integers = Space(MAXERRORLENGTH)x = midiOutGetErrorText(midi_error, s, MAXERRORLENGTH)MsgBox sEnd Subb)窗体中的代码:Option ExplicitPrivate Declare Function GetKeyState% Lib "user32" (ByVal nVirtKey As Long)Private sudu As IntegerPrivate Const VK_LBUTTON& = &H1Private isOgain As BooleanPrivate Sta As IntegerPrivate Sub ComDevies_Click()Dim dl As Integerdl = MIDI_OutOpen(ComDevies.ItemData(ComDevies.ListIndex)) End SubPrivate Sub Command1_Click()Unload MeEnd SubPrivate Sub Command2_Click()Open App.Path & "\haap.txt" For Input As #1ComDevies.ListIndex = 0ComSounds.ListIndex = 9HScroll1.Value = 32Timer2.Enabled = TrueCommand2.Enabled = FalseEnd SubPrivate Sub ComSounds_Click()Call program_change(0, 0, ComSounds.ListIndex)End SubPrivate Sub Form_Load()Dim Retu As BooleanDim i As IntegerRetu = Midi_OutDevsToList(ComDevies)ComDevies.ListIndex = 0Call fill_sound_listFor i = 0 To 64Picture1(i).DragMode = 1NextHScroll1.Value = 36HScroll2.Value = 127End SubPrivate Sub fill_sound_list()Dim s As StringOpen App.Path & "\genmidi.txt" For Input As #1Do While Not EOF(1)Line Input #1, sComSounds.AddItem sLoopComSounds.ListIndex = 0Close #1End SubPrivate Sub Form_Unload(Cancel As Integer)midi_OutCloseEndEnd SubPrivate Sub HScroll1_Change()Sta = HScroll1.ValueLabel2.Caption = Diao(Sta Mod 12)End SubPrivate Sub HScroll2_Change()sudu = HScroll2.V alueEnd SubPrivate Sub HScroll3_Change()Label6.Caption = HScroll3.ValueEnd SubPrivate Sub Label1_MouseMove(Button As Integer, Shift As Integer, x As Single, Y As Single)Dim i As IntegerFor i = 0 To 64Call note_off(0, i + Sta)NextEnd SubPrivate Sub mnu_Close_Click()Unload MeEnd SubPrivate Sub Picture1_DragOver(Index As Integer, Source As Control, x As Single, Y As Single, State As Integer)Static OldNote As IntegerIf (OldNote <> Index) Or (isOgain = True) ThenCall note_off(0, OldNote + Sta)Call note_on(0, Index + Sta, sudu)OldNote = IndexisOgain = FalseEnd IfEnd SubPrivate Sub Timer1_Timer()Dim MyKey As IntegerMyKey% = GetKeyState(VK_LBUTTON)If MyKey% And &H4000 ThenisOgain = FalseElseisOgain = TrueEnd IfEnd SubPrivate Sub Timer2_Timer()Dim s As StringDim Index As IntegerLine Input #1, ss = Trim(s)If s = "End" ThenClose #1Timer2.Enabled = FalseCommand2.Enabled = TrueLabel1_MouseMove 0, 0, 1, 1Exit SubEnd IfIndex = Val(s)If Index < 100 ThenIndex = Index + 7Picture1_DragOver Index, Picture1(Index), 1, 1, 1Index = Index + 24Picture1_DragOver Index, Picture1(Index), 1, 1, 1 End IfisOgain = TrueEnd SubPrivate Function Diao(i As Integer) As StringSelect Case iCase 0Diao = "C"Case 1Diao = "C#"Case 2Diao = "D"Case 3Diao = "D#"Case 4Diao = "E"Case 5Diao = "F"Case 6Diao = "F#"Case 7Diao = "G"Case 8Diao = "G#"Case 9Diao = "A"Case 10Diao = "A#"Case 11Diao = "B"End SelectEnd Function五、错误分析在编程过程中最容易错的地方往往是一些不起眼的细节。