VB程序设计课程设计

时间:2019-05-12 23:04:58下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《VB程序设计课程设计》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《VB程序设计课程设计》。

第一篇:VB程序设计课程设计

VB程序设计课程设计

1、目的

VB程序设计课程设计是考察学生对VB程序设计课程相关知识点掌握情况的重要环节,也是激励学生进一步学习VB、提高运用VB开发实际计算机程序的能力。课程设计的重点在于学生利用VB开发程序的能力。

2、课程设计题目

学生信息管理系统

3、程序功能

该程序具有建立数据库,建立数据库表,添加数据,删除数据,查询学生每学期成绩、不及格情况、积点情况等相关信息的功能。

4、实现要求

每个学生建立一个数据库(名字自拟),数据库中建立学生基本信息表(学号、姓名、性别、出生年、出生月、出生日、联系电话、年级、班级、住址等)、学生成绩表(学号、课程号、成绩、学期等)、课程信息表(课程号、课程名称、出版社、出版日期、版次、页码、价格、课程类型(基础课、专业基础课、选修课等)、开课学院等)。

把课程信息、每一学期的成绩等分别输入相应的表中,其中学生基本信息表记录不少于5个学生的信息。

在以上数据的基础上,实现相关的程序功能(不仅仅第3条指定的功能)。

设计多界面程序,相关查询结果应由不同的界面显示,每个同学显示结果的形式应尽量不同。

5、考核

根据学生实现程序功能多少(40分)、界面设计情况(20分)、课程设计报告撰写情况(20)、答辩情况(20分)进行考核。雷同者应重做。

6、课程设计报告内容

1)课程设计题目

2)课程设计的目的3)程序功能介绍

4)程序界面设计与控件属性设置

5)程序代码编写

6)程序演示(将运行过程用截图方式截下来,并对输入数据、输出的结果进行适当说明)

7)课程学习与课程设计心得体会

7、上交材料

本次课程设计以小班为单位上交如下资料:

1)光盘:每一小班建立一个目录(专业年级班级),在此目录下建立每个同学的目录(学号姓名),在每个同学的目录下保存该同学的电子版的课程设计报告、打包的程序。

2)纸制版的课程设计报告

第二篇:vb程序设计课程设计题目

VB程序设计课程设计

一.题目:

1.记事本的设计与实现 2.学生成绩管理系统 3.弹球游戏

4.图书馆管理系统 5.打字练习程序 6.超市销售管理 7.小型测试系统 8.仓库管理系统 9.猜数字游戏 10.工资管理系统 二.要求和说明:

1.自己独立完成,最终提交课程设计报告和实验成果

2.对各个系统实现功能进行分析并设计好系统界面,要求界面设计美观方便

3.课程设计报告格式:封面、题目、时间地点、要求、内容、详细步骤和过程、总结 1)功能描述

对系统要实现的功能进行确切的描述。

2)概要设计

根据功能分析,建立系统的体系结构,即将整个系统分解成若干子模块,用框图表示各功能模块之间的接口关系

3)详细设计

详细说明各功能模块的实现过程,所用到的算法、技巧等(附上代码)。

4)效果及存在问题

说明系统的运行效果(附上界面图形)、存在哪些不足以及预期的解决办法。

5)心得 :谈谈在课程设计过程中的心得体会。4.指定时间必须在实验机房上机

5.最终成绩包括平时成绩(30%)和最终考核成绩(70%)

6.实验设计内容必须以老师指定的题目为准,老师指定的题目为最终检查的依据 三.内容:

1. 仿照windows记事本应用程序,要求实现新建,打开,保存文件,对文本进行字体颜色编辑,对文本实现查找,能够复制粘贴功能。

2. 学生成绩管理系统要求实现用户登陆管理,浏览、添加、删除和修改学生的成绩信息,提供多种成绩的查询方式。1)登陆模块

每个用户只有三次登陆机会,三次均未能输入正确的用户名和密码,系统将强行推出。参考界面如下所示

2)主控模块

进入系统主界面后,自动打开学生成绩数据库,“学号”,“姓名”,“班级”,“英语”,“VB”,“数据库”6个字段分别绑定相应文本框,“总分”和“平均分”的内容根据“英

语”,“VB”,“数据库”文本框内容的改变而改变。

单击“首记录”,“尾记录”,“上一条”,“下一条”按钮可以浏览数据库,但不能修改记录。通过选择相关菜单命令可以执行相应的操作。其中执行“输入”和“修改”命令后,“首记录”和“尾记录”按钮隐藏,“上一条”,“下一条”按钮变为“确定”和“取消”按钮,参考界面如下:

3)查询模块

可以通过选择不同的菜单命令进入查询模块后,根据用户输入不同的查询条件在查询窗体中显示查询菜单,参考图如下所示:

根据不同的查询所得查询界面参考下图:

3.弹球游戏要求理解游戏玩法,正确设计游戏规则,合理设计实现算法,参照演示程序实现功能。

4.图书馆管理系统要求实现功能有:用户登陆,图书的借阅和归回,图书信息的添加,修改,查询和删除操作。

5.打字练习程序要求自行设计程序界面,能够实现打字测试和打字练习功能,对打字正确率和速度进行测试,并给出测试结果。

6. 超市销售管理系统要求实现登陆管理,超市销售商品管理(销售商品的添加、删除和修改)查看超市的全部销售记录,可按销售记录号、销售商品名称查询相关销售记录、销售统计等功能。

7.小型测试系统的设计与实现要求能够随机生成20道数学计算题(要求有加,减,乘,除运算,规定操作数的个数),对用户结果进行判断,并能最终计算总成绩,要求用户在规定的时间内做完试题,超时自动终止并给出成绩。

8.仓库管理系统要求实现注册登陆功能,对仓库信息的添加、删除和修改,入库和出库的登记和查询操作等。

9.猜数字游戏要求:游戏开始电脑随机产生一个数字不重复的四位数;将猜的数填在框内按回车或者确定按钮提交;电脑会将提交的数与它自动产生的数进行比较,结果显示成“*A*B”。A代表位置正确数字也正确,B代表数字正确但位置不正确,比如:“2A2B”表示有2个数字的位置正确且数值也正确,除此以外,还猜对了2个数字,但位置不对;共有10次机会,在10次内,如果结果为“4A0B”,游戏成功。如果10次里都没有猜对游戏失败。

10.工资管理系统:建立职工数据库表,能够存储每个职工当月的工资信息,包括:编号、部门、姓名、基本工资、岗位工资、职务补贴、奖金、房租、水电费、实发工资等数据。系统应具有增加人员、删除人员、查询数据、修改数据、统计实发工资、报表输出、退出系统等功能。

第三篇:VB 课程设计

学生成绩管理系统一、功能描述

首先简单地阐述本人所要实现系统的目的,然后应较详细的叙述本系统所要实现的功能。

************ *******

二、概要设计

1、系统功能模块框图设计

根据功能描述,建立系统的体系结构,即将整个系统分解成若干子功能模块,并用框图表示各功能模块之间的衔接关系,并简要说明各模块的功能。

程序流程框图如图所示:(仅供参考)

图1 程序流程图

2、数据库设计

包括数据库的组成说明,数据库中各表的结构说明(包括字段名、字段类型等),可以包含图片例如下表:

表1 学生信息表

三、详细设计

详细说明主要窗体的实现过程,包括窗体的设计图片及其上所包含的控件名和属性设置;

详细说明主要操作的代码实现过程,包括过程间的调用关系(注:在此给出不完全代码)。如下所示:

1、账号登录

帐号登录模块中登录与注册两按钮,单击注册会进入注册模块中,单击登录会进入系统进行下一步的操作,帐号文本框与数据库相连接,当在帐号文本框输入帐号后点击登录按钮后,会在数据库中进行查询看数据库中是否会有该帐号,且该帐号的密码是否与密码框中输入的相同,如果相同会进入系统,如果不存在该账号或密码与帐号不相匹配,则会提示“帐号或密码错误”,帐号文本框会得到焦点,让重新输入。

(1)窗体截图(如图2)

图2 注册窗体

(2)功能实现

2、学生信息查询窗体

图3 查询窗体

四、调试中存在的问题及解决方法

包括调试过程中遇到的主要问题及采取的解决方法。例如:

1、注册账号出现的错误

数据库中帐号被设为主键,当注册时的帐号与数局库中的帐号有相同时就会出错。

2、解决方法:在写入数据库前先进行查询数据库

五、心得体会

本人在本次实习中取得的收获、遇到的困难、如何面对和克服各种困难、本系统的不足之处,将要改进的思想等。

六、参考文献

[1] 罗朝盛.Visual Basic 6.0程序设计教程(第3版).人民邮电出版社,2009年2月

[2] [3]

七、附录

包括全部源程序清单(程序中应有足够的注释)。

第四篇:VB课程设计

课程设计

学 院 班 级

指导老师

姓 名 学 号 成 绩

2013年 月 10

一.课程设计题目

学生管理系统

二.功能描述

按设定的用户名密码进行登录后,可按需求进行对数据库中已有的学生信息及成绩进行查询,添加,删除,修改等操作。

三.概要设计

登录界面功能:让用户进行登录。主界面功能:让用户选择进行哪项操作。

查询学生信息菜单功能:输入学生学号,对该学生的个人信息以

及成绩进行查询,若直接点击查询按钮,则显示全部学生个人信息及成绩。

编辑学生信息菜单功能:可对数据库中已有的学生信息进行查

询,添加,删除,修改等操作。

学生信息维护菜单功能:可对数据库中已有的学生成绩进行查

询,添加,删除,修改等操作。

四.详细设计

五.效果以及存在问题

说明系统的运行效果(附上运行界面图片)、存在哪些不足以及预期的解决办法。

登录界面

登录学生管理系统

按查询条件查询

打开修改学生信息子窗口

学生成绩维护子窗口

垂直窗口排列

关于窗口

不足:1.没有实现用户登录界面中的注册功能

2.没有实现主界面中文件下的新建和保存功能。

六.心得体会

经过几天的苦战,终于把课程设计粗略的做完了。刚开始做的时候,毫无头绪,一片茫然。好在书本上有类似的实验,可以供参考。尽管如此,真正做起项目来,还是有着这样那样的困难,有时一个空格少打都会出错,导致我检查了半天才发现问题所在。由于VB语法还运用不熟练,很多代码都是模仿书本上的敲的,许多代码往往能编译通过,但很多都会抛出各种异常,让人头疼。有时系统就给出个有个参数没有被指定值,就可以让人搞的焦头烂额。因此,写程序真的也很需要强大的耐心,只要熬下去了,当你做出程序时,也会倍有成就感。目前,程序是基本写完了,平常学的理论都得到了运用,感觉自己的能力也增强了。一句话,实践才是硬道理。

七.附录代码

(附上各模块代码)

1.登录界面

Public Class 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 txtPassWord.Text = “123” Then

Dim form2 As New Form2()

form2.Show()

Me.Close()

Else

n = n + 1

If n < 5 Then

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 Class

2.查询学生菜单代码

Public Class 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 Class

3编辑学生信息菜单

Public Class 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 Class

4.学生成绩维护菜单

Public Class 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 Class

5.主菜单界面代码

Public Class 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 Class

八.参考文库

百度文库,百度知道

第五篇: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个方格构成。使用回车键可以暂

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

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

图3

图4

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

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

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

2、设计思路与总体方案

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

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

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

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

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

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

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

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

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

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)

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 < 3 Then

If lifetime < 1 Then

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

If lifetime < 1 Then

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

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

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 = “螺旋形”

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 Class

2.6窗体Form5.vb[设计】

此窗体用来调节蛇运动的快慢程度。

Private Sub TrackBar1_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles TrackBar1.Scroll

Dim v As Integer v = TrackBar1.Value timeinterval = 500 /(2 ^ v)Label3.Text = TrackBar1.Value End Sub

2.7窗体Form6.vb[设计】

此窗体用来显示玩家的成绩,用到了listBox控件来显示成绩,点击清除所有记录可还原,recordlist()用来记录文件中的每一行。Public Class 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 Class

2.8标准模块

定义各种变量

Imports Microsoft.VisualBasic.PowerPacks Module Module1

Public barriercolor As System.Drawing.Color = Color.DarkGray

‘记录障碍物的颜色

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 在定义变量时我尽量定义其为全局变量和模块级变量。部分变量为了简单或难以翻译为英文的仅仅使用了字母代替,对读代码有一定困难。

4.3 我所犯下的最大错误就是使用控件来显示蛇,因为在运行程序时蛇身会随着长度的增加闪烁的愈发厉害。可能是控件太多,程序运行不流畅,效率不高。

4.4 我想在游戏中添加一些音乐,并且用到了循环播放的代码,但是至今我还是没有想到如何能将播放中的音乐暂停。还有的就是怎样才能同时播放两种声音。

4.5 对于排行榜的编写存在一些问题,比如:怎样才能使显示的行间距更开;如何才能使所显示的各项指标在其对应的列下,在这一点上有很大的缺陷。可能程序要用到dictionary方法。

4.6 当我运行程序时,如果我点了界面上的某条线的话,蛇就不再响应键盘事件了,必须使用ctrl+方向键才能使其响应键盘事件。应该是我点击时失去了焦点导致无法正常运行。

5、心得体会

这个程序从难度上讲足足有四颗星,因此我想说我确实摸索了很久,从界面的制作排版到代码的编写。由于计算机编程知识当初只学了些皮毛,很多次我在编程时不断调试却依然出现这样那样的毛病,可能是无意中拼写错误,但有些确实是因为不了解vb的某些较为冷僻的用法所致。这段时间,常会向同学请教,也自觉地去借了些书看看,基本上完成了要求,但是功能、界面都还不是很完善,我会借助以后的时间继续去加工的,我需要的是学以致用。

我体会到了编写程序是个有条理的逻辑过程,首先必须有个大致的思路,整体的规划出来。然后再是分步地去具体完成,尤为重要的是需要投入相当一部分精力去精益求精,这样你的成果才不会是毛糙的。思维调动是件另人愉快的事情,而我们应该去学会享受脑力劳动的过程,哪怕是一次次地失利。这就是2个月的课程设计所教会我的。

6、参考文献

[2].王栋,visual basic程序设计实用教程,北京,清华大学出版社

下载VB程序设计课程设计word格式文档
下载VB程序设计课程设计.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    vb程序设计方法

    发表于《中小学信息技术教育》杂志2005年第7期 VB程序设计方法——今天我来做导演!教学目标: 1、 知道创建一个VB程序的基本步骤 2、 了解窗口、事件和消息的含义 3、 培养学......

    vb课程设计心得体会

    2023vb课程设计心得体会 2023vb课程设计心得体会1 在课程设计过程中,虽然我对程序设计不是很熟悉,但是通过老师详细的讲解,我按照步骤去做,遇到问题的时候先自己想方法解决,解决......

    VB课程设计报告

    Visual Basic课程设计报告 题目1: 难度: *** 题目2: 难度: 指导教师: 姓 名:学 号:专 业:班 级:学 院:日 期: 目录 1、题目简介 ......................................................

    VB课程设计报告

    Visual Basic课程设计报告 题目1: 列车时刻查询系统 难度: ** 题目2: 记忆力测试软件 难度: ** 指导教师: 袁红兵 姓 名:郑聪 学 号:9151010F0535 专 业:兵器类班 级:9151010F......

    2014 vb课程设计报告

    Visual Basic 课 程 设 计 报 告所属课程名称:Visual Basic程序设计 课程设计题号: 课程设计题目: 课程设计难度:?星 课程设计时间:2014.2.23 ~ 4.9 学号: 姓名: 自评成绩:二〇一四年......

    VB课程设计-文本编辑器

    学院名称学生姓名专业名称班级VB课程设计报告 ——文本编辑器 : : : :一、课程设计题目 用Visual Basic程序设计语言编写一个简易的文本编辑器 要求:有最基本的文本编辑功能,包括......

    VB课程设计总结

    通过几周对VB的学习,使我增加了对VB课程的了解. 首先了解到VB的特点,VB是在原来的Basic语言基础上发展而来的.Visual指的是可视的图形用户界面开发方法.不需编写大量代码去描述界面元素的......

    VB 课程设计报告 (推荐)

    长江大学工程技术学院 机械设计基础课程设计 (2012-2013学年 第二学期) 系 (部) 专业班级 学生姓名 学号/序号 完成时间 机械系 机电专61102班 李航 201162335/14 2013年7月10......