第一篇:VB课程设计:拼图游戏
Visual Basic课程设计报告
题目1: 拼图游戏 难度: ***
指导教师:
姓 名: 学 号: 专 业: 班 级: 学 院: 日 期:
1. 题目简介
(1)本题目要求设计一个拼图游戏程序,要求如下:
指定一幅完整的图片,将其分割成m*n个小图块,打乱后重新排列,其中有一个没有图片的“空当” 如图————
(2)使用鼠标单击与空当相邻的图块可以与其互换位置。
(3)利用空当位置使原图恢复原来的顺序,并记下玩家的移动步数,游戏过程中可以查看参考图以方便顺利通过游戏。
2、设计思路与总体方案
本程序包含五个窗体模块,其中以窗体
frmMain的作用最为主要,该模块负责加载选定的图片并按所选的行列数分割,进行随机排列并加载空当,实现鼠标点击时其中的图块时与相邻的空当进行替换,实现拼图完成这个结束动作。
该模块中主要的变量有Rows,Cols,Arrange(),space,started,steps showref Function isOK()
其中,Rows,Cols,showref这三个为全局变量,分别表示行数,列数,以及是否显示参考图(因此showref为逻辑型变量)其余变量为模块级变量,started也为逻辑变量,负责显示游戏是否已开始,Arrange()数组表示联系图像控件与数组的关系,space显示空当的位置,steps来记录玩家所走的步数,Function isOK()用来检验拼图是否已经完成的函数,为逻辑性变量。除外,过程变量tt(0 to2),b(0 to 2),s,r,c用来写入或读取排行榜中的记录。
其中,还设有菜单栏,通过CommonDialog控件负责实现“打开图片”与“配置颜色”对话框,并同时还拥有打开frmRecod(排行榜窗体模块)的工能。主要代码(游戏初始时加载图片):
Dim i As Integer Dim n As Integer CD.Filter = “图片文件(*.JPG,*.BMP)|*.jpg;*.bmp” CD.DialogTitle = “打开图片” CD.InitDir = App.Path & “pics” CD.ShowOpen
(显示指定图片对话框)If CD.FileName = “" Then Exit Sub If started Then For i = 1 To Rows * Cols1)For i = 0 To n1 Load imgPT(i)Next For i = 0 To n1 Then(将图块赋给控件数组元素)imgPT(i).Picture = PC.GraphicCell(Arrange(i))Else imgPT(i).Picture = LoadPicture()space = I(将“打乱”前图片右下角的图块设为空)End If Next End Sub 难点(2)—————————— 当你单击图片时判断是否与空当相邻并进行移动。
解决方法:计算这两者分别所处的行列,利用IF语句进行判断,通过改变Image的Index值来改变所显示的图片,而非移动这个控件。该过程代码如下:
c1 = space Mod Cols(计算空档的行列)r1 = space Cols c2 = Index Mod Cols(计算点击的行列)r2 = Index Cols If Abs(c1r2)= 0 Or Abs(c1r2)= 1 Then(判断是否相邻)
n = Arrange(Index)Arrange(Index)= Arrange(space)Arrange(space)= n imgPT(space)= PC.GraphicCell(Arrange(space))imgPT(Index)= LoadPicture()(进行替换)
难点(3)———————————————判定拼图结束
If isOK()Then MsgBox ”恭喜,完成拼图!共用了“ & steps & ”步。"
' For i = 1 To Rows * Cols1 If Arrange(i)<> i Then Exit For Next If i = Cols * Rows Then isOK = True
(isOK = True时,IF语句运行使得游戏结束)
4、设计中尚存的不足分析
本游戏中的图片排列顺序为随机排列,虽然代码简易,同时可以得到较为随
机的乱序图片外,50%的几率会出现下面这一个意想不到的问题————奇排列在偶数次移动后无法转化为偶排列。(拼图最后两块的位置颠倒且无法逆转)
如a,b图所示,图中的a是3*3数字拼图标准的结果,则对于图b的状态是不可能变换成a的。证明起来需要用到高等代数里逆序数的概念,具体的说是用到了一个简单的定理。
定义:在一个1,2,...,n的排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。逆序数为偶数的排列称为偶排列;逆序数为奇数的排列称为奇排列
推论:数列进行偶数次相邻对换,数列的奇偶性不改变
我们将空格看成数字9(数字9对应空位),按正常顺序看a图,9个数字排列是123456789,其逆序数是0,是偶排列;b图是123456879,逆序数是1,是奇排列。我们知道,我们能够移动空块相邻的块,这里的移动相当于一种特殊的对换(相邻对换),例如:对于b图,移动6就相当于9和6互换(9向上移动了),移动7就相当于9和7互换(9向左移动了)。现在假设从b图经过一系列的平移变到了a图,则空格块9必然移动(对换)了偶数次(向左一次必然要再向右一次回来,向上一次必然要向下再回来,最终才能够回到右下角的位置),根据上面的定理最终变成的排列必然是仍然是奇排列(和b相同),然而a图是偶排列,因而产生矛盾,因此b图不可能通过平移变成最终的a图。
这种现象主要是由于在打乱图片顺序时是用随机法实现的,这种方法会带来50%无法通过游戏的概率,因此,此游戏需要设计一个板块三轮换的算法来进行有效解决,由于个人能力,时间有限,因此只能暂时提出此问题供后人发现解决。
5、心得体会
这个仅仅只有三颗星的设计题目着实让我摸索了很久,先是一开始窗体模块frmMain中代号为PC的控件一不小心变成了PctureBox,醒悟的我从VB本身调出PctureClip控件将其代替,不过最困难的莫过于对 Arrange,PC.GraphicCell,imgPT()这三个数组关系的调整来使整个游戏正确运行,并弄懂如何交换相邻的图块和空当,而且本着身为游戏制作者的我在题目中的Pics文件中更新了数张新的图片(二战,动漫,战争主题),来提高玩家游戏的兴趣,同时附加排行榜功能,方便玩家查询自己的历史成绩。
最后我更体会到成为一名程序设计人员的艰辛,不仅要在书写代码上费时费力,一旦程序出现误差,对程序的校正与检查对设计人员来讲更是困难重重。为此,我以后一定要谦虚的学习并熟练使用各种办公领域的软件,认真的对待,正确的使用这些软件,不忘那些程序设计者背后的艰辛。
6、参考文献
[1].王栋,visual basic课程设计(2),北京,清华大学出版社 [2].王栋,visual basic程序设计实用教程(4),北京,清华大学出版社 [3].Visual Basic 6.0程序开发 触类旁通百例,机械工业出版社
第二篇: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课程设计心得体会
2023vb课程设计心得体会
2023vb课程设计心得体会1
在课程设计过程中,虽然我对程序设计不是很熟悉,但是通过老师详细的讲解,我按照步骤去做,遇到问题的时候先自己想方法解决,解决不了的就去问同学,问老师,通过这种学习,收获很大,学会了自己解决棘手问题,知道了团结的力量。
刚开始做程序的时候,就是完全按照老师的要求,老师的步骤去做的,结果却发现,怎么运行不了?明明是按照老师的步骤去做的,明明是按照老师的要求去做的,但是就是会遇到一些问题使程序运行不了。开始也没有管那么多,仍然是按照课本上的去做。 第一次,在上机课的时候,我根据老师讲的,在机房里做了一次,但没有做完。于是把东西存在了自己的MP3里面,以便以后上机的时候再来做。但真的没有想到,我的MP3,在一次上电子阅览室的时候,忘了拔了。于是乎,我辛辛苦苦做了一大节课的程序就这样没了。心里真的很不舒服,但是,不舒服归不舒服,这个程序,还是得继续做下去,这么以点点小小的失误不算什么,然后跑到学校机房,继续我的VB程序设计。但由于时间问题,做的还是有点粗糙,还是不免存在一定的问题,比方说开始的'时候翻开不了文件,总是出现错误,自己总也找不出来,后来请教了一下同学,结果发现时代码的编写出现了错误,把代码改正来之后,程序终于可以翻开运行了。然后,检查的时候,又发现“查找”运行错误,又是代码那里出现的黄色的字样,结果发现,是代码拼写错误,于是,拿着同学的代码比照一下,发现了错误所在之地,然后更正了过来。
经过一番努力,程序终于做完了。
后来,室友看了我的程序,她说运行不了的,就是出现了错误,出现了错误,就应该改正啊,这时的我才恍然大。“是错误,那么就要改正的!”于是当天,我就去了学校机房,再一次运行我的程序,仍然出现错误情况,需要调试,我回忆起上课的时候,老师是怎么跟我们讲的,哪里出现了错误,需要怎么样改正。于是,我就耐着性子,一个一个,一个一个得改正,代码,一个一个得检查,终于完成了。完成之后,我在运行一下,一切正常,心里终于舒了一口气。经过这次的VB程序设计,让我知道了更多学习的方法。具体如下:
(1)保持良好的学习心态,第一,要有自信,自强,积极主动学习、第二,克服畏难情绪,树立学好程序设计的信心。
(2)要了解概念:VB程序设计本身并不复杂,变量,函数,条件语句,循环语句等概念较多、要真正能进行程序设计,就要深入理解这些概念、应该重视概念的学习。
(3)自己动手编写程序,亲自动手进行程序设计是培养逻辑思维的好方法、因此我们得多动手编写程序,逐渐提高写程序的能力、自己动手,编写一些程序,才会有成就感,进而对课程产生兴趣,做起来才比较沉着、等你在编写大量程序之后。
(4)上机调试程序应注意多问问同学,多问问老师,把不懂的地方标出来。
(5)养成良好的编程习惯,第一,程序构思要有说明;
第二,学会如何调试程序;第三,对运行结果要做正确与否的分析。 但是,如果以前上课的时候不认真的听讲的话,做这个程序设计就会有点点困难,所以,同时也在提醒我们,学习,任何时候都要认真!
总之,在此次的VB程序设计中,如果没有足够的耐心,就不可能完成的很好。所以此次VB程序设计,让我做事情更加有耐心,更加细心,学习更加认真仔细。
2023vb课程设计心得体会2
VB课程是计算机科学与技术本科专业的专业骨干课。本课程主要通过VB论述了面向对象程序设计和组建编程的机理,涉及到控制台界面程序、Windows窗体程序、图形界面编程、数据库、网络应用系统等多方面的内容。内容量大,程序设计复杂、同时VB程序调试是在VS环境下进行,在编程过程中环境会自动为用户生成一些必要代码,以降低编程难度,降低学生的编程负担,但这也带来了一些问题,如:学生对VB的程序结构把握和了解不全面,对编程机理了解不透彻,学生容易盲目照搬书上代码,不求甚解,似是而非。为了解决这个问题,我们采取了课程设计的方法来加深学生对知识的理解,将书本知识迁移到新的问题解决中,提高学生分析问题和解决问题的能力。
要求学生在学习该课程中,应用每个相对独立的、完整的单元知识解决一个实际项目,设计编写一个小作品;学完整个课程后,完成一个综合性比较强的编程项目,使学生对整个课程内容进行全面的总结、梳理,以项目完成为手段,全面锻炼学生分析问题和解决问题的能力。
一、目的
1、为使学生掌握VB编程、面向对象程序设计思想和组建编程的知识实际技能,除了系统地讲授必要的VB知识,上机练习,做作业外,还应该对学生作较全面的编程技能和分析问题解决问题的能力训练,即作课程设计,以达到如下目的:具体应用和巩固本课程及有关先修课的基础理论和专业知识,了解面向对象程序设计思想,掌握应用VB。NET编程和组建编程程序设计方法,培养学生初步的项目设计能力。
2、独立地根据一定的项目要求,查阅资料,写出项目开发目标,分析开发过程中所用到的课程知识,提出解决方案,编码并上机调试完成系统,培养学生分析问题和解决问题的能力。课程设计是教学过程中的一个重要环节,必须认真对待。
二、要求
在课程设计中要求学生注意培养认真负责,踏实细致的工作作风和保质保量,按时完成任务的习惯。在设计过程中必须做到:
1、在某个教学单元结束后,完成一个教师布置的、或学生自己拟定的、知识覆盖整个章节的,有一定综合性和难度的项目,要求学生描述出要达到的目标、围绕目标,收集资料和素材,复习所需的课程知识,描述问题解决方案、编写程序上机调试,直到项目的完成。最后的成果要有完成的作品和相应的文档。
2、在课程结束后,完成一个大的'编程项目,其要求与课程单元的项目差不多,只是综合性更强、难度更大、知识覆盖面更广,工作量更大,以全面促进学生复习和梳理学科教学内容,提升学生分析问题、解决问题和文档的书写和编制。
三、采取的措施
为了保证课程设计能够按照预定的目标和计划进行,我们还采取了以下措施来加强对学生监督和管理。
1、首先讲清楚课程设计的意义,让学生能够自觉积极主动地进行课程设计,发挥学生的主观能动性;
2、在课程设计过程中,教师随时巡视和监督,了解把握和控制课程设计的进展;
3、将学生的作品集中展示、评价、打分,可以让学生在展示的过程中获得成就感、自豪感,学生之间可以相互学习、取长补短,同时在此过程中可以明确标准,自觉地按照标准来调整自己地学习;
4、将课程设计作为学期成绩的一部分记载,大约占10%,必须完成课程设计后才能参加考试,课程设计不过关,即使考得再好,也不能过。
四、取得的效果
通过以上措施,学生全部都完成了自己的项目、将所有的作品通过超链接网页的方式集成在一个作品集中,所有的学生都完成了4~6个小作品,每个作品都反映了学生应用课程的某部分知识解决某个问题的结果,通过完成这些作品,学生巩固、加深了对相关知识的理解,加强了知识之间的联系,促进了知识的迁移和应用。同时学生看到凝聚着自己的心血、汗水、思维和创新的作品,就像一个母亲看到自己呱呱坠地孩子那样充满了喜悦,激发了学生的创造欲望。通过同学之间作品的对比,提供了一个相互学习交流的平台,激发了学生的竞争意识。总之通过课程设计受到了良好的多方面的效果,从考试成绩来看,级本科全部都及格了。
2023vb课程设计心得体会3
在前两周中我们进行的VB课程设计中,我获得了一些心得体会。
这是我第一次系统与完整的接触软件设计。我们组的题目是关于“俄罗斯方块游戏”的设计。我在组内主要负责:
(1)游戏界面的设计;
(2)俄罗斯方块的造型;
(3)游戏级别的自由选择;
(4)游戏速度的自由选择;
(5)游戏的背景音乐。;
在这次课程设计中,我的能力得到了锻炼,自己也有许多体会。这次的课程设计是自己第一次全面接触软件的制作过程。以前仅仅是对软件的开发有一个大体的印象,通过这次的课程设计,我对软件的开发有了切身的体会。软件并不像我原来所想的那样十分神秘,而是有着一个相对固定的模式和流程。我们只要按照这个模式和流程,就能够比较标准的完成一个软件的制作。软件的制作是一个系统的工程,需要我们掌握多方面的知识。在这次课程设计中,我觉得自己的知识面依然有所欠缺。因此我需要在以后的学习中加以注意,要不断的提高自己的`知识面与知识层次。
我在这次课程设计中主要负责:
(1)游戏界面的设计;
(2)俄罗斯方块的造型;
(3)游戏级别的自由选择;
(4)游戏速度的自由选择;
(5)游戏的背景音乐。在这次课程设计之前,我对VB的编程不是特别的熟悉,这次的课程设计,我是一边学习,一边总结,一边进步。在编程的过程中,我体会到其实各种计算机语言是有相通之处的。在以前的学习中,我只接触过C语言,这次在VB课程设计中,我发现C语言中的许多知识可以应用到VB中,两者具有相通的数据结构。所以我认为现在对计算机语言的学习,不要贪多,而应耐心的学好一门主要的计算机语言,在这个根底上,去学习其他的语言,这样会使学习效率大大提高。
在编程的过程中,我体会到编程是十分辛苦的。在课程设计这一段时间里,我每天的生活根本是在不断的调试程序和修改代码中完成的。有时,这种生活令人感到乏味和疲倦,但是在这种近似枯燥的生活中,我的编程水平有了一定程度的提高,这是课程设计中组成员互相帮助,有问题两个人一起讨论解决,大大节省了时间。互相都提出了很好的建议,使我们的课程设计得以较好的完成。 课程设计已经结束了,但在课程设计的这些体会要应用到今后的日常学习中去。在新的学期,我觉得自己要在以下几个方面加以注意:
首先,在学习专业课的时候要注意理论联系实际。注意将课本上的知识应用到日常的操作中,真正做到学以致用。只有这样,才能做到目的明确,才能有足够的学习动力。
其次,在学习过程中要经常与同学进行交流,讨论所遇到的问题,并一起解决。在讨论中解决问题,会节约很多时间,并且在交流的过程中,我们也可以学到更多的东西。
课程设计已经已经完美解暑,这次课程设计给我打来了很多新的体会,在以后的学习中要不断总结,不断改良,使自己的成绩有新的提高。只有不断努力,才会使自己变得更加优秀。
2023vb课程设计心得体会4
经过近一个月的设计与制作,我们组的《世界杯观战指南》终于完成了,现将过程中遇到的问题、获得的体会记录如下。
这次数据库课程设计中我主要负责用户登录、注册及数据库维护方面的'设计。
1、Delphi是一款功能很强大的软件,其控件之多超出了我的想象,因此在运用时要借助很多资料。要学会查找和利用现有资料来解决问题
2、在设计中用到了很多SQL语句,因此对SQL及程序语句地掌握也是必不可少的。
3、后期的软件制作都是以前期的工作为基础的,因此在前期的需求分析及数据库设计阶段要认真、细致。
4、我们是三个人的小组,在设计过程要互相协调,合作。这样才能充分发挥每个人的作用。
2023vb课程设计心得体会5
时间真的如轮一样在飞转,一周的实训又一次即将结束,可是,感觉仿佛只过去了一天。实训结束也意味着这个学期也将结束。不管时间多么的飞快,这周短暂的VB程序设计实训同样让我们收益不少。 首先,不说我们学到了多少专业知识,也不说我们学到了多少专业技能。在这样零下1度的天气中实训,着实是锻炼我们的意志力。人都有惰性,这是无可厚非的事实。在寒冷的天气里,赖床就更是常有的事。因为要实训,我们很多平常经常迟到的同志不得不早起。就说实训的第一天,外面飘着白雪,早上,手机的闹铃已经响过第二遍了。
我们宿舍的几个姐妹还躲在被窝里无动于衷。可是,当一个姐们突然说了一句,“这周要实训”时,我们都‘呼啦’爬了起来,以惊人的速度洗漱好,急忙赶到教室。不管平时多么懒散的同学,这次实训都表现的异样的认真。这应该算是实训赋给我们的特别礼物吧! 实训的目的无非就是训练我们的操作能力,以及提高我们的专业技能。实践出真知,这是不变的.真理。毫无疑问,这次VB程序设计实训让我们每一位同学都在不同程度上提高了编程技能。编程是我们的专业课程,可是,在老师平时上课的时候,班上大部分同学都以怠慢的态度对待。所以,对这门课程学的泛泛的。
实训前,如果要我们做一个管理系统,我想班上能完成任务的同学应该寥寥无几。在实训前,我们常抱怨,编程有多么的难。一个学期的学习,我们居然都不能完全的做出一个管理系统来。而这次短短的实训,却让我们学会了做管理系统。没错,就是短短的几天,我们每位同学都完成了一个自己做的管理系统。这说明,编程它本身不是很难,而在于你是不是真正的学习了。这次实训让我深刻的明白,你的态度决定一切。就以我自己的经历来说,一个学期的学习还没没短短一周学到的多。这是为什么?主导因素就是态度。在平日的学习中,我抱着不以为然的态度,以懒散的心态对待这门课程。所以,一个学期下来,我的编程学的一塌糊涂。而这次实训,就像是一场实战,必须认真对待。而这几天踏踏实实的学习,将我平日落下的学习全都补救过来了。真的非常感谢这次实训。通过这次实训,我的编程技能确比之前实提高了不少。
更重要的是,在这次实训中,让我明白:学习或生活中发现了自己的不足,就要及时改进。不管是在学习中,还是在生活中,有不懂的没关系。而,如果不懂,也不去问,就是一件很悲哀的事情。这次实训中,我遇到了很多不懂的问题,但是,这些不懂最后都被我弄懂了。因为遇到不懂的不会做的我及时主动询问了周围的同学。同学不懂的,我又询问了老师。不要认为问别人是一件让人很羞耻的事情。不懂就问,不但不会让你蒙羞,反而能显示你的真实与谦虚。
总之,这次实训我又有不少新收获。
最后,还要感谢这次实训期间周围同学的热情帮助和老师的热心讲解与指导。
2023vb课程设计心得体会6
在前两周中我们进行的VB课程设计中,我获得了一些心得体会。
这是我第一次系统与完整的接触软件设计。我们组的题目是关于“俄罗斯方块游戏”的设计。我在组内主要负责(1)游戏界面的设计(2)俄罗斯方块的造型(3)游戏级别的自由选择(4)游戏速度的自由选择(5)游戏的背景音乐。在这次课程设计中,我的能力得到了锻炼,自己也有许多体会。这次的课程设计是自己第一次全面接触软件的制作过程。以前仅仅是对软件的开发有一个大体的印象,通过这次的课程设计,我对软件的开发有了切身的体会。软件并不像我原来所想的那样十分神秘,而是有着一个相对固定的模式和流程。我们只要按照这个模式和流程,就能够比较规范的完成一个软件的制作。软件的`制作是一个系统的工程,需要我们掌握多方面的知识。在这次课程设计中,我觉得自己的知识面依然有所欠缺。因此我需要在以后的学习中加以注意,要不断的提高自己的知识面与知识层次。
我在这次课程设计中主要负责(1)游戏界面的设计(2)俄罗斯方块的造型(3)游戏级别的自由选择(4)游戏速度的自由选择(5)游戏的背景音乐。在这次课程设计之前,我对VB的编程不是特别的熟悉,这次的课程设计,我是一边学习,一边总结,一边进步。在编程的过程中,我体会到其实各种计算机语言是有相通之处的。在以前的 学习中,我只接触过C语言,这次在VB课程设计中,我发现C语言中的许多知识可以应用到VB中,两者具有相通的数据结构。所以我认为现在对计算机语言的学习,不要贪多,而应耐心的学好一门主要的计算机语言,在这个基础上,去学习其他的语言,这样会使学习效率大大提高。
在编程的过程中,我体会到编程是十分辛苦的。在课程设计这一段时间里,我每天的生活基本是在不断的调试程序和修改代码中完成的。有时,这种生活令人感到乏味和疲倦,但是在这种近似枯燥的生活中,我的编程水平有了一定程度的提高,这是课程设计中我最大的收获。以前学习计算机语言,总是静不下心来,不能认真的看书。这次课程设计,为了顺利的完成编程工作,我认真的学习了VB语言,并有了一定的心得体会。所以在以后的学习中,自己全身心的投入,这样学习才会有效率,才会有效果。
这次的课程设计是按小组进行的,我们的小组由两名同学组成。软件的设计本来就是一个团体的智慧结晶。这次课程设计也给了我们一次体验团体合作的机会。在课程设计中,我深深的体会到集体的智慧于力量是个人所无法比拟的。在课程设计中,我们的小组成员互相帮助,有问题两个人一起讨论解决,大大节省了时间。互相都提出了很好的建议,使我们的课程设计得以较好的完成。
课程设计已经结束了,但在课程设计的这些体会要应用到今后的日常学习中去。在新的学期,我觉得自己要在以下几个方面加以注意:
首先,在学习专业课的时候要注意理论联系实际。注意将课本上的知识应用到日常的操作中,真正做到学以致用。只有这样,才能做到目的明确,才能有足够的学习动力。
其次,在学习过程中要经常与同学进行交流,讨论所遇到的问题,并一起解决。在讨论中解决问题,会节约很多时间,并且在交流的过程中,我们也可以学到更多的东西。
课程设计已经已经完美解暑,这次课程设计给我打来了很多新的体会,在以后的学习中要不断总结,不断改进,使自己的成绩有新的提高。只有不断努力,才会使自己变得更加优秀。
2023vb课程设计心得体会7
VB.NET课程是计算机科学与技术本科专业的专业骨干课。本课程主要通过VB.NET论述了面向对象程序设计和组建编程的机理,涉及到控制台界面程序、Windows窗体程序、图形界面编程、数据库、网络应用系统等多方面的内容。内容量大,程序设计复杂、同时VB.NET程序调试是在VS.NET环境下进行。
在编程过程中环境会自动为用户生成一些必要代码,以降低编程难度,降低学生的编程负担,但这也带来了一些问题,如:学生对VB.ENT的程序结构把握和了解不全面,对编程机理了解不透彻,学生容易盲目照搬书上代码,不求甚解,似是而非。为了解决这个问题,我们采取了课程设计的方法来加深学生对知识的理解,将书本知识迁移到新的问题解决中,提高学生分析问题和解决问题的能力。
要求学生在学习该课程中,应用每个相对独立的、完整的单元知识解决一个实际项目,设计编写一个小作品;学完整个课程后,完成一个综合性比较强的编程项目,使学生对整个课程内容进行全面的总结、梳理,以项目完成为手段,全面锻炼学生分析问题和解决问题的能力。
一、目的
1、为使学生掌握VB.NET编程、面向对象程序设计思想和组建编程的知识实际技能,除了系统地讲授必要的VB.NET知识,上机练习,做作业外,还应该对学生作较全面的编程技能和分析问题解决问题的能力训练,即作课程设计,以达到如下目的:具体应用和巩固本课程及有关先修课的基础理论和专业知识,了解面向对象程序设计思想,掌握应用VB.NET编程和组建编程程序设计方法,培养学生初步的项目设计能力。
2、独立地根据一定的项目要求,查阅资料,写出项目开发目标,分析开发过程中所用到的课程知识,提出解决方案,编码并上机调试完成系统,培养学生分析问题和解决问题的能力。课程设计是教学过程中的一个重要环节,必须认真对待。
二、要求
在课程设计中要求学生注意培养认真负责,踏实细致的工作作风和保质保量,按时完成任务的习惯。在设计过程中必须做到:
1、在某个教学单元结束后,完成一个教师布置的、或学生自己拟定的、知识覆盖整个章节的,有一定综合性和难度的项目,要求学生描述出要达到的目标、围绕目标,收集资料和素材,复习所需的课程知识,描述问题解决方案、编写程序上机调试,直到项目的完成。最后的成果要有完成的作品和相应的文档。
2、在课程结束后,完成一个大的编程项目,其要求与课程单元的项目差不多,只是综合性更强、难度更大、知识覆盖面更广,工作量更大,以全面促进学生复习和梳理学科教学内容,提升学生分析问题、解决问题和文档的书写和编制。
三、采取的措施
为了保证课程设计能够按照预定的目标和计划进行,我们还采取了以下措施来加强对学生监督和管理。
1、首先讲清楚课程设计的意义,让学生能够自觉积极主动地进行课程设计,发挥学生的主观能动性。
2、在课程设计过程中,教师随时巡视和监督,了解把握和控制课程设计的进展。
3、将学生的作品集中展示、评价、打分,可以让学生在展示的过程中获得成就感、自豪感,学生之间可以相互学习、取长补短,同时在此过程中可以明确标准,自觉地按照标准来调整自己地学习。
4、将课程设计作为学期成绩的一部分记载,大约占10%,必须完成课程设计后才能参加考试,课程设计不过关,即使考得再好,也不能过。
四、取得的`效果
通过以上措施,学生全部都完成了自己的项目、将所有的作品通过超链接网页的方式集成在一个作品集中,所有的学生都完成了4~6个小作品,每个作品都反映了学生应用课程的某部分知识解决某个问题的结果,通过完成这些作品,学生巩固、加深了对相关知识的理解,加强了知识之间的联系,促进了知识的迁移和应用。同时学生看到凝聚着自己的心血、汗水、思维和创新的作品,就像一个母亲看到自己呱呱坠地孩子那样充满了喜悦,激发了学生的创造欲望。通过同学之间作品的对比,提供了一个相互学习交流的平台,激发了学生的竞争意识。总之通过课程设计受到了良好的多方面的效果,从考试成绩来看,20xx级本科全部都及格了。
2023vb课程设计心得体会8
首先了解到VB的特点,VB是在原来的Basic语言基础上发展而来的。Visual指的是可视的图形用户界面开发方法。不需编写大量代码去描述界面元素的外观和位置,只要把预先建立的对象添加到屏幕上的某点即可。如果使用者诸多PAINT之类的绘图程序,则实际上已经掌握了创建用户界面的必要技巧。
BASIC指的是B语言,一种在计算机技术发展历史上应用得最为广泛的.语言之一。VB在原来BASIC语言的基础上进一步发展至今包含了数百条语句,函数及关键词,其中很多和WINDOWS GUI有直接关系,VB不仅是可视语言,而且是面向对象的编程语言。其特点是概念多,实践性强,涉及面广。
之后,了解到一些基本的概念,含义。例如类,就是创建对象实例的模板包含了创建的属性描述和行为特征的定义。而此中的对象又是类的一个实例,继承了类的属性,方法,而VB中长用的对象有窗体,控件等。但我们在建立之前必须清楚对象的三要素:属性,方法和事件。而建立程序的步骤大致可分为:
(1)启动程序,装载和显示窗体。
(2)窗体等待事件的发生。
(3)事件发生时,执行对应的事件发生过程。
(4)再重复(2)(3)的过程(5)最后直接遇到“END”结束语句结束程序的运行或按“结束”强行停止程序的运行。
再用VB创建一个应用程序,第一步骤是创建窗体,它是用户与应用程序进行交互操作的可视部分,窗体是创建界面的基本构造模块,也是创建应用程序所使用的对象。而后必要设置窗体的属性,从而构出窗体的外观,设置好的窗体,窗体就作为对象,能够对其定义的事件作出响应,这也是所谓的窗体事件,而窗体事件又包括窗体本身事件,键盘事件和鼠标事件。
在了解窗体基本知识就还应了解VB的语言基础,其中包括了代码模块(窗体模块,标准模块,类模块),注释,分行和续行,数据类节(字节型,逻辑型,数值型,日期型),变量与常数,运算符与表达式,数组,控制结构,子过程和函数。同时,为了编程,我们还应培养良好的编程习惯,首先是对象,变量及过程的命名约定,然结构化编码约定。
在VB中创建应用程序之际也就是和对象打交道之时,对象是代码和数据的组合,可以作为一个单位来处理,对象可以是应用程序的一部分,比如可以是控件,窗体,或数据访问对象。控件也是对象中的一种,主要用来获取用户的输入信息和显示输出信息。应用程序中可用的控件包括文本框,命令按扭和列表框。而通过另外一些控件可以访问其他应用程序并处理数据。
VB程序设计同时可设计出一个更好的菜单系统,这样就可以使用户了解到更大量有关应用程序设计和结构的信息,精心规划菜单与工具栏有助于提高应用程序的可用性。同时在基于WINDOWS的应用程序中,对话框被用来提示应用程序继续运行所需的数据或者用户显示信息。对话框是一种特殊类型的窗体对象,在VB中按对话框的创建有三种类型的对话框,他们是预定义对话框,自定义对话框和标准对话框。对于自定义对话框和标准对话框,使可以完成与用户之间的交互。
学习VB程序设计后,增加对此的认识,深入学习VB程序就可掌握新的软件,新的编程环境,学习此课程,也可学会使用开发环境,开发工具的方法。才能更好地跟上计算机学科的发展。
2023vb课程设计心得体会9
在课程设计过程中,虽然我对程序设计不是很熟悉,但是通过老师详细的讲解,我按照步骤去做,遇到问题的时候先自己想办法解决,解决不了的就去问同学,问老师,通过这种学习,收获很大,学会了自己解决棘手问题,知道了团结的力量。
刚开始做程序的时候,就是完全按照老师的要求,老师的步骤去做的,结果却发现,怎么运行不了?明明是按照老师的步骤去做的,明明是按照老师的要求去做的,但是就是会遇到一些问题使程序运行不了。开始也没有管那么多,仍然是按照课本上的去做。
第一次,在上机课的时候,我根据老师讲的,在机房里做了一次,但没有做完。于是把东西存在了自己的MP3里面,以便以后上机的时候再来做。但真的没有想到,我的MP3,在一次上电子阅览室的时候,忘了拔了。于是乎,我辛辛苦苦做了一大节课的程序就这样没了。心里真的很不舒服,但是,不舒服归不舒服,这个程序,还是得继续做下去,这么以点点小小的失误不算什么,然后跑到学校机房,继续我的VB程序设计。但由于时间问题,做的还是有点粗糙,还是不免存在一定的问题,比如说开始的时候打开不了文件,总是出现错误,自己总也找不出来,后来请教了一下同学,结果发现时代码的编写出现了错误,把代码改过来之后,程序终于可以打开运行了。然后,检查的时候,又发现“查找”运行错误,又是代码那里出现的黄色的字样,结果发现,是代码拼写错误,于是,拿着同学的代码对比一下,发现了错误所在之地,然后更正了过来。
经过一番努力,程序终于做完了。
后来,室友看了我的`程序,她说运行不了的,就是出现了错误,出现了错误,就应该改过啊,这时的我才恍然大。“是错误,那么就要改正的!”于是当天,我就去了学校机房,再一次运行我的程序,仍然出现错误情况,需要调试,我回忆起上课的时候,老师是怎么跟我们讲的,哪里出现了错误,需要怎么样改正。于是,我就耐着性子,一个一个,一个一个得改正,编辑代码,一个一个得检查,终于完成了。完成之后,我在运行一下,一切正常,心里终于舒了一口气。经过这次的VB程序设计,让我知道了更多学习的方法。具体如下:
(1)保持良好的学习心态,第一,要有自信,自强,积极主动学习、第二,克服畏难情绪,树立学好程序设计的信心。
(2)要了解概念:VB程序设计本身并不复杂,变量,函数,条件语句,循环语句等概念较多、要真正能进行程序设计,就要深入理解这些概念、应该重视概念的学习。
(3)自己动手编写程序,亲自动手进行程序设计是培养逻辑思维的好方法、因此我们得多动手编写程序,逐渐提高写程序的能力、自己动手,编写一些程序,才会有成就感,进而对课程产生兴趣,做起来才比较从容、等你在编写大量程序之后。
(4)上机调试程序应注意多问问同学,多问问老师,把不懂的地方标出来。
(5)养成良好的编程习惯,第一,程序构思要有说明;第二,学会如何调试程序;第三,对运行结果要做正确与否的分析。
但是,如果以前上课的时候不认真的听讲的话,做这个程序设计就会有点点困难,所以,同时也在提醒我们,学习,任何时候都要认真!
总之,在此次的VB程序设计中,如果没有足够的耐心,就不可能完成的很好。所以此次VB程序设计,让我做事情更加有耐心,更加细心,学习更加认真仔细。
2023vb课程设计心得体会10
我们组这次设计的程序是考勤管理系统,主要用于企事业单位的考勤,便于统计员工的出勤情况。
1、通过这一次的程序设计,使我能够进一步掌握用程序设计语言解决实际问题的方法,在操作当中把所学到的用于实际的编程里面去。
2、通过这一次的程序设计,使我能够提高分析问题、查阅资料、吸收新知识的能力,在分析解决问题时比以前有了很大的进步,一些常用的知识和一些常规的错误都能够解决。
3、通过这一次的程序设计和指导教师姜瑶老师的指导使我能够进一步对vb有了熟练的操作,并且在分析,编程方面比以前有了更大的提高。
4、我认为实践周的程序设计是给我们学习的一个大好机会,使我们在这样的机会里学到了一定的知识,毕竟理论要通过实践来锻炼,也只有自己参与了这样的一个锻炼,才能更好的发现自己的不足并加以改进和完善! 在这次的设计过程中,我学到的不仅是知识,我还认识到许多事情。这次设计使我的编程水平提高了一大步,使我充分的认识到合作的`可贵。由于这次设计涉及到数据库,我也学到了不少数据库连接的知识,对数据库的操作有了进一步的了解。这次设计对我的综合能力是一次很好的锻炼,但是我必须承认自己的能力和知识还很肤浅。所以今后我的学习道路还是很漫长的。最后,在这里我要衷心的感谢我们的指导老师谢谢她的耐心指导和热心帮助。由于我水平有限,加之时间短暂,故学习数据库系统中还有许多不足之处,请老师批评指正,我会在以后的制作中不断改进,不断完善。