人人范文网 其他范文

vb论文范文(精选多篇)

发布时间:2022-08-28 06:02:55 来源:其他范文 收藏本文 下载本文 手机版

推荐第1篇:VB论文

学生姓名 :曹超

班 级 :1226001 学 号 :201220600107 专 业 :采矿工程

日期: 2014 年 12 月 18 日

学习VB的心得体会

这学期选修了VB这门学科,想从学习中对计算机有更深刻的认知,也对我大学中的计算机2级考试奠定基础。那么谈谈这学期的学习中对vb的认知和心得体会。

一、Visual Basic 简介

Visual Basic 是Microsoft 公司开发的Windows 应用程序开发工具,Visual ——\"可视化的\",是一种开发图形户界面(GUI)的方法,使得非计算机专业的人也可以开发出专业的Windows软件。Visual Basic继承了BASIC语言简单易学的优点,又增加了许多新的功能,它采用面向对象与事件驱动的程序设计思想,使编程变得更加方便、快捷,使用Visual Basic既可以开发个人或小组使用的小型工具,又可以开发多媒体软件,数据库应用程序,网络应用程序等大型软件,是国内外最流行的程序设计语言之一。英文Visual的意思是\"视觉的\",\"可视的Baisc\"这个名字可能抽象了点,但实际上它却是最直观的编程方法,之所以叫做\"可视\",你只要看到VB的界面就会明白,实际上你无需编程,就可以完成许多步骤。 在VB中入了控件的概念,在Windows中控件的身影无处不在,如按钮、文本框等。VB把这些控件模式化,并且每个控件都有若干属性用来控制控件的外观,工作方法,能够响应用户操作(事件)。 这样你就可以象在画板上一样,随意点几下鼠标,一个按钮就完成了。这些在以前的编程语言下是要经过相当复杂的工作的。

可视化设计:Visual Basic为用户提供大量的界面元素(在Visual Basic中称为控件对象),例如 \"窗体\"、\"菜单\"、\"命令按钮\"、\"工具按钮\"、\"检查框\"等等。用户只需要利用鼠标,键盘把这些控件对象拖动到适当的位置,设置它们的大小,形状,属性等,就可以设计出所需的应用程序界面。

事件驱动编程:Windows操作系统出现以来,图形化的用户界面和多任务多进程的应用程序要求程序设计不能是单一性的,在使用Visual Basic设计应用程序时,必须首先确定应用程序如何同用户进行交互。(例如发生鼠标单击,键盘输入等事件时,用户必须编写代码控制这些事件的响应方法)这就是所谓的事件驱动编程。

程序设计方法概述

1、初期的程序设计

高运行效率,少占用内存为目标

2、结构化程序设计

程序的可读性,可维护性为目标

程序=算法+数据结构+计算机语言+面向过程的程序设计方法

3、面向对象的程序设计(OOP)

降低程序的复杂性,提高软件的开法效率和改善工作界面为目标

程序=对象+消息+面向对象的程序设计

Visual Basic 特点

1、具有面向对象的可视化设计工具

2、事件驱动的编程机制

3、结构化的程序设计语言

4、提供了易学易用的应用程序集成开发环境

5、支持多种数据库系统的访问

6、高度可移植化的代码

7、VB6.0在开发环境上,网络功能等的大大增强。

二、对VB的理解

(1)VB不只是数据库和报表。不要以为VB就是数据库和报表,这只是VB强大功能的一小部份。如果这此都搞不清,还是好好的看一下相关的书籍,比在这里问问题有用多了。我以前没有学过数据库,只是有些编程的思路,后来学数据库就非常容易了。我做报表一般用RichTextBox或是From来做,一般都能做的很好,也不用去考虑什么水晶报表了。

(2)不要迷信于API。API能做很多东西,但有些东西在VB里面的函数中就有,API只是VB对WindowsSDK的封装而已。如果想学好API,建议学习SDK。如果VB本身就能很好的支持这个功能,何必还要用API呢。

(3)不要什么都想着控件。如果做程序都想着第三方控件的话,代价是很高的,不仅程序大,安全性也低了很多。其实VB本身带的控件已经完全够用了。

(4)认认真真的把MSDN中关于VB的内容好好看一看,特别是函数和语句,很有用的。

(5)遇到问题不要直接来这里问,自己好好想一想,试着解决这个问题,这虽然在时间上慢了,可是在自身的提高上却有很大的帮助。

(6)没事的时候,多研究些语言上的东西,如数据结构和算法,不要老是想着什么花哨的东西。这对以后的提高非常有帮助。 如何学好VB程序设计

1、学习程序设计的基本要求

2、VB的功能及特点

3、学习VB程序设计的方法

对学习者知识的要求:

首先,学习程序设计要具备一定的数学基础,计算机与数学有很大的联系,综观计算机历史,计算机的数学模型(图灵机,由Alan Turing提出)和体系结构(由John Von Neuman提出)等都是由数学家提出的。因此,要学习好计算机就要有一定的数学基础,不过对于初学者来说,在数学基础方面的要求并不是很高,从我个人的角度来看,有高中数学水平就差不多了。

其次,学习程序设计要有一定的逻辑思维能力,逻辑思维需要长时间的锻炼,如果你觉得自己在逻辑思维能力上有不足,也没有关系,因为编写程序本身也是对逻辑思维的锻炼,初学程序设计应具备的逻辑基础可以从高中数学中学到。

学习程序设计基本要求:

熟悉Visual Basic操作环境与设计工具,能设计应用程序界面。 掌握,理解面向对象程序设计基本概念。

掌握VB语言的基础知识,程序设计的方法。

能阅读一般难的程序;

能应用编写一些简单程序;

具有用Visual Basic开发Windows环境下应用程序的能力和阅读分析一般难度的VB程序的能力。

面向对象的程序设计具有如下的优点:

1、符合人们习惯的思维方法,便于分解大型的复杂多变的问题。由于对象对应于现实世界中的实体,因而可以很自然地按照现实世界中处理实体的方法来处理对象,软件开发者可以很方便地与问题提出者进行沟通和交流。

2、易于软件的维护和功能的增减,对象的封装性及对象之间的松散组合,都给软件的修改和维护带来了方便。

3、可重用性好。重复使用一个类(类是对象的定义,对象是类的实例化),可以比较方便地构造出软件系统,加上继承的方式,极大地提高了软件开发的效率。

4、与可视化技术相结合,改善了工作界面。随着基于图形界面操作系统的流行,面向对象的程序设计方法也将深入人心,它与可视化技术相结合,使人机界面进入GUI时代。

三、学习VB程序设计的方法

(1)保持良好的学习心态

1、要有自信,自强,积极主动学习.

2、克服畏难情绪,树立学好程序设计的信心 (2)要有良好的学习习惯

1、课前预习,认真听课并适当做些笔记,课后要认真复习消化所学内容,完成作业.

2、VB程序设计的入门学习并不难,但却是一个十分重要的过程,因为程序设计思想就在这时形成的,良好的程序设计习惯也在这个阶段养成.(3)学习程序设计要注重理解一些重要的概念.

VB程序设计本身并不复杂,翻开一本程序设计学习的书籍,看到的无非就是变量,函数,条件语句,循环语句等概念.但要真正能进行程序设计,需要深入理解这些概念.因此,在 程序入门阶段还是应该重视概念的学习.(4)自己动手编写程序

程序设计入门阶段要经常自己动手抄写或编写一些小程序,亲自动手进行程序设计是创造性思维应用的体现,是培养逻辑思维的好方法.因此一定要多动手编写程序,而且要从小程序开发开始,逐渐提高写程序的能力.(5)阅读,借签别人设计的好程序

多看别人设计好的程序代码,包括教材上的例题程序.在读懂别人程序后,要想他为什么这么设计能不能将程序修改完成更多的功能 则可以学到别人优秀的东西,帮助自己 提高自身水平.(6) VB程序设计学习的重点

1、程序设计课是高强度的脑力劳动,不是听会的,也不是看会的,而是练会的.

2、只有自己动手,编写一些程序,才会有成就感,进而对课程产生兴趣,学起来才比较从容.等你在编写大量程序之后,我想过二级肯定没问题,不过能不能做到真知灼见,运用自如我就不敢说了.

3、动手能力的培养是这门课和以往课程最大的不同之处.重点放在思路,算法,编程构思和程序实现上.语句只是表达工具,要求堂上积极思考,尽量当堂学懂,并做到灵活应用.(7)上机调试程序应注意的几点:

1、上机前应认真把实验题在用纸上做一做(包括窗体界面设计,事件代码的编写等)

2、每次上机后应总结,把没有搞清楚的问题记录下来,请教老师或同学.

3、平时应多抽课余时间多上机调试程序.注意系统的提示信息,遇到问题多问几次为什么.(8)养成良好的编程习惯

1、程序构思要有说明;

2、学会如何调试程序;

3、对运行结果要做正确与否的分析.

四、学习VB的意义

1、充实生活。业余时间到处游手好闲的身影不见了,没事我肯定一动不动的坐在电脑面前摆弄VB。是啊,想想以前,真是一无是处,不是打游戏,就是看小说。现在生活有了寄托,是VB给了我无穷的快乐,让我乐此不疲。

2、武装头脑。VB是一门计算机编程语言,也算是一项知识含量较高的东西吧。VB语言容易上手,采用的是可视化程序设计。通过学习VB,扩展了自己的视野,让自己的知识得到了增加。

3、锻炼意志。编程可不是一项轻松的活,尤其是一个人开发制作软件时,那工作量就多了。没有一定的坐功、细心程度及耐性那是绝对做不到的。有时,把程序做完了需要调试运行,但是就是不能达到自已设计的效果和目的,那你得戴上放大镜找啊找啊,也许就是因为一个符号或一个字母,你就得花上个几个小时,半天,甚至更长。越是这样越不要灰心,应该放松心态,一点一滴的去查。只要有一颗永不退缩的心,我相信你一定能找到问题所在,最后一定能见到你开心的笑容,也一定能找到成功者的感觉。

4、获得成就感。经过学习VB,我编写了一些小程序,例如计算器,贪吃蛇等。每当调试成功的时候,感到特别兴奋,成就感十足。

五、小结

通过选修课的学习,对了VB这种高级语言有了进一步的认知,对一些小的程序有了初步的设计方案,能根据要求设计出想要的程序,锻炼了自己的创造性思维,同时我经常看同学设计好的程序代码,包括教材上的例题程序,然后想想别人为什么这么计就能达到效果,我的设计能不能完成更多的功能,这样优秀了自己,帮助了自己,提高了自身水平,同样,也欣赏了别人,对别人是赞美,对自己是帮助,总而言之,这学期的VB课程让我收获了很多,使我对计算机2级考试有了信心。

推荐第2篇:论文VB程序

《教务信息管理系统VB程序设计》的教学思路 (2010年高职单招计算机专业技能测试题)

福安市民族职业中学———冯建锋

摘要:针对2010年高职单招计算机专业技能测试题,结合我省高职单招VB程序设计教学考纲要求进行分析。针对我校学生实际情况写出《教务信息管理系统VB程序设计》的教学思路(要求)

关键词:信息管理系统,VB程序设计,教学思路 程序思路,需要完成一个教务信息管理系统。

1:完成页面的设计。首先创建一个工程,工程中自动生成一个Form,也就是我们常说的页面,并给这个页面的名称设置成Form1,用以区分系统中其他的页面。通过编辑栏中的,Label工具,在页面中间插入一段文字,为“教务管理系统”。因为完成一个教务管理系统,需要完成的内容有学生信息的录入,学生信息的修改,学生信息删除以及学生信息的查询。于是在该页面使用Button工具,放置四个按钮并将四个按钮的Caption分别设置成“学生录入”,“学生修改”,“学生删除”和“信息统计”。且名称分别设置成Command1,Command2,Command3,Command4。依据程序要求我们可以知道,需要完成学生录入,学生修改,学生删除,和信息统计的各个功能,就必须存在有四个排版各不相同的页面,来满足各个功能的需求,于是在工程的树形菜单下选择窗体,再选择新建窗体。重复操作四次,成功建立了四个Form。分别命名为Form2,Form3,Form4,Form5用来区分和其他的Form。上面提到过的设置了四个按钮,作为按钮则是拿来点击的,而按照我们的思路,四个按钮分别代表了要完成的四项功能,那么可以得出每点击一个按钮,就应该要弹出相对应的页面来提供给用户恰当的服务。 于是双击按钮,将自动生成代码如下: Private Sub Command1_Click() ····· End Sub 其中Command1是代表按钮的名称整个函数就是代表了某一个按钮被点击之后应该执行的内容。End表示此函数结束。那么就应该写入对应的内容。完成之后的代码如下: Private Sub Command1_Click()

Form2.Show End Sub Private Sub Command2_Click()

Form4.Show End Sub Private Sub Command3_Click()

Form3.Show End Sub Private Sub Command4_Click() Form5.Show End Sub 分别代表了不同的按钮点击之后不同的执行的位置。其中Form.Show则代表对于某一个页面进行显示的功能。以上第一段表示了点击按钮1显示页面2。其他意思同上就不赘述。 这样就完成了主页面:

我们可以知道的是还需要完成四个功能,学生录入,学生修改,学生删除和信息统计。 完成学生录入的设计:使用工具栏中的Label,Text,和button以及Adodc进行页面的设计。即可。完成页面如下:。

其中Adodc原本工具栏中并没有,需要添加控件。 按ctrl+T或者在菜单“工程”-“组件”里选择

Microsoft ADO Data Control 6.0 (SP6) (OLEDB) 选中之后,就可以在工具栏中选择该控件进行拖拽。其中Adodc中基本连接方法: Adodc1.ConnectionString = \"Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=\" + App.Path + \"\\hkmdck\\db1.mdb\"//字符串的连接。Adodc直接双击,可以在栏目中选定数据库的路径也就是Acce文件的路径。就会自动生成ConnectionString。 本页面的程序代码如下:

Private Sub Command1_Click()//点击按钮触发函数。

If Trim(Text1.Text) \"\" And Trim(Text2.Text) \"\" And Trim(Text3.Text) \"\" And Trim(Text4.Text) \"\" And Trim(Text5.Text) \"\" And Trim(Text6.Text) \"\" Then

Adodc1.RecordSource = \"select * from stuInfo\"

Adodc1.Refresh

Adodc1.Recordset.AddNew

Adodc1.Recordset.Fields(\"stuNo\") = Trim(Text1.Text)

Adodc1.Recordset.Fields(\"stuName\") = Trim(Text2.Text)

Adodc1.Recordset.Fields(\"sex\") = Trim(Text6.Text)

Adodc1.Recordset.Fields(\"age\") = Trim(Text3.Text)

Adodc1.Recordset.Fields(\"tel\") = Trim(Text4.Text)

Adodc1.Recordset.Fields(\"score\") = Val(Trim(Text5.Text))

Adodc1.Recordset.Update

Adodc1.Recordset.Requery

Adodc1.Refresh

Text1.Text = \"\"

Text2.Text = \"\"

Text3.Text = \"\"

Text4.Text = \"\"

Text5.Text = \"\"

Text6.Text = \"\"

MsgBox \"添加成功\", vbOKOnly, \"系统提示\" Else: MsgBox \"信息未填写完整\", vbOKOnly, \"系统提示\" End If End Sub

对于以上解析如下:对于这个页面在业务上我们可以知道,需要点击录入按钮,那么就将各个Text中的内容写入数据库中,那么在数据库中就会生成一条记录,也就是某一个学生的信息情况,那么就完成了学生信息的录入。 首先文件进行了一个IF判断:

If Trim(Text1.Text) \"\" And Trim(Text2.Text) \"\" And Trim(Text3.Text) \"\" And Trim(Text4.Text) \"\" And Trim(Text5.Text) \"\" And Trim(Text6.Text) \"\" Then “中间内容先省略”

Else: MsgBox \"信息未填写完整\", vbOKOnly, \"系统提示\" End If End Sub

如果Text1至Text6的内容不等于(代表不等于)空字符串。也就是各个内容都输入了的。 就执行省略的了中间内容。如果有一个为空,也就是信息未填写全。就执行Else:中的内容 也就是MsgBox \"信息未填写完整\", vbOKOnly, \"系统提示\"。这个代表了弹出一个对话框,其中文字写了“信息未填写完整”,按钮上面显示 vbOKOnly。 之后结束IF语句,并退出函数。 现在对于省略部分的函数进行解析: Adodc1.RecordSource = \"select * from stuInfo\"//从stuInfo表格中做一个查询

Adodc1.Refresh

Adodc1.Recordset.AddNew//新增信息

//表格也就是提供的Acce的数据库中提供给了stuNo,stuName等字段名,以下就是在记录集中将Text1中的字段写入到stuNo的记录集里,并以此类推,完成该记录集的填充。

Adodc1.Recordset.Fields(\"stuNo\") = Trim(Text1.Text)

Adodc1.Recordset.Fields(\"stuName\") = Trim(Text2.Text)

Adodc1.Recordset.Fields(\"sex\") = Trim(Text6.Text)

Adodc1.Recordset.Fields(\"age\") = Trim(Text3.Text)

Adodc1.Recordset.Fields(\"tel\") = Trim(Text4.Text)

Adodc1.Recordset.Fields(\"score\") = Val(Trim(Text5.Text))

//到这里就成功的完成了记录集的填写

Adodc1.Recordset.Update//将字段更新到数据库中

Adodc1.Recordset.Requery Adodc1.Refresh //将页面中的Text的内容填写为空

Text1.Text = \"\"

Text2.Text = \"\"

Text3.Text = \"\"

Text4.Text = \"\"

Text5.Text = \"\"

Text6.Text = \"\" MsgBox \"添加成功\", vbOKOnly, \"系统提示\" //弹出方框,表示数据填写成功。

到此数据全部填写完成。并写入数据库。也完成了这个页面的功能。 之后的几个页面的内容类似。其中重点在于DataGrid和Adodc的绑定。 对于DataGrid和Adodc的绑定在这里举一个小小的例子如下: 1.ADODC1是数据库连接部件

2.Datagrid1是显示数据表中内容的表格

ADODC1需要设置它连接的是哪个数据表.(Adodc1.RecordSource = \"select * from 表名\") Datagrid1需要设置的是它的数据源来自ADODC1.(Set DataGrid1.DataSource = Adodc1) 然后2个部件都要刷新!Refresh

Adodc1.ConnectionString = \"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\" & App.Path & \"\\1.mdb;Persist Security Info=False\" Adodc1.CommandType = adCmdText Adodc1.RecordSource = \"select * from table\" Adodc1.Refresh Set DataGrid1.DataSource = Adodc1 DataGrid1.Refresh

这个之后,Datagrid1就可以显示1.mdb中table表的内容。

以下是本程序中修改页面的代码如下: Private Sub Command2_Click()

Dim str As String//定义str

Dim stuNo As String

Dim sql As String

stuNo = Text1.Text//获得学号

If stuNo \"\" Then

Adodc1.Recordset.Filter = \"stuNo = \'\" + stuNo + \"\'\"//通过学号机型查询

str = Adodc1.Recordset.Fields(\"sex\")

If str \"男\" Then//如果查询出来的sex不等于男

Adodc1.Recordset.Fields(\"sex\") = \"男\"

Adodc1.Recordset.Update//将sex字段设置为男,并进行更新

Else

Adodc1.Recordset.Fields(\"sex\") = \"女\"

Adodc1.Recordset.Update//否则就将字段设置为女,并进行更新

End If

Else:

MsgBox \"学号未输入\", vbOKOnly, \"系统信息\"

End If

Adodc1.Recordset.Update//结束IF之后,更新一下Adodc

DataGrid1.Refresh//因为Adodc更新了,而DataGrid和Adodc进行了一次绑定,所以也需要对其进行更新。

End Sub

Private Sub Form_Load()//这个函数是页面载入的时候执行的函数,因为页面载入的时候本身就需要对表格的内容进行填充,将表格的内容填充为数据库中的内容。所以进行页面载入的时候,首先对DataGrid进行更新。

DataGrid1.Refresh End Sub

删除的代码和修改的代码类似,其中的区别在于逻辑判断的区别了最终执行的区别,一个是update一个则是delete。代码如下: Private Sub Command2_Click()

Dim str As String

Dim stuNo As String

Dim sql As String

stuNo = Text1.Text

If stuNo \"\" Then//如果学号不为空,也就是该学生信息存在,也只有存在才可以删除

Adodc1.Recordset.Filter = \"stuNo = \'\" + stuNo + \"\'\"

Adodc1.Recordset.Delete//删除操作

Else:

MsgBox \"学号未输入\", vbOKOnly, \"系统信息\"

End If

Adodc1.Recordset.Update//同更新类似不做赘述

DataGrid1.Refresh End Sub Private Sub Form_Load() DataGrid1.Refresh End Sub

最后是查询的页面,这个页面稍稍有一点麻烦,因为对于其他页面逻辑较为复杂。代码如下: Private Sub Command1_Click()//点击按钮,执行一下函数

//对字符串进行定义

Dim stuNo As String

Dim StuName As String

Dim ScoreLow As Double

Dim ScoreHigh As Double

Dim sql As String

stuNo = Text1.Text

StuName = Text2.Text //因为查询信息,是根据多个条件进行查询的,在这里进行了一个定义,查询条件主要有一下几项,既是学生学号,学生姓名,学生成绩,学生年龄,以及学生性别。

If stuNo \"\" Then//如果学号不为空,就将SQL语句变成之下的语句,用于查询学生学号。

sql = \"select * from stuInfo where stuNo = \'\" + Trim(stuNo) + \"\'\"

End If

If StuName \"\" Then//如果姓名不为空,就将SQL语句变成之下的语句,用于查询学生姓名。

sql = \"select * from stuInfo where stuName = \'\" + Trim(StuName) + \"\'\"

Text1.Text = \"\"

End If

If Text3.Text \"\" And Text4.Text \"\" Then//这里是分数

ScoreLow = Text3.Text

ScoreHigh = Text4.Text

sql = \"select * from stuInfo where score >= \" + Trim$(ScoreLow) + \" and score

Text1.Text = \"\"

Text2.Text = \"\"

End If

If Text5.Text \"\" And Text6.Text \"\" Then//年龄

sql = \"select * from stuInfo where age >= \" + Trim$(Text5.Text) + \" and age

End If

If Text7.Text \"\" Then//性别

sql = \"select * from stuInfo where sex = \'\" + Trim$(Text7.Text) + \"\'\"

End If

Adodc1.RecordSource = sql

Adodc1.Refresh//更新数据集

Label7.Caption = \"满足条件的一共有 \" + Trim$(Adodc1.Recordset.RecordCount) + \" 人\"

DataGrid1.Refresh//更新显示信息

End Sub

典型案例:2010届我校计算机专业36名考生参加高职单招,80分以上达27人。其中罗幼凤同学得满分100分。被福建师大本科计算机网络专业录取。

心得体会:

请按以上要求补充审改。而后发表。

推荐第3篇:VB程序设计改革研究论文

摘 要 :Visual Basic程序设计作为非计算机专业公共基础课,其理论性、实践性强,教学难度大。文章就如何提高教学质量,培养学生综合应用程序开发能力作了探索和改革。

关键词:VB;程序设计;改革;实践

Abstract: Visual Basic programming as a public non-profeional computer-based leons, theory and practice strong, and teaching difficult.The article on how to improve the quality of teaching and training students in an integrated application development capabilities and explore reforms were made.

Key words: VB; programming; reform; practice

1 引言

Visual Basic(下面简称VB) 程序设计是我校非计算机专业学生的必修课,然而VB语言枯燥、难以理解,学生缺乏相应的知识背景,导致学生对这门课有恐惧心理,缺乏兴趣。这就要求我们教师在教学中分析、摸索出一些较为行之有效的教学方法,才有可能培养学生程序设计能力,掌握一门技能,激发学生对程序设计的兴趣。笔者在近几年的教学实践中进行了如下改革探索,取得了良好的教学效果。

2 教学改革与实施

2.1 对课本原有知识进行整合,激发学生的学习兴趣

大部分的教材总是先讲VB语言的基本语法,然后再讲VB中对象的使用。但在讲授时不宜将两者分开,要把VB面向对象的程序设计方法,事件驱动的编程机制贯穿于整个教学过程中。VB中的对象主要用于构建界面,而具体程序功能的实现则要编写代码行,因此任何一个完整的应用程序都不可能只用对象或只用语法。这两块内容可进行穿插讲解。这样就避免了让学生在毫无知识背景的情况下去理解抽象难懂的概念,挫伤他们编程的积极性。在教学过程中,我始终坚持以学生已有的知识程度为基础,打破原有的以课本知识的逻辑结构为顺序组织课堂教学的模式,先不讲基本概念,改用从简单的实例人手,通过让学生观看、模仿,在实际操作中去探究和领悟这些概念,并适时地加以归纳总结,让学生在轻松愉快的气氛中接受新知识。比如,在讲到循环结构中DO——LOOp语句和FOR——NEXT语句的用法时,我用DO——LOOp语句的4种形式和FOR——NEXT语句实现求解N!的过程,让学生去观察、领悟它们的异同。

2.2 教学方法多样化

笔者在教学实践中,除了采用传统的教学方法如:提问法、小组讨论法外,主要采用以下教学方法:

1)错例分析法

学生对变量、类型、运算符、表达式这些基本概念和语言规则的掌握需要一个过程,对算法和数据结构的知识需要不断积累。学习过程中,能听懂老师授课的内容,但自己编制的程序往往错误百出。课堂上,我经常将容易出错的概念以反例形式展示给学生,让他们找错误,通过运行。比如错误使用逻辑运算符。

假设a、b和c是三个变量。如果已知a

不能写成:a

很多学生会错误延用数学上的概念,写成后一种形式。

例 Option Explicit

private Sub Command1_Click()

Dim a As Integer,b As Integer,c As Integer

a = -3: b = -2: c = -1

print a

print a

End Sub

为什么 a

通过诸如此类的反例教学,使学生豁然开朗,印象深刻。

2)零散实例和核心实例结合

零散实例教学法,对每个知识点的运用和理解是非常行之有效的,但对前后知识的贯穿缺乏说服力。笔者在教学改革实践中体会到,除经典的零散实例外,将一个规模较大的、典型的、有实用价值的、学生感兴趣的核心实例贯穿于教学全过程,对提高学生的编程能力非常帮助。所谓核心实例是指,实例从小到大、随章节的展开而逐步成长,呈现为逐步进化的多个版本。比如引入一个贯串全书的问题:设计一个“图书管理系统”。首先,用最基本的概念和最简单的结构,给出该系统的第一个(也是最简单的)版本,以后的每一次课,都对该系统提出新的功能和结构上的要求,并用本次课介绍的新概念和新方法对它进行功能上的扩充和结构上的改进。每次得到该系统的一个增强的新版本。为达到设计目标,学生随着教学的进程,可以积极投入到对实例系统的调试、改进的实践中,逐渐掌握了所学的基本知识,同时也提高了编程能力。

2.3 重视实践教学,培养学生综合应用程序开发能力

VB 是一门实践性很强的课程,如果只纸上谈兵,不上机练习,是不可能真正掌握VB 程序开发的。实践教学主要注意抓住以下几点:

(1)模仿阶段,对课堂核心实例系统的调试、改进。核心实例的每次增强版是全面反映教学内容的,学生通过模仿、知识再现达到在实践中领悟知识,开拓编程思路。

(2)分层次阶段,在教学过程实施的开始,和核心实例同步,我就给出了几个类似核心实例的课程设计内容,供学生选择。对核心实例的调试比较成功的,可以同步实施自己所学的课程设计内容,达到培养学生分析问题和解决问题的能力。对掌握核心实例有困难的学生,针对教学内容重新布置实验,强化知识巩固。课程设计内容课后上机完成。

要掌握上面两个阶段的具体情况,教师应亲自指导,与学生一起上机实验,随时监控学生实验过程。对学生提出的问题及时予以指导,而发现学生常犯的共性错误,可在理论课上进行点评。

2.4 培养学生使用标准编码,养成良好编程习惯

在程序设计过程中,使用标准编码可以避免一些不必要的错误。笔者在授课过程当中使用标准编码的实例,在讲解实例过程中对学生进行适当地引导,让学生养成一个良好的编程习惯。

程序书写规范是非常重要问题,不仅书写格式应该结构层次分明,而且程序里面应添加起码的注释。不按照标准书写程序会增加别人查看程序的难度,同时也不利于自己以后上机调试修改。强调学生避免使用Visual Basic 中的隐式操作,养成显式编码的习惯。比如永远使用Option Explicit,严格执行变量先定义后使用的原则。避免使用缺省属性,明确指出是在引用对象还是在引用对象属性。

3 结束语

一门课程的教学是一个复杂的系统工程,笔者将以上一些改革和探索用在课堂教学和实践教学中,取得了一些效果,但教学有法,教无定法,只要教学得法。在教学实践中,合理运用多种教学方法,灵活地、创造性地掌握教学过程,激发学生的兴趣,培养学生的创造性思维和综合应用程序开发能力。

参考文献

[1] 王栋.Visual Basic程序设计实用教程(第3版).北京:清华大学出版社 2007

[2] 袁锋谈.《VB程序设计》教学方法改革的五个转变. 中国成人教育 2004(1)

[3] 蔡永铭广东药学院学报 2004(8)第20卷第4期

推荐第4篇:vb

输入的数字与事先设置的数字相同,则提示“输入正确” 否则显示“错了” , 。  代码编写: 代码

Private Sub Command1_Click() x = Val(InputBox("输入一个 1~10 之间的整数")) If x = Text1 Then MsgBox "输入正确" Else MsgBox "错了" End If End Sub 遇到的主要问题及分析:

【提高题 1】修改上面程序,当输入的值比设置的数字小,显示“错了,你猜得小了。 ; ” 21 输入的值比设置的大,则显示“错了,你输入的太大了。 请直接在上题修改) ” ( 【提示】本实验属于多分支结构。

Private Sub Command1_Click() x = Val(InputBox("输入一个 1~10 之间的整数")) If x = Text1 Then MsgBox "输入正确" ElseIf x

Private Sub Command1_Click() Dim a!, b!, c! a = Val(InputBox("输入第 1 条边长")) b = Val(InputBox("输入第 2 条边长")) c = Val(InputBox("输入第 3 条边长")) If a + b >c And b + c >a And a + c >b Then Print "此三边可构成三角形" Else Print "此三边不可构成三角形" End If End Sub 遇到的主要问题及分析:

【选作题】课堂示例“字符串替换” 使用多个函数完成时,如果源字符串中没有要查找 , 的子串,程序就会出错。修改程序当没有要查找的子串时,弹出“没有找到的”提示框,并 将源串放到结果文本框中。

22 【提示】InStr(C1,C2) 在 C1 中查找 C2 是否存在,若找不到,结果为 0。  代码编写: 代码

Private Sub Command1_Click() i = InStr(Text1, Text2) If i = 0 Then MsgBox "没有找到" Label5 = Text1 Else k = i + Len(Text2) Ls = Left(Text1, iSqr(d)) / (2 * a) ElseIf d = 0 Then x1 = -b / (2 * a) x2 = x1 Else MsgBox "无实根" End If Pri nt "x1="; x1, "x2="; x2 End Sub

2、输入一个字符,判断该字符是字母、数字还是其他字符,并作相应的显示。【要求】分别使用两种语句 If ……ElseIf……和 Select Case 来完成。 24 代码 If ……ElseIf 语句实现

Private Sub Command2_Click() a = InputBox("输入一个字符") If a >= "a" And a = "A" And a = "0" And a

思考: 编写一个对文本框中输入的字符进行转换的 程序。 窗体如上右图所示。 将小写字母转换成大写字母, 大写字母转换成小写字母,空格不转换,其余字符转换 成”*”。要求每输入一个字符马上 进行判断和转换,结果

显示在 Text2 中。  代码编写: 代码

Private Sub Text1_Change() a = Right(Text1, 1) Select Case a Case "a" To "z" Text2 = Text2 + UCase(a) Case "A" To "Z" Text2 = Text2 + LCase(a) Case " " Text2 = Text2 + " " Case Else 25 遇到的主要问题及分析:

Text2 = Text2 + "*" End Select End Sub

3、输入一个数字(1-7) ,用英文显示对应的星期一至星期日。 【提示】用 Select Case 语句来实现  代码编写: 代码 Private Sub Command1_Click() a = Val(InputBox("输入星期几")) Select Case a Case 1 MsgBox "Monday" Case 2 MsgBox "Tuesday" Case 3 MsgBox "Wednesday" Case 4 MsgBox "Thursday" Case 5 MsgBox "Friday" Case 6 MsgBox "Saturday" Case 7 MsgBox "Sunday" Case Else MsgBox "输入错误" End Select End Sub 遇到的主要问题及分析:

4、编程实现简单计算器功能。要求程 序运行后,分别输入两个操作数以及运算 符(+、-、*、/)后,单击“计算”按钮, 则自动计算出表达式的结果,并显示在运 算结果对应的文本框中。 【提示】除数为 0 时要做适当处理。  代码编写:

26 代码

Private Sub Command1_Click() Select Case Text2 Case "+" Text4 = Text1 + Text3 Case "-" Text4 = Text1i + 1, 1); Next i End Sub 遇到的主要问题及分析:

2、完善程序,输入一个数,判断该数是否为完数,并把其因 子输出,如图所示。 (一个数如果恰好等于它的因子之和,这个数 就被称为“完数” 一个数的因子是指除了该数本身以外能够被其整 。 除的数。 )例如 6 是一个完数,因为 6=1+2+3。

Private Sub Command1_Click() m = Val(Text1.Text) For i = 1 To m1 【4】 If m Mod i = 0 Then Picture1.Print "+"; i; Next i Else Picture1.Print m & "不是完数" End If End Sub 【5】 Picture1.Print 【3】 【4】 【5】

3、编写程序,实现求解把 50 元钱分成一元、二元和五元的纸币且纸币张数共为 20 张的分法有多少种? 代码

Private Sub Form_Click() Print "5 元" "2 元" "1 元" n=0 For x = 0 To 10 For y = 0 To 25 z = 20y If 5 * x + 2 * y + z = 50 And z >= 0 Then Print x, y, z: n = n + 1 Next y Next x Print "分法有" & n & "种" End Sub 遇到的主要问题及分析:

4、参考下图的算法,编写程序,输入两个正整数,求这两个数的最小公倍数。代码

遇到的主要问题及分析: 课本 p87 页 37 【提高题 1】输出斐波那契级数

1、

1、

2、

3、

5、

8、13……,当某项的数值大于或等 于 30000 时结束。此级数项的规律是:前两项的值各为 1,从第 3 项起,每一项是前 2 项 的和。 (要求一行输出 6 项) 。 代码

Private Sub Form_Click() a=1 b=1 Print a; b; i=2 Do While c

【提高题 2】P269 实验 D

二、5 编写程序,求 Sn=a+aa+aaa+…(n 个 a)的值,其中 n 是表示 a 的个数, 是 a 【1, 之间的随机正整数。 9】 例如: a=2,n=5 时, 当 sn=2+22+222+2222+22222 【提示】为得到不断重复的数 t,可在循环体利用通项: t = t * 10 + a 代码 Private Sub Form_Click() a = Int(Rnd * 9) + 1 n = Int(Rnd * 6) + 5 s=0 t=0 For i = 1 To n t = t * 10 + a s=s+t 遇到的主要问题及分析: „[1,9] „[5,10] 38 Print t; Next i Print s End Sub 【选作题 1】完善程序,使之能在窗体上显示有规律的 图形。

Private Sub Form_Click() Dim i% For i = 1 To Print Next i End Sub 【提示】使用 Tab 函数定打印位置,可使用的函数还有:String, Right,CStr 1)循环体内显示用 String 函数来实现,找出循环控制变量与 Sting 函数内个数的关系,即 String(j, Cstr(i) 。 2) 为了使最后一行的 0 显示, 若按照上面的通式, 则最后一行显示的是 1, 则要对公式进行修改, String 即 (j, Right (cstr(i)) )。 【1】

0 【2】 Tab(201, Trim(Right(Str(i), 1))) 【选作题 2】 用两重循环在窗体上显示如右图结果。

【提示】两种方法解该题: 方法一:利用数值实现,就是将各列列号通过运算连接起来。 方法二:利用 Mid 函数取字符串子串来实现,即从字符串中不断取所需的 子字符串而得。 还要注意行号与负号的关系。

代码

Private Sub Form_Click() s = "123456" For i = 1 To 6 For j = 1 To i If i Mod 2 = 1 Then Picture1.Print " " & Left(s, j) & " Else Picture1.Print "-" & Left(s, j) & " End If Next j Picture1.Print Next i End Sub 遇到的主要问题及分析: "; "; 39 实验心得体会 成绩:

教师签名: 实验日期 年 月 日 实验八 实验目的: 常用控件

1.掌握单选按钮、复选框的重要属性、事件和方法。 2.掌握框架的使用。 3.掌握列表框、组合框的重要属性、事件和方法。

实验内容

1、窗体上有两个复选框,名称分别为 Chk1 和 Chk2,标题分别

为“能被 5 整除”和“能被 6 整除” 一个命令按钮 Command1,以及一 , 个文本框 Text1。编写适当的事件过程,使得程序运行时对复选框 进行选择,单击命令按钮,可根据下表的规定,计算 100~200 之间符合要求的整数之和, 把结果显示在 Text1 中。

选择 Chk1 Chk2 Chk1 和 Chk2 都不选择 要求 只能被 5 整除 只能被 6 整除 既能被 5 整除,也能被 6 整除 只能被 1 整除

 代码编写: 代码 遇到的主要问题及分析: 40 Dim s1, s2 Private Sub Check1_Click() s1 = 0 For i = 100 To 200 If i Mod 5 = 0 Then s1 = s1 + i Next i End Sub Private Sub Check2_Click() s2 = 0 For i = 100 To 200 If i Mod 6 = 0 Then s2 = s2 + i Next i End Sub „定义全局变量 „每次选择前先清 0 „每次选择前先清 0 Private Sub Command1_Click() Text1 = 0 „每次赋值前先清 0 If Check1.Value = 1 And Check2.Value = 1 Then Text1 = s1 + s2 ElseIf Check1.Value = 1 Then Text1 = s1 ElseIf Check2.Value = 1 Then Text1 = s2 Else For i = 100 To 200 Text1 = Text1 + i Next i End If End Sub

2、窗体上包含有两个名称分别为 Op1 和 Op2 的单选按钮,

标题分别为“100-200 的素数和” 和“200-400 的素数和” 还有 。 一个文本框和一个命令按钮,标题为“求和” 程序运行后,选中 。 某个单选按钮,并单击“求和”按钮,则计算指明范围内的素数之和,并显示在文本框中。  代码编写: 代码

Private Sub Command1_Click() If Option1 Then For m = 100 To 200 Tag = True 41 遇到的主要问题及分析:

For i = 2 To m1 If m Mod i = 0 Then Tag = False Next i If Tag Then s = s + m Next m End If Text1 = s End Sub

3、P237,实验 E-6,窗体的标题栏显示“选课界面”,窗体

上有 两个列表框,左边是 List1,右边是 List2,其中 List2 中的列表 项按字母顺序升序显示。 窗体下方有一个文本框, 名为 Text1。 请你: 1) 写出程序中需要的属性设置。 2)程序运行后,在列表框 List1 中添加“Visual Basic 程序” “数据结构” “操作系 、、统 ” “硬 件技术 基础 ” “计 算机 网络” “ 多媒 体技 术 ”和 “ C++程 序设计 ” 七个选 项。 、、、(使用 Form_Load()事件) 。

3)要求单击 List1 中的某一项时,该项显示在 Text1 中。 4)双击 List1 中的某一项时,该项从 List1 中删除,添加至 List2。当 List2 中 的内容已满 5 门时,不允许再添加并提示“超过 5 门课程,不能再选了!(要注意条件的放 。 ” 置位置问题)  需要的属性设置

表 9.1 实验 1 属性设置 对象名称 属性 属性值 42 List2 Sorted True  代码编写: 代码 Private Sub Form_Load() List1.AddItem "Visual Basic 程序" List1.AddItem "数据结构" List1.AddItem "操作系统" List1.AddItem "硬件技术基础" List1.AddItem "计算机网络" List1.AddItem "多媒体技术" List1.AddItem "C++程序设计" 遇到的主要问题及分析:

End Sub „单击列表框 List1 Private Sub List1_Click() Text1 = List1.Text End Sub „双击列表框 List2 Private Sub List1_DblClick() If List2.ListCount = 5 Then MsgBox "超过 5 门课程,不能再选" Else List2.AddItem List1.Text List1.RemoveItem List1.ListIndex End If End Sub

4、窗体上有一个名为 List1 的列表框(允许做多项 选择) ,一个名称为 Text1 的文本框,三个命令按钮,标 题分别为“求全部项目和” “求选定项目之和” “删除选定项 , , 目” 。

【要求】

1)程序运行后,将把 1~100 之间能够被 7 整除的数添加到列表框中。 2)单击“求全部项目和”按钮,则对 List1 中的数进行累加求和,并在文本框中显示 计算结果。

43 3) 单击“求选定项目之和”按钮,则对 List1 中的选中的项目进行累加求和,并在文 本框中显示计算结果。 4) 单击“删除选定项目”按钮,则删除 List1 中的选中的项目。 代码

Private Sub Form_Load() „显示 7 的倍数 For i=1 To 100 If i Mod 7 =0 Then 【1】 End If Next i End Sub List1.AddItem i 遇到的主要问题及分析: 如果列表框要多选, multiselect 属性设置为 1 „列表框所有项目之和 Private Sub Command1_Click() Sum% = 0 For i = 0 To Sum = Sum + Next i 【4】 text1=sum End Sub „列表框选定项目之和 Private Sub Command2_Click() Sum% = 0 For i = 0 To 【6】 List1.ListCount1 Text3.SelLength = Len(Text1.Text) Text3.seltext = Text2.Text Then '不需要多次替换则退出 If option1=true Exit Do End If k = a + m End If Loop End Sub until a=0 '为继续查找确定起始点 '找不到退出

【选作题】设计一个运行界面如下图所示的程序。在“主菜”组合框中选择一种食品(不可 输入) ,单击“添加主菜”按钮即可将该项内容添加到右边的列表框;在“饮料”组合框中选择 或输入一种饮料,单击“添加饮料”按钮即可将该项内容添加到右边的列表框。在右边的列 表框中选择某项并单击“不要这个

46 【要求】右边所点的菜单中不允许出现重复的菜。 【提示】添加的时候要先判断是否菜单中是否已经有了。  代码编写: 代码

Private Sub Command1_Click() f = True For i = 0 To List1.ListCount – 1 „菜单中不允许出现重复的菜 If List1.List(i) = Combo1.Text Then f = False Next i If f = True Then List1.AddItem Combo1.Text Text1 = "你点了" & List1.ListCount & "种食物" End Sub Private Sub Command2_Click() List1.AddItem Combo2.Text „饮料可以重复 Text1 = "你点了" & List1.ListCount & "种食物" End Sub Private Sub Command3_Click() List1.RemoveItem List1.ListInd ex Text1 = "你点了" & List1.ListCount & "种食物" End Sub Private Sub Command4_Click() List1.Clear Text1 = "你点了" & List1.ListCount & "种食物" End Sub Private Sub Form_Load() Combo1.AddItem "。。。。" Combo2.AddItem "。。。。" End Sub 遇到的主要问题及分析: Style=2 组合框, 不是列表框 47

实验心得体会 成绩: 教师签名: 48 实验日期 年 月 日 实验九 实验目的: 常用控件(续)

1、掌握图片框、图像框、计时器的属性和方法和事件及使用。

2、掌握滚动条的重要属性、事件和方法。

3、了解图片框和图像框的区别。掌握形状控件的重要属性以及使用。 实验内容

1、窗体上有一组合框 Combo1,一文本框 Text1,三个 命令按钮,要求: 1)程序一开始运行时,Combo1 中有若干选项,命令 按钮"确定"不可用 2) 选中 Combo 中某个项目, 单击"修改", 则将该项目复制到 Text1 中 (可在 Text1 中修改) ,同时"确定"按钮可用 3) 单击"确定"将修改过的 Text1 替换组合框中原有的内容, 同时"确定"按钮不可用.4)单击"添加",将 Text1 中的内容添加到组合框中

【提示】修改组合框中选中的内容要通过代码来重新设置 Combo1.List(Combo1.ListIndex)值 的,而不能直接设置 Text 属性值。  代码编写: 代码 遇到的主要问题及分析: 49

2、在窗体的 Label 中每隔 2 秒显示“你好中国” 即每隔 2 秒显示一次标签) ( 。 【提示】 1)设置时钟控件的 Interval 值使程序每隔 2 秒,调用一次计时器的 Timer 事件。 2)将标签的状态设置成:显示……隐藏……显示……隐藏……  代码编写: 代码 遇到的主要问题及分析:

3、窗体上有一图片框,名为 P1。单击图片框,则在图片框上显示“单击图片框” 单击 。 窗体,则在窗体上显示“单击窗体” 要求不能用变量,每个事件只允许写一句代码。 。  代码编写: 单击图片框 单击图片框

4、如右图所示,将滚动条的范围设置为 0~1000,在文 本框中输入一个数后按下“移动”按钮。 如果文本框中是正数则 滚动条向右移动相应刻度,但若超过最大刻度则 MsgBox 提 示“输入值太大” 如果文本框中是负数则滚动条向左移, ; 超过最小刻度则不再动, MsgBox 并 提示。 【提示】假定滚动条当前位置的 Value 值为 200,在文本框输入 300,单击“移动”按 钮,则滚动条的值应变为 500;再输入-800,再单击“移动”按钮,则滚动条的值应变为 0,并用 MsgBox 提示“已移动到最左边”.50

 代码编写: 代码 遇到的主要问题及分析:

5 、窗 体 上 添 加 一 Shape 形 状 控 件 , 名 为 “ Shape1 ”, 两 个 名 称 分 别 为 Command1,Command2 的命令按钮, 标题分别为“圆”和“红色边框”

编写代码, 。 程序运行时, 单击“圆”按钮则 Shape 控件显示一个圆。单击“红色边框”按钮,则将 Shape 控件的边框颜 色设为红色。 【提示】分别设置 Shape 控件的 Shape 属性和 BorderColor 属性  代码编写: 单击“圆”按钮 单击“红色边框”按钮

6、如右图所示,编写程序,使窗体中的两个汽车图形 能够相向运动直至相撞。此时屏幕弹出一个消息窗口显示 “某年某月某日发生交通意外” 显示日期为当前系统日期。 。 【提示】根据两车的位置来判断是否相撞。  代码编写: 代码

遇到的主要问题及分析: 51 【选作题 1】窗体有一个矩形和一个圆,还有一水平滚动条和一垂直滚动条。程序运行时,移动某个 滚动条的滑块,可使圆作相应方向的移动。滚动条 刻度值的范围是圆可以在矩形中移动的范围。 (如 右图所示) 。 【提示】水平滚动条和垂直滚动条的 Min 和 Max 属性值与矩形的位置及大小有关,最好 通过代码在 Form_Load 事件中设置。  代码编写: 代码

遇到的主要问题及分析:

【选作题 1】模拟 Windows 屏幕保护程序(如下图所示)。 可按下面提示分步实现(也可以以你的聪明才 智,一步到位) :   文字从右往左运动,完全移出屏幕时同从屏幕最右边 重新出现并继续左移。 文字能像弹球一样,碰到窗体边缘时能反弹。 每次碰到窗体边缘反弹时字体的颜色和大小随机变化。

【提示】移动控件的位置有两种方法(其中 w 和 h 分别表示水平方向或垂直方向移动的距 离):

Label1.Left=Label1.Left + h Label1.Top=Label1.Top + v Label1.Move Label1.Left + h Label1.Move Label1.Left, Label1.Top + v 52 重要提示:如果水平方向移动的距离为 h,则当控件碰到窗体的边缘时,控件应该向 相反的方向移动,即 h=-h,垂直方向也一样。  代码编写: 代码

遇到的主要问题及分析: 实验心得体会 成绩: 教师签名: 53 实验日期 年 月 日 实验十 实验目的: 数组

1、掌握数组的声明、数组元素的引用。

2、掌握静态数组和动态数组的使用差别。

3、掌握数组的基本操作。应用数组解决与数组有关的常用算法。

实验内容:

1、随机产生 10 个 200 到 300 的整数,求最大值及其下标、最小值及其下标、平均值, 并显示数组的所有元素值(按每行输出 5 个元素)以及最大值及其下标、最小值及其其下 标和平均值。  代码编写: 代码

Private Sub Form_Click() Dim a(1 To 10) As Integer t=0 For i = 1 To 10 a(i) = Int(Rnd * 101 + 200) Print a(i); If i Mod 5 = 0 Then Print t = t + a(i) Next i Print "平均值为:"; t / 10 Max = a(1): imax = 1 Min = a(1): imin = 1 For i = 2 To 10 If a(i) >Max Then Max = a(i): imax = i If a(i)

For i = 1 To 5 x = a(i) a(i) = a(i + 5) a(i + 5) = x Next i For i = 1 To 10 Print a(i); If i Mod 5 = 0 Then Print Next i 遇到的主要问题及分析:

2)如果要求这 10 个数字不重复呢?。 (提示:要产生不重复的整数,则需要每产生一个整数,就 在数组中查找新产生的数据是否已经存在数组中了,若有,则重新产生;若没有,则将产生的整数放入 数组中,下标加 1) 遇到的主要问题及分析: 代码 Private Sub Form_Click() Dim a(1 To 10) As Integer a(1) = Int(Rnd * 101 + 200) Print a(1); For i = 2 To 10 t = Int(Rnd * 101 + 200) For k = 1 To i1 If t

代码

Private Sub Form_Click() Dim a(1 To 10) As Integer a(1) = Int(Rnd * (9065 + 1) + 65) For k = 1 To i65 + 1) + 65) k=0 End If Next k a(i) = t Print Chr(a(i)), If i Mod 5 = 0 Then Print Next i End Sub 遇到的主要问题及分析: 不重复的方法同 2),随机 数范围[65,90]

2、分类统计输入一串字符,统计各字母出现的次数,不区分字母大小写。

【提示】 (1)统计 26 个字母出现的个数,必须声明一个具有 26 个元素的数组,每个元素的下标表示相应 的字母,元素的值表示对应字母出现的次数。 (2)从输入的字符串中逐一取出字符,转换成大写字符(使得大小写不区分) ,进行判断。

 代码编写: 代码

遇到的主要问题及分析: 课本 121 页例 5.14 56 【进一步思考】 输入 20 个百分制成绩, 统计并输出各分数段人数, 0~

59、60~6

9、70~7

9、即 80~8

9、90~100。

代码

Private Sub Command1_Click() Dim cj( 1 To 20) As Integer, a(5 To 9) As Integer For i = 1 To 20 cj(i) = Val(InputBox("请输入成绩")) Select Case cj(i) \ 10 Case 0, 1, 2, 3, 4, 5 a(5) = a(5) + 1 Case 6 a(6) = a(6) + 1 Case 7 a(7) = a(7) + 1 Case 8 a(8) = a(8) + 1 Case 9, 10 a(9) = a(9) + 1 End Select Next i For i = 5 To 9 Print a(i), Next i End Sub 遇到的主要问题及分析:

3、编写程序,输出斐波那契级数

1、

1、

2、

3、

5、8……的前 30 项,要求每行输出 5 个。 (用数组来实现)

【提示】 斐波那契数列的特点是:第

一、第二都是 1,从第三项开始,前面相邻两项之和,构成了后一项。 即 : a(n)=a(n-1)+a(n-2)。

代码 Private Sub Command1_Click() Dim a(30) As Long a(1) = 1 a(2) = 1 For i = 3 To 30 a(i) = a(i1) Next i For i = 1 To 30 Print a(i); If i Mod 5 = 0 Then Print 遇到的主要问题及分析: 整型数会溢出 57 Next i End Sub 【进一步思考】输出斐波那契级数

1、

1、

2、

3、

5、

8、13……,当某项的数值大于或等于 30000 时结束。

代码

Private Sub Command1_Click() a=1 b=1 Print a; b; t=2 Do Until c >= 30000 c=a+b Print c; t=t+1 If t Mod 5 = 0 Then Print a=b b=c Loop End Sub 遇到的主要问题及分析:

【选做题 1】 将二维数组 A 中的 100 个元素分别赋给一维数组 B 的每个元素并打印出 来,要求把 A(1,1)到 A(1,10)依次赋给 B( 1)到 B(10),把 A( 2,1)到 A( 2, 10)依次赋给 B( 11)到 B( 20),……,把 A(10,1)到 A( 10, 10)依次赋给 B(91) 到 B(100)。  代码编写: 代码

Private Sub Command1_Click() Dim a(1 To 10, 1 To 10) As Integer Dim b(1 To 100) As Integer For i = 1 To 10 For j = 1 To 10 b((i1, j1, j) End If Next j Next i For i = 0 To 6 For j = 0 To i Picture1.Print Tab(j * 5); a(i, j); Next j Picture1.Print Next i End Sub 【提高题 1】编写一学生成绩统计程序,用户先输

入学生的人数及科目数, 再输入各位学生的各科课程的考 试成绩, 要求该程序可以计算各个学生的平均成绩及每门 课程的平均成绩。程序保存时

程序运行结果如图所示。

【提示】本题使用动态的二维数组能够较好完成任务,数组 的行号表示学生,列号表示科目,分别对数组的行或列进行求和 即可进行学生科目成绩的统计

代码

Private Sub Command1_Click() Dim a() As Integer x = Val(Text1.Text) '人数 y = Val(Text2.Text) '科目数 ReDim a(x, y) 遇到的主要问题及分析: 59 For i = 1 To x For j = 1 To y a(i, j) = InputBox("第" & i & "位同学的第" & j & "门成绩") Next j Next i For i = 1 To x s=0 For j = 1 To y s = s + a(i, j) Next j Picture1.Print "第"; i; "位同学的平均成绩是"; s / y Next i For i = 1 To y s=0 For j = 1 To x s = s + a(j, i) Next j Picture1.Print "第"; i; "门课的平均成绩是"; s / x Next i End Sub 【提高题 2】矩阵转置。编写程序将 2*3 的矩阵转置,即转换成 3*2 的矩阵。 【提示】使用两个二维数组来完成。  代码编写: 代码

Private Sub Command1_Click() Dim a(2, 3) As Integer, b(3, 2) As Integer For i = 1 To 2 For j = 1 To 3 a(i, j) = InputBox("") Print a(i, j); Next j Print Next i For i = 1 To 2 For j = 1 To 3 b(j, i) = a(i, j) Next j Next i For i = 1 To 3 For j = 1 To 2 Print b(i, j); Next j 60 遇到的主要问题及分析: Print Next i End Sub 实验心得体会 成绩: 教师签名: 61 实验日期 年 月 日 实验十一 实验目的: 数组(续)

1、掌握静态数组和动态数组的使用差别。

2、应用数组解决与数组有关的常用算法。

3、掌握控件数组的使用。

实验内容

1、分别用选择排序法和冒泡排序法实现有 N 个元素数组的排序。N 由键盘输入,数 组元素的值在 1~200 之间,随机产生。  代码编写: 遇到的主要问题及分析: 代码 Dim x( ) as Integer n=val(inputbox(””)) Redim x(n-1) For i=0 to n-1 x(i)=int(rnd*200+1) Next i 选择排序法

参看书 106 页 冒泡排序法 参看书 107 页 62

2、利用 Array 函数给数组 a 赋值(数组元素的个数及每个元素的值自己设定) ,从键 盘上输入一个数据,在数组中进行查找,如果数组中有,则删除数组中的这个元素,如果 没有则提示“没有这个数” 。 代码

遇到的主要问题及分析:

【思考】如果将数组元素读入列表框再做插入或删除其中一个元素,应该怎样编程?

3、输入一系列字符串,按递减次序排列。程序的运行界面如图 11.1 所示。 图形框

图 11.1 实验 3 窗体界面

【提示】 (1)要声明窗体级变量 n(表示放若干个字符串的计数器)及一个字符串数组。 (2)每输入一个字符串,按 Enter 键后将 Text 的内容放到数组中,可用事件: Private Sub Text1_KeyPre(KeyAscii As Integer) If KeyAscii = 13 Then … End If End Sub (3) 单击“排序”按钮,进行排序并显示在图形框中。

 代码编写: 代码

创建数组 遇到的主要问题及分析: 63 排序

【选做题】做一个类似图 11.2 的界面的拨号器。 图 11.2 实验 4 窗体界面 图 11.3 实验 5 窗体界面  代码编写: 代码 遇到的主要问题及分析: 64 【提高题】做一个类似图 11.3 界面的简单计算器,并实现对应的功能。  代码编写: 代码 遇到的主要问题及分析: 实验心得体会 成绩: 教师签名: 65 实验日期 年 月 日 实验十二 实验目的: 顺序文件

1、掌握顺序文件、随机文件和二进制文件的特点和使用。

2、掌握顺序文件的打开、关闭和读写操作。

3、学会顺序文件在应用程序的使用

实验内容:

1、初始窗体上有四个命令按钮两个文本框(如图 11.1 所示) 。要求: 1)建立文件名为“t1.txt”的顺序文件,内容来自文本框 Text1。要求:每按一次回车 键则将文本框 Text1 的内容写入文件,并清除文本框 Text1 的内容,直到文本框 Text1 内输入“END”字符串(不区分大小写),关闭文件。 2) “复制文件” 单击 按钮, “t1.txt” 则把 的顺序文件的内容全部复制到新文件 “t2.txt” 中,并给出相应提示。 (只能使用一个变量,不能使用控件。(如图 12.1) ) 3)单击“合并文件”按钮,则将“t2.txt”内容合并“t1.txt”末尾,给出相应提示。 4)单击“显示”按钮,则把“t1.txt”的内容读出来显示在 Text2 中。

图 12.1 实验 1 窗体各个运行状态界面 66  代码编写: 代码 建立文件

遇到的主要问题及分析: 复制文件 合并文件 显示文件内容

2、完善程序,实现:

1) 按下“读入并计数”按钮,将磁盘中的文件 in.txt 的内容读入显示在文本框中, 并分别统计其中字母、数字和其他符号的数量,将结果显示在 Picture1 中。

67 图 12.2 实验 2 窗体各个运行状态界面及 out 文件内容格式

2) 按下“写入文件”按钮,则将统计结果写入文件 out.txt 中,并给出提示“已写 入文件” 。 Dim sz%, %, sq% Private Sub Command1_Click() Dim c$ Open c = 【1】 '准备读入 '每次读入一个字符 '将读入的字符显示在 Text1 中 '字母 '数字 '读出的是回车或换行符则不计数 '其他符号 【2】 '打开 in.txt 文件 '读入并计数

Do While Not EOF(1) Text1.Text = Text1.Text & c Select Case c Case Case 【3】 【4】 sz = sz + 1 = + 1 Case Chr(10), Chr(13) Case Else sq = sq + 1 End Select Loop 【5】 【6】 Picture1.Print "其他";sq; "个" Close #1 End Sub Private Sub Command2_Click() '将结果显示在 Picture1 中

'结果写入文件 '将结果写入 out.txt 中

Open App.Path + "\out.txt" For Output As #1 【7】 【8】 Print #1,"其他";sq; "个" MsgBox "已写入文件" 【9】 End Sub

3、建立如下图所示包括五个命令按钮、图片框、列表框及标签的程序界面。编程实现 下 列功能: 68 List 列表框 Label 标签 Picture 图片框

1)单击“新建”按钮,弹出 Inputbox 用于输入数组的元素个数 N;随机产生任意 N 个[10,100]的随机整数存入数组 A;并把数组 A 的各元素值显示在图片框中(每行 5 个元素) ;同时写入磁盘文件 MyList.dat(与工程文件和窗体文件位于同一文件夹) 。 2)单击“读取” 按钮,将文件 MyList.dat 的数据读出,存入数组 B,同时添加 到列表框中。 3) 单击“计算” 按钮,计算并在标签上输出数组 B 的最大值、最小值和平均值。 4)单击“添加” 按钮,将最大值、最小值和平均值。追加到“MyList.dat”的 末尾并弹出“已写入文件! ”的提示。 5)单击“退出”按钮,则退出应用程序。  代码编写: 代码

新建

遇到的主要问题及分析: 读取文件 69 计算 添加 退出

【选做题】建立一个多用户的密码登录程序,如下图所示。要求:

1)输入用户名及密码,单击“登录”按钮,则判断该用户名是否存在,如果存在,则进一 步判断密码是否正确。分别给出相应提示信息。 2)输入用户名及密码,单击“注册”按钮,则先判断该用户名是否已有人注册了,如无, 则把用户名和密码添加到文件中;如有人注册,则提示"该用户名已存在,请重新输入!" 3)单击“退出”按钮,则退出应用程序

原始窗体

用户名及密码均正确时提示 用户名正确,密码错误 用户名错误 70  代码编写: 代码 登录 遇到的主要问题及分析: 注册

实验心得体会 成绩: 教师签名: 71 实验日期 年 月 日 实验十三 实验目的:

1、理解自定义函数过程的定义和调用方法;

2、掌握自定义子过程的定义和调用方法;

3、掌握子过程与函数过程的使用差别;

过程 实验内容

1、编写一函数过程 Prime(n),对于已知正整数 n,判断该数是否为素数,函数的返回值 类型为布尔型。 代码

Private Sub Command1_Click() Dim n% Dim z As Boolean n = Val(Text1.Text) z = prime(n) If z Then Print "是素数" Else Print "不是素数" End If End Sub Function prime(n%) As Boolean prime = True For i = 2 To n1 If (n Mod i) = 0 Then prime = False Next i End Function 2) 窗体上包含有两个名称分别为 Op1 和 Op2 的单选按 钮,标题分别为“100-200 的素数和” 和“200-400 的素数 和” 。还有一个文本框和两个命令按钮,标题分别为“求和”和 “写入” 。程序运行后,选中某个单选按钮,并单击“求和”按 钮,则计算指明范围内的素数之和,并显示在文本框中。单击“写入” ,则把结果存入 Out.txt 中。 (要求素数判断必须函数来实现) 。 代码

Dim s As Integer Dim m% s = 0 If Option1 Then For m = 100 To 200 Tag = prime(m) If Tag Then s = s + m Next m End If If Option2 Then For m = 200 To 400 Tag = prime(m) If Tag Then s = s + m Next m End If Text1 = s „全局变量 „主过程,求素数和 Private Sub Command1_Click() 遇到的主要问题及分析: 73 End Sub „主过程,结果写入文件

Private Sub Command2_Click() Write #1, s Close #1 End Sub Open "d:\Out.txt" For Append As #1 Function prime(n%) As Boolean prime = True For i = 2 To n1) End If End Function „函数过程 Fac(n) 遇到的主要问题及分析:

1) 利用 Fac(n)函数, 编写程序分别输入两个正整数 X 和 Y, 计算并输出 x!+(x+1)! +(x+2)! + …… +(x+y)!之和。 代码

Private Sub Command1_Click() Dim x%, y%, i% x = Val(Text1.Text) y = Val(Text2.Text) „主过程,计算求和

遇到的主要问题及分析: 74 For i = x To y z = fac(i) s = s + z Next i Print s End Sub Function fac(n%) As Integer If n = 1 Then fac = 1 Else fac = n * fac(nm)) Print z End Sub Function fac(n%) As Integer If n = 1 Then fac = 1 Else fac = n * fac(n1) s1 = ls + Mid(s1, k) i = InStr(s1, s2) Loop 实验心得体会 成绩: 教师签名: 77 实验日期 年 月 日 实验十四 实验目的: 过程(续)

1、掌握自定义子过程以及函数过程的定义和调用方法;

2、掌握形参和实参对应关系;值传递和地址传递的传递方式以及区别。

3、掌握多窗体调用。

实验内容

1、编写一函数过程 FunMax( a( ) ),求一维数组 a 中的最大值。主调程序随机产 生 10 个-100 到 100 之间的整数,调用 FunMax 函数过程,显示数组的最大值。 代码

Function „FunMax( a( ) ) 遇到的主要问题及分析:

End Function Private Sub Command1_Click() „主程序,显示数组的最大值 End Sub 78

2、编写一子过程 ProcMin,求一维数组 a 中的最小值,子过程的形参自己确定。主 调程序随机产生 10 个 100 到 200 之间的整数,调用 ProcMin 子过程,显示数组的最小 值。 代码

Sub „子过程 ProcMin 遇到的主要问题及分析:

End Sub Private Sub Command1_Click() „主程序,显示数组的最小值 End Sub

3、运行下面程序段,体会过程调用过程中传值和传址的区别。

Private Sub test(ByVal p%, ByVal m%, n()) p = p + 1: m = m + 1 n(1) = 999 Print "Sub:"; p; m; n(1) End Sub Private Sub Command1_Click() Dim c() a% = 1: b% = 2 c = Array(1, 2, 3) Call test(a, b + 3, c) Print "Main:"; a; b; c(1) End Sub 运行的结果:

运行的结果: 分析原因:

 运行程序,分析结果。

 将 Private Sub test(ByVal p%, ByVal m%, n()) 分析原因: 79 改为 Private Sub test(p%, m%, n())再运行并分析

根据运行结果回答下面问题: 1) 为什么两种调用方式,a 的输出的结果会发生变化,而 b 却不变?

2) 可以将 Private Sub test(ByVal p%, ByVal m%, n())改为 Private Sub test(ByVal p%, ByVal m%, ByVal n())吗?为什么?

【选作题】从键盘上输入一个整数,则在窗体上显示此整数所有不同的因子及因子个 数。(求因子及因子个数要求用过程完成) 遇到的主要问题及分析: 代码

Sub „子过程 End Sub Private Sub Command1_Click() „主程序 End Sub 【提高题】编写一个包含多个窗体及多个模块的工程: 窗体 1:主窗体,放置按扭,准备调用其他窗体; 窗体 2:输入一个数,显示它是否幸运数;

幸运数:指前两位数字之和等于后两位数字之和的数。 80 窗体 3:输入两个数,显示它们之间的所有幸运数; 窗体 4:输入一个数,显示比它小的最大幸运数;

【提示】  编写判断一个四位数是否幸运数的函数过程 Luck(返回值是逻辑型),放在主窗体中。注意,函数过程是 必须是全局级的 (即在函数定义时加 Public 或者缺省, 但一定不能加 Private) 否则其他窗体不能调用, , 调用时要在函数名前加窗体名,如:Form1.Luck(Text1.text)  先添加几个窗体并分别设置相应的控件及属性,并正确设置启动窗体。程序代码中利用多窗体的语句和方法 将需要的窗体载入内存,不需要的窗体可隐藏或从内存中删去。

代码

Function „判断幸运数函数 Luck 遇到的主要问题及分析:

End Function 窗体 1 Private Sub Command1_Click() End Sub 窗体 2 Private Sub Command1_Click() „判断输入的数是否为幸运数 „显示 Form2 End Sub 81 窗体 3 Private Sub Command1_Click() „两数之间的幸运数 End Sub „比某数小的最大幸运数

窗体 4 Private Sub Command1_Click() End Sub 实验心得体会 成绩: 教师签名: 82 实验日期 年 月 日 实验十五 实验目的: 菜单及通用对话框

1、掌握下拉菜单的规划、设计和使用方法。

2、掌握弹出式菜单的设计和使用方法。

3、掌握各种对话框的使用方法。

实验内容

1、设计菜单(如右图所示),在窗体上放置一个文本框,设置其 Multiline 属性为 True。设计包含有 3 个主菜单项的菜单系统,分别为“文件”“格式”和“查找” 、。其中 “文件”包括 “打开”“保存” 、、“清除”和“退出”四个子菜单。 “清除”与“退出” 之间有一条分隔线。 “格式”包括“字体”和“颜色”两个子菜单。 “查找”包括“查找下 一个”和“替换”两个子菜单。为菜单编写如下 有关代码: 1)新建:新建一个空的文本文档 2)打开:弹出打开对话框,打开文件显示在 文本框中 3)保存:弹出保存对话框,将文件保存到指 定路径中。 4)退出:关闭应用程序 5)字体:弹出字体对话框,设置文本框的字体属性 6)颜色:弹出颜色对话框,设置文本框的字体颜色 7) 查找: 显示如图输入对话框, 输入要查找的内容后, 可在文本框内查找指定的内容。

要求:1) “格式”菜单的显示与否与文本框中有无内容相关联,当文本框中的内容 为空时,隐藏“格式”菜单;当文本框输入内容的时候,显示“

格式”菜单。 3) 可通过鼠标右键弹出“格式”菜单。 83 代码

Sub „新建空的文档 遇到的主要问题及分析: End Sub Sub „打开

End Sub Sub „保存 End Sub Sub „清除 End Sub Sub „退出 End Sub Sub „字体

End Sub Sub „颜色 End Sub 84 Sub „查找下一个 End Sub Sub „替换 End Sub Sub „显示隐藏格式菜单 End Sub Sub „右键弹出格式菜单 End Sub 实验心得体会 成绩: 教师签名: 85 实验日期 年 月 日 实验十六 实验目的: 随机文件(选作)

1、掌握自定义类型的定义及其变量的声明以及变量元素的引用。

2、掌握随机文件的打开、关闭和读写操作。

3、学会随机文件在应用程序的使用。

实验内容

1、窗体上 Form1 上有三个命令按钮,两个图片框,和一个标签(如图 16.1) 。 Picture1 Picture2 图 16.1 实验 1 运行界面 要求: 1)自定义一个 StudType 类型,包括姓名、性别、电话号码和学校四个成员,结构如下: 姓名 (Name) :字符串(长度为 10) 性别(Sex) :字符串(长度为 2) 电话号码(Tel) :字符串(长度为 11) 学校(School) :字符串(长度为 20) 遇到的主要问题及分析: 代码

Type „自定义 StudType 类型 End Type 86 2)程序运行后,单击“文件写入” ,则以随机存取方式打开当前目录下的文件”Stud.txt”,把 记录个数显示在标签 Label1 中;并根据提示向文件添加记录,每写入一个记录后,都要询问是否再 输入新记录,回答”N”或”n”时,则停止输入;重新更新标签中的记录个数。 遇到的主要问题及分析: 代码

Sub „向文件添加记录 End Sub 3)单击“文件读取” ,则以随机存取方式打开当前目录下的文件”Stud.txt”,读取文件中的全 部记录,并在图片框 Picture1 显示出来,并把记录个数显示在标签 Label1 中。 遇到的主要问题及分析: 代码

Sub „读取文件中的全部记录 End Sub 4)单击“指定记录读取” ,则弹出一个输入框,提示输入所要显示的记录号,以随机存取方式打 开当前目录下的文件”Stud.txt”, 读取指定记录号的记录, 并在并在图片框 Picture2 显示出来。 程序运行结果如下图所示。

87 代码

Sub „读取文件中的某条指定记录 遇到的主要问题及分析: End Sub 实验心得体会 成绩: 教师签名: 88 附录:VB 统考编程题(精选)

【特别提醒】 统考中的编程题目通常在某个指定的文件夹下面已经

有现成的但不完整的窗体或部分程序,考生在已有的基础上补充完 成,不需要自己重新做窗体和编程。正确的作法是打开指定文件夹 中的工程文件(.vbp) ,之后按题目要求完成并保存。

一、简单操作题(15 分/题)

1、在名称为 Form1 的

窗体中建立一个名为 HS1 的水平滚动条,其最大值为 200,最小值为 0,使用 属性窗口设置控件属性。程序运行后,每次修改滚动条的位置时都执行语句 Print HS1.value。

图附 1 简单操作 1 运行界面

2、请在窗体上添加三个文本框,名称分别为 Text

1、Text2 和 Text3,要求程序运行的时候,焦点 光标在 Text1 上,按下键盘上的 Tab 键后,焦点跳到 Text3 上。(本题不需要编写代码,只需设置 对应的属性即可)。

3、窗体上有一个框架名称为 Frm1,标题为“框架” ,高度为 2000,宽度为 3000.再在框架中画一个文本 框,名称为 T1 , 距离框架左边的距离为 500,上边的距离为 300。文本框的初始内容设置“文本框” , 同时将窗体的标题设置为“框架及文本框” 。

4、1)设置图像框的初始大小 Height 为 1500,width 为 2000; 2)窗体的最大化,最小化按钮不可见;(提示设置窗体的 MaxButton 和 MinButton 属性) 3)单击缩小按钮,图像框的大小缩小 300,即 Height 和 width 分别减少 300; 4)单击放大按钮,图像框的大小增加 500,即 Height 和 width 分别增加 500; 5)按回车键相当于按“放大”按钮;(提示设置按钮的 Default 属性) 6)按“Esc”键相当于按“缩小”按钮;(提示设置按钮的 Cancel 属性) 注意:控件的初始属性必须通过属性窗口来设置,否则不给分。 (本题将几个简单操作题合并) 图附 2 简单操作 4 运行界面

5、Form1 上画一文本框 Text1,通过属性窗口设置属性实现以下功能: 1)窗体标题为“设置文本框属性” 2)文本框可显示多行,显示垂直滚动条,用 3 号黑体显示“程序设计”

89

6、窗体上有两个名称分别为 cmd1 和 cmd2 的按钮, 运行程序时只能看到 cmd1, 单击 cmd1, cmd2 则 出现,cmd1 隐藏,单击 cmd2,则 cmd1 出现,cmd2 隐藏。

7、建立如下菜单: 第一级 文件 打开 新建 关闭 编辑 第二级 名称 File Open New Close Edit 有效性 有效 有效 有效 无效 有效

8、窗体上有一个文本框和标题为“复制”的命令按钮 C1,编程实现:运行时窗体标题为“修改文本框 内容”(可在 Form_Activate ()事件中修改);单击按钮,按钮上的标题复制到文本框,并使按钮 不可用;单击窗体空白处,按钮可用。(20 分)

图附 3 简单操作 8 运行界面

9、单击命令按钮 Cmd1, 用代码设置滚动条 Vsb1 的属性: max 为窗体高度, min 为 0, LargeChange 为 50,SmallChange 为 10。当拖动滚动条的滑块时,窗体上显示滚动框的位置值。

10、窗体上有一个文本框和一个水平方向的滚动条, 编程设置: 将滚动条的 min、max 、Largechang、SmallChang 的初始值分别设置为 0,2200,25,5;当移动滚动条时,可扩大或缩小文本框

的高度, 并保持高与宽的比例为 1:3。

11、窗体上有一个文本框和一个垂直方向的滚动条, 在窗体上设置: Text1.Text 为 “家” FontName , 为黑体,滚动条的 min、max 、Largechang、SmallChang 的初始值分别设置为 10,100,5,2; 当移动滚动条时,Text 的字体随之改变。

12、窗体中有一个标签和一个计时器,设置计时器的间隔为 3 秒。每 3 秒标签显示→隐藏→显示。

13、窗体上有垂直和水平滚动条,设置其最大值 100,最小值 0,增量为 10,鼠标单击滚动条时将两 个滚动条的值分别显示在两个标签中,显示的格式类似 X=36,Y=80。

基本应用题(20 分/题)

1、在名称为 Form1 的窗体中将窗体标题设置为“售货机”,在窗体中已有一个名称为 Pic1 的图片框, 请画两个标签 Label1 和 Label

2、两个框 Text1 和 Text

2、一个名称为 Command1 的命令按钮(如 图所示),使用属性窗口设置控件属性。程序运行后,输入货物的数量及单价,单击“总价=”按钮求 出总价(总价=数量*单价)并输出在 Pic1 中(不必进行数据的有效性验证)。

图附 4 基本运用 1 运行界面 图附 5 基本运用 2 运行界面 90

2、窗体中有两个标题分别为“体育”和“音乐”的复选框和两个标题为“选修”和“不选修”的单选 按钮,一个名称为 Label1 的标签。编写适当的事件过程,使得程序运行时对复选框和单选按钮进行选 择,单击窗体,可根据下表的规定在标签中显示相应信息。 选择 Check1 和 Option1 Check1 和 Option2 Check2 和 Option1 Check2 和 Option2 Check

1、Check2 和 Option1 Check

1、Check2 和 Option2 在标签中显示的信息 只选修体育 不选修体育 只选修音乐 不选修音乐 选修音乐和体育 不选修音乐和体育

3、窗体上有一个文本框 Text

1、一个标签 Label1 和两个名称分别 C1 和 C2 命令按钮,标题分别为 “显示”和“恢复”,编写程序,程序运行时,在文本框中输入“学习VB 知识”,再单击“显示”按 钮,则标签和文本框消失,并在窗体上显示文本框的内容。单击“恢复”按钮则标签和文本框恢复如初。

4、窗体上有两个标题分别为“添加”和“清除”的命令按钮,以及两个列表框。编写程序,在右边的 列表框中选择一个列表项,单击“添加”按钮,则把该选项移动左边的列表框中。在左边的列表框中选 择一个列表项,则把该项移回列表框中。

5、窗体上一个名称为 C1,标题为:“输入”的命令按钮和一个文本框。程序运行后,单击命令按钮则 弹出一个对话窗口提示“是否输入”,提示窗口上只有两个命令按钮:“是”和“否”,文本框中显示 选择的命令按钮返回值。

6、窗体上有一个名称为C1,标题为“确定”

推荐第5篇:人事工资管理系统毕业设计论文VB

哈尔滨工业大学高等教育毕业设计(论文)

由于计算机技术的飞速发展,数据库技术作为数据管理的一个有效的手段,在各行各业中得到越来越广泛的应用。因此,本文围绕一个”人事管理系统”程序的设计和应用系统的开发课题为背景,详细介绍了以VB和SQL SERVER为语言编写管理信息系统的过程。该程序通过VB的ADO数据对象来实现VB前台与后台SQL SERVER数据库的连接,并具有典型的数据库应用系统的特征,完成了系统结构与现实生活的紧密结合。

管理系统的开发不仅是一个应用程序编写的过程,更重要的是在系统分析和设计阶段所做的工作。该程序在设计过程中严格遵循软件工程学的方法,用分阶段的生命周期计划严格管理,并主要讲述了程序的总体设计、详细设计阶段,对程序进行需求迭代,不断修正和改进,利用SQL SERVER的强大数据库功能,直到形成一个完善的可行性系统.优美、秀丽的界面,方便实用的查询与维护功能共同构成了“人事工资管理系统”。

关键词:VB,SQL SERVER,数据库,软件工程,管理信息系统

- I - 哈尔滨工业大学高等教育毕业设计(论文)

Abstract Because of the rapid development of computer technology, database technology as an effective means of data management, in all walks of life are increasingly wide application.Therefore, this article on a \"personnel management system\" design and procedures for applications development topics background, details and SQL Server to add language to the proce of preparing management information systems.The procedure adopted to achieve the target data add the ado with VB prospects background SQL Server databases and database applications with typical characteristics, and completed the structure and system combining real life.

Management system applications development is not only a preparation proce, but more importantly in the analysis and design phase work.The procedure strictly followed in the design proce software engineering methods, and use a phased plan to manage the life cycle and on the main procedures designed, detailed design stage, the demand for computation procedures, and constantly revised and improved, the use of SQL Server powerful database functions, Until the feasibility of forming a perfect system.beautiful and attractive interface for practical information and the maintenance of the common functions constitute a \"Personnel wage management system.\"

Keyword: VB,SQL SERVER,Database, Software Engineering, Management Information Systems

- II - 哈尔滨工业大学高等教育毕业设计(论文)

要 ..........................................................................................................................I Abstract.......................................................................................................................II 第1章 绪论...............................................................................................................5 第2章 相关工具的基本理论 .............................................错误!未定义书签。

2.1 关于VB的说明..............................................................错误!未定义书签。 2.2 关于管理信息系统 .........................................................错误!未定义书签。 2.3 数据库系统概述 .............................................................错误!未定义书签。 2.4 ADO与SQL SERVER 2000 .........................................错误!未定义书签。

2.4.1 AxtiveX数据对象--ADO ......................................错误!未定义书签。 2.4.2 关于SQL SERVER 2000.......................................错误!未定义书签。

第3章 系统需求分析与总体设计 .....................................错误!未定义书签。

3.1 需求分析 ........................................................................错误!未定义书签。 3.2 系统设计 ..........................................................................错误!未定义书签。

3.2.1 系统功能分析.......................................................错误!未定义书签。 3.2.2 数据流程图 ..........................................................错误!未定义书签。 3.3 数据库设计 ....................................................................错误!未定义书签。

3.3.1 数据库需求分析 ...................................................错误!未定义书签。 3.3.2 实体之间的E–R模型...........................................错误!未定义书签。 3.3.3 数据库逻辑结构设计............................................错误!未定义书签。 3.4 本章小结 ........................................................................错误!未定义书签。

第4章 系统详细设计 ..........................................................错误!未定义书签。

4.1 系统模块的具体实现......................................................错误!未定义书签。

4.1.1 系统的主界面.......................................................错误!未定义书签。 4.1.2 员工基本信息模块 ..............................................................................7 4.1.3 员工考勤模块.......................................................错误!未定义书签。 4.1.4 员工评价模块.......................................................错误!未定义书签。 4.1.5 员工工资管理模块 ...............................................错误!未定义书签。 4.1.7 部门管理模块.......................................................错误!未定义书签。 4.1.8 系统其它功能简介 ...............................................错误!未定义书签。

哈尔滨工业大学高等教育毕业设计(论文)

4.2 本章小结 ........................................................................错误!未定义书签。

第5章 系统运行与测试......................................................错误!未定义书签。 结

论 .....................................................................................错误!未定义书签。 致

谢 .....................................................................................错误!未定义书签。 参考文献 .................................................................................错误!未定义书签。 附录1 外文翻译 ...................................................................错误!未定义书签。 附录2 译文..........................................................................错误!未定义书签。 附录3 系统的实现代码.....................................................错误!未定义书签。

第1章 绪论

随着计算机的日益普及和网络的发展,数据库的应用范围越来越广,数据库应用的功能也越来越强,因此编写管理信息系统应用程序也显得尤为重要,在强调管理,强调信息的现代社会中它变得越来越普及。

人事管理是任何企事业单位都需要进行的一项工作,因此,开发制作人事管理系统具有较大的社会现实意义,同时人事管理系统是一切应用系统的典范,它具有一切应用系统的特征,系统结构与现实生活紧密结合,具体直观,具有典范的数据库系统的特性。人事管理系统主要用于企业内部员工的档案、工资、考勤、评价的管理,便于公司领导掌握人员的动向,及时调整人才的分配,同时也减少了手工操作带来的一些繁琐与不便,使员工情况的记录和统计变得十分简单.这些优点可以极大的提高企业对人事管理的效率.因此,人事管理系统是企事业信息化、智能化、科学化和正规化不可缺少的管理软件。

本系统开发的目的一方面从提高人事管理工作的效率出发,摆脱过去由人用纸和笔进行的费时费力的繁重工作,即利用成熟的计算机系统来实现商品管理工作的自动化。本系统根据企业管理的一些实际情况而编制的一套自动化的人事管理系统。

人事管理系统针对企业员工信息的处理工作采用计算机进行全面的现代化管理,主要包括: .员工基本信息的管理 .员工评价的管理

.员工考勤信息的管理 .员工工资的管理

.企业内部人事变动的管理 .企业部门管理

用户通过输入员工的基本信息、考勤信息等,由系统自动生成相应的统计数据及工资统计报表以供用户查询、打印,另外用户还可以对这些基本信息进行定期的更新与删除工作,人事管理系统力求以方便快捷的途径去管理手工操作的每繁琐数据。

本设计来自:计算机毕业设计论文网http://www.daodoc.com/

登陆网站联系客服远程截图或者远程控观看完整全套论文图纸设计 客服QQ:8191040 说明:本套毕业设计作品包括:论文+源代码+程序+开提报告+PPT答辨稿数据流程图、功能模块图、运行界面图、源代码和程序,按计算机毕业论文格式要求书写,适用于计算机专业!

这个项目我们使用多文档界面,单击工具栏中的ADD MDI Form按扭,产生一个窗体。在窗体上添加所需控件。创建好的窗体如图4-2所示。

图4-2 系统的主界面

在主界面中,员工管理菜单是此系统的重要组成部份,其中包括4个主要功能模块:员工基本信息模块,员工考勤模块,员工评价模块和员工工资管理模块。

在编写程序的具体代码之前首先要创建公用模块,VB中可以用公用模块来存放整个工程项目公用的函数,过程和全局变量等。这样可以极大的提高代码的效率。在项目资源管理器中为项目添加一个Module,并保存就可以开始添加代码了。公用代码如下: Public Function ExecuteSQL(ByVal SQL _ As String, MsgString As String) _ As ADODB.Recordset Dim cnn As ADODB.Connection Dim rst As ADODB.Recordset Dim sTokens() As String On Error GoTo ExecuteSQL_Error sTokens = Split(SQL) Set cnn = New ADODB.Connection cnn.Open ConnectString If InStr(\"INSERT,DELETE,UPDATE\", _ UCase$(sTokens(0))) Then cnn.Execute SQL MsgString = sTokens(0) & _ \" query succeful\" Else Set rst = New ADODB.Recordset rst.Open Trim$(SQL), cnn, _ adOpenKeyset, _ adLockOptimistic Set ExecuteSQL = rst MsgString = \"查询到\" & rst.RecordCount & _ \" 条记录 \"

End If ExecuteSQL_Exit: Set rst = Nothing Set cnn = Nothing Exit Function ExecuteSQL_Error: MsgString = \"查询错误: \" & _ Err.Description Resume ExecuteSQL_Exit End Function Public Function ConnectString() As String ConnectString = \"FileDSN=renshi.dsn\" End Function 以上两个函数代码分别用来完成执行各种SQL语句和连接数据库。

4.1.2 员工基本信息模块

该模块主要完成员工基本信息的输入、查询与修改,它定义了三个主要窗口:信息添加窗口、复合查询窗口、员工信息列表窗口。 员工信息添加窗口用来添加员工个人信息,可供用户浏览查询及以记录为单

在窗体上放置多个文本框和下拉式列表框,用来输入员工个人基本信息,工作信息和其它信息;多个标签用来提示多个文本框所需要的内容。两个按钮用来确定是否添加员工信息。一个下拉列表框用来显示员工的性别。

员工基本信息中是以工号为主键,来识别表的唯一性。在员工性别录入中使用了ComboBox下拉列表控件,在载入窗体时程序将自动在两个下拉式文本框中添加内容,这样可以规范化输入内容,其中加入了”男”、”女”。用户可以直接从下拉表中选择需要的输入条件。输入的出生日期按照YYYY-MM-DD的统一格式来录入。在备注文本编辑框中可以对窗体中没有提及到的一些员工信息进行编辑,让档案的录入更加完备、全面。当用户输写完信息后单击保存按扭,就将员工信息存储到后台的SQL SERVER数据库中。如果数据库中存在与此项添加的员工档案相同的数据,按确定后将弹出消息对话框”己存在此员工的信息”,提示用户己经存在此员工的信息,从而避免了相同员工信息的重复录入。

载入窗体时,将首先通过整型变量gintmode的值来判断是添加还是修改状态(1为添加,2为修改)。如果是添加状态,性别选择框将选择第一个;如果是修改状态,将选择显示当前的记录。

员工信息的添加窗口如图4-3:

图4-3 员工信息添加窗体

在员工信息模块中添加了一项查询功能,这样可以使用户更加方便的操作所需要信息,大大节约了搜索的时间。

查询功能使用复合查询的模式。分为按工号查询、按员工姓名查询和按员工部门查询。用户可以根据实际需要选择其中的一项或几项。首先点击要先择的CheckBox复选框控件,这时光标自动移动到它对应的文本框,只要在相应的文本框中输入要查找的内容,然后点击确定按扭即完成了此项操作,并以MSFlexGird列表的形式显示出数据。查询功能的另一个特点是如果用户对查询窗口不做任何操作,直接点击确定按扭,在查询结果的列表窗口中显示出所有员工的信息。

推荐第6篇:vb学生成绩管理系统论文

目 录

摘要……………………………………………………………………………………….2 第一章 引言 ...........................................................3 第二章 系统设计的目的与要求 ...........................................3 1.1系统设计的目的 ....................................................3 1.2系统设计的实验环境 ................................................4 1.3系统设计的预备知识 ................................................3 1.4系统设计的要求 ....................................................4

第三章 系统的概述 .....................................................3 2.1系统的需求 ........................................................3 2.2可行性分析 ........................................................4 第四章 前台界面分析 ...................................................4 3.1 登陆界面 ..........................................................4 3.2信息查询 ..........................................................6 第五章 数据库的分析 ...................................................6 4.1 YONGHU表 ...........................................................7 4.2 STUDENT 表 .........................................................7 4.3 SCORE表 ...........................................................7 4.4 COURSE表 ...........................................................8 第六章 软件维护 .......................................................8 5.1数据维护 ..........................................................9 5.2代码维护 ..........................................................9 结语及致谢 ............................................................9 参考文献 ..............................................................9

1

VB学生成绩管理系统

摘要:随着科学技术在管理上越来越深入而广泛的应用,管理信息系统的技术已逐步成熟。学生成绩管理系统是一个不断发展的新型学科,任何一个学校要生存要发展,要高效率地把内部活动有机地组织起来,因为管理这些庞大的体系是非常困难的,要想有机地组织起来,就必须建立与自身特点相适应的成绩管理系统。本文对Visual Basic6.0应用程序设计等工具进行了较深入的学习和应用,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,主要完成了对学生成绩管理系统的系统分析部分,界面的设计、数据库的设计等;系统设计部分主要介绍了系统功能设计和数据库设计及代码设计;

关键词:visual basic,学生成绩管理系统,数据库,查询

Abstract:Along with science technique is on the management more and more thorough but extensive application, manage information system of technique already gradually mature.Student result management the system is a new academics which develops continuously, the whichever school wants to exist to want a development, high-efficiencily internal activity organically the organization get up, because manage these huge systems are very difficult, think organically the organization get up, have to build up is mutually accommodative with oneself characteristics of result management system.This text to Visual Basic6.0 application program design etc.the tool carried on more thorough study and application, making use of what it provide various development tool which face to object, is the intelligence that data window way\'s this ability is convenient and simple and direct to manipulate a database to turn object particularly, mainly completed to manage the analysis part of the system of system to student\'s result, the design, database of interface of design etc.;The system design part mainly introduced design and database design of the system function and code design; Keywords: visual basic,Student result management the system, database, enquiries

2

第一章 引言

在高科技不断发展的今天,计算机技术己经广泛应用到社会的各个领域。从六十年代中期爆发了著名的软件危机开始,计算机界就一直在探索软件开发理论和方法,以确保计算机技术能够高效地应用于各领域。随着计算机技术不断发展、完善,如何开发、应用高效率计算机软件、信息系统一直是开发人员在试图解决的难题。尽管开发人员已经提供了很多解决的方法,但是现在开发、应用管理信息系统软件的过程中,仍会碰到以下的情形。学生成绩管理系统软件应用的好坏直接影响到学校以及学校今后发展。只有确定出简单、安全、高效的开发设计方法并应用于学生成绩管理系统的开发设计中,才能使先进的计算机工具为个人发展提供高效的服务:才能开发出完整灵活的学生成绩管理系统,具有良好的可扩充性、适应性,系统安全性能高,具有友好的用户界面并且操作简便,因此,学生成绩管理系统开发设计方法的应用研究具有积极的现实意义。 第二章 系统设计的目的与要求 2.1 系统设计的目的

本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程序设计语言(C)》课程后进行的一次全面的综合练习。本课程设计的目的和任务: 2.2 系统设计的实验环境

硬件要求能运行Windows 2000/XP操作系统的微机系统。C语言程序设计及相应的开发环境。

2.3 系统设计的预备知识

熟悉C语言及C语言开发工C语言与Acce。

第二章 系统的概述

本学生成绩管理系统可以说是一个综合性的学校学生成绩管理系统,这它集成了多种功能,因而具有较强的实用性和先进性。 2.1系统的需求

3 通过调查,要求系统需要有以下功能: ⑴ 由于操作人员的计算机知识普遍较差,要求有良好的人机界面; ⑵ 由于该系统的使用对象多,要求有较好的权限管理; ⑶ 原始数据修改简单方便,支持多条件修改 ⑷ 方便的数据查询,支持多条件查询; ⑸ 在相应的权限下,删除数据方便简单,数据稳定性好; ⑹ 数据计算自动完成,尽量减少人工干预; 2.2可行性分析

由于本系统管理的对象单一,都是在校学生,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。因此,比较适合于采用数据库管理。且学校用于学生管理的微机都是PIII以上的机器,在存储量、速度方面都能满足数据库运行的要求。在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考其它程序的功能,因此完全可以实现。本系统的设计是在Windows XP中文版操作系统环境下,使用Visual Basic 6.0中文版开发成功的。 第三章 前台界面分析 3.1 登陆界面

主要代码

Option Explicit Dim m As Integer

4 Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Private rsmc As ADODB.Recordset Public username As String Private Sub cmdOk_Click() Dim ee As String rs.MoveFirst If m

5 End If Else MsgBox \"对不起,您的输入次数已达到最大限度!请退出!\", vbExclamation, \"提示信息\" \'提示信息,确定 End End If End Sub Private Sub Form_Load() Set conn = New ADODB.Connection

conn.Provider = \"Microsoft.Jet.OLEDB.4.0\" conn.ConnectionString = \"Data Source=\" & App.Path & \"\\aa.mdb\" conn.Open Set rs.ActiveConnection = conn With rs .Open (\"select * from yonghu\") .MoveFirst End With txtusername.Text = rs.Fields(0) Do While Not rs.EOF txtusername.AddItem (rs.Fields(0)) rs.MoveNext Loop txtusername.Text = \"\" End Sub 3.2信息查询

信息查询主要是对学生的基本信息和学生的成绩进行查询。在查询的过程你可以利用学号、课程号、专业名等进行查询。 第四章 数据库的分析

6 4.1 yonghu表

主要是登陆用户所用的表。

4.2 student 表

学生的各种信息都来源于这个表。 4.3 score表

7

此表是记录学生成绩信息表。 4.4 course表

此表是记录学生课程的表。 第五章 软件维护

在软件运行维护阶段对软件产品所进行的修改就是维护。系统维护就是为了保证系统中的各个要素随着环境的变化始终处于最新的,正确的工作状态。系统维护的目的是保证管理信息系统正常而可靠地运行,并能使系统不断地得到改善和提高,以充

8 分发挥作用。

本系统的维护是面向系统中各种构成要素的,根据维护对象的不同,系统维护的内容可分为以下几类: 5.1数据维护

本系统对数据的需求是不断发生变化的,系统中查询题目中数据要定期正常更新,或随环境及需要的变化而进行调整。此外,数据的备份与恢复,都是数据维护的工作内容。 5.2代码维护

随着系统应用范围的扩大,应用环境的变化,系统中的各种代码都需要进行一定程度的增加、修改、删除,以及设置新的代码。 结语及致谢

通过这次的设计,让我对VB的使用有了进一步的了解。在我做设计的过程遇到了许多的困难。通过老师和同学的帮助, 一一化解了困难,并从中学到了很多编程方面的知识。

在本次毕业设计中,我要向我的指导老师致以深深的谢意,感谢指导老师在这段时间里在学习上和生活上所给予的悉心的教诲和无微不至的帮助,在我感觉到自己知识有所贫乏的时候给了我细心的指导和技术上的支持。使我自身的能力得到了不少的提高,这对于我以后的工作和学习都有一种巨大的帮助。感谢指导老师的耐心辅导。

参考文献

[1] 宗大华,陈吉人.C语言程序设计教程.人民邮电出版社,2004-6-1 [2] 韩春成.C语言程序设计教程/21世纪高等院校规划教材.中国水利水电出版社,2007,1,14 [3] 宁正元.数据结构--用C语言描述.中国水利水电出版社,2005-4-27 [4] 李梅.C语言编程入门.化学工业出版社,2002,01,01 [5] 于华,都一兵.优化Visual Basic.NET应用程序的性能[J].计算机系统应用,2004,10 [6] 邵英海.Visual Basic数据库开发技术的探讨.[J].丹东纺专学报,2004,11,4 [7] 金凤霞.VB中Paint Picture图形方法的使用 CAJ原文下载[J]., 1999,04 [8] 谭浩强.《C程序设计题解与上机指导(第3版)》.清华大学出版社,2005,7 [9] 聂雪军,贺军/译.[美]Harvey M.Deitel, Paul J.Deitel /著.《C程序设计经典教程(第4版)》,清华大学出版社,2006,3 [10] 李春葆,张植民,肖忠付.《C语言程序设计题典》.清华大学出版社 ,2002,7 [11] 张小潘/译,[美]科汉/著.《C语言编程(第3版)》.电子工业出版社 ,2006,3

[12] 徐宝文 李志/译,[美]Brian W.Kernighan, Dennis M.Ritchie /著.《C程序设计语言(第2版·新

9 版) 》.机械工业出版社,2004,1 [13] 鲁沐浴.《C语言最新编程技巧200例》.电子工业出版社,1997,1

[14] 梁

翎,李爱齐.《C语言程序设计实用技巧与程序实例》.上海科普出版社,1996,5 [15] 陈国章.《Turbo C程序设计技巧与应用实例》.天津科学技术出版社,1995,5 [16] 王士元.《C高级实用程序设计》.清华大学出版社,1996,6

推荐第7篇:VB说课稿

《组合框的使用》说课稿

各位领导、老师大家好!

今天我说课的题目是《组合框的使用》,我将从教材分析、教学目标、教学重点难点、教学方法、教学过程、教学总结六个方面谈谈我的教学思路。

一、教材分析 先说一说教材。

本课题目来自计算机应用专业中职二年级学生的教材,人民邮电出版社出版的可视化编程应用——Visual Basic6.0中文版的项目五—设计学生信息录入系统。本课知识点是可视化界面设计和编程使用的重要控件之一。因此制定了以下的教学目标。

二、教学目标

知识目标:

1、掌握组合框的添加方法和样式的区别

2、掌握组合框中列表项的添加方法

3、掌握组合框和其他控件的结合使用。

能力目标:

1、培养学生的窗体界面的设计能力

2、培养学生综合运用所学知识解决实际问题的能力。情感目标:

1、增强学生的信心,培养学生对专业的兴趣;

2、通过分组教学提高学生交流沟通和团队协作意识;

3、养成良好的编程习惯和编程规范;

为了让学生很好的掌握组合框的使用我把教学重点和教学难点分别放在

三、教学的重点、难点

教学重点:组合框列表项的添加方法

教学难点:学生信息的录入功能实现(组合框和其他控件的结合使用)

四、说教法学法

为了让学生达到教学目标,掌握重点难点,在教学方法上,遵循以学生为主体、教师为主导的教学理念,采用任务驱动教学法,并对学生进行分组教学,在布置任务后采取各个小组进行竞赛的方法,看哪个小组做得好做的快,做的好小组可以去指导其他的小组。

在教学过程的实施中采用以下步骤:

五、说教学过程(也是教学思路的重点)

(一)导入新课 展示学生们日常熟悉的组合框的应用的实例,通过对实例的分析,告知学生组合框是什么,引出本节课我们要学习的项目知识点组合框的应用。

展示本节课的项目运行文件,看看组合框的功能是什么?

(二)、搭建整体的程序界面(设置好控件属性)

1、分组进行,首先把学生分成4个小组,用几个课时?每个小组接到的任务都是按照老师给出的程序运行结果搭建程序界面。告知学生组合框在工具箱中的位置,添加方法和以前学过的按钮、文本框等控件一样,直接点击,在窗体合适的位置上拖动画出。程序界面中需要的其他控件学生已经学习过并能掌握,只有组合框没有用过,因此在界面设计中组合框是学生遇到的主要问题。

2、通过每个小组设计的界面情况,和老师展示的界面进行对比,发现不能解决的部分由老师进行知识的逐一补充,从而解决教学的重点内容,由于学生解决的问题没有办法实现,小组之间又进行激励的比较,因此学生的注意力比较集中,认真听需要解决问题的办法,因此这种遇到问题给出解决问题的方法,学生接受起来不是很被动,效果比较理想。

针对以上情况,解决的知识点有两个,一是组合框中列表内容的添加,(组合框的特点为,文本框和列表框的组合)二是组合框的样式,下面逐个解决。

列表内容的添加方法有三种: 1) 使用组合框的list属性,直接在list 属性中添加列表项的内容,添加一个回车一次。

2) 使用程序代码添加列表项的内容,双击窗体的空白区域,在出现的程序代码窗口中的form_load()事件中添加如下代码

Combo1.AddItem \"2012年9月1日\" Combo1.AddItem \"2013年9月1日\" Combo1.AddItem \"2014年9月1日\" 建议同学们养成使用这种方法的习惯。因为在编程过程中,熟悉代码的写法和规范是学习程序的基础。 3)使用 with 语句

组合框的样式有三种:

1) 组合下拉式组合框 2) 组合式组合框 3) 简单下拉式组合框

方法是通过改变组合框属性Style的值即可。

让学生继续刚才的任务,使用任意一个方法去添加组合框中的下拉列表项的内容,并使用不同组合框的样式获得老师展示的效果。并总结等完成后分析汇报。

(三)、实现录入信息功能

通过前面知识点的解决,学生可以把程序界面设计完成,那么怎么才能把在组合框中选择的内容在列表框中显示出来,达到信息录入功能,还是我们进一步需要解决的难点问题。

首先还是由各个小组进行讨论,分析。老师提问,学生阐述解决问题的思路,在思路正确的前提下,告诉学生怎么用VB的方法去实现,编写

按钮事件相应代码,列表框中最后需要的内容为组合框中选择出来的文本和其他控件中的文本组合,作为列表框中的内容最后显示,因此引导学生写出代码,采取逐步攻破的方法,循序渐进,降低学生的难度,让学生简单易懂。

infr = TxtNumb + \" \" + Sname + \" \" + Combo1.text + \" \" + Combo2.Text+””+combo3.text LstShow.FontSize = Combo4.Text LstShow.FontName = Combo5.Text LstShow.AddItem infr 总结组合框的几个常用属性。Text listIndex等

(四)小组总结汇报

每个小组完成后,在机器上演示,由教师先进行点评,指出出现的问题。后由其他小组进行点评,做的好的小组可以说说自己的经验和方法,做的不好的小组要进行一个整改总结,从而使每个学生都能达到一个知识点的掌握和应用。在教师点评和小组互评中又能使重点内容的掌握和难点的突破进一步巩固。

(五)任务拓展

为了巩固知识点,进一步提高学生解决问题的能力,要求学生利用课下时间去思考教师给出的界面上没有实现其他的功能,试着去解决 ,成功地将任务由课内延伸到了课外,实现了任务的拓展和提升,也为下一步教学做好了准备。

六、教学总结

在这次的教学任务实施过程当中,遵循以学生为主体,教师为主导的教学理念,采用任务驱动教学法, 通过遇到问题解决问题的思路,带领学生逐个去攻破难关,掌握知识点。使学生很好的提高了解决问题的能力。

我的说课到此结束,不当之处,敬请各位领导批评指正,谢谢!

推荐第8篇:VB时钟

二零零九 年 五 月

目 录

摘 要 ...............................................................................i 第1章 概 述 ......................................................................1

1.1 引言 ..........................................................................1 1.2 设计平台 ......................................................................1 第2章 开发工具简介 ..................................................................2

2.1 VisualBasic6.0简介 ............................................................2 2.2 运用的控件和主要对象 ..........................................................2 第3章 设计实现 .....................................................................6

3.1画时钟表盘上的所有直线元素 .....................................................6 3.2修改时针的形状 .................................................................6 3.3计时器的Interval(间距)属性设置 ................................................6 3.4软件代码 .......................................................................7 第4章 总 结 .......................................................................16

4.1 结论 .........................................................................16 4.2 心得体会 .....................................................................16 参考文献 .............................................................................17

- i

第1章 概 述

1.1 引言

visual basic继承了basic语言易学易用的特点,特别适合于初学者学习windows系统编程。随着21世纪信息社会的到来,计算机在人们的工作和生活中的深入,要求我们越来越多地与计算机打交道,为了用户更加方便的,更加有舒适的心情,设计出一个比较舒心的时钟显示。 1.2 设计平台

VB全称Visual Basic,它是以Basic语言作为其基本语言的一种可视化编程工具。 它继承了basic语言易学易用的特点,特别适合于初学者学习windows系统编程。随着21世纪信息社会的到来,计算机在人们的工作和生活中的深入,要求我们越来越多地与计算机打交道,为了使用户更加地使用舒心。通过这学期来Visual Basic的学习,我初步掌握了Visual Basic语言的最基本的知识,于是在张老师的指导下动手用Visual Basic编写了这款时钟软件。

- 1

个矩形就可以创建一个 Timer 控件了。跟其他控件不同的是,无论你绘制的矩形有多大,Timer 控件的大小都不会变外,Timer 控件只有在程序设计过程中看得见,在程序运行时是看不见的Timer事件:当Timer控件设置为有效时,计时总是从其Interval属性的设置值开始,每当计时时间到达时产生Timer事件,可以在该事件过程中编写代码,以高诉Visual Basic在每次计时时间到时该做什么。

(1)Timer 控件的属性:

Timer 控件可以使用 Name 属性与 Enabled 属性,但最重要的是 Interval 即时间间隔属性。

Interval 属性决定了时钟事件之间的间隔,以毫秒为单位,取值范围为 0 ~ 65535 ,因此其最大时间间隔不能超过 65 秒,即一分钟多一点的时间。如果把 Interval 属性设置为 1000 ,则表示每秒钟触发一个 Timer 事件。

其语法格式:

Timer.Interval = X ,其中,X 代表具体的时间间隔。 (2)Timer 控件的 Timer (定时)事件:

当一个 Timer 控件经过预定的时间间隔,将激发计时器的 Timer 事件。使用 Tim 标签控件(Label)的主要事件:

所谓的事件,其实就是用户对应用程序的操作,如第一章中用鼠标点击命令按钮触发的 Click 事件。

事件的作用在于触发程序的执行,如第一章中的 Click 事件改变了标签控件的 Caption 属性。

标签控件的主要作用在于显示文本信息,但也支持一些为数不多的事件。 I、Click 事件(鼠标单击):

用鼠标点击标签时触发的事件,如改变标签的字体属性: Private Sub LblShow_Click() LblShow.FontName = \"隶书\" End Sub II、DbClick 事件(鼠标双击):

鼠标双击引发的事件,如改变标签的可见性: Private Sub LblShow_DbClick() LblShow.Visible = False End Sub (3)文件操作控件

在一个应用程序中,对文件的处理是一个比较常用的操作,如打开文件、保存文件,等等。Visual Basic 提供了三个控件对磁盘文件夹与文件进行显示与操作,它们分别是:DriveListBox(磁盘列表框)控件、DirListBox(文件夹列表框)控件,以及 FileListBox(文件列表框)控件 。事件可以完成许多实用功能,如显示系统时钟、制作动画,等等

- 3

本属性用来设置标签的边框类型,有两种值可选:0,代表标签无边框;1,代表标签有边框,并且具有三维效果,如图二显示的两个标签:

BorderStyle 属性可以在设计界面时指定

标签名.BorderStyle = 0/1(0或1,两者取一)

击一下,标签有边框,再点一下,标签边框消除,再点一下,边框又出现,以此类推。回答

Ⅲ、Font(字体)属性:

本属性用来设置标签显示的字体,既可以在创建界面时设定,也可以在程序中改变。 在创建界面时设定

在图四的设置界面中,除了可以选择字体,还可以设置显示文字是否为粗体、斜体、下划等。

在程序中改变 Font 属性,程序代码书写规则如下:

字体改变:标签名.FontName = \"字体类型\",其中,“字体类型”可以是中文,如“宋体”、“隶书”;也可以是英文名,如“Arial”、“Times New Roman”,等等,不过,这些字体名称必须是电脑上有的。

字体大小改变:标签名.FontSize = X ,其中,X 是阿拉伯数字,代表字体是几号字。如:LblShow.FontSize = 11 。

粗体(FontBold)、斜体(FontItalic)、下划线(FontUnderline)、删除线(FontStrikethru)属性的设置值是代表真/假的逻辑判断值 True/False ,如下:

LblShow.FontBold = True/False LblShow.FontItalic = True/False Ⅳ、Alignment(对齐)属性:

此属性用来设置标签上显示的文本的对齐方式,分别是:左对齐,0;右对齐,1;居中显示,2。可以在界面设置时设定,

也可以在程序中改变,代码如下: 标签名.Alignment = 0/1/2

- 5

图3.2 创建的新工程

下图即为编辑时钟软件的工程窗口,可执行为一个“标准 EXE”文件。具体代码如下。

图3.3 时钟编辑窗口

3.4软件代码

1、主程序代码

Private Sub Form_Load()

Call PutWindowOnTop(Form1)

Call drewfrm(Me.hWnd, App.Path + \"\\clockh.pfm\")

closewave = False

Label1.Caption = Right(Format(Now, \"yy-mm-dd\"), 2)

htoday = False

Dim a As Integer, b As Integer, c As Integer

Dim inputdata As String

Open App.Path + \"\\forever.dat\" For Input As 1

On Error Resume Next

Do While Not EOF(1)

- 71

Close #1 End Sub Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)

If Button = 2 Then

PopupMenu MFile

ElseIf Button = 1 Then

Dim ret As Long

ReleaseCapture

ret& = SendMeage(Me.hWnd, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0)

End If End Sub Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)

Label1.ToolTipText = Format(Now, \"yyyy年mm月dd日hh:mm\") End Sub Private Sub Mclwav_Click()

closewave = True End Sub Private Sub Openwave_Click()

closewave = False End Sub Private Sub Showfrm_Click()

Form2.Show

Me.Hide End Sub Private Sub small_Click()

- 8

图3.4 时钟界面

2、时钟界面子程序 Private Sub Form_Load()

Call PutWindowOnTop(Form2) End Sub Private Sub Picture1_DblClick()

Form1.Show

Unload Me End Sub Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)

If Button = 1 Then

Dim ret As Long

ReleaseCapture

ret& = SendMeage(Me.hWnd, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0)

End If End Sub

3、闹钟提醒设置

- 10

worktxt = \"闹铃\"

Else

worktxt = \"提醒\"

End If

If Option3.Value = True Then

worktxt = worktxt + \"每日\"

Else

worktxt = worktxt + \"今次\"

End If

If Option2.Value = True Then

If Option4.Value = True Then

worktxt = worktxt + Timetxt + \"#\" + Datetxt + Alerttxt

b = True

Else

worktxt = worktxt + Timetxt + Alerttxt

End If

Else

worktxt = worktxt + Timetxt

End If

If Text1.Enabled = True Then

If Text1.Text \"\" Then

Text1.Text = Text1.Text + vbCrLf + worktxt

Else

Text1.Text = worktxt

End If

Open App.Path + \"\\forever.dat\" For Output As 1

Print #1, Text1.Text

Close #1

forever = Text1.Text

ElseIf Text2.Enabled = True Then

If Text2 \"\" Then

Text2.Text = Text2.Text + vbCrLf + worktxt

Else

Text2.Text = worktxt

End If

End If

End If End Sub Private Sub Form_Load()

Dim inputdata As String

Open App.Path + \"\\forever.dat\" For Input As 1

On Error Resume Next

Line Input #1, inputdata

forever = inputdata

Do While Not EOF(1)

- 12start) \"\" Then

clockn(d) = Mid$(Mid$(Text2, start, last

Line Input #1, inputdata

Select Case typetime(inputdata)

Case 1

Clockf(a) = Mid$(inputdata, 5)

a = a + 1

Case 3

Alertft(b) = Mid$(inputdata, 5, 5)

alertfms(b) = Mid$(inputdata, 10)

b = b + 1

Case 4

If Mid$(inputdata, 11, 8) = Format(Now, \"yy-mm-dd\") Then

htoday = True

Alertot(c) = Mid$(inputdata, 5, 5)

alertoda(c) = Mid$(inputdata, 11, 8)

alertoms(c) = Mid$(inputdata, 19)

c = c + 1

End If

End Select

Loop

alc = c

If Option2.Value = True Then

Datetxt.Enabled = False

End If End Sub Private Sub Option4_Click()

If Option2.Value = True Then

Text1.Enabled = True

Text2.Enabled = False

Else

Text1.Enabled = False

Text2.Enabled = True

End If

If Option2.Value = True Then

Datetxt.Enabled = True

End If End Sub Private Sub Timetxt_Click()

Timetxt.SelStart = 0

Timetxt.SelLength = 5 End Sub

- 15

参考文献

[1] 刘彩虹,沈大林.Visual Basic程序设计案例教程[M].中国铁道出版社,2008,2 [2] 龚沛曾,陆慰民,杨志强.Vsual Basic 程序设计教程[M].高等教育出版社,2003,6 [3] 丁爱萍.Visual Basic程序设计(第3版)[M].电子工业出版社,2008,1 [4] 卢毅.Vsual Basic实例教程[M].科学出版社出版,2007,2 [5] 赵欣胜,亢慧娟,刘晟宏.Vsual Basic 经典范例50讲[M].科学出版社出版,2007,5

- 17 -

推荐第9篇:VB题库

三大问题威胁大学生打工权益

记者采访发现,目前大学生暑期打工的合法权益主要受到三大问题威胁:一是招聘中介良莠不齐。目前南昌大学生暑期打工招聘市场的管理基本处于空白状态,招聘中介准入门槛低,市场无序,一些没有任何公司背景的个人也私下进入学校招聘,隐患重重。江西科技师范学院调查发现,林培钙的工作单位不明,但他以个人的名义,利用学生招聘学生,一传十,十传百,短短十几天就招聘上百人。

江西科技师范学院党委副书记黄国俊说,如果任由林培钙这样的无固定职业人员在高校招聘学生外出务工,大学生涉世未深,万一被骗去搞传销,后果难以料想。

二是用工协议存在“陷阱”。高校学生与招聘中介签订的协议书不乏这样的规定:每天工作时间为11小时,学生“必须完成”公司规定的工作时间;学生“必须服从”招聘单位的安置及调配。相反,用工协议对学生打工的劳动保护措施、就业环境情况等均未提及。

南昌市劳动和社会保障局劳动监察处处长战建军说,用工协议中的此类“霸王条款”违反了劳动法规,如果用人单位把学生安排在污染严重的地方工作,或者安排到不健康的娱乐场所上班,学生的身心健康必然会受到损害。

三是学生打工缺乏有效监管。大学生暑期外出打工都是在校方不知情的情况下进行的,高校根本无法监管。一些学校团委虽然直接参与招聘学生外出打工,但是管理不到位。在校团委的组织下,7月初,南昌航空大学有200名学生赴广东打工。学校团委书记黄柯说,校方委托南昌朝阳教育咨询公司联系用工单位,但校方对学生要去什么样的企业打工并不了解,事先也没有进行调查。鉴于这种情况,学校决定派老师随同前往“呆个三四天看看情况”。

江西省劳动和社会保障厅仲裁处负责人认为,学生暑期近两个月的打工期内没有校方人员跟踪监管,如果学生在异乡发生劳资纠纷和工伤事故,学生的合法权益很难得到保障。 暑假到了,学生们会怎样利用这长假?家境好的估计会选择请家教或去补习班吧?但对于很多家庭特别是农村来说,因为TA们的家境并不富裕,需要通过打工挣钱补贴学费、生活费,平时打工影响学业,只好利用假期,一来可以锻炼自己,二来可以增添家庭收入,或者赚点小钱买自己中意已久的东西。

那么,暑假工是怎么回事呢?

TA们一般都会去找家教、销售、送货、派传单,或服务行业之类的工作,因为这类工作大都属于短期类工作,而且也不需要什么培训,基本上学生都能胜任。

为父母减轻经济压力——现在大学的学费昂贵,每个月生活费一人也要好几百元,而多数学生家境一般,没有固定的经济来源。穷则思变。学生们或为了能使自己基本生活有保障,或为了生活得更好一点,便纷纷走出课堂和校门,利用自己的一技之长,开始打工,这样也可以为家里承担一部分的经济压力。

锻炼自我——当前,大学生所面临的一个突出问题便是就业。就业形势的日益严峻和未来社会靠自己能力吃饭的,现实对于当代大学生来说,无疑是一个不容回避的选择。为此,大学生们将锻炼自己的空间不仅仅局限在校园内,而日益把眼光投身到丰富多彩的社会生活中去。很多人把暑期打工看作是毕业找工作前的一次“预演”。学生可以从大二或大三就在一家认准的公司实习,甚至可以接受零工资,在实习期间打动用人方,这也不失为进入公司的捷径。缺少工作经验成为所有在校大学生的不足,有的大学生把实习和兼职当成获得经验的最佳途径。

至于江湖险恶,暗藏着传销之类的陷阱,这也是他们在社会实践中需要面对的,增长生活经验、提高辨别能力的问题。

表现自己——在大学,并不是每一位大学生都能拥有中学尖子生时代的“荣耀”与“辉煌”,自我价值的失落是普遍存在于大学生中的一种彷徨而苦闷的心理。为此,一部分大学生另辟蹊径,选择了兼职道路,企图在这一领

域中重新寻回那份“自我感觉”。一部分同学将暑期打工看作是一种走向成熟的标志,可以开学以后能颇为自豪地对同学讲上一段自己打工的经历。

学生们暑假打工,共同面对的问题也不少。涉世未深的TA们,缺乏防范意识,在找暑期工的过程中,肯定会遇到一些不公平的待遇。

第一、学生暑假工,很多都是没有签合同的,工作存在着很多安全性的问题,人身安全没有保障。况且TA多数是进工厂, 上班时间长,伙食差,就算体质好的也会累倒晕倒。如果没有熟人,盲目的去打暑假工,如果出了事,很难解决,厂方会负责么?

第二、TA们也许会遭遇到骗子。

第三、学生打暑假工,劳累的付出,得到的工资并不多,除去伙食,住宿费,除去来回车费,所剩无几了。学生们暑假打工,而对用人单位一般只会问薪金待遇,很少提及其它方面。在此提醒学生们,一定要注意维权。用人单位需给学生缴纳保险,签订劳动合同。建议学生们避免到一些免费的公共人才市场及职介所求职,以免上当受骗。在打暑假工期间要保持清醒的头脑,注意了解用人单位的实际情况,谨慎对待用人单位收取押金或扣押身份证。

暑期工劳动时间长工资较低

每年暑假,都有不少“准大学生”、“准高中生”们提前进入社会体验“打工生涯”,一是提前接触社会,增长阅历,一是利用空闲时间赚点零花钱。连日来,记者深入这群“暑假工”群体,进入工厂车间,感受学生们的打工生活。

学生:每天工作10.5小时挣30-40元

日前上午9时许,记者来到阳东某五金刀具厂,从6月份开始,该厂陆续招收了10多个暑期工。暑期工每天的工作就是拧螺丝。记者在现场看到,偌大的车间,这群暑期工被特别安置在一旁,他们一手拿着电动螺丝刀,一手固定螺丝和刀柄,将一颗颗直约2.5毫米的螺丝固定到刀柄上,完成一个成品的整个过程需要8~10秒钟。

18岁的暑期工小攀就是其中一员。他一开始的目标是为自己攒够买电脑的钱。然而,在工作了14天之后,他开始对实现自己的“目标”失去了信心。“这里暑期工跟正式工人一样,每固定一颗螺丝4分钱,我每天从早上7点半工作到晚上7点半,中间休息一个半小时,完成1000颗也就只有40元,有时领到难做的工作,我一天只能挣30元左右。”小攀说。

记者在走访中了解到,部分暑期工的经历跟小攀类似,工作时间长,但工资却普遍不高,部分工厂还存在着暑期工与正式员工“同工不同酬”的问题。

刚从阳东一中毕业的小文,目前在惠州某杯具工厂打暑期工。6月中旬到该工厂之后,小文被安排到“夜班组”,每天的工作时间是晚上8点到第二天早上7点,工资标准是8元/小时。小文告诉记者,该工厂正式工人除了有底薪,加班工资还是暑期工的1.5倍。“我们每个月要交300元的伙食费,原本工厂是包住的,但环境不好,我跟另外两位同学在外面租房,350元/月,赚不了什么钱,权当体验生活。”小文说。

用工企业:暑期工应选择做技术含量低工种

对于用工企业来说,这一群“初出茅庐”的学生又意味着什么?他们招收暑期工的初衷是什么?对此,记者采访了部分用工企业负责人了解情况。

据阳东县某五金厂的车间主管李先生表示,企业招收暑期工主要由于部分企业在暑期属于旺季,订单或客流较多,需要更多的人手。而与聘请临时工或小时工不同,暑期工一般都是“按件计算工钱”,做多少算多少,不会存在小时工偷懒、扯皮的现象,这可以提高企业工作的效率而降低成本。另外,李先生还表示,大部分暑期工没有受过专业的职业培训,工作技能较低,因此交给他们的一般都是技术含量低的工作。

暑期工虽然可以降低企业用工成本,但是,对于用工企业来说,使用暑期工还是具有一定“风险”。李先生表示,部分学生在工作的时候由于缺乏毅力,在工作过程中吃不了苦,且情绪化明显,管理难度较大,部分缺乏责任感的学生甚至随意离开工作岗位,扰乱企业的正常工作秩序甚至耽误工期。

“我之前接触过的实习生总体来说是比较负责的,在工厂的历练能让他们明白父母赚钱的艰辛,不少学生经历了暑期工之后,会明白知识和技能的重要性,这个经历能让他们端正学习态度。”李先生说。

人社局:月工资标准不低于1010元

暑期工应如何保护自己的合法权益?对此,市人社局有关负责人提醒,学生找暑期工时最好到正规的职介,千万不要相信路边广告。

学生暑期打工首先要清楚自己的劳动权益。按照有关规定,用人单位是绝不能以押金、服装费、入职费、建档案等各种名目向求职者收取任何费用的,其工资最起码不能低于当地最低工资标准(目前阳江市最低工资标准为1010元/月,最低日工资和最低小时工资按此推算),在工作期间如超时加班的,用人单位还必须按照规定支付加班费。暑期工的工作时间多为一个半月,在工资结算方面,该负责人建议采用周薪制或10天结算一次工资,这样可防止企业“欠薪”。

近年来,市人社局在处理暑期工有关纠纷中,发现有不少双方没有签订合同的情况,出现纠纷时,用人单位硬说没有招用有关学生,而学生又拿不出证据,给查处带来困难。因此,学生以普通劳动者身份打工,即使工作两天,企业也应与其签订劳动合同,明确双方的权利义务。

学生在打暑期工时要保存好与用人单位建立劳动关系的相关证据,如劳动合同、厂牌、工作证等。学生在打暑期工期间,劳动保障权益受到侵犯,可直接到当地人社局劳动监察机构投诉反映,也可拨打维权热线:12333或2231100。

推荐第10篇:VB学习材料

《VB期末范围题总汇》

1. 求随机10个整数的最大值、最小值、平均值以及和; Dim a(1 To 10)

Private Sub Command1_Click()

Randomize

Picture1.Print \"产生的随机数为:\"

For i = 1 To 10

a(i) = Int(Rnd * 99 + 1)

Picture1.Print a(i);

Next i

Picture1.Print

End Sub

Private Sub Command2_Click()

Dim max, min, ave

max = a(1)

min = a(1)

ave = 0.1 * a(1)

For i = 2 To 10

If a(i) >max Then max = a(i)

If a(i)

ave = ave + 0.1 * a(i)

Next i

Picture1.Print \"最大数为:\"; max

Picture1.Print \"最小数为:\"; min

Picture1.Print \"平均数为:\"; ave

End Sub

2.求水仙花数

Private Sub Form_Click()

Dim a, b, c As Integer \'a(个)b(十)c(百) For a = 0 To 9

For b = 0 To 9

For c = 1 To 9

If a ^ 3 + b ^ 3 + c ^ 3 = a + 10 * b + 100 * c Then MsgBox 100 * c + 10 * b + a

End If

Next c

Next b

Next a

End Sub

3.百元买百鸡问题;

Option Explicit

Const a = 5, b = 3, c = 1

Private Sub Form_Activate()

Dim i As Integer, j As Integer, k As Integer, n As Integer For i = 1 To 100

For j = 1 To 100

For k = 1 To 100

If i * a + j * b + k * c = 100 Then

n = n + 1

List1.AddItem \" 公鸡:\" & i & \" 母鸡:\" & j & \" 小鸡:\" & k End If

Next: Next: Next

MsgBox \"共有组合:\" & n

End Sub

求1000以内的所有完数

一个按钮里调用的过程

Private Sub Command1_Click()

OutputWanNumber 1000

End Sub

4.\'求完数的过程

Private Sub Form_Click()

Dim i, j As Integer

For i = 4 To 100

temp = 1

For j = 2 To i / 2

If i Mod j = 0 Then

temp = temp + j

End If

Next j

If temp = i Then

Print i

End If

Next i

End Sub

5.求各位数字之和

input a:\'输入任意数

do

b=a mod 10:\'取a的末位数

sum=sum+b:\'求和

a=a \\ 10:\'去掉末位数

loop until a=0

print \"sum=\";sum:\'输出

end

(dim n as string

input n

for i = 1 to len(n)

sum=sum+val(mid(n,i,1))

next i

print sum)

6.求最小公倍数

Private Sub Form_Load()

Form1.AutoRedraw = True

Dim n1%, m1%, m%, n%, r%

n1 = InputBox(\"输入n1\")

m1 = InputBox(\"输入m1\")

If m1 >n1 Then \'为了求最小公倍数,增加m,n变量

m = m1: n = n1

Else

m = n1: n = m1

End If

Do

r = m Mod n

If r = 0 Then Exit Do

m = n

n = r

Loop

Print n1; \",\"; m1; \"的最大公约数为\"; n

Print \"最小公倍数=\", m1 * n1 / n

End Sub

7.求逆序数(感觉题目类型太多)

8.级数有限项求和问题(题目类型太多)

9.求质因子问题

Private Sub Command1_Click()

Dim N As Integer, I As Integer

N = Val(InputBox(\"请输入2的整数:\"))

I = 2

Do

If N Mod I = 0 Then

Print I;

N = N \\ I

Else

I = I 1

End If

Loop While N 1

End Sub

10.字符统计

Option Base1

Option Explicit

Private Sub Command1_Click()

Dim i as integer,A(26) as integer,n as integer

Dim S as string*1,Strl as string

Strl=Text1

n=Len(Strl)

For i=1 To n

S=Mid(Strl,i,1)

If UCase(S)>=”A” And UCase(S)

A(Asc(UCase(S))-64)+1

End If

Next i

For i=1 To 26

List1.Additem Chr(64+i) & “:” & A(i)

Netx i

End Sub

Private Sub Command_Click()

End

End Sub

第二大题

1.判定素数过程

Function isprime(Num As Long) As Boolean

If Num

Dim i As Long

For i = 2 To Sqr(Num)

If (Num Mod i) = 0 Then

isprime = False

Exit Function

End If

Next i

isprime = True

End Function

Private Sub Command1_Click()

Dim i As Long

For i = 1 To 1000

If isprime(i) Then

Print i

End If

Next i

End Sub

2.求最大公约数过程;

Function Max公约数(A As Long, B As Long) \'求出两个数的最大公约数 Dim X As Long, Y As Long, K As Long

X = IIf(A >= B, A, B) \'x存入最大值

Y = IIf(A

Do \'辗转相除法

K = X Mod Y: If K = 0 Then Exit Do

X = Y: Y = K

Loop

Max公约数 = Y

End Function

3.冒泡排序过程

Private Sub Command1_Click()

Dim a(9) As Integer

Dim i As Integer

For i = 0 To 9

a(i) = InputBox(\"输入整数\")

Next

Sort a

For i = 0 To 9

Print a(i)

Next

End Sub

Private Sub Sort(ByRef a() As Integer) Dim i As Integer

Dim j As Integer

Dim t As Integer

For i = LBound(a) + 1 To UBound(a) For j = UBound(a) To i Step -1

If a(j1)

a(j - 1) = a(j)

a(j) = t

End If

Next

Next

End Sub

4顺序查找过程

Private Sub Command1_Click()

Dim i, j, t, a(1 To 10)

Randomize

Print \"原数组:\"

For i = 1 To 10

a(i) = Rnd * 10

Print \"a(\" & i & \") =\" & a(i) & Space(2), If i Mod 2 = 0 Then Print

Next i

Print

For i = 1 To 9

For j = i + 1 To 10

If a(j)

t = a(i) a(i

第11篇:VB关键字

VB关键字总结

1.编译命令关键字总结

作用 关键字 定义编译常数。 #Const 编译程序码中的选择区块。 #If...Then...#Else

2.变量与常数关键字总结

作用 指定值。 Let 声明变量或常数。 Const, Dim, Private, 声明模块为私有。 Option Private Module 判断 VariantIsError, IsMiing, IsNull, IsNumeric, IsObject, TypeName, VarType 引用当前对象。 Me 变量须明确声明。 Option Explicit 设置缺省数据类型。 Deftype

3.运算符关键字总结

作用 算术。 ^, -, *, /, \\, Mod, +, & 比较。 =, , , =, Like, Is 逻辑运算。 Not, And, Or, Xor, Eqv, Imp

4.错误关键字总结

作用 产生运行时错误。 Clear, Error, Raise 取得错误信息。 Error 提供错误信息。 Err 返回 Error 变体。 CVErr 运行时的错误处理。 On Error, Resume 类型确认。 IsError

关键字 Public, New, Static 。 IsArray, IsDate, IsEmpty, 关键字

关键字

1 5.Collection 对象关键字总结

作用 关键字 建立一个 Collection 对象。 Collection 添加对象到集合对象中。 Add 从集合对象中删除对象。 Remove 引用集合对象中的项。 Item

6.金融关键字总结

作用 计算折旧率。 DDB, SLN, SYD 计算未来值。 FV 计算利率。 Rate 计算本质利率。 IRR, MIRR 计算期数。 NPer 计算支付。 IPmt, Pmt, PPmt 计算当前净值。 NPV, PV

7.控制流关键字总结

作用 分支。 GoSub...Return, GoTo, On Error, On...GoSub, On...GoTo 退出或暂停程序。 DoEvents, End, Exit, Stop 循环。 Do...Loop For...Next, For Each...Next, While...Wend, With 判断。 Choose, If...Then...Else, Select Case, Switch 使用过程。 Call, Let, Property Set, Sub

8.目录和文件关键字总结

作用 改变目录或文件夹。 ChDir 改变磁盘。 ChDrive 复制文件。 FileCopy 新建目录或文件夹。 MkDir 删除目录或文件夹。 RmDir 重新命名文件、目录或文件夹。 Name

关键字

关键字

Function, Property Get, Property 关键字 2 返回当前路径。 CurDir 返回文件的日期、时间。 FileDateTime 返回文件、目录及标签属性。 GetAttr 返回文件长度。 FileLen 返回文件名或磁盘标签。 Dir 设置有关文件属性的信息。 SetAttr

9.日期与时间关键字总结

作用 关键字

设置当前日期或时间。 Date ,Now, Time 计算日期。 DateAdd, DateDiff, DatePart 返回日期。 DateSerial, DateValue 返回时间。 TimeSerial, TimeValue 设置日期或时间。 Date, Time 计时。 Timer

10.输入与输出关键字总结

作用 关键字 访问或创建文件。 Open 关闭文件。 Close, Reset 控制输出外观。 Format, Print, Print #, Spc, Tab, Width # 复制文件。 FileCopy 取得文件相关信息。 EOF, FileAttr, FileDateTime, FileLen, FreeFile, GetAttr, Loc, LOF, Seek 文件管理。 Dir, Kill, Lock, Unlock, Name 从文件读入。 Get, Input, Input #, Line Input # 返回文件长度。 FileLen 设置或取得文件属性。 FileAttr, GetAttr, SetAttr 设置文件读写位置。 Seek 写入文件。 Print #, Put, Write #

11.数据类型关键字总结

作用 关键字

数据类型变换。 CBool, CByte, CCur, CDate, CDbl, CDec, CInt, CLng, CSng, CStr, CVar, CVErr, Fix, Int

3 设置数据类型。 Boolean, Byte, Currency, Date, Double, Integer, Long, Object, Single, String, Variant (default) 检查数据类型。 IsArray, IsDate, IsEmpty, IsError, IsMiing, IsNull, IsNumeric, IsObject

12.数学关键字总结

作用 关键字

三角函数。 Atn, Cos, Sin, Tan 一般计算。 Exp, Log, Sqr 产生随机数。 Randomize, Rnd 取得绝对值。 Abs 取得表达式的正负号。数值变换。 Fix, Int

13.数组关键字总结

作用 确认一个数组。 IsArray 建立一个数组。 Array 改变缺省最小值。 Option Base 声明及初始化数组。 Dim, Private, Public, ReDim, Static 判断数组下标极限值。重新初始化一个数组。

14.注册关键字总结

作用 删除程序设置。 DeleteSetting 读入程序设置。 GetSetting, GetAllSettings 保存程序设置。 SaveSetting

15.变换关键字总结

作用 ANSI 值变换为字符串。大小写变换。 Format, LCase, UCase 日期变换为数字串。 DateSerial, DateValue 数字进制变换。 Hex, Oct 数值变换为字符串。 Format, Str

关键字 关键字

关键字 4 Sgn LBound, UBound Erase, ReDim Chr 数据类型变换。 CBool, CByte, CCur, CDate, CDbl, CDec, CInt, CLng, CSng, CStr, CVar, CVErr, Fix, Int 日期变换。 Day, Month, Weekday, Year 时间变换。 Hour, Minute, Second 字符串变换为 ASCII 值。 Asc 字符串变换为数值。 Val 时间变换为数字串。 TimeSerial, TimeValue

16.字符串处理关键字总结

作用 比较两个字符串。 StrComp 变换字符串。 StrConv 大小写变换。 Format, LCase, UCase 建立重复字符的字符串。 Space, String 计算字符串长度。 Len 设置字符串格式。 Format 重排字符串。 LSet, RSet 处理字符串。 InStr, Left, LTrim, Mid, Right, RTrim, Trim 设置字符串比较规则。 Option Compare 运用 ASCII 与 ANSI 值。 Asc, Chr

17.其他关键字总结

作用 处理搁置事件。 DoEvents 运行其他程序。 AppActivate, Shell 发送按键信息给其他应用程序。发出警告声。 Beep 系统。 Environ 提供命令行字符串。 Command Macintosh。 MacID, MacScript 自动。 CreateObject, GetObject 色彩。 QBColor, RGB 关键字 关键字

SendKeys

第12篇:VB心得

VB心得

这学期选修了VB这门学科,想从学习中对计算机有更深刻的认知,也对我大学中的2级考试奠定基础。那么谈谈这学期的学习中对vb的认知和心得体会。

在日常生活中我们经常会有这样的体会,就是去做自己感兴趣的事情时,时间好像一直不够用,而从事自己不喜欢干的事情时候,好像度日如年一般。我刚接触VB是第一次上选修课,老师给我们讲课,我们一人一台机对着电脑屏幕看老师的课件,上面全是VB的专有名词,一个都不懂,老师叫我们实操,我对着VB软件系统无从下手。之后就去图书馆查阅了有关VB教程的书,决心自学。但每次看到一行行枯燥的程序代码眼皮不自觉地就要打架。后来几乎是\"头悬梁,锥刺股\"才得入门。现在想来,这种入门大可不必。严谨求实的态度是非常正确的,但既然面对初学者,也许换一种思路更贴切。少一些隐晦,多一些直观;少一些专业术语,多一些例子。

慢慢地,我了解到VB的特点,VB是在原来的Basic语言基础上发展而来的.Visual指的是可视的图形用户界面开发方法.不需编写大量代码去描述界面元素的外观和位置,只要把预先建立的对象添加到屏幕上的某点即可.如果使用者诸多PAINT之类的绘图程序,则实际上已经掌握了创建用户界面的必要技巧.BASIC指的是B语言,一种在计算机技术发展历史上应用得最为广泛的语言之一.VB在原来BASIC语言的基础上进一步发展至今包含了数百条语句,函数及关键词,其中很多和WINDOWS GUI有直接关系,VB不仅是可视语言,而且是面向对象的编程语言.其特点是概念多,实践性强,涉及面广.之后,了解到一些基本的概念,含义.例如类,就是创建对象实例的模板包含了创建的属性描述和行为特征的定义.而此中的对象又是类的一个实例,继承了类的属性,方法,而VB中长用的对象有窗体,控件等.但我们在建立之前必须清楚对象的三要素:属性,方法和事件.而建立程序的步骤大致可分为:(1)启动程序,装载和显示窗体.(2)窗体等待事件的发生.(3)事件发生时,执行对应的事件发生过程.(4)再重复的过程。(5)最后直接遇到\"END\"结束语句结束程序的运行或按\"结束\"强行停止程序的运行.再用VB创建一个应用程序,第一步骤是创建窗体,它是用户与应用程序进行交互操作的可视部分,窗体是创建界面的基本构造模块,也是创建应用程序所使用的对象.而后必要设置窗体的属性,从而构出窗体的外观,设置好的窗体,窗体就作为对象,能够对其定义的事件作出响应,这也是所谓的窗体事件,而窗体事件又包括窗体本身事件,键盘事件和鼠标事件.在了解窗体基本知识就还应了解VB的语言基础,其中包括了代码模块(窗体模块,标准模块,类模块),注释,分行和续行,数据类节(字节型,逻辑型,数值型,日期型),变量与常数,运算符与表达式,数组,控制结构,子过程和函数.同时,为了编程,我们还应培养良好的编程习惯,首先是对象,变量及过程的命名约定,然结构化编码约定.学习VB程序设计后,增加对此的认识,深入学习VB程序就可掌握新的软件,新的编程环境,学习此课程,让我学会使用开发环境,开发工具的方法,并锻炼我的意志,令我多一门技术。总而言之,这学期的VB课程让我收获了很多,为我下学期的计算机2级考试打下了基础。

第13篇:VB学习心得

VB学习心得

一、学习VB程序设计的方法

保持良好的学习心态

1、要有自信,自强,积极主动学习.

2、克服畏难情绪,树立学好程序设计的信心

要有良好的学习习惯

、课前预习,认真听课并适当做些笔记,课后要认真复习消化所学内容,完成作业.

2、VB程序设计的入门学习并不难,但却是一个十分重要的过程,因为程序设计思想就在这时形成的,良好的程序设计习惯也在这个阶段养成.

学习程序设计要注重理解一些重要的概念.

VB程序设计本身并不复杂,翻开一本程序设计学习的书籍,看到的无非就是变量,函数,条件语句,循环语句等概念.但要真正能进行程序设计,需要深入理解这些概念.因此,在程序入门阶段还是应该重视概念的学习.

自己动手编写程序

程序设计入门阶段要经常自己动手抄写或编写一些小程序,亲自动手进行程序设计是创造性思维应用的体现,是培养逻辑思维的好方法.因此一定要多动手编写程序,而且要从小程序开发开始,逐渐提高写程序的能力.

阅读,借签别人设计的好程序

多看别人设计好的程序代码,包括教材上的例题程序.在读懂别人程序后,要想他为什么这么设计能不能将程序修改完成更多的功能则可以学到别人优秀的东西,帮助自己提高自身水平.

VB程序设计学习的重点

、程序设计课是高强度的脑力劳动,不是听会的,也不是看会的,而是练会的.

2、只有自己动手,编写一些程序,才会有成就感,进而对课程产生兴趣,学起来才比较从容.等你在编写大量程序之后,我想过二级肯定没问题,不过能不能做到真知灼见,运用自如我就不敢说了.

3、动手能力的培养是这门课和以往课程最大的不同之处.重点放在思路,算法,编程构思和程序实现上.语句只是表达工具,要求堂上积极思考,尽量当堂学懂,并做到灵活应用.

)上机调试程序应注意的几点:

1、上机前应认真把实验题在用纸上做一做

2、每次上机后应总结,把没有搞清楚的问题记录下来,请教老师或同学.

3、平时应多抽课余时间多上机调试程序.注意系统的提示信息,遇到问题多问几次为什么.

养成良好的编程习惯

1、程序构思要有说明;

2、学会如何调试程序;

3、对运行结果要做正确与否的分析.

二、复习过程简单的说就是细看书,勤做题,最后练上机。

细看书,就是在考试前的一个月内,以看书为主,越细越好(如果你时间紧的话可只重点看些考点涉及的东西),把书上的知识点看懂看透,暂时不明白的或者不理解的先用笔记本记下。这样你的笔记本就有每章你不懂的知识点和题目了,之后可以问同学,问老师……如此反复,半个月下来你的笔试水平考试应该没问题了;下半个月的时间可以一边练习题目,一边练习上机。切不可前一段时间做题,后一段时间上机,那样的话会有很多忘记的知识点。

第14篇:vb错误处理

Vb错误处理 出错处理

(1)设置错误陷阱

On Error Resume Next

若出现错误,则将当前错误语句忽略,执行下条语句。

On Error GoTo 语句标号

On Error GoTo 0 不进行任何处理

(2)编写错误处理程序

Resume:接着错误的地方执行,重试。

Resume Next:类似On Error Resume Next,忽略当前错误语句,执行下一语句Resume :到标号那里去处理。

过程级、模块级

节选:

Onerrorgoto标签是放在错误发生之前,有效范围是到此事件的结束,包括错误处理时发生的错误。(此时的错误一般是没有想到的,故也没有处理)所以要保证不要在错误处理的代码中写复杂的代码。

OnErrorGotoErr_Normal

\'一般代码

sql= \"insertinto......\"

OnErrorGotoErr_Roll

adocn.BeginTrans

adocn.Executesqladocn.CommitTrans

OnErrorGotoErr_Normal

....

Exitsub

Err_Normal:

\'正常错误处理

ExitSub

vb6.0 遇到错误能不退出吗

2012-1-25 20:04提问者: 咫·尺 | 浏览次数:278次

比如遇到数据溢出啊等,弹出错误以后,就直接把程序关闭了,数据都没保存,能弹出错误后,不关闭程序吗?

满意回答

插入以下代码:

On Error Resume Next

即可。意思是,程序遇到错误不理会,继续执行。

或者使用GoTo,比如下面的代码计算肯定是溢出的,但程序不会退出,不过会提示: On Error GoTo ToExit

Dim g, ErrNum As Boolean

g = 1

Do Until ErrNum

g = g * 1024

Loop

ToExit:

If Err.Number = 6 Then

Print \"程序溢出,计算结果不准确\", g

Exit Sub

End If

或者使用以下代码,可以完全显示计算过程:

Dim WithEvents List As ListBox

Private Sub Form_Load()

On Error GoTo ToExit

Dim g, ErrNum As Boolean

g = 1

Set List = Me.Controls.Add(\"VB.ListBox\", \"List\")

With List

.Left = 0

.Top = 0

.Width = Form1.Width490

.Visible = True

End With

Do Until ErrNum

g = g * 1024

List.AddItem g

Loop

ToExit:

If Err.Number = 6 Then

List.AddItem \"程序溢出,计算结果不准确\" & g

Exit Sub

End If

End Sub

追问

是不是要在每一个容易出错的sub里面都要这样加一下?有没有整体设置一下或者写代码的?每个sub都写一下也挺麻烦的

回答

首先,第一行是每个里边都需要有的,有了这一行,才会执行错误跳转。

比如上边的第二段代码也可以这样写:这样在每段容易出错的过程中,加上第一个的On Error GoTo ToExit和最后一行的ToExit: MsgBox \"程序出现错误!\" & Chr(10) & \"错误类型:\" & Error(Err.Number), 16即可。当然,你需要在Esub这个子过程中,把所有可能会涉及到的错误代码都添加上。如果只想知道哪里错了,也可以直接提醒,出错也是可以的

Private Sub Form_Load()

On Error GoTo ToExit

Dim g, ErrNum As Boolean

g = 1

Do Until ErrNum

g = g * 1024

Loop

ToExit: MsgBox \"程序出现错误!\" & Chr(10) & \"错误类型:\" & Error(Err.Number), 16

End Sub

第15篇:VB心得

在这次VB课程设计过程中,我最大的收获就是有二,一是与其临渊羡鱼,不如退而结网,无论什么事情,一定要去做,困难在你的勇气和毅力下是抬不了头的。二是深刻地认识到,做事情一定要有耐心,无论遇到什么困难,都不能心烦,否则就很难把事情好。 一开始,我以为三天就可以把课程设计搞好,谁知道我们搞了差不多一个星期。界面的设计倒是没什么问题,最有问题的就是编程了,编程是非常耗时和精力的。这一点我是深有体会的。有一次我的代码有点错误,但我看了一遍又一遍,还是找不出问题所在,最后发现就是少了一个空格,就是一个空格花了我整整一个上午。唉!难怪我经常听到说,编程实在是太麻烦了,看到头都大了,看到就心烦了。就是一个小小的问题就让你花去一个早上的时间。所以我们无论做任何事情都要细心和耐心。无论做什么事情,我认为最重要的是在做事过程中学到东西,吸取教训。

这是我第一次系统的、完整的接触到软件设计的全过程。在这次课程设计中我得到了锻炼,也有很多体会。以前仅仅是对软件开发有一个大体的印象,通过这次VB课程设计,我对软件的开发有了切身的体会。软件并不像我原来所想的那样神秘,而是有着一个相对固定的模式和流程。软件的制作是一个系统的工程,需要我们掌握多方面的知识。在此次设计中,觉得自己的知识有很大的欠缺,遇到了许多不懂的东西,无奈下去翻书才发现许多东西书上都有,只怪平常太少看书,听课又不够认真。以前学习计算机语言,总是静不下心来,不能认真的看书。这次的课程设计,为了顺利的完成编程任务,认真的细读了VB课本,有了一定的心得体会。所以在以后的学习中,自己一定要全身心投入,这样学习才会有效率,才会有效果。

第16篇:VB教学计划

中等职业技术学校教学计划

课程:visual basic程序设计语言

班级:09计算机1班,09计算机2班

教师:林飞醋

时间:2010-2011学年第一学期 1 2 3 4 篇二:信息技术教学计划vb 信息技术教学计划

一、教材分析(结构系统、单元内容、重难点)

《算法与程序设计》是高中信息技术的选修1,是比较难学的一门课,涉及到的专业知识比较多,是一门专业课。全书分为五章:

第一章:算法和算法的表示。主要介绍算法的概念及表示方法。(上学期已完成)

第二章:算法实例。主要介绍常用的四种算法。

第三章:面向对象程序设计的基本知识。介绍vb的使用方法。

第四章:vb程序设计初步。学习vb语言基础

第五章:算法实例的程序实现。四种算法的程序实现。

本书重点为

二、四两章,难点为第五章。

二、学生分析(双基智能水平、学习态度、方法、纪律)

由于学生在高中之前无学习过相关内容,只才高一上学期的必修课提到过很少的一部分知识,所以学生在几乎零基础下学习这门课还是有难度的,特别是学习初期,可能有相当一部分学生无法理解相关知识。由于学生对信息技术学科的不重视,可能会更加加剧学生学习的积极性。

三、教学目的要求

1、通过该课程的学习,使学生进一步了解算法和程序设计在解决实际问题中的地位和作用,培养学生的算法思维能力,使学生能利用学过的算法和vb语言解决生活和学习中碰到的一些简单问题。激发学生进一步继续学习的热情。

2、顺利完成会考任务。

四、完成教学任务和提高教学质量的具体措施

1、进行该课程的相关介绍,着重介绍该课程的重要性,提高学生的学习主动性。

2、认真钻研教材,尽可能用学生生活学习中碰到的实际问题作为例子,来提高学生的学习兴趣,提高学习积极性。同时尽可能用通俗易懂的语言来进行教学,降低学生的学习难度。

3、由于教材的章节安排对初学学生学习理解有困难,打算对教材进行重新处理,用讲义形式向每位学生印发每节课的相关知识,这样使学生有了课后继续学习巩固的资料。篇三:vb教学计划(2012-2013) 湖 北 大 学 学 期 授 课 计 划 (2012 ~ 2013 学年度第

2 学期) 注:

1、课程类别指公共基础课、专业基础课、专业课、专业选修课、公共选修课。

2、教学时数应填写教学所需的学时数,周学时要与学校课表保持一致。

3、教学形式指讲授、实验、习题课、讨论、自学指导、演示、录像示教、辅导答疑、上机实习、实地考察、参观等。

4、课外作业指作业类型,如习题(注明题量)、课程论文、调查报告、实验报告、读书报告、查阅文献资料等。课外辅导应扼要说明辅导形式和内容。

5、考核形式:考试(开卷、闭卷、机考)、考查。

系(教研室)主任

(签 名)

学院教学副院长

(签 名)

注:

1、课程类别指公共基础课、专业基础课、专业课、专业选修课、公共选修课。

2、教学时数应填写教学所需的学时数,周学时要与学校课表保持一致。

3、教学形式指讲授、实验、习题课、讨论、自学指导、演示、录像示教、辅导答疑、上机实习、实地考察、参观等。

4、课外作业指作业类型,如习题(注明题量)、课程论文、调查报告、实验报告、读书报告、查阅文献资料等。课外辅导应扼要说明辅导形式和内容。

5、考核形式:考试(开卷、闭卷、机考)、考查。篇四:《vb语言程序设计》课程教学计划

《可视化编程应用——visual basic》课程教学计划

――邝光亮

一、课程内容和教学目的

本课程以visual basic6.0为语言背景,课程内容包括vb语言基础,输入输出,分支程序设计,循环程序设计,数组,过程,数据文件的存取,程序的调试等。

通过本课程的学习,使学生掌握vb可视化程序设计的基本方法和使用vb解决实际问题的初步能力。具体

要求如下:

1. 了解面向对象的初步概念; 2. 熟悉vb标准控件的使用,能在vb集成化开发环境下设计用户界面; 3. 掌握可视化程序设计方法,编制出风格良好的应用程序; 4. 掌握上机调试程序的基本技能

二、教学基本内容提要

(一)基本概念及基本操作 1. 可视化编程的概念

对象,容器,类,属性,方法

事件,事件过程,事件驱动 2. 集成化开发环境

主窗口,窗体编辑器,工具箱和控件,工程资源管理器,属性窗口,代码窗口 3.窗体及vb标准控件的使用

标准控件基本操作

标准控件的常用属性、事件、方法 4.工程的管理

重点掌握下列三种类型的文件:.vbp,.frm,.bas 创建、打开和保存工程

添加、删除和保存文件

(二)程序设计基础 1.基本数据类型

数值型(整型,长整型,单精度,双精度,货币型,字节型),字符型,逻辑型,日期型,变体型 2. 常量与变量 3.表达式

算术表达式,字符串表达式,日期表达式,关系表达式和逻辑表达式 4.常用内部函数

数学函数;字符串函数;日期和时间函数;类型转换函数 5.代码编写规则

(三)赋值与输入输出 1. 赋值语句

2.常用基本语句:rem;load;unload;end;stop

3.print方法

4.窗体(form):基本属性;事件;方法;焦点与tab键序 5.基本控件 (1)控件的公共属性 (3)标签(label) (4)文本框(textbox) 6.使用对话框

(1)输入对话框(inputbox函数) (2)消息对话框(msgbox函数)

(四)选择结构 1.条件语句(if…then,if…then…else);条件语句的嵌套 2.多分支语句(select case) 3.选择性控件(单选按钮optionbutton和复选框checkbox) 4.使用计时器(timer)

(五)循环结构 1.循环语句 for...next;do...loop(前测型和后测型);while...wend;exit 2.多重循环

(六)数组

1.数组的概念

数组与数组元素;下标和数组的维数 2.数组的声明和应用

数组声明语句(dim);array函数 3.动态数组

建立动态数组(redim);数组刷新语句(erase) 4.for each...next循环语句 5.控件数组

(七)过程 1.通用过程

sub过程、function过程和sub main过程

过程的定义与调用(call语句) 2.参数传递

形参与实参,按地址(byref)传递和按值(byval)传递 3.过程的嵌套与递归调用 4.变量的作用范围 代码模块的概念

变量的作用域(局部变量,模块级变量,全局变量)

变量的生存期(动态变量,静态变量) 5.多窗体与sub main过程

(八)数据文件的存取 1.数据文件概述

数据文件的结构

文件类型

文件处理的一般步骤

文件的打开(open)和关闭(close) 有关的语句和函数(freefile,seek,eof,lof,loc) 2.顺序文件

写入操作(write,print);读出操作(input,line input) 3.随机文件

存取操作(get,put) 4.文件操作命令

chdrive,chdir,mkdir,rmdir,name,kill,filecopy

(九)程序调试和错误处理 1.vb程序中的错误类型 2.程序工作模式 3.程序调试

静态检查与动态检查;使用vb调试工具 4.错误处理 err对象,捕获错误语句(on error),退出错误处理语句(resume)

(十)其他常用语句及控件 1.其他常用语句

option explicit,def,type,enum,goto,on goto,doevents 2.框架(frame) 3.滚动条(scrollbar) 4.图形方法和图形控件

坐标系;图形方法(pset,line,circle) 图片框(picturebox);图像框(image) shape形状控件;line直线控件

5.菜单设计

下拉式菜单;菜单编辑器;弹出式菜单 6.工具栏和状态栏

activex控件简介;工具栏(toolbar);状态栏(statusbar) 7.键盘与鼠标事件 8.对话框

9 文件系统控件

(十一)解题算法

主要包括下列内容:

穷举法;

迭代法; 排序(选择法,起泡法); 查找(顺序查找,折半查找); 递归法

三、教学安排(供参考) 本课程总学时为上课96/上机46。每周上课4学时,上机4学时。

第17篇:vb课程设计

Visual Basic课程设计报告

题目1: 贪吃蛇 难度:**** 题目2: 难度: 指导教师:

姓 名: 学 号: 专 业: 班 级: 学 院:

日 期:

目录

1、题目简介 ...................................................................................................错误!未定义书签。

2、设计思路与总体方案 .................................................................................................................3

2.1 窗体Form1.vb【设计】 ...................................................................................................3 2.2窗体Form2.vb【设计】 ..................................................................................................11 2.3窗体Form3.vb【设计】 ..................................................................................................14 2.4 窗体Form4.vb【设计】 .................................................................................................14 2.5窗体Form5.vb【设计】....................................................................................................2.6窗体Form6.vb【设计】 ..................................................................错误!未定义书签。 2.6 标准模块 ..........................................................................................................................14

3、设计过程遇到的主要问题及解决方法 ...................................................................................16

4、设计中尚存的不足分析 ...........................................................................................................16

5、心得体会 ...................................................................................................................................17

6、参考文献 ...................................................................................................................................17

1.题目简介

贪吃蛇是一种很流行的电子游戏。如图1所示,一条蛇在棋盘状的格子平面上爬行,由键盘控制其转弯;格子上随机出现五个数字(1~5),当蛇的头部碰到数字时会将数字“吃掉”,蛇的身体会变长。当蛇的头撞到障碍物时或碰到自己身体时,游戏结束。游戏结束时,蛇身体越长的分越高。

图1 程序启动时界面如图1所示,游戏平面有20*20个方格构成。使用回车键可以暂

1 停(如图2所示),蛇爬到边界时,如果未遇到障碍物,会从一侧爬出再从另一侧爬入。如果运动过程中,其头部碰到障碍物或自己,则被撞死,游戏结束。

图2 如果该用户的成绩超过记录成绩,则会显示图3所示的对话框提示输入用户名,以供记录成绩,排行榜界面如图4所示。

图3

图4

选择“设置”菜单命令,打开图5所示的“设置”对话框。在该对话框中可以选

2 择不同的障碍物形状,也可指定背景和障碍物颜色。

图5 为了使效果更好,我加了背景音乐和速度控制。

2、设计思路与总体方案

(说明用到哪些控件并进行难点分析,说明所使用到的模块、过程、变量、数组、自定义数据类型及其相互关系,必要时给出系统结构图等图表。

对如下事项逐步进行必要的分析、说明:

 程序设计的主要思想,程序功能是如何实现的?

 设计了几个程序模块(有几个窗体模块、几个标准模块),各个功能模块的作者及想到之间的关系(模块间是如何传递信息和数据的,采用什么方式,为什么?)?

 程序中定义了哪些主要的变量(分别定义了哪些过程级变量?模块级变量和全局变量),这些变量起什么作用?是否全局变量? 这里不需要给出大段的源程序,只需要给出关键的实现代码即可。) 2.1 窗体Form1.vb【设计】

这是主界面,但也是最难的环节,之后要用到的控件与显示都要在其基础上发展。首先我们要将背景网格和蛇身画出来,由于受到了动态添加控件的启发,我用了powerpacks中的ovalshape来构造蛇身,lineshape来构造线,为了满足蛇的身体长长,用到了数组。由于代码之间有许多调配,在此我所举的代码皆主要起说明作用,实际情况可看源代码。代码如下:

Public num As Integer = 4 ‘记录蛇的长度,即ovalshape的个数

3 Public j As String‘记录Inputstring的字符串

Public p As Integer = 1‘记录MsgBox所产生的值

Dim w As Integer

Dim d As Integer ‘为键盘方向确定一固定值

Dim recordname As String‘记录玩家名字

Dim bnum As Integer = 1‘记录障碍物的个数

Public recordlist(7) As String ‘记录成绩

Public recordscore(7) As Integer

Public gametime As Integer ‘记录游戏进行所用时间

Public gameinterval As Integer = 200 ‘记录游戏Timer控件interval值

Public score As Integer ‘记录得分

Public direction As Integer

Public line(41) As LineShape

Public food(4) As RectangleShape

Public eye(2) As OvalShape \'蛇的眼睛

Public a(num) As OvalShape \'蛇的身体

Public word(4) As Label

Imports Microsoft.VisualBasic.PowerPacks Public a(num) As OvalShape ‘a()为定义蛇身的数组,变量num用来记录蛇身个数

Public line(41) As LineShape Dim canvas = New Microsoft.VisualBasic.PowerPacks.ShapeContainer

For i = 4 To 0 Step -1 a(i) = New OvalShape

a(i).Size = New Size(20, 20) a(i).Top = 360 a(i).Left = 120 + 20 * i a(i).FillStyle = FillStyle.Solid a(i).FillColor = Color.Yellow a(i).Parent = canvas Next

a(0).FillColor = Color.Red ‘給蛇上色 a(0).BackColor = Color.Red Dim i As Integer

canvas.parent = Me.Panel1 For i = 0 To 20 \'形成网格,以两点坐标来确定线的位置

line(i) = New LineShape line(i).X1 = 0 line(i).X2 = 400 line(i).Y1 = 20 * i

4 line(i).Y2 = 20 * i line(i).Parent = canvas Next

For i = 21 To 41 line(i) = New LineShape line(i).X1 = 20 * (i21) line(i).Y1 = 0 line(i).Y2 = 400 line(i).Parent = canvas 蛇已经做好,那么我们可以进行下一步:让蛇随键盘的上下左右运动起来。这一步曾经困扰我很久,但通过上网我发现每一个键盘都对应着一个代码,如:左37,上38,右39,下40。首先得让控件响应键盘事件,其次让蛇动,而蛇的运动可看作蛇头移动,蛇身跟随前一个身体。由此可以用以下代码解决:

Private Sub form_keydown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown Select Case e.KeyCode Case 37 If d 2 Then d = 0 ‘这样能让蛇不往回走

Case 38 If d 1 Then d = 3 Case 39 If d 0 Then d = 2 Case 40 If d 3 Then d = 1 End Select

End Sub Select Case d Case 2 For i = num To 1 Step -1 a(i).Left = a(i1).Top Next

a(0).Left += 20 Case 1 For i = num To 1 Step -1 a(i).Left = a(i1).Top Next

a(0).Top += 20 Case 0 For i = num To 1 Step -1

5 a(i).Left = a(i1).Top Next

a(0).Left -= 20 Case 3 For i = num To 1 Step -1 a(i).Left = a(i1).Top Next

a(0).Top -= 20 End Select 然后我们可以来设置食物来让蛇吃,我用rectangleshape控件来制造食物,就像和画出蛇身一样写,但是每当被吃后它有出现,而且不能出现在蛇身上。首先,它是随机出现的,我们可用随机函数,然后可通过判断让它不出现在蛇身上。对于数字1,2,3,4,5;我用lebal控件,然后让其和食物坐标同步,这样看起来就像数字在食物上一样。代码如下:

For i = 0 To 4 If a(0).Top = food(i).Top And a(0).Left = food(i).Left Then ‘判断是否吃到

score += i + 1 ‘分数增加 num += i + 1 ‘蛇身的个数增加 food(i).Visible = False word(i).Visible = False

ReDim Preserve food(4) ReDim Preserve word(4) food(i) = New RectangleShape food(i).Size = New Size(20, 20) Randomize() food(i).Left = Int(Rnd() * 20) * 20 ‘随机确定新坐标

food(i).Top = Int(Rnd() * 20) * 20 L2: For g = 0 To num1 If food(i).Left = a(g).Left And food(i).Top = a(g).Top Then

Call setloction(i) GoTo L2 End If

Next

food(i).FillStyle = FillStyle.Solid food(i).Parent = canvas word(i) = New Label word(i).Text = i + 1 word(i).Size = New Size(10, 10)

6 word(i).Top = food(i).Top + 5 word(i).Left = food(i).Left + 5 word(i).Parent = canvas ReDim Preserve a(num) ‘蛇长长,重新定义动态数组

For k = numii1 If a(0).Top = barrier(k).Top And a(0).Left = barrier(k).Left Then

Timer1.Enabled = False a(0).FillColor = Color.Red lifetime -= 1 If score

If lifetime

MsgBox(\"GAME OVER! \", 64, \"贪吃蛇\") recordname = InputBox(\"GAME OVER!\" & Chr(13) & \"你的成绩为\" & Int(score) & \"分用时” & _ Int(gameinterval * gametime / 1000) & \"秒。\" & Chr(13) & \"请留下大名\", \"贪吃蛇\", \"无名氏\") Else

p = MsgBox(\"Do you want to continue?\", vbYesNo, \"生命值\" & lifetime) If p = 6 Then

Exit For

End If

End If

Else

8 If lifetime

recordname = InputBox(\"GAME OVER!\" & Chr(13) & \"你的成绩为\" & Int(score) & \"分用时” & _ Int(gameinterval * gametime / 1000) & \"秒。\" & Chr(13) & \"请留下大名?\", \"贪吃蛇\", \"无名氏\") Else

p = MsgBox(\"Do you want to continue?\", vbYesNo, \"生命值\" & lifetime) If p = 6 Then

Exit For

End If

End If

End If

Call record() Call initialize() Exit For

End If

Next 想要形成障碍物,在此我们需要用到文件的读操作。主要代码如下:

FileOpen(1, filelacation, OpenMode.Input) \' 读取墙壁,形成迷宫 bnum = 1 Dim L As Integer

Dim T As Integer

For i = 1 To 419 j = InputString(1, 2) If Val(j) = 1 Then

barrier(bnum) = New RectangleShape barrier(bnum).Left = 20 * L barrier(bnum).Top = 20 * T barrier(bnum).Size = New Size(20, 20) barrier(bnum).FillColor = barriercolor barrier(bnum).FillStyle = FillStyle.Solid barrier(bnum).Parent = canvas bnum += 1 End If

If Val(j) = 0 Then ‘用此方法使读出的内容与坐标对应

End If

If j = vbCrLf Then L -= 1 End If L += 1

9 If L = 20 Then L = 0 : T += 1 End If

Next

FileClose(1) 在此基础上便可调用其它的过程,比较简单。代码如下:

Private Sub 开始ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 开始ToolStripMenuItem.Click If Timer1.Enabled = False Then Timer1.Enabled = True

Exit Sub

End If

If Timer1.Enabled = True Then Timer1.Enabled = False

End If

End Sub

Private Sub 新开局ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 新开局ToolStripMenuItem.Click Call initialize() End Sub

Private Sub 关于ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 关于ToolStripMenuItem.Click MsgBox(\"贪吃蛇vb2010.2016.3.20\", 64, \"版本说明\") End Sub

Private Sub 帮助ToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 帮助ToolStripMenuItem1.Click Form3.Show() End Sub

Private Sub 设置ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 设置ToolStripMenuItem.Click Form2.Show() End Sub

Private Sub 退出ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 退出ToolStripMenuItem.Click

10 End

End Sub

Private Sub 排行榜ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 排行榜ToolStripMenuItem.Click Form6.Show() End Sub

2.2窗体Form2.vb【设计】

这个界面是第二重要的,当然它的设计也较麻烦。设计的障碍物的类型用到了listbox控件,也用到了菜单栏与pictureBox控件。而调用的过程shapeview所用到的内容与Form1.vb中的类似,因此方便好多。

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ListBox1.Items.Add(\"方盒形\") ListBox1.Items.Add(\"隧道形\") ListBox1.Items.Add(\"螺旋形\") ListBox1.Items.Add(\"路障形\") ListBox1.Items.Add(\"弯曲形\") ListBox1.Items.Add(\"怪异形\") ListBox1.Items.Add(\"无障碍形\") PictureBox2.BackColor = Color.DarkGray PictureBox1.BackColor = Color.Aqua TextBox1.Text = lifetime Call shapeview() End Sub Private Sub ListBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged

If ListBox1.SelectedIndex = 0 Then filelacation = \"maze1\\方盒形.txt\" filename = \"方盒形\" mazenum = 1 End If

If ListBox1.SelectedIndex = 1 Then filelacation = \"maze1\\隧道形.txt\" filename = \"隧道形\" mazenum = 2 End If

If ListBox1.SelectedIndex = 2 Then filelacation = \"maze1\\螺旋形.txt\" filename = \"螺旋形\"

11 mazenum = 3 End If

If ListBox1.SelectedIndex = 3 Then filelacation = \"maze1\\路障形.txt\" filename = \"路障形\" mazenum = 4 End If

If ListBox1.SelectedIndex = 4 Then filelacation = \"maze1\\弯曲形.txt\" filename = \"弯曲形\" mazenum = 5 End If

If ListBox1.SelectedIndex = 5 Then filelacation = \"maze1\\怪异形.txt\" filename = \"怪异形\" mazenum = 6 End If

If ListBox1.SelectedIndex = 6 Then

filelacation = \"maze1\\无障碍形.txt\" filename = \"无障碍形\" mazenum = 7 End If

For k = 1 To oldnum121) line1(i).X2 = 10 * (i单车.wav\"

\'musicname = \"\\MUSIC\\陈奕迅- 单车.wav\"

My.Computer.Audio.Play(My.Application.Info.DirectoryPath & \"\\MUSIC\\陈奕迅- 单车.wav\") End If

End Sub

Private Sub RadioButton6_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton6.CheckedChanged If RadioButton6.Checked = True Then

\'Form1.AxWindowsMediaPlayer1.Ctlcontrols.stop()

My.Computer.Audio.Stop() End If

End Sub End Cla

2.6窗体Form5.vb[设计】

此窗体用来调节蛇运动的快慢程度。

Private Sub TrackBar1_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar1.Scroll

14 Dim v As Integer v = TrackBar1.Value timeinterval = 500 / (2 ^ v) Label3.Text = TrackBar1.Value End Sub

2.7窗体Form6.vb[设计】

此窗体用来显示玩家的成绩,用到了listBox控件来显示成绩,点击清除所有记录可还原,recordlist()用来记录文件中的每一行。 Public Cla Form6

Public Sub Form6_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load For i = 1 To 7 ListBox1.Items.Add(Form1.recordlist(i)) Next

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ListBox1.Items.Clear() FileOpen(1, My.Application.Info.DirectoryPath & \"\\clear.txt\", OpenMode.Input) For i = 1 To 7 Form1.recordlist(i) = LineInput(1) ListBox1.Items.Add(Form1.recordlist(i)) Next

FileClose(1) End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Me.Close() End Sub End Cla

2.8标准模块

定义各种变量

Imports Microsoft.VisualBasic.PowerPacks Module Module1

Public barriercolor As System.Drawing.Color = Color.DarkGray

15 ‘记录障碍物的颜色

Public panalcolor As System.Drawing.Color = Color.Aqua ‘记录面板的颜色

Public oldnum As Integer

Public oldnum1 As Integer

Public bnum1 As Integer

Public filelacation As String = \"maze1\\螺旋形.txt\"

Public filename As String = \"螺旋形\"

Public timeinterval As Integer = 1000 Public mazenum As Integer = 2 ‘为每一个障碍物类型做标记

Public lifetime As Integer = 1 ‘生命次数

Public barrier(400) As RectangleShape End Module

3、设计过程遇到的主要问题及解决方法

3.1刚开始时对于画出后面的线条时我是添加了41个Lineshape控件,一个个确定等距的坐标将其画下,废了我好大的气力,但后来受到了动态添加控件的触动用数组将其解决。

3.2如何引发键盘事件曾一度困扰我,了解了键盘下所代表的代码意义,之前一直使用的是select case keycode代码,怎么也无法使其响应。后来看看课本上关于键盘的代码,随便使用了select case e.keycode代码,令我欣慰的是竟然成功了。

3.3下一个是如何在界面上显示出障碍物。根据所提供的文件夹,了解起大概用法,为了让我编程更容易,我对其文件做了一定的修改。

3.4最难的是过程之间的调用与联系,解决的办法就是不断的进行调试,修改。比如在我编写重新开局的菜单代码时总是会出现两只蛇;又如在编写排行榜时便不是很方便的能使用listbox.Items.remove这行代码,因此我得另辟蹊径。

4、设计中尚存的不足分析

4.1由于我采用的编写方法是将完成这个贪吃蛇游戏所需满足的要求分开,一个一个的进行攻破,我会发现越往后编写越要考虑到之前的内容,在解决程序之间的关系会越麻烦,调试的次数更多。而且编完后纵观全局会发现代码的结构较混乱,重复性高,他人难以看的明白。

4.2 在定义变量时我尽量定义其为全局变量和模块级变量。部分变量为了简单或难以翻译为英文的仅仅使用了字母代替,对读代码有一定困难。

16 4.3 我所犯下的最大错误就是使用控件来显示蛇,因为在运行程序时蛇身会随着长度的增加闪烁的愈发厉害。可能是控件太多,程序运行不流畅,效率不高。

4.4 我想在游戏中添加一些音乐,并且用到了循环播放的代码,但是至今我还是没有想到如何能将播放中的音乐暂停。还有的就是怎样才能同时播放两种声音。

4.5 对于排行榜的编写存在一些问题,比如:怎样才能使显示的行间距更开;如何才能使所显示的各项指标在其对应的列下,在这一点上有很大的缺陷。可能程序要用到dictionary方法。

4.6 当我运行程序时,如果我点了界面上的某条线的话,蛇就不再响应键盘事件了,必须使用ctrl+方向键才能使其响应键盘事件。应该是我点击时失去了焦点导致无法正常运行。

5、心得体会

这个程序从难度上讲足足有四颗星,因此我想说我确实摸索了很久,从界面的制作排版到代码的编写。由于计算机编程知识当初只学了些皮毛,很多次我在编程时不断调试却依然出现这样那样的毛病,可能是无意中拼写错误,但有些确实是因为不了解vb的某些较为冷僻的用法所致。这段时间,常会向同学请教,也自觉地去借了些书看看,基本上完成了要求,但是功能、界面都还不是很完善,我会借助以后的时间继续去加工的,我需要的是学以致用。

我体会到了编写程序是个有条理的逻辑过程,首先必须有个大致的思路,整体的规划出来。然后再是分步地去具体完成,尤为重要的是需要投入相当一部分精力去精益求精,这样你的成果才不会是毛糙的。思维调动是件另人愉快的事情,而我们应该去学会享受脑力劳动的过程,哪怕是一次次地失利。这就是2个月的课程设计所教会我的。

6、参考文献

[2].王栋,visual basic程序设计实用教程,北京,清华大学出版社

第18篇:VB 课程设计

学生成绩管理系统

一、功能描述

首先简单地阐述本人所要实现系统的目的,然后应较详细的叙述本系统所要实现的功能。

************ *******

二、概要设计

1、系统功能模块框图设计

根据功能描述,建立系统的体系结构,即将整个系统分解成若干子功能模块,并用框图表示各功能模块之间的衔接关系,并简要说明各模块的功能。

程序流程框图如图所示:(仅供参考)

图1 程序流程图

2、数据库设计

包括数据库的组成说明,数据库中各表的结构说明(包括字段名、字段类型等),可以包含图片例如下表:

表1 学生信息表

三、详细设计

详细说明主要窗体的实现过程,包括窗体的设计图片及其上所包含的控件名和属性设置;

详细说明主要操作的代码实现过程,包括过程间的调用关系(注:在此给出不完全代码)。如下所示:

1、账号登录

帐号登录模块中登录与注册两按钮,单击注册会进入注册模块中,单击登录会进入系统进行下一步的操作,帐号文本框与数据库相连接,当在帐号文本框输入帐号后点击登录按钮后,会在数据库中进行查询看数据库中是否会有该帐号,且该帐号的密码是否与密码框中输入的相同,如果相同会进入系统,如果不存在该账号或密码与帐号不相匹配,则会提示“帐号或密码错误”,帐号文本框会得到焦点,让重新输入。

(1)窗体截图(如图2)

图2 注册窗体

(2)功能实现

2、学生信息查询窗体

图3 查询窗体

四、调试中存在的问题及解决方法

包括调试过程中遇到的主要问题及采取的解决方法。例如:

1、注册账号出现的错误

数据库中帐号被设为主键,当注册时的帐号与数局库中的帐号有相同时就会出错。

2、解决方法:在写入数据库前先进行查询数据库

五、心得体会

本人在本次实习中取得的收获、遇到的困难、如何面对和克服各种困难、本系统的不足之处,将要改进的思想等。

六、参考文献

[1] 罗朝盛.Visual Basic 6.0程序设计教程(第3版).人民邮电出版社,2009年2月

[2] [3]

七、附录

包括全部源程序清单(程序中应有足够的注释)。

第19篇:VB课程设计

课程设计

学 院 班 级

指导老师

姓 名 学 号 成 绩

2013年

1 月 10

一.课程设计题目

学生管理系统

二.功能描述

按设定的用户名密码进行登录后,可按需求进行对数据库中已有的学生信息及成绩进行查询,添加,删除,修改等操作。

三.概要设计

登录界面功能:让用户进行登录。 主界面功能:让用户选择进行哪项操作。

查询学生信息菜单功能:输入学生学号,对该学生的个人信息以

及成绩进行查询,若直接点击查询按钮,则显示全部学生个人信息及成绩。

编辑学生信息菜单功能:可对数据库中已有的学生信息进行查

询,添加,删除,修改等操作。

学生信息维护菜单功能:可对数据库中已有的学生成绩进行查

询,添加,删除,修改等操作。

四.详细设计

五.效果以及存在问题

说明系统的运行效果(附上运行界面图片)、存在哪些不足以及预期的解决办法。

登录界面

登录学生管理系统

按查询条件查询

打开修改学生信息子窗口

学生成绩维护子窗口

垂直窗口排列

关于窗口

不足:1.没有实现用户登录界面中的注册功能

2.没有实现主界面中文件下的新建和保存功能。

六.心得体会

经过几天的苦战,终于把课程设计粗略的做完了。刚开始做的时候,毫无头绪,一片茫然。好在书本上有类似的实验,可以供参考。尽管如此,真正做起项目来,还是有着这样那样的困难,有时一个空格少打都会出错,导致我检查了半天才发现问题所在。由于VB语法还运用不熟练,很多代码都是模仿书本上的敲的,许多代码往往能编译通过,但很多都会抛出各种异常,让人头疼。有时系统就给出个有个参数没有被指定值,就可以让人搞的焦头烂额。因此,写程序真的也很需要强大的耐心,只要熬下去了,当你做出程序时,也会倍有成就感。目前,程序是基本写完了,平常学的理论都得到了运用,感觉自己的能力也增强了。一句话,实践才是硬道理。

七.附录代码

(附上各模块代码)

1.登录界面

Public Cla Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Static n As Integer

If txtName.Text = \"abc\" And txtPaWord.Text = \"123\" Then

Dim form2 As New Form2()

form2.Show()

Me.Close()

Else

n = n + 1

If n

MsgBox(\"请输入正确的用户名和密码!\", MsgBoxStyle.Critical)

Else

MsgBox(\"请输入正确的用户名和密码!\", MsgBoxStyle.Critical)

Button1.Enabled = False

End If

End If

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Me.Close()

End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

Dim form3 As New Form3()

form3.Show()

Me.Close()

End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub End Cla

2.查询学生菜单代码

Public Cla Form6

Private Sub Form6_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim objConn As New OleDb.OleDbConnection

Dim objDaXS_KC As New OleDb.OleDbDataAdapter

Dim objDaXS As New OleDb.OleDbDataAdapter

Dim objCommXS_KC As New OleDb.OleDbCommand

Dim objCommXS As New OleDb.OleDbCommand

Dim objDsXS_KC As New DataSet

Dim objDsXS As New DataSet

objConn.ConnectionString = \"Provider = Microsoft.jet.OLEDB.4.0;data source = \'D:\\XSCJ.mdb\'\"

objCommXS.CommandText = \" Select * From XS \"

objCommXS_KC.CommandText = \" Select * From XS_KC \"

objCommXS_KC.Connection = objConn

objDaXS_KC.SelectCommand = objCommXS_KC

objCommXS.Connection = objConn

objDaXS.SelectCommand = objCommXS

objConn.Open()

objDaXS_KC.Fill(objDsXS_KC, \"XS_KC\")

objDaXS.Fill(objDsXS, \"XS\")

objConn.Close()

DataGridView1.DataSource = objDsXS_KC.Tables(\"XS_KC\")

DataGridView2.DataSource = objDsXS.Tables(\"XS\")

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim objConn As New OleDb.OleDbConnection

Dim objDaXS_KC As New OleDb.OleDbDataAdapter

Dim objDaXS As New OleDb.OleDbDataAdapter

Dim objCommXS_KC As New OleDb.OleDbCommand

Dim objCommXS As New OleDb.OleDbCommand

Dim objDsXS_KC As New DataSet

Dim objDsXS As New DataSet

Dim WhereStr As String

WhereStr = \"\"

If Trim(TxtXH.Text) \"\" Then

WhereStr = \" 学号like \" + Trim(TxtXH.Text)

End If

objConn.ConnectionString = \"Provider = Microsoft.jet.OLEDB.4.0;data source = \'D:\\XSCJ.mdb\'\"

objCommXS.CommandText = \" Select * From XS \"

objCommXS_KC.CommandText = \" Select * From XS_KC \"

If WhereStr \"\" Then

objCommXS.CommandText = objCommXS.CommandText & \"where\" & WhereStr

objCommXS_KC.CommandText = objCommXS_KC.CommandText & \"where\" & WhereStr

End If

objCommXS_KC.Connection = objConn

objDaXS_KC.SelectCommand = objCommXS_KC

objCommXS.Connection = objConn

objDaXS.SelectCommand = objCommXS

objConn.Open()

objDaXS_KC.Fill(objDsXS_KC, \"XS_KC\")

objDaXS.Fill(objDsXS, \"XS\")

objConn.Close()

DataGridView1.DataSource = objDsXS_KC.Tables(\"XS_KC\")

DataGridView2.DataSource = objDsXS.Tables(\"XS\")

End Sub End Cla

3编辑学生信息菜单

Public Cla Form7

Dim objDs As New DataSet

Dim objxstable As DataTable

Dim objda As New OleDb.OleDbDataAdapter

Dim wherestr As String

Public Sub refreshdata()

objda.Update(objDs, \"XS\")

objxstable.Clear()

bindgridview(wherestr)

End Sub

Public Sub bindgridview(ByVal strXH As String)

Dim objConn As New OleDb.OleDbConnection

Dim objComm As New OleDb.OleDbCommand

WhereStr = \"\"

If Trim(TxtXH.Text) \"\" Then

wherestr = \" 学号like\" + Trim(TxtXH.Text)

End If

objConn.ConnectionString = \"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\'D:\\XSCJ.mdb\'\"

objComm.CommandText = \" Select * From XS \"

If WhereStr \"\" Then

objComm.CommandText = objComm.CommandText & \"where\" & WhereStr

End If

\'把objConn设置为objConn的数据连接

objComm.Connection = objConn

objda.SelectCommand = objComm

\'创建INSERT Command

Dim InsCommand As New OleDb.OleDbCommand(\"INSERT INTO XS(学号,姓名,专业名,性别,出生日期,总学分,备注)VALUES(?,?,?,?,?,?,?)\", objConn)

InsCommand.Parameters.Add(\"学号\", OleDb.OleDbType.VarChar, 6, \"学号\")

InsCommand.Parameters.Add(\"姓名\", OleDb.OleDbType.VarChar, 8, \"姓名\")

InsCommand.Parameters.Add(\"专业名\", OleDb.OleDbType.VarChar, 10, \"专业名\")

InsCommand.Parameters.Add(\"性别\", OleDb.OleDbType.VarChar, 2, \"性别\")

InsCommand.Parameters.Add(\"出生日期\", OleDb.OleDbType.Date, Nothing, \"出生日期\")

InsCommand.Parameters.Add(\"总学分\", OleDb.OleDbType.Integer, Nothing, \"总学分\")

InsCommand.Parameters.Add(\"备注\", OleDb.OleDbType.VarChar, Nothing, \"备注\")

objda.InsertCommand = InsCommand

\'创建Delte Command

Dim delcommand As New OleDb.OleDbCommand(\"DELETE * from XS where 学号=?\", objConn)

delcommand.Parameters.Add(\"学号\", OleDb.OleDbType.Char, 6, \"学号\")

objda.DeleteCommand = delcommand

\'创建Update Command

Dim updCommand As New OleDb.OleDbCommand(\"UPDATE XS SET 学号=?,姓名=?,专业名=?,性别=?,出生日期=?,总学分=?,备注=? WHERE 学号=?\", objConn)

updCommand.Parameters.Add(\"学号\", OleDb.OleDbType.VarChar, 6, \"学号\")

updCommand.Parameters.Add(\"姓名\", OleDb.OleDbType.VarChar, 8, \"姓名\")

updCommand.Parameters.Add(\"专业名\", OleDb.OleDbType.VarChar, 10, \"专业名\")

updCommand.Parameters.Add(\"性别\", OleDb.OleDbType.VarChar, 2, \"性别\")

updCommand.Parameters.Add(\"出生日期\", OleDb.OleDbType.Date, Nothing, \"出生日期\")

updCommand.Parameters.Add(\"总学分\", OleDb.OleDbType.Integer, Nothing, \"总学分\")

updCommand.Parameters.Add(\"备注\", OleDb.OleDbType.VarChar, Nothing, \"备注\")

updCommand.Parameters.Add(\"学号\", OleDb.OleDbType.VarChar, 6, \"学号\")

objda.UpdateCommand = updCommand

objConn.Open()

\'打开数据库连接

objda.Fill(objDs, \"XS\") \'填充数据

objxstable = objDs.Tables(\"XS\")

objConn.Close()

\'关闭数据集

\'把DataGrid1的DataSource属性设置为刚刚取到的数据表,这样就可以显示数据了

DataGridView1.DataSource = objDs.Tables(\"XS\")

End Sub

Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick

TxtStuXH.Text = DataGridView1.CurrentRow.Cells.Item(0).Value.ToString \'显示学号

TxtStuXM.Text = DataGridView1.CurrentRow.Cells.Item(1).Value.ToString \'显示姓名

TxtZY.Text = DataGridView1.CurrentRow.Cells.Item(2).Value.ToString \'显示专业

TxtXB.Text = DataGridView1.CurrentRow.Cells.Item(3).Value.ToString \'显示性别

TxtCSRQ.Text = DataGridView1.CurrentRow.Cells.Item(4).Value.ToString \'显示出生日期

TxtStuZXF.Text = DataGridView1.CurrentRow.Cells.Item(5).Value.ToString \'显示总学分

TxtBZ.Text = DataGridView1.CurrentRow.Cells.Item(6).Value.ToString \'显示备注

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim objConn As New OleDb.OleDbConnection

Dim objDaXS As New OleDb.OleDbDataAdapter

Dim objCommXS As New OleDb.OleDbCommand

Dim objDsXS As New DataSet

Dim WhereStr As String

WhereStr = \"\"

If Trim(TxtXH.Text) \"\" Then

WhereStr = \" 学号like \" + Trim(TxtXH.Text)

End If

objConn.ConnectionString = \"Provider = Microsoft.jet.OLEDB.4.0;data source = \'D:\\XSCJ.mdb\'\"

objCommXS.CommandText = \" Select * From XS \"

If WhereStr \"\" Then

objCommXS.CommandText = objCommXS.CommandText & \"where\" & WhereStr

End If

objCommXS.Connection = objConn

objDaXS.SelectCommand = objCommXS

objConn.Open()

objDaXS.Fill(objDsXS, \"XS\")

objConn.Close()

DataGridView1.DataSource = objDsXS.Tables(\"XS\")

End Sub

Private Sub Form7_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

wherestr = \"\"

bindgridview(wherestr)

End Sub

Private Sub butAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butAdd.Click

Dim response As MsgBoxResult

response = MsgBox(\"确定要添加记录吗?\", vbOKCancel + vbQuestion, \"系统提示\")

If response = MsgBoxResult.Ok Then

Dim myRow As DataRow = objxstable.NewRow()

myRow(\"学号\") = TxtStuXH.Text

myRow(\"姓名\") = TxtStuXM.Text

myRow(\"专业名\") = TxtZY.Text

myRow(\"性别\") = TxtXB.Text

myRow(\"出生日期\") = TxtCSRQ.Text

myRow(\"总学分\") = TxtStuZXF.Text

myRow(\"备注\") = TxtBZ.Text

objxstable.Rows.Add(myRow)

refreshdata()

End If

End Sub

Private Sub butEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butEdit.Click

Dim response As MsgBoxResult

response = MsgBox(\"确定要修改记录吗?\", vbOKCancel + vbQuestion, \"系统提示\")

If response = MsgBoxResult.Ok Then \'用户选择“确定”

\'修改学号

objxstable.Rows.Item(DataGridView1.CurrentRow.Index).Item(0) = TxtStuXH.Text

\'修改姓名

objxstable.Rows.Item(DataGridView1.CurrentRow.Index).Item(1) = TxtStuXM.Text

\'修改专业

objxstable.Rows.Item(DataGridView1.CurrentRow.Index).Item(2) = TxtZY.Text

\'修改性别

objxstable.Rows.Item(DataGridView1.CurrentRow.Index).Item(3) = TxtXB.Text

\'修改出生日期

objxstable.Rows.Item(DataGridView1.CurrentRow.Index).Item(4) = TxtCSRQ.Text

\'修改总学分

objxstable.Rows.Item(DataGridView1.CurrentRow.Index).Item(5) = TxtStuZXF.Text

\'修改备注

objxstable.Rows.Item(DataGridView1.CurrentRow.Index).Item(6) = TxtBZ.Text

refreshdata() \'更新并刷新显示

End If

End Sub

Private Sub butDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butDelete.Click

Dim response As MsgBoxResult

response = MsgBox(\"确定要删除记录吗?\", vbOKCancel + vbQuestion, \"系统提示\")

If response = MsgBoxResult.Ok Then \'用户选择“确定”

\'除学生成绩表当前记录

objxstable.Rows.Item(DataGridView1.CurrentRow.Index).Delete()

refreshdata() \'更新并刷新显示

End If

End Sub End Cla

4.学生成绩维护菜单

Public Cla Form4

Dim objDs As New DataSet

Dim objXSTable As DataTable

Dim objDa As New OleDb.OleDbDataAdapter

Dim WhereStr As String

Public Sub refreshdata()

objDa.Update(objDs, \"XS_KC\")

objXSTable.Clear()

bindgridview(WhereStr)

End Sub

Public Sub bindgridview(ByVal strXH As String)

Dim objConn As New OleDb.OleDbConnection

Dim objComm As New OleDb.OleDbCommand

WhereStr = \"\"

If Trim(TxtXH.Text) \"\" Then

WhereStr = \" 学号like\" + Trim(TxtXH.Text)

End If

objConn.ConnectionString = \"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\'D:\\XSCJ.mdb\'\"

objComm.CommandText = \" Select * From XS_KC \"

If WhereStr \"\" Then

objComm.CommandText = objComm.CommandText & \"where\" & WhereStr

End If

\'把objConn设置为objConn的数据连接

objComm.Connection = objConn

objDa.SelectCommand = objComm

\'创建INSERT Command

Dim InsCommand As New OleDb.OleDbCommand(\"INSERT INTO XS_KC(学号,课程号,成绩,学分)VALUES(?,?,?,?)\", objConn)

InsCommand.Parameters.Add(\"学号\", OleDb.OleDbType.VarChar, 6, \"学号\")

InsCommand.Parameters.Add(\"课程号\", OleDb.OleDbType.VarChar, 4, \"课程号\")

InsCommand.Parameters.Add(\"成绩\", OleDb.OleDbType.Integer, Nothing, \"成绩\")

InsCommand.Parameters.Add(\"学分\", OleDb.OleDbType.Integer, Nothing, \"学分\")

objDa.InsertCommand = InsCommand

\'创建Delte Command

Dim delcommand As New OleDb.OleDbCommand(\"DELETE * from XS_KC where 序号=?\", objConn)

delcommand.Parameters.Add(\"序号\", OleDb.OleDbType.Char, 6, \"序号\")

objDa.DeleteCommand = delcommand

\'创建Update Command

Dim updCommand As New OleDb.OleDbCommand(\"UPDATE XS_KC set 学号=?,课程号=?,成绩=?,学分=? where 序号=?\", objConn)

updCommand.Parameters.Add(\"学号\", OleDb.OleDbType.VarChar, 6, \"学号\")

updCommand.Parameters.Add(\"课程号\", OleDb.OleDbType.VarChar, 4, \"课程号\")

updCommand.Parameters.Add(\"成绩\", OleDb.OleDbType.Integer, Nothing, \"成绩\")

updCommand.Parameters.Add(\"学分\", OleDb.OleDbType.Integer, Nothing, \"学分\")

updCommand.Parameters.Add(\"序号\", OleDb.OleDbType.Integer, Nothing, \"序号\")

objDa.UpdateCommand = updCommand

objConn.Open()

\'打开数据库连接

objDa.Fill(objDs, \"XS_KC\") \'填充数据

objXSTable = objDs.Tables(\"XS_KC\")

objConn.Close()

\'关闭数据集

\'把DataGrid1的DataSource属性设置为刚刚取到的数据表,这样就可以显示数据了

DataGridView1.DataSource = objDs.Tables(\"XS_KC\")

End Sub

Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick

txtStuXKID.Text = DataGridView1.CurrentRow.Cells.Item(0).Value.ToString \'显示ID

txtStuXH.Text = DataGridView1.CurrentRow.Cells.Item(1).Value.ToString \'显示学号

txtStuKCH.Text = DataGridView1.CurrentRow.Cells.Item(2).Value.ToString \'显示课程号

txtStuCJ.Text = DataGridView1.CurrentRow.Cells.Item(3).Value.ToString \'显示成绩

txtStuXF.Text = DataGridView1.CurrentRow.Cells.Item(4).Value.ToString \'显示学分

End Sub

Private Sub btnDdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butAdd.Click

Dim response As MsgBoxResult

response = MsgBox(\"确定要添加记录吗?\", vbOKCancel + vbQuestion, \"系统提示\")

If response = MsgBoxResult.Ok Then

Dim myRow As DataRow = objXSTable.NewRow()

myRow(\"学号\") = txtStuXH.Text

myRow(\"课程号\") = txtStuKCH.Text

myRow(\"成绩\") = txtStuCJ.Text

myRow(\"学分\") = txtStuXF.Text

objXSTable.Rows.Add(myRow)

refreshdata()

End If

End Sub

Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butEdit.Click

Dim response As MsgBoxResult

response = MsgBox(\"确定要修改记录吗?\", vbOKCancel + vbQuestion, \"系统提示\")

If response = MsgBoxResult.Ok Then \'用户选择“确定”

\'修改学号

objXSTable.Rows.Item(DataGridView1.CurrentRow.Index).Item(1) = txtStuXH.Text

\'修改课程号

objXSTable.Rows.Item(DataGridView1.CurrentRow.Index).Item(2) = txtStuKCH.Text

\' 修改成绩

objXSTable.Rows.Item(DataGridView1.CurrentRow.Index).Item(3) = txtStuCJ.Text

\'修改学分

objXSTable.Rows.Item(DataGridView1.CurrentRow.Index).Item(4) = txtStuXF.Text

refreshdata()\'更新并刷新显示

End If

End Sub

Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butDelete.Click

Dim response As MsgBoxResult

response = MsgBox(\"确定要删除记录吗?\", vbOKCancel + vbQuestion, \"系统提示\")

If response = MsgBoxResult.Ok Then \'用户选择“确定”

\'除学生成绩表当前记录

objXSTable.Rows.Item(DataGridView1.CurrentRow.Index).Delete()

refreshdata() \'更新并刷新显示

End If

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim objConn As New OleDb.OleDbConnection

Dim objDaXS As New OleDb.OleDbDataAdapter

Dim objCommXS As New OleDb.OleDbCommand

Dim objDsXS As New DataSet

Dim WhereStr As String

WhereStr = \"\"

If Trim(TxtXH.Text) \"\" Then

WhereStr = \" 学号like \" + Trim(TxtXH.Text)

End If

objConn.ConnectionString = \"Provider = Microsoft.jet.OLEDB.4.0;data source = \'D:\\XSCJ.mdb\'\"

objCommXS.CommandText = \" Select * From XS_KC \"

If WhereStr \"\" Then

objCommXS.CommandText = objCommXS.CommandText & \"where\" & WhereStr

End If

objCommXS.Connection = objConn

objDaXS.SelectCommand = objCommXS

objConn.Open()

objDaXS.Fill(objDsXS, \"XS_KC\")

objConn.Close()

DataGridView1.DataSource = objDsXS.Tables(\"XS_KC\")

End Sub

Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

WhereStr = \"\"

bindgridview(WhereStr)

End Sub End Cla

5.主菜单界面代码

Public Cla Form2

Private Sub quitMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles quitMenuItem.Click

Me.Close()

End Sub

Private Sub importscoreMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles importscoreMenuItem.Click

Dim form4 As New Form4

form4.MdiParent = Me

form4.WindowState = FormWindowState.Normal

form4.Show()

End Sub

Private Sub updateinfoMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles updateinfoMenuItem.Click

Dim form7 As New Form7

form7.MdiParent = Me

form7.WindowState = FormWindowState.Normal

form7.Show()

End Sub

Private Sub selectinfoMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles selectinfoMenuItem.Click

Dim form6 As New Form6

Form6.MdiParent = Me

form6.WindowState = FormWindowState.Normal

form6.Show()

End Sub

Private Sub cascadeMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cascadeMenuItem.Click

Me.LayoutMdi(MdiLayout.Cascade)

End Sub

Private Sub horizonMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles horizonMenuItem.Click

Me.LayoutMdi(MdiLayout.TileHorizontal)

End Sub

Private Sub verticalMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles verticalMenuItem.Click

Me.LayoutMdi(MdiLayout.TileVertical)

End Sub

Private Sub aboutMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles aboutMenuItem.Click

Dim form5 As New Form5

form5.MdiParent = Me

form5.WindowState = FormWindowState.Normal

form5.Show()

End Sub

Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click

selectinfoMenuItem.PerformClick()

End Sub

Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton2.Click

updateinfoMenuItem.PerformClick()

End Sub

Private Sub ToolStripButton3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton3.Click

importscoreMenuItem.PerformClick()

End Sub

Private Sub ToolStripButton4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton4.Click

cascadeMenuItem.PerformClick()

End Sub

Private Sub ToolStripButton5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton5.Click

aboutMenuItem.PerformClick()

End Sub

Private Sub ToolStripButton6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton6.Click

quitMenuItem.PerformClick()

End Sub

Private Sub ToolStripStatusLabel1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripStatusLabel1.Click

aboutMenuItem.PerformClick()

End Sub End Cla

八.参考文库

百度文库,百度知道

第20篇:VB程序设计论文:信息技术VB程序设计教学现状与策略

VB程序设计论文:信息技术VB程序设计教学现状与策略 摘要:尽管信息技术学科已采用了新教材,但在信息技术vb程序设计教学当中还是存在诸多问题。如学生的兴趣不同,学生自身的能力水平有差异,学科的地位仍然很低、不受重视等。针对这些问题,作者经过实践和经验总结,对当前信息技术课程的教学提出了一些可行性建议,以期对信息技术教学有所帮助。

关键词:vb程序设计;信息技术;兴趣培养;分层教学 众所周知,中学阶段的信息技术教学现状存在许多问题。比如教学质量差、学生能力水平参差不齐、学生注意力分散、纪律散漫、厌学等等。而要改变众多教学困境,首先就要了解现状,分析现状存在的问题,进而制定相应的策略和措施。

一、存在的问题

观察信息技术教材的教学现状,主要存在以下几点问题。

1 学生轻视信息技术学科

这也是多年来一直困扰信息技术教学的重要原因。造成这种现状有两方面原因:一方面是信息技术学科地位低。在中学,信息技术学科只是素质教育科目,而且没有考试压力和升学压力。另一方面,学生升学压力大,学生把主要的学习精力和时间都放在升学科目上,这也是中国基础教育大环境所造成的。也就是说,学生学习信息技术课的热情不高,更多的是想自己上网、玩游戏。正因如此,许多学校的信息技术课根本就完不成教学任务,基本上是让学生自由上机,或者是更改成别的教学内容,甚至是被别的升学科目挤占课时。

2 教材难度大,部分内容结构不合理

首先必须肯定新的中小学信息技术教材对中学生创新思维的开发、创新能力的培养有好处。但是,对大多数中学生而言,懂得用程序设计语言来设计程序去解决生活中的实际问题,是有难度的。其次就是教材中教学内容的编排不符合中学生的学习规律。往往把枯燥无味的教学内容放在第一章节,既不吸引学生,也不能达到很好的教学效果。例如,信息技术九年级上册《visual basic程序设计》中主题一之任务三:对算法的评价。学生刚刚了解算法的定义和基本的表示方法,就要马上学习判断算法的好坏。试想,连最基本的程序设计实例都没做成功,又哪里懂得怎么编写程序才是高效的。正所谓“站都不稳,就想学跑”,这是不符合学生学习规律的。

3 学生能力水平差异大

除了兴趣之外,学生学科基础能力是影响vb程序设计

教学质量的一个重要因素。特别是数学能力强的学生,往往更容易理解程序设计的思想,对算法的理解就更透彻。另一方面英语水平也是一个重要的制约因素。程序的编写都是用英文和数字,英语学习粗心大意的学生,往往在输入程序代码的时候,搞错控件的字母或者单词,造成测试运行经常出错。因此,正是由于中学生学情的差异大,在vb程序设计语言的教学中分层教学的难度相当大。一方面要照顾“吃不饱”的学生。另一方面要适当辅导后进生。这样一来,教师在课堂上的工作量加大了,而教学质量提高反而不明显,甚至影响到了教学进度。

4 教师队伍的vb程序设计能力有待提高

有数据显示,部分中学在信息技术课是不开展visual basic程序设计教学的。除了以上提到过的学情原因之外,信息技术教师程序设计能力不足也是重要因素。试问,教师自己都一知半解。又何来自信去教导学生。

二、解决的策略

针对目前的现状,笔者在充分研究教材,并通过两个学期的教学实践,运用创新的教学理念,分析在教学中出现的问题,总结出相应的教学策略和教学经验。实践证明,解决目前中学信息技术vb程序教学中的种种困境,应从以下几个方面出发。

1 充分调动学生积极性,培养学生编程兴趣 兴趣是最好的老师。在困难重重的教育现状下,要想把学生学习信息技术课的积极性调动起来,最关键的就是培养学生兴趣。当学生对所学的课堂知识产生兴趣和爱好时,就会从内心发出向往和求知的强烈欲望,进行主动学习,使学习不再是一种负担,而是一种愉快的体验。也就是说,不管教师讲得多好,如果学生对你所讲的内容不感兴趣,他就不会努力学习这门课,你的教学肯定是不成功的。

既然要培养兴趣,首先第一节课就显得很重要。为了避免学生出现对vb程序设计内容的误解。开始的第一节课,我们不要讲授太多太深奥的理论知识,可结合学生的生活实际,列举几个用vb设计开发的例子。如五子棋、俄罗斯方块、弹力球等游戏,并告诉他们学习了vb程序设计内容后,大家也都能够编出这些有趣的小游戏,从而迎合了中学生渴望成功的心理。既能吸引学生的注意,激起学生学习兴趣,又对自己后面教学课程的开展起到很好的铺垫作用。

2 尝试多样化教学方法,提高教师教学能力

如何找到一条比较新颖、有效地解决vb程序设计枯燥、难懂问题的教学方法,一直是从事程序设计教学的信息技术教师不断探索和研究的方向。由于教材中不同的章节有不同的教学内容,也需要有不同的教学方法、笔者认为,根据vb

程序设计课的特点,应在不同的阶段分别采用以下几种不同的教学方法、

(1)入门阶段:实例演示法

实例演示法是指教师在教学中选择真正基础的本质知识作为教学内容,通过“实例”内容讲授,使学生达到举一反三掌握同一类知识规律的方法。所以选取合适的实例是提高教学效果的关键笔者认为,由于教材中vb程序设计语言的知识点多而且分散,如果急于讲解一些基本概念和术语,很容易打消学生的学习积极性,而通过一个简单的例子,让学生了解vb的设计开发环境,有助于学生理解比较抽象的基本概念、

如笔者就设计了一个“北京欢迎你”的小程序。由于当时临近北京奥运会开幕,这个主题贴近生活实际,一下子把学生的积极性调动了起来。双击打开“北京欢迎你”小程序,就会弹出一个小窗口,窗口包括一张福娃图片、一个标签和两个按钮。单击“问候”按钮,在文字标签上显示“北京欢迎你!”;单击“英语”按钮,在文字标签上显示“welcome to beiiillg!”由此引出了图片、标签和按钮三种控件的使用。

实践证明,采用实例演示法教学,所选的例子更贴近生活实际,更能吸引学生注意、而且生动形象的实例又能把抽

象问题形象化,便于学生理解和掌握。

(2)提高阶段:任务驱动法

任务驱动法是由教师根据当前教学主题提出“任务”,采用演示或者讲解等方式,给出完成任务的思路、方法和要求达到的结果,引导学生边学边练,并完成相应的学习任务的教学方法。

在逐步提高学生认识vb、学习vb的基础上,任务驱动法是一种比较有效和普遍的方法,能很好

地培养学生自主学习、分析问题、解决问题的能力。非常适合于vb程序设计教学。但在方法的实施过程中,对任务内容要精心思考,既要把所学知识点隐含在任务当中,也要考虑学生完成任务的实际能力,

(3)发展阶段:问题驱动法

问题驱动法就是根据教学内容的需要,精心设计问题,以问题为导向,让学生带着问题去学习,处于不断探索的情境之中,激发学生的学习兴趣、调动学习的积极性、培养学生能力的教学方法。

信息技术是一门带有探究性的、以学生动手实践为主的学科。探究性学习以“问题”为基础,问题是学生进行探究学习的载体,教师可以通过课堂提问将问题传递给学生,因此,恰当的课堂提问是信息技术教学的重要手段,不但能巩

固知识,及时反馈教学信息,而且激励学生参与教学活动,发展学生的思维和表达能力。

并不是所有的问题都能达到上述功效。要很好地实施问题驱动法,首先,要对问题进行精心的设计。一个好的问题能够恰到好处地反映教学内容、教学目标以及所问的对象。问题以贴近生活、有具体答案为好,切勿又空又泛,以致学生无从回答。其次,提问的时机也很重要。导人课堂内容的时候提问,能让学生认清学习目标,找出学习任务的方向:在学生练习操作一段时间后提问,能总结学生遇到的问题,使学生尽快纠正在操作过程中的错误:课后留疑,能让学生回味无穷。再次,提问的方法也很重要,有直问、曲问、宽问、窄问、单问、重问等。力争做到“新、奇、变”,把学生的注意力牢牢地吸引在教师形式多变的提问上。最后,要明确提问的目的。以任务为导向还是以回答为目标、是集体回答还是个人回答,都应该在设问之前定好目标。

(4)成熟阶段:讨论教学法

讨论教学法就是由教师组织学生进行讨论。南学生进行演示和讲解,学生为主体、教师为辅导者的教学方法。目前,这是一种在高校应用比较广泛的教学方法,但是在中学阶段的信息技术课堂中使用应当慎重。因为首先是学情不同,中学生好动,行为约束力不强,自主学习能力也不强。往往在

使用讨论教学法后,课堂纪律难以控制,反而使学习目标任务淡化、学习效果不明显。所以,实施讨论教学法必须是在vb程序设计课程进行到一半以后,在学生都已经有了一定的编程知识和技巧,又非常有展现个性的欲望的情况下使用。鼓励学生对某个算法或小程序进行综合比较和讨论,由学生进行演示和讲解。特别是在信息技术课程最后两周,布置一个综合型应用小程序的设计任务,让每个学生独立完成,然后让学生去演示自己的程序,并讲解设计思路和关键技术点。教师只起到穿针引线的作用。

实践证明,在演示作品后,学生们发现每个人的程序都有许多不同点,教师鼓励大家相互学习、相互探讨。从他们后来改进的作品可以看出,很多学生的综合应用能力有了较大提高,对vb程序设计产生了浓厚的兴趣。

综上所述,在中学vb程序设计教学过程中,要培养学生分析问题、解决问题的能力,仅靠一种教学方法是很难达到的。只有把多种教学方法合理地结合起来,通过每一个典型的、有针对性的、贴近生活的实例和演示,把相关的基本概念、学习方法和思路传授给学生,从而使学生形成深刻、形象、牢固的记忆,对启发思维、激励情趣、提高学习效率起到重要作用。

3 实施分层教学,有效促进因材施教

visual basic程序设计语言是一门思维开发性很强的课程,对中学生而言,有好处,也有难度,要求学生有一定的数学基础和英语基础,所以随着vb程序设计课程的深入,学生的程序设计能力也慢慢地分出层次。好学的学生不断进步,不断探索,基础差的学生学习吃力跟不上进度,也就出现了我们常说的优等生和后进生。这就需要我们根据学情的变化适当推行分层教学,在布置任务练习的时候设置三个层次的任务:初级任务、中级任务和高级任务。初级任务是每个学生都必须做到的目标:中级任务和高级任务则是对有能力、有兴趣的学生的额外任务,促进“吃不饱”的学生不断探索和进步,从而达到因材施教的目的。例如。在做弹力球小程序的时候,初级任务是做垂直反弹的小球,中级任务是做随机任意角度反弹的小球,高级任务则是做用木板反弹的任意角度的小球。由此任务一级比一级高,不同层次的学生都有任务可做,既提高了课堂教学质量,又促进了因材施教方法的实施。

4 培养学生自信心,以促进学生个性化发展 有人说:“好学生都是夸出来的!”课堂上只要有学生提问或发表自己的见解,我们都应该不同程度地给予表扬,使其体验到成功的快乐。因为vb程序设计的学习是有难度的,所以培养中学生的自信是很重要的。在教学中,应该以

表扬、鼓励为主,促进学生的个性发展。笔者认为,在课前两分钟就可以适当展示上次课学生所做的作业和作品,对课堂的导入起到很好的效果,而且增强了学生学习vb程序设计的信心。

首先,通过屏幕广播的方式展示上节课能按时提交作业或者作品的学生,并给以肯定,以增强学生的学习信心。其次,表扬把任务做成作品的学生。特别强调作业和作品的区别,能按教师布置任务要求,按部就班完成的小程序叫作业:而能理解教师的教学目标,并做出与教师课例程序不同,甚至比教师要求功能更多更有特色的小程序叫作品,其实就是无形中鼓励学生的创新思维。最后就是展示学生的作业和作品。中学生天性好奇、爱攀比,所以都很喜欢教师展播他们的作品。特别是有一次。笔者特地表扬了一名在小程序界面下方加入“某某作者版权所有”的学生。从此,学生们的创新意识增强,经常做出五花八门的设计作品,基本找不到有相同功能相同界面的作品。学生学习自信心得到有效提高,不仅对学生自身发展有好处,而且有利于拉近师生距离,有利于促进教师对学生的了解,有利于教师对教学更好地定位。

5 争取做出成绩,吸引学校领导重视信息技术教学 由于信息技术学科在中学的学科地位不高,而且没有升

学压力。学校领导往往不够重视。因此,信息技术课经常是受到其他升学学科的挤占,使各班的教学进度很不统一。要想改变这一现状,很大程度上还需要引起学校领导的重视,重视信息技术学科的授课,那就需要我们做出相应的成绩。全国青少年信息学奥林匹克竞赛(下面简称noi)是和程序设计有关的全国最高水平的中学生奥林匹克赛事,就是用程序设计来解决生活中的问题的比赛。如果在noi竞赛和visualbasic程序教学之间找到结合点,培养出几个尖子生参赛获奖。那将是莫大的荣誉。而且获得区级以上奖励可在中考、高考中加分,这将大大吸引部分有兴趣、有能力的学生参与到程序设计的学习中来。学校领导也提高了对中学阶段信息技术教学,特别是vi,sual basic程序设计教学的重视。

经过两年的实践证明,笔者培养出了多名在程序设计方面有天赋的优秀学生,并在参赛中获奖,不仅为学生个人发展奠定良好的基础,而且为班级和学校争取到荣誉。

结束语

综上所述,虽然信息技术vb程序设计课程教学存在许多问题和困难,但只要信息技术教师具有一颗责任心,运用创新的教学方法,勇于挑战困难,不抱怨,不气馁,不断总结和反思,就一定能够把学生吸引到你的课堂中来,把信息

技术vb程序设计教学质量提高到一个新的层次。

参考文献:

[1]顾建军,visualbasic程序设计[m],广西:广西科学技术出版社,2009 [2]龚沛曾visualbasic程序设计教程[m],北京:高等教育出版社,2007 [3]叶金霞,有效上课——问题·探究·对策信息技术[m],北京:光明日报出版社,2009 [4]段玉琴vb程序设计课程教学实践的几点体会[j],才智,2009,(3) [5]汤兰芳,《vb程序设计》学习兴趣培养探索[j],电脑知识与技术,2009,(19) [6]薛晓萍vb程序设计教学方法几点体会[j],电脑知识与技术(学术交流),2007,(12)

vb论文范文
《vb论文范文.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
相关专题
点击下载本文文档