学生信息管理系统VB课程设计报告 - 图文
更新时间:2023-12-14 17:36:01 阅读量: 教育文库 文档下载
Visual Basic课程设计报告
题目: 学生信息管理 难度: *** 指导教师: 袁红兵
姓 名: 谭鑫 学 号: 1101400114 专 业: 工业工程 班 级: 11014001 学 院: 机械工程学院
日 期: 2012年3月1日 ~ 26日
Visual Basic课程设计报告
一、 题目简介 ....................................................................................................................... 1 二、设计思路与总体方案 ....................................................................................................... 6 三、设计过程遇到的主要问题及解决方法 ......................................................................... 22 四、设计中尚存的不足分析 ................................................................................................. 22 五、心得体会 ......................................................................................................................... 25 六、参考文献 ......................................................................................................................... 26
一、 题目简介
学生进入学校后,每个人有很多信息,例如:学号,姓名,出生年月,专
业,所在院系,个人爱好等等,这些信息很杂乱,也很难一一理,清查询起来 也很难,用学生信息管理对这些信息进行管理。
本题目旨在设计与一个可对学生信息进行管理和查询统计的程序,维护学生的学号通过此程序的设计,可以加深我们对上学期的vb基础知识的印象,使理论升华为实际操作,同时也有助于我们培养合理化意识,用电子记录的形式取代从前的手写记录,使得信息更加精准,不易丢失。 题目的难度系数相对不高,但牵涉到众多的知识点,作为典型的多模块设计类型的题目,本程序涉及两个模块,主窗体和查询窗体。复习了上学期 我们所学的vb知识,自定义数据类型和动态数组,更加熟练的掌握了这两方面知识。在这一程序中,还要学会两个新控件MSFlexGird表格控件和DTPicker日期选择器的使用。MSFlexGrid却是这个程序编辑过程中最主要的控件,所以需要自学,还是有点难度
的。
MSFlexGrid控件具有很强的数据组织能力和显示能力,但是其本身并无编辑数据的功能。本程序使用了文本框、DTPicker日期选择器控件和下拉式组合框三个控件来协助数据编辑。如何协调三个编辑控件的显示和隐藏是本题目的难点。
题目提供了四个文本文件:“名族.txt”、“院系.txt”、“专业.txt”和“省份.txt”,其中的信息可供程序在显示编辑组合框时使用。每个名族。院系。专业和省份都
1
有一个代号,为了缩减data.dat文件的大小,该文件中并未保存具体的名称,而是一个代号。
程序要求实现如下功能(主要根据窗口由易到难的顺序来)
(1)学生进入系统,进入登陆界面,系统要求学生输入学号和密码。(自加窗体)
系
统要求学生的密码和学号
相同,若不相同,则显示以下界面 系统要求学生的学号为纯
数字,不得包含字母等,且学号为十位数,若不满足条件,则显示以下界面
2
学生输入正确的学号和密码
后,系统会跳入主界面,如图所示
(2)学生信息保存在随机访问文件data.dat文件中,该文件与可执行文件位于同一文件夹中。运行程序,显示图1所示界面,自动列出数据文件data.dat中保存的所有学生信息,每个学生占一行。程序使用了MSFlexGrid表格控件进行信息的组织和显示。用户一旦修改添加了学生信息会保存到data.txt文件中。
如果启动时程序为在当前目录中找到data.dat文件,则显示没有数据行的空表,允许用户添加学生信息并保存为data.dat文件。
(2)使用鼠标单击表格的某一单元格,则该格会突出显示,所在行为当前行。
3
单击工具栏上的“插入”按钮在当前行位置上插入一个新空行,单击“追加”按钮会在表格最后添加一个空行。使用“删除”按钮合一删除当前空行。 如下图所示:
(3)无论是空格还是已有数据的格,都可以对其中的数据进行直接编辑,对于学号、姓名和高考分数三列数据使用文本框进行编辑;对于出生日期使用DTPicker控件进行编辑;对于性别、民族、院系、专业和省份等五列数据使用组合框控件编辑。 例如,下图所示:
4
对数据进行编辑之后,单击“保存”按钮将编辑后的结果保存到data.dat 文件中。 (4)选择“查询”按钮,弹出图所示的“查询”对话框。在“查询”对话框中可以组合多种文件夹来查询感兴的数据。如图所示,选择“性别”和“院系”并在性别中选择“男”在院系中选择“机械工程学院”,表示查找所有机械工程学院男学生的信息。按“确定”按钮返回主窗口,所有满足条件的数据行一红色背景显示。
5
(5)在“查询”对话框中如图所示未选中的数据列表示该数据不加限制,该项后面用于输入详细信息的文本框和组合框是无效的。“学号”和“姓名”中可以输入完整的学号和姓名,也可以输入部分的学号和姓名。连续使用“查询”功能时,后一次的查询不会清除前一次查询的结果,二者会同时突出显示。如果在查询对话框中不指定任何条件会选择所有的数据行,如果单击了查询对话框中的“取消”按钮会取消所有数据行的突出显示。
(6)如果用户对数据进行了修改,关闭程序是弹出如图所示的消息框加以提示.
二、设计思路与总体方案
学生信息管理系统
登陆界面
保存
追加
主界面 查询界面
插入 删除 查询
2.1标准模块Module1 一、因为在整个过程中都涉及到学生信息的编辑,所以对于学生信息定义成全局级的自定义数据类型。同时民族、院系、专业、省份都是需要读入的,所以定义
6
为动态数组。
Public Type StudentInfo number As String * 8 Name As String * 8 Sex As Boolean Birth As Date Nation As Byte faculty As Byte subject As Byte Province As Byte Score As Single End Type
Public num As Integer Public student() As StudentInfo Public Modified As Boolean Public EditMode As Boolean
Public faculty() As String Public Province() As String Public Nation() As String Public subject() As String
Public conArr(9) As Control
另外由于保存过程中涉及到文件是否被修改,所以应该定义一个逻辑型变量Modified来标榜数据是否被修改,同时根据要求过程涉及到是否可以编辑,所以定义全局的逻辑型变量EditMode来标榜是否可以编辑。
定义了一系列的动态数组,需要将其重新定义,将文件中的民族,专业、院系、省份的具体内容读入动态数组中,同时在启动程序时需要加载数据,表格要显示学生信息,而关闭时需要保存数据,所以编写了OpenData、SaveData两个全局过程方便调用。并且采用读随机文件的方式进行文件的读写,根据上学期所学知识,随机文件的特点使得使用自定义类型对其进行操作是非常方便的。 Public Sub OpenData() Dim i As Integer Dim stu As StudentInfo num = 0 Erase student
7
If Dir(App.Path & \ Exit Sub End If
Open App.Path & \ num = LOF(1) / Len(stu) For i = 1 To num
ReDim Preserve student(i) Get #1, , student(i) Next Close #1 Modified = False End Sub
Public Sub SaveData() Dim i As Integer Dim stu As StudentInfo
If Dir(App.Path & \ Kill App.Path & \ End If
Open App.Path & \ For i = 1 To num Put #1, , student(i) Next Close #1 Modified = False End Sub
Public Sub OpenInfo() Dim i As Integer Dim n As Integer
8
If Dir(App.Path & \院系.txt\ i = 0
Open App.Path & \院系.txt\ Do While Not EOF(1) i = i + 1
ReDim Preserve faculty(i) Input #1, n, faculty(i) Loop Close End If
If Dir(App.Path & \民族.txt\ i = 0
Open App.Path & \民族.txt\ Do While Not EOF(1) i = i + 1
ReDim Preserve Nation(i) Input #1, n, Nation(i) Loop Close End If
If Dir(App.Path & \省份.txt\ i = 0
Open App.Path & \省份.txt\ Do While Not EOF(1) i = i + 1
ReDim Preserve Province(i) Input #1, n, Province(i) Loop Close End If
If Dir(App.Path & \专业.txt\ i = 0
Open App.Path & \专业.txt\ Do While Not EOF(1)
9
i = i + 1
ReDim Preserve subject(i) Input #1, n, subject(i) Loop Close End If End Sub
2.2窗体模块frmlogin
由于本窗体为自加窗体,visuai basic 程序中添加窗体中选择登陆窗体,microsoft已提供部分代码
Option Explicit
Public LoginSucceeded As Boolean Private Sub cmdCancel_Click() LoginSucceeded = False Me.Hide End Sub
Private Sub cmdOK_Click()
If IsNumeric(txtUserName.Text) = True And Len(txtUserName.Text) = 10 Then
If txtPassword = txtUserName.Text Then LoginSucceeded = True Me.Hide frmstudent.Show Else
MsgBox \无效的密码,请重试!\登录\ txtPassword.SetFocus SendKeys \ End If Else
MsgBox \对不起,你不是本校学生!\错误\End If End Sub
2.3 窗体主模块frmstudent 一.该窗体模块是本程序的主体,最上方是5个命令按钮控件,中间是MSFlexGrid
10
控件,最下方是协助编辑的三个文本框控件,一个DTPicker控件,5个下拉式组合框控件(根据提供的效果图进行设计)。下面是编辑窗体中除了5个命令按钮控件以外的主要程序的编写思路: 1.打开数据文件
2.加载显示信息的表格(包括设定表格的位置大小) 3.用表格显示数据文件中的信息
4.为各编辑控件赋值,同时因为控件较多,为了方便在各事件过程中对其进行编辑,使用对象型数组得到相应的控件
5.因为MSFlexGrid控件只能显示数据,并不支持用户直接进行编辑,编辑控件要编程才能实现。根据《课程设计》中介绍的方法,编辑MSFlexGrid控件的EnterCell和LeaveCell事件,使用户可以对表格中数据进行编辑。
6.由于一些事件过程不仅在一个事件中需要用到,在命令按钮控件等所表示的功能中也会用到所以对其进行单独编写,方便调用。另外因为一些功能需要编写的代码太长,对其单独编写,然后调用,我认为可以使程序更有调理,结构更优。 所以我对ShowAll、UpdateCell、ClearEdit、GetNew(分别用于展示信息,将编辑控件中的内容赋给单元格、清除所编辑的内容,再添加和插入过程中使用编辑控件得到新的值)
7. 对窗体关闭时的事件进行编辑
8.在结束时涉及到当表格里的数据被更改时需不需要保存的问题,所以对于编辑控件的change事件中,要加入modified值的判断 9.以下是我编写的代码的展示: Private Sub cbosex_Click() Modified = True End Sub
Private Sub cbonation_Click() Modified = True End Sub
Private Sub cbofaculty_Click() Modified = True End Sub
Private Sub cbosubject_Click() Modified = True End Sub
Private Sub cboprovince_Click() Modified = True End Sub
Private Sub DTPbirth_Change() Modified = True End Sub
11
Private Sub Form_Load() Dim i As Integer
Call OpenData Call OpenInfo
MSFstudent.Rows = num + 1 Call ShowAll
EditMode = True
If MSFstudent.Rows > 1 And MSFstudent.Cols > 1 Then txtnumber.Text = MSFstudent.TextMatrix(1, 1) End If
Set conArr(1) = txtnumber Set conArr(2) = txtname Set conArr(9) = txtscore Set conArr(3) = DTPbirth Set conArr(4) = cbosex Set conArr(5) = cbonation Set conArr(6) = cbofaculty Set conArr(7) = cbosubject Set conArr(8) = cboprovince conArr(4).AddItem \男\ conArr(4).AddItem \女\
For i = 1 To UBound(Nation) conArr(5).AddItem Nation(i) Next
For i = 1 To UBound(faculty) conArr(6).AddItem faculty(i) Next
For i = 1 To UBound(subject) conArr(7).AddItem subject(i) Next
For i = 1 To UBound(Province) conArr(8).AddItem Province(i) Next
Modified = False End Sub
Private Sub from_Resize()
12
MSFstudent.Height = Me.ScaleHeight - MSFstudent.Top MSFstudent.Width = Me.ScaleWidth End Sub
Private Sub form_Unload(Cancel As Integer) Dim i As Integer If Modified Then
i = MsgBox(\数据已被编辑,退出前是否保存?\vbExclamation + vbYesNoCancel)
Select Case i Case vbYes
Call SaveData Case vbCancel Cancel = 1 End Select End If End Sub
Private Sub MSFstudent_EnterCell() Dim i As Integer
If Not EditMode Then Exit Sub
If MSFstudent.MouseCol = 0 Or MSFstudent.MouseRow = 0 Then Exit Sub End If
Select Case MSFstudent.col Case 4 To 8
With conArr(MSFstudent.col)
.Top = MSFstudent.Top + MSFstudent.CellTop .Left = MSFstudent.Left + MSFstudent.CellLeft .Width = MSFstudent.CellWidth .Visible = True .SetFocus
Select Case MSFstudent.col Case 4
If student(MSFstudent.row).Sex Then .ListIndex = 0 Else
.ListIndex = 1 End If If Trim(MSFstudent.TextMatrix(MSFstudent.row,
13
MSFstudent.col)) = \ Case 5
.ListIndex = student(MSFstudent.row).Nation - 1 Case 6
.ListIndex = student(MSFstudent.row).faculty - 1 Case 7
.ListIndex = student(MSFstudent.row).subject - 1 Case 8
.ListIndex = student(MSFstudent.row).Province - 1 End Select End With
Case 3
With conArr(3)
.Top = MSFstudent.Top + MSFstudent.CellTop .Left = MSFstudent.Left + MSFstudent.CellLeft .Width = MSFstudent.CellWidth .Height = MSFstudent.CellHeight
If student(MSFstudent.row).Birth = #12:00:00 AM# Then .Value = Date Else
.Value = student(MSFstudent.row).Birth End If
.Visible = True .SetFocus End With
Case 1, 2, 9
With conArr(MSFstudent.col)
.Top = MSFstudent.Top + MSFstudent.CellTop .Left = MSFstudent.Left + MSFstudent.CellLeft .Width = MSFstudent.CellWidth .Height = MSFstudent.CellHeight .Text = MSFstudent.Text .Visible = True .SetFocus End With End Select End Sub
Private Sub MSFstudent_LeaveCell() If Not EditMode Then Exit Sub
14
Call UpdateCell(MSFstudent.row, MSFstudent.col) Call ClearEdit End Sub
Private Sub ShowAll() Dim i As Integer For i = 1 To num
MSFstudent.TextMatrix(i, 0) = i
MSFstudent.TextMatrix(i, 1) = student(i).number MSFstudent.TextMatrix(i, 2) = student(i).Name If student(i).Birth = #12:00:00 AM# Then MSFstudent.TextMatrix(i, 3) = \ Else
MSFstudent.TextMatrix(i, 3) = student(i).Birth End If
If student(i).Sex Then
MSFstudent.TextMatrix(i, 4) = \男\ Else
MSFstudent.TextMatrix(i, 4) = \女\ End If
If student(i).Nation > 0 Then
MSFstudent.TextMatrix(i, 5) = Nation(student(i).Nation) Else
MSFstudent.TextMatrix(i, 5) = \ End If
If student(i).faculty > 0 Then
MSFstudent.TextMatrix(i, 6) = faculty(student(i).faculty) Else
MSFstudent.TextMatrix(i, 6) = \ End If
If student(i).subject > 0 Then
MSFstudent.TextMatrix(i, 7) = subject(student(i).subject) Else
MSFstudent.TextMatrix(i, 7) = \ End If
If student(i).Province > 0 Then
MSFstudent.TextMatrix(i, 8) = Province(student(i).Province) Else
MSFstudent.TextMatrix(i, 8) = \ End If
15
MSFstudent.TextMatrix(i, 9) = student(i).Score Next End Sub
Private Sub ExitEdit() EditMode = False
Call UpdateCell(MSFstudent.row, MSFstudent.col) Call ClearEdit End Sub
Private Sub UpdateCell(row As Integer, col As Integer) Select Case col Case 1, 2, 9
MSFstudent.TextMatrix(row, col) = conArr(col).Text Case 3
If conArr(col).Value = Date Then
MSFstudent.TextMatrix(row, col) = \ Else
MSFstudent.TextMatrix(row, col) = conArr(col).Value End If
Case 4 To 8
MSFstudent.TextMatrix(row, col) = conArr(col).Text End Select
Select Case col Case 1
student(row).number = conArr(col).Text Case 2
student(row).Name = conArr(col).Text Case 3
If conArr(col).Value = Date Then
student(row).Birth = #12:00:00 AM# Else
student(row).Birth = conArr(col).Value End If Case 4
If conArr(col).ListIndex = 0 Then student(row).Sex = True Else
student(row).Sex = False End If
16
Case 5
student(row).Nation = conArr(col).ListIndex + 1 Case 6
student(row).faculty = conArr(col).ListIndex + 1 Case 7
student(row).subject = conArr(col).ListIndex + 1 Case 8
student(row).Province = conArr(col).ListIndex + 1 Case 9
student(row).Score = Val(conArr(col).Text) End Select End Sub
Private Sub ClearEdit() Dim i As Integer conArr(1).Text = \ conArr(2).Text = \ conArr(9).Text = \
conArr(3).Value = #12:00:00 AM# For i = 4 To 8
conArr(i).ListIndex = -1 Next
For i = 1 To 9
conArr(i).Visible = False Next End Sub
Private Sub GetNew() Dim c As Integer For c = 1 To 9
Select Case c Case 4 To 8
With conArr(c)
Select Case c Case 4
If student(MSFstudent.row).Sex Then .ListIndex = 0 Else
.ListIndex = 1 End If
If Trim(MSFstudent.TextMatrix(MSFstudent.row, c)) = \
17
Case 5
.ListIndex = student(MSFstudent.row).Nation - 1 Case 6
.ListIndex = student(MSFstudent.row).faculty - 1 Case 7
.ListIndex = student(MSFstudent.row).subject - 1 Case 8
.ListIndex = student(MSFstudent.row).Province - 1 End Select End With
Case 3
With conArr(3)
If student(MSFstudent.row).Birth = #12:00:00 AM# Then .Value = Date Else
.Value = student(MSFstudent.row).Birth End If End With
Case 1, 2, 9
With conArr(c)
.Text = MSFstudent.Text End With End Select Next End Sub
Private Sub txtnumber_Change() Modified = True End Sub
Private Sub txtname_Change() Modified = True
End Sub
Private Sub txtscore_Change() Modified = True
End Sub 二.编辑前4个命令按钮,在编写程序时主要就是功能与算法的匹配,编写调试,
18
基本实现功能要求。删除和插入由于会影响原有的数据的序号,所以编程时使用For Next控制结构进行编写。同时因为在编写过程中我事先编写了保存数据的savedata过程,所以保存按钮的单击事件比较简单,直接调用。追加,由于是在原有数据之后进行编辑的功能,所以也比较简单。 Private Sub cmdquery_Click() frmquery.Show End Sub
Private Sub cmdappend_Click() Call ExitEdit num = num + 1
ReDim Preserve student(num) MSFstudent.Rows = num + 1
MSFstudent.TextMatrix(num, 0) = Str(num) Call GetNew Modified = True EditMode = True End Sub
Private Sub cmddelete_Click() Dim n As Integer
Dim i As Integer, j As Integer n = MSFstudent.row Call ExitEdit
If n = 0 Then Exit Sub
If MSFstudent.Rows - MSFstudent.FixedRows <= 1 Then Exit Sub MSFstudent.RemoveItem n For i = n To num - 1
student(i) = student(i + 1)
MSFstudent.TextMatrix(i, 0) = Str(i) Next
MSFstudent.Rows = num num = num - 1 If num = 0 Then Erase student Else
ReDim Preserve student(num) End If
MsgBox MSFstudent.row & \
Call GetNew Modified = True EditMode = True End Sub
19
Private Sub cmdinsert_Click() Dim n As Integer
Dim i As Integer, j As Integer
Call ExitEdit
n = MSFstudent.row
MSFstudent.col = 0 MSFstudent.row = 0
If n = 0 Then
MSFstudent.AddItem 1 n = 1 Else
MSFstudent.AddItem n End If
num = num + 1
ReDim Preserve student(num) MSFstudent.Rows = num + 1
For i = num To n + 1 Step -1 student(i) = student(i - 1)
MSFstudent.TextMatrix(i, 0) = Str(i) For j = 1 To 9
MSFstudent.TextMatrix(i, j) = MSFstudent.TextMatrix(i - 1, j) Next Next
For i = 1 To 9
MSFstudent.TextMatrix(n, i) = \ Next
student(n).Birth = #12:00:00 AM# student(n).faculty = 0 student(n).subject = 0 student(n).Name = \ student(n).Nation = 0 student(n).number = \ student(n).Province = 0 student(n).Score = 0 student(n).Sex = False
MSFstudent.TextMatrix(num, 0) = Str(num) MSFstudent.row = n Modified = True
20
Call GetNew EditMode = True End Sub
Private Sub cmdsave_Click() MSFstudent.col = 0 MSFstudent.row = 0 Call SaveData End Sub
2.4窗体模块frmquery
该窗体由一个含有9个成员的复选框控件数组排列在窗体的最左边,4个文本框控件,4个下拉式组合框,2个DTPicker控件,一组单选框,2个命令按钮组成。 1. 加载事件过程中,对显示民族,院系,专业,省份信息的列表框添加相应的条目。
2. 编写复选框的Enabled事件,实现对该查询条件是否可以编辑的设定 3. 编辑确定按钮,即对条件进行详细编辑,实现查询功能 4. 编辑取消按钮
Private Sub chknumber_Click()
If chknumber.Value = 1 Then txtnumber.Enabled = True Else txtnumber.Enabled = False End Sub
Private Sub txtscore1_KeyPress(KeyAscii As Integer) If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0 End If End Sub
If chknumber.Value = 1 Then For i = 1 To num
If InStr(student(i).number, txtnumber.Text) = 0 Then a(i) = False Next End If
21
三、设计过程遇到的主要问题及解决方法
3.1题目要求启动时程序未在当前目录中找到data.dat文件,则显示没有数据行的空表,那么在写程序时怎么样才可以表示有没有data.dat的文件存在呢?书上没有找到,后来在网上查找了以下,运用dir函数可以实现这个要求。Dir函数返回一个String型的结果,用以表示一个文件名,目录名或文件夹名,利用
它的结果是否为空字符串,可以实现要求。 ~ 3.2在参数设置的模块中,我当时在其load的事件中编完了列表框的
ADDItem的方法,也检查代码,没有任何问题,但是该窗体就是无法显示出列表框的条目来。后来把把原先的frmstudent_load改成了form_load情况当即就解决了。因为对于窗体来说,无论其对象名是什么,其事件过程名总是”form_事件名”。但是对于各种控件来说,实践过程名格式是“对象名_事件名”。这是因为一个窗体模块中只能有一个窗体,却可以有大量的控件,必须以对象名加以区分。
3.3读入数据时,有一个学生人数的统计,否则不知道数组的上限,而data.dat文件却不好打开,不知道有多少学生,这个问题我自己没有想到可行的办法,请教了编程学的好的学长怎么处理这样的问题,他的经验是运用字符串函数LOF得到文件的总长度用len得到一条记录的长度,两个做比值得到学生数,虽然目前我不知道还有没有更好的方法,但是我认为这个方法很不错。
3.4一开始,对于MSFlexGrid这个表格控件不太会用,后来通过仔细阅读课程设计和在网上找大量资料,终于学会了这个控件的用法。
四、设计中尚存的不足分析
4.1如图可见,这一段本可使用控件数组大大简化这后面过程。一开始我也确实是如此设计。后来放弃了这一想法,采用了一般的步骤而变得更为费时费力,可以看到查询统计模块下的代码特别冗长。
Private Sub chkbirth_Click() If chkbirth.Value = 1 Then DTPbirth1.Enabled = True DTPbirth2.Enabled = True Else
DTPbirth1.Enabled = False DTPbirth2.Enabled = False End If End Sub
22
Private Sub chkfaculty_Click()
If chkfaculty.Value = 1 Then cbofaculty.Enabled = True Else cbofaculty.Enabled = False
End Sub
Private Sub chkname_Click()
If chkname.Value = 1 Then txtname.Enabled = True Else txtname.Enabled = False
End Sub
Private Sub chknation_Click()
If chknation.Value = 1 Then cbonation.Enabled = True cbonation.Enabled = False
End Sub
Private Sub chknumber_Click()
If chknumber.Value = 1 Then txtnumber.Enabled = True txtnumber.Enabled = False
End Sub
Private Sub chksubject_Click()
If chksubject.Value = 1 Then cbosubject.Enabled = True cbosubject.Enabled = False
End Sub
Private Sub chkprovince_Click()
If chkprovince.Value = 1 Then cboprovince.Enabled = True cboprovince.Enabled = False
End Sub
Private Sub chksex_Click() If chksex.Value = 1 Then optboy.Enabled = True optgirl.Enabled = True Else
23
Else Else Else Else optboy.Enabled = False optgirl.Enabled = False End If End Sub
Private Sub chkscore_Click() If chkscore.Value = 1 Then txtscore1.Enabled = True txtscore2.Enabled = True Else
txtscore1.Enabled = False txtscore2.Enabled = False End If End Sub
4.2作为编程者的角度看,需要的是考虑用户的感受。当我调试程序后,遇到过当输入的数据类型与设置的变量类型不统一时,会出现许多错误,为避免如此,必须添加显式转换语句避免错误,由于我对现实转换这一内容不太熟悉,导致程序出现以下错误,如图所示:
24
五、心得体会
这个程序从难度上讲只有三颗星而已,但我想说我确实摸索了很久,从界面的制作排版到代码的编写。由于计算机编程知识当初只学了些皮毛,很多次我在编程时不断调试却依然出现这样那样的毛病,可能是无意中拼写错误,但有些确实是因为不了解vb的某些较为冷僻的用法所致。这段时间,常会向同学请教,也自觉地去借了些书看看,基本上完成了要求,但是功能、界面都还不是很完善,
我会借助以后的时间继续去加工的,我需要的是学以致用。 ~ 编写EnterCell和LeaveCell还有UpDateCell事件过程时,因为本身就没怎么看懂MSFlexGrid控件这两个事件是如何和文本框等完成表格的编辑的,根本不知道除了把文本框等编辑控件移到单元格上之后该怎么办,甚至不知道要把当前单元格的内容赋给编辑控件,然后在写将编辑控件中的内容赋给单元格的程序,这些都是后来慢慢一遍一遍摸索,百度以后才知道的,更不用说在编写这些事件过程时要把下拉式组合框的,文本框的,DTP中的内容颠来倒去的赋来赋去。找函数,找对应的属性,找对应的方法都找的想要奔溃,每次不知道对不对,还要编程序,编了再运行,不行再调试,错了再试另外的,试过3次以后会很烦躁,真的不想再编了,根本编不出来。要么死皮赖脸去问同学,学姐学长,前辈,要么百度。无奈的不想再碰它,但是作业总要交,同时已经编了一部分,放弃太可惜。心情复杂,编程编的信心大受打击!岂是挫败能形容的啊 ~ 经过一月的课程设计, 我学到了很多东西:
①巩固和加深了对数据结构的理解,提高综合运用本课程所学知识的能力。 ②培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。
③过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。
④够按要求编写课程设计报告书,能正确阐述设计和实验结果,正确绘制系统和程序框图。
⑤通过课程设计,培养了我严肃认真的工作作风,逐步建立正确的生产观念、经济观念和全局观念。
25
课程设计是把我们所学的理论知识进行系统的总结并应用于实践的良好机会,有利于加强我们用知识理论来分析实际问题的能力,进而加强了我们对知识认识的实践度,巩固了我们的理论知识,深化了对知识的认识,并为走向社会打下一个良好的基础。
在这次课程设计中我遇到许多问题和麻烦,得到了老师的帮助和指导,才能够使得这次课程设计顺利的进行下去,另外,在程序调试过程中,也得到很多同学的帮助,给我及时指出错误,提出许多宝贵意见。在此对老师和同学们表示感谢!
我体会到了编写程序是个有条理的逻辑过程,首先必须有个大致的思路,整体的规划出来。然后再是分步地去具体完成,尤为重要的是需要投入相当一部分精力去精益求精,这样你的成果才不会是毛糙的。这就是一个月的课程设计所教会我的。
六、参考文献
1. 王栋,visual basic课程设计,北京,清华大学出版社 2. 王栋,visual basic程序设计实用教程,北京,清华大学出版社 3. 白康生,Visual Basic程序设计,北京,清华大学出版社 4. 宁爱军,Visual Basic程序设计教程,北京,人民邮电出版社 5. 楼玉萍,Visual Basic上机实践指导,浙江,浙江大学出版社 6.李良俊,visual basic程序设计语言,北京,科学出版社
7.白晓勇 余健,visual basic课程设计案例精编,北京,清华大学出版社 8. 仲维俊,visual basic6.0完全自学手册,北京,机械工业出版社
26
正在阅读:
一起向未来学生个人征文范文模板08-01
2018年高考英语江苏专用考前三个月文档:专题三 阅读理解 第三步 题型突破(六) Word版含答案09-02
2013届毕业典礼活动策划12-17
04 TD-LTE信令流程09-03
人教PEP版英语四年级上册Unit 1 导学案 105-09
厨师考核管理办法04-13
我是一棵小草作文400字07-12
同学聚会歌曲:20年的老同学聚会配曲02-12
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 管理系统
- 课程
- 图文
- 报告
- 学生
- 设计
- 信息
- 听中共一大代表李汉俊的后人讲故事
- 考生报考号(由招生单位填写)
- 煤气柜施工方案
- 2016年1月海淀高三上期末英语试题 - 图文
- 05040210 新闻采访与写作课程教学大纲(2016年)
- 学习《科研诚信和学术规范》感想
- 我国各地区政府信息公开制度比较研究(2则)
- 事业单位对下属企业财务监管的原则与做法探析
- 浅谈高职高专院校英语教学跨文化意识的培养
- 年产500台电梯生产线建设项目可行性研究报告正文
- 语文人教版高中选修系列 语言文字应用高考语文最容易用错的25个成语
- 中国贴标行业市场调查研究报告(目录) - 图文
- 神角劳动用工制度汇编
- SMCP性格测试和分析
- 2013考研数学三(真题及答案) - 详细解析word版
- Chinadaily - 新词新译 - S-W
- 运用鲁班BIM提升精细化管理水平-刘保石 - 图文
- 高三英语核心词汇复习第13、14课时
- XX0年资产评估师资产评估精选试题及答案二 来源
- 谜语和脑筋急转弯有答案