软件专业的_vb课程设计报告

武汉理工大学华夏学

课程设计报告书

课程名称:《可视化编程》课程设计    

         学生信息管理系统   

          名:        信息工程系        

专业班级:         软件1121      

姓    名                                              

    号:       102128             

指导教师:        张玉蓉            

 2014 1 3


武汉理工大学华夏学院信息工程系

课程名称: 可视化编程课程设计    指导教师:  张玉蓉              

班级名称: 软件1121    开课系、教研室:  软件与信息安全   

一、课程设计目的与任务

可视化编程课程设计是《可视化程序设计》课程的后续实践课程,旨在通过一周的实践训练,加深学生对理论课程中可视化以及面向对象程序设计概念,原理和方法的理解,加强学生综合运用VB语言进行实际应用,包括界面编程,文件访问,网络编程和数据库编程的能力,进一步提高学生进行程序设计,分析问题和解决问题的能力。

学生将在指导老师的指导下,完成从需求分析,系统设计,编码到测试的全过程。

二、课程设计的内容与基本要求

本课程设计将设计和开发一个小型的VB桌面应用系统,具有注册,登录,信息查询,添加,更新和删除的功能。要求界面美观,简单实用,功能相对完善,系统流程合理,数据处理正确。

1 、《巧虎做家务》游戏的设计与开发:

      (1)利用鼠标完成物品的移动;

(2)适量的动画设计,譬如亮闪闪的星星,重点区域的提示;

(3)加入适当的语音提示,提高游戏的乐趣;

2、《巧虎逛大卖场》游戏的设计与开发:

(1)利用鼠标点击和拖动完成物品的移动;

(2)适量的动画设计,譬如亮闪闪的星星,重点区域的提示,此题对动画的要求略高;

(3)加入适当的语音提示,提高游戏的乐趣;

3、《巧虎自行车比赛》游戏的设计与开发:

(1)利用键盘的上下左右键完成自行车的前进后退以及左右移动;

(2)适量的动画设计,譬如亮闪闪的星星,重点区域的提示;

(3)加入适当的语音提示,提高游戏的乐趣;

(4)赛道的可以用静态和动态2种方式生成:动态生成为加分点

4、《巧虎小马快快跑》游戏的设计与开发:

(1)利用鼠标完成小马的障碍跳跃和指定动作;

(2)适量的动画设计,譬如亮闪闪的星星,重点区域的提示;

(3)加入适当的语音提示,提高游戏的乐趣;

(4)赛道的可以用静态和动态2种方式生成:动态生成为加分点

5、 《巧虎划船大冒险》游戏的设计与开发:

(1)利用键盘的上下键完成游船的左右移动;

(2)适量的动画设计,譬如亮闪闪的星星,重点区域的提示,此题对动画的要求略高;

(3)加入适当的语音提示,提高游戏的乐趣;

(4)河道可以用静态和动态2种方式生成:动态生成为加分点。

6、小型数据库管理系统的设计与开发:

  (1)具有存储数据,新增数据,删除数据,更改数据和搜索查询数据等完善的数据处理功能。

  (2)有登陆和退出界面。

  (3)要求整体,要求界面美观,简单实用。

  具体要完成的任务是:

   A.利用VB完成界面设计和代码设计,并能够演示说明。

     B. 写出规范的课程设计报告书;

三、课程设计步骤及时间进度和场地安排

本课程设计将安排在第18周, 教育技术中心214。具体安排如下:

第一天       下发任务书,学生查阅资料

第二天       系统设计和原型开发

第三,四天 系统功能实现

第五天 系统调试 测试 打包和验收

四、课程设计考核及评分标准

课程设计考核将综合考虑学生考勤和参与度,系统设计方案正确性,系统设计和开发效果以及课程设计报告书的质量。具体评分标准如下:

设置六个评分点

(1)设计方案正确,具有可行性、创新性;              25分

(2)系统开发效果较好;                              25分

(3)态度认真、刻苦钻研、遵守纪律;                  10分

(4)设计报告规范、课程设计报告质量高、参考文献充分    20分

(5)课程设计答辩概念清晰,内容正确                   10分

(6)课程设计期间的课堂考勤、答疑与统筹考虑。        10分

   按上述六项分别记分后求和,总分按五级记分法记载最后成绩。

优秀(100~90分),良好(80~89分),中等(70~79分),及格(60~69分),

不及格(0~59分)

目录

一、设计题目及要求... - 4 -

1.1问题的描述及要求... - 4 -

1.2 实习目的... - 4 -

二、系统流程图分析:... - 5 -

2.1业务流程分析... - 5 -

2.2 数据流程分析:... - 5 -

三、相关系统设计:... - 6 -

四、程序的相关界面运行... - 8 -

4.1登陆界面设计... - 8 -

4.2主窗体设计... - 9 -

4.3学生注册页面... - 11 -

五、总结体会:... - 15 -

七、参考文献... - 16 -

一、设计题目及要求

1.1问题的描述及要求

理解系统开发的必要步骤,绘制流程图、根据流程图编写程序、并自主进行必要的测试与维护。最后形成规范的设计报告。

学生成绩管理系统主要提供方便高效的管理功能,该实现以下一些基本功能:

 1.系统管理模块:维护系统的正常运行和安全性设置,包括添加用户、修改密码、删除用户等等。

2.学院信息模块:实现对学校院系、专业、班级操作。包括:添加、修改、删除院系、专业、班级等信息。这三个功能模块各自独立,完成学校的全部班级的管理。

3.学生学籍管理模块:实现对学生的个人信息的管理工作,包括学籍添加、 学籍查询、学籍修改等功能,从而方便学校管理部门对学校的基本情况的快速查询和了解。

4.课程管理模块:该模块对各个班级的课程进行设置,并可在其中设置各门 课程的教材选用情况,方便了学校教材管理部门和教务处的教学管理人员的工作。该模块包括基本课程设置和班级课程设置两个模块。

5.成绩管理模块:检验学生学习情况的一个主要手段,本模块包括考试类型 设置,共有期中考试和期未考试两种类型,还设置了成绩添加、成绩查询、成绩浏览、成绩修改等功能模块。

6.退出模块:此模块完成程序的退出。

 该程序界面友好,功能强大,适合实际应用。

1.2 实习目的

Visual Basic 是一个强有力的系统开发软件之一,以其实用、方便、快捷、开发周期短,越来越被广大编程人员所青睐。VB更容易上手,进而提高软件开发的效率。

通过实际设计,掌握VB应用程序开发软件的设计方法,理解软件工程思想。本次设计的主要目的是提高学生综合分析问题和解决实际问题的能力,为将来走上工作岗位打下一个良好的基础。学生应通过接触客观实际,了解和认识所学的专业知识,掌握所学知识在客观实际中的应用,并能亲自动手完成相关题目设计。把所学的理论知识与实际能力紧密的结合在一起。

二、系统流程图分析:

2.1业务流程分析

2.2 数据流程分析:

普通用户(学生):提供查询(需登录,仅显示登录用户信息)

中等用户(教师):提供增删改查(需登录,只可操作成绩表,并且教师工号对自己对应的成绩)

管理员(教务处):提供增删改查(可对学生,教师,成绩等操作)

普通用户:登录账户为学生学号

中级用户:登录账号为教师工号,密码自定义,可修改

管理员:登录账号为特定,密码可修改,可增加特殊账号

三、相关系统设计:

公共模块:

解决登陆用户信息以及数据库标志等公共信息,所以定义通用变量

Public gUserName As String          '保存用户名称

Public gTid As String               '保存教师信息

Public gStuID As String             '保存学生登录信息

Public flag As Integer              '添加和修改的标志

Public gSQL As String               '保存SQL语句

Public kqsql2 As String             '保存查询其他考勤结果SQL语句

Public ArecordID As Integer

Public LrecordID As Integer

Public orecordID As Integer

Public ErecordID As Integer

Public iflag As Integer             '数据库是否打开标志

数据库连接选用ADODB连接方式,首先先编写一公共模块,用于存放数据库访问类。

Public Function TransactSQL(ByVal sql As String) As ADODB.Recordset

Dim con As ADODB.Connection

Dim rs As ADODB.Recordset

Dim strConnection As String

Dim strArray() As String

Set con = New ADODB.Connection

Set rs = New ADODB.Recordset

On Error GoTo TransactSQL_Error

    strConnection = "Provider=Microsoft.jet.oledb.4.0;Data Source=" & App.Path & "\DB\StuData.mdb"

    strArray = Split(sql)

    con.Open strConnection

    If StrComp(UCase$(strArray(0)), "select", vbTextCompare) = 0 Then

        rs.Open Trim$(sql), con, adOpenKeyset, adLockOptimistic

        Set TransactSQL = rs

        iflag = 1

    Else

        con.Execute sql

        iflag = 1

    End If

TransactSQL_Exit:

    Set rs = Nothing

    Set con = Nothing

    Exit Function

TransactSQL_Error:

    MsgBox "查询错误:" & Err.Description

    iflag = 2

    Resume TransactSQL_Exit

End Function

解决关闭窗口后程序任在后台运行类:

Public Sub Shutdown(Optional ByVal Force As Boolean = False)

Dim I As Long

On Error Resume Next

   For I = Forms.Count - 1 To 0 Step -1

      If Not Force Then

         If Forms.Count > I Then

         Exit Sub

         End If

      End If

   Next I

If Force Or (Forms.Count = 0) Then Close

If Force Or (Forms.Count > 0) Then End

End Sub

识别tab键

Public Sub TabToEnter(Key As Integer)

    If Key = 13 Then

    SendKeys "{TAB}"

End If

End Sub

四、程序的相关界面运行

4.1登陆界面设计

由于有三类用户同时登陆

其中,学生输入学号登陆,教师登陆由教工号于密码登陆,管理员由账号密码登陆。

代码如下:

Private Sub cmdOK_Click()

    Dim sql As String

    Dim rs As ADODB.Recordset

    If Trim(UserName.Text = "") Then

        MsgBox "没有输入用户名,请重新输入!", vbOKOnly + vbExclamation, "警告"

        UserName.SetFocus

    Else

        sql = "select * from Administrator where adName='" & UserName.Text & "'"

        Set rs = TransactSQL(sql)

        If iflag = 1 Then

            If rs.EOF = True Then

                MsgBox "没有这个用户,请重新输入!", vbOKOnly + vbExclamation, "警告"

                UserName.SetFocus

            Else

                If Trim(rs.Fields(2)) = Trim(adPassWord.Text) Then

                    rs.Close

                    Me.Hide

                    gUserName = Trim(UserName.Text)         '记录用户

                    adminFrm.Show

                    Unload Me

                Else

                    MsgBox "密码不正确,请重新输入!", vbOKOnly + vbExclamation, "警告"

                    adPassWord.SetFocus

                    adPassWord.Text = ""

                End If

            End If

         Else

            Unload Me

         End If

    End If

End Sub

4.2主窗体设计

系统选项中提供管理员注册,修改,删除功能

其中,注册界面代码如下:

代码:

Private Sub cmdOK_Click()

    Dim sql As String

    Dim rs As ADODB.Recordset

    If Trim(adName.Text) = "" Then

        MsgBox "请输入用户名称", vbOKOnly + vbExclamation, "警告"

        Exit Sub

        adName.SetFocus

    Else

        sql = "select * from Administrator where adName= '" & adName.Text & "'"

        Set rs = TransactSQL(sql)

     '判断用户名是否存在

        If rs.EOF = False Then

            MsgBox "这个用户已存在,请重新输入!", vbOKOnly + vbExclamation, "警告"

            adName.SetFocus

            adName.Text = ""

            passW1.Text = ""

            passW2.Text = ""

            Exit Sub

        Else

            If Trim(passW1.Text) = "" Then

                MsgBox "请输入密码", vbOKOnly + vbExclamation, "警告"

                passW1.SetFocus

                Exit Sub

            ElseIf Trim(passW2.Text) = "" Then

                MsgBox "请再次输入密码!", vbOKOnly + vbExclamation, "警告"

                passW2.SetFocus

                Exit Sub

            ElseIf Trim(passW1.Text) <> Trim(passW2.Text) Then

                MsgBox "两次输入不一致,请重新输入", vbOKOnly + vbExclamation, "警告"

                passW2.Text = ""

                passW2.SetFocus

                Exit Sub

            Else

                                              sql = " insert into Administrator ( adID,adName,adPassword,adDepart )values('" & id.Text & "','" & adName.Text & "','" & passW1.Text & "','" & Depart.Text & "')"

                Call TransactSQL(sql)

                MsgBox "注册成功!", vbOKOnly + vbExclamation, "添加结果"

                Call init

            End If

        End If

    End If

End Sub

4.3学生注册页面

优化功能:

为用户提供便捷的操作,以及在目标中提到的要求,在学生注册系统中加入了一些便捷操作:

1,      由于没个学生由于院系,专业,班级不同学号有所不同所以学号由系统自动生成,以减少人工干预,降低系统出错率。

Private Sub cmdID_Click()

    Dim sql As String

    Dim rs As New ADODB.Recordset

    Dim endID As String

    Dim tempID As String

    Dim eID As String

    Dim rsa As String

   

   ' Dim faculty, special, class As String

  

 

  

 

    If facultyID = "" Then

                MsgBox "请输入院系!", vbOKOnly + vbExclamation, "警告"

                faculty.SetFocus

                Exit Sub

     ElseIf specialID = "" Then

                MsgBox "请输入专业!", vbOKOnly + vbExclamation, "警告"

                special.SetFocus

                Exit Sub

               

     ElseIf classID = "" Then

                MsgBox "请输入班级!", vbOKOnly + vbExclamation, "警告"

                class.SetFocus

                Exit Sub

     Else

        enterTime = Mid(entTime.Value, 1, 4)

       

        sql = "select id from student where id and fID='" & facultyID & "' and speID='" & specialID & "' and cID='" & classID & "' order by id desc"

       

         Set rs = TransactSQL(sql)

          

             eID = rs(0)

             eID = Right(eID, 2) + 1

           ' native.Text = classID

            'native.Text = sql

      

        endID = Right(Format(1000 + eID), 2)

       ' rs.Close

       

        tempID = enterTime & facultyID & specialID & classID & endID

        id.Text = tempID

     End If

   

End Sub

2,      院系,专业,班级都从数据库中提取,在学生表中只存储编号代码。

    Dim sql As String

    Dim rs As ADODB.Recordset

    sql = "select * from special where sName='" & special.Text & "'

    Set rs = TransactSQL(sql)

    classID = rs(0)

    rs.Close

 

3,      由于院系,专业,班级有包含关系所以在这里combobox控件加入代码,实现选择院系后所包含的专业自动加入队列。

Private Sub faculty_click()

    Dim sql As String

    Dim rs As ADODB.Recordset

    '  Dim fID As String

    Dim s As String

    special.Clear      '选定院系后刷新获得院系所含专业

    specialID = ""

    class.Clear

    classID = ""

    sql = "select * from faculty where fName='" & faculty.Text & "'

    Set rs = TransactSQL(sql)

    facultyID = rs(0)

   ' rs.Close

    sql = "select * from special where sfID='" & facultyID & "'"

    Set rs = TransactSQL(sql)

    Do While Not rs.EOF

        s = rs(1)

        special.AddItem (s)

        rs.MoveNext

    Loop

    rs.Close

End Sub

在窗口加载时得将院系信息加入到combobox控件队列,实现代码如下:

Private Sub Form_Load()

    Dim sql As String

    Dim rs As ADODB.Recordset

    Dim f As String

    sql = "select * from faculty where fName "

    Set rs = TransactSQL(sql)

    Do While Not rs.EOF

        f = rs(1)

        fID.AddItem (f)

        rs.MoveNext

    Loop

    rs.Close

End Sub

在选取院系信息后要将院系所包含的专业信息加入到队列,实现代码如下:

Private Sub fID_Click()

    Dim sql As String

    Dim rs As ADODB.Recordset

    Dim s As String

    sID.Clear     '选定院系后刷新获得院系所含专业

    sql = "select * from faculty where fName='" & fID.Text & "' "

    Set rs = TransactSQL(sql)

    facID = rs(0)

   ' rs.Close

    sql = "select * from special where sfID='" & facID & "'"

    Set rs = TransactSQL(sql)

    Do While Not rs.EOF

        s = rs(1)

        sID.AddItem (s)

        rs.MoveNext

    Loop

    rs.Close

End Sub

由于班级编号在同一专业不能重复,所以编号由系统自动生成。

当选定院系,专业后系统将从所数据库获得选定院系,专业现存的班级编号,按倒序排列后获得最后的编码,由系统自动加1显示在控件上。实现代码如下:

Private Sub init()

    Dim tempID As String

    Dim sql As String

    Dim rs As ADODB.Recordset

    Dim num As Integer

    sql = "select cID from class where fID='" & facID & "' and sID='" & speID & "' order by cID desc"

    Set rs = TransactSQL(sql)

    num = rs(0)

    num = num + 1 + 0

    rs.Close

    cID.Text = num

End Sub

其中参数facID,speID在选取时记录如以下代码:

Private Sub sID_Click()

    Dim sql As String

    Dim rs As ADODB.Recordset

    sql = "select * from special where sfID='" & facID & "'"

    Set rs = TransactSQL(sql)

         speID = rs(0) rs.Close  Call init  End Sub

五、总结体会:

时间过得真快,转眼间,一周的课程设计生活已悄然过去了,课程设计期间,让我学到了很多东西,不仅使我在理论上对 VB 程序和SQL 设计有了全新的认识,在实践能力上也得到了提高,真正地做到了学以致用,更学到了很多做人的道理,对我来说受益非浅。亲身感受到理论与实际的相结合,让我大开眼界。这次课程设计对于我以后学习、找工作也真是受益菲浅,在短短的两周中,相信这些宝贵的经验会成为我今后成功的重要的基石,对程序设计有了理性的认识和理解。在之前,程序设计对我来说是比较抽象的,不知道一个完整的程序要怎么完成。 这次我做的项目是学生信息管理系统,其中包含了登陆、学生信息管理,添加管理员等几个部分。在刚开始的时候,做的 只是几个简单的界面,觉得其实还算比较简单的,到第三天,基本部分的代码都编写出来了,但是调试的时候出现了很多问题。而且,有时候由于考虑不周以及粗心的缘故,代码方面也有很大的漏洞。

在本次的课程设计开发过程中,由于本人是初次开发软件,在知识、经验方面都存在着不足。因此,该系统必然会存在一些缺陷和不足。因为对学生管理的整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求。虽然网络在学生管理系统中的应用不是很多,但是未来的发展方向,在本次开发过程由于硬件的限制,未能实现网络功能,因此在以后的系统更新过程中可能会造成一些不必要的数据损失。通过开发这个系统,我掌握了项目的基本开发过程,了解了的基本知识巩固 了我对 Visual Basic 的学习,但在这次设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统的思维方法,以及与同学们之间相互帮助的精神。本程序的编写,有很多不足的地方,可能有些功能不太全面也不太完善,但我觉得自己是认认真真的做了,而且从中学到了很多,以 后,我要把自己欠缺的知识点补习好,而且要学会举一反三,融会贯 通,最重要的是改掉粗心马虎、考虑不周的习惯。我想我以后会将此 程序完善好,争取能够运用到生活中去。 再次感谢老师的耐心指导!

在编程的过程中,我体会到编程是十分辛苦的。在课程设计这一段时间里,我每天的生活基本是在不断的调试程序和修改代码中完成的。有时,这种生活令人感到乏味和疲倦,但是在这种近似枯燥的生活中,我的编程水平有了一定程度的提高,这是课程设计中我最大的收获。以前学习计算机语言,总是静不下心来,不能认真的看书。这次课程设计,为了顺利的完成编程工作,我认真的学习了VB语言,并有了一定的心得体会。所以在以后的学习中,自己全身心的投入,这样学习才会有效率,才会有效果。

课程设计已经结束了, Visual Basic作为一门当代大学生学习普遍学习的必修课,我们更有理由去学好Visual Basic。这对我们将来的学习和工作很重要,小到个人,达到工作、社会我们都有可能用到Visual Basic,因此学好这门课的程序设计是非常有必要,这次课程设计带给自己很多体会,在以后的学习中要不断总结,不断改进,使自己的成绩有新的提高。

七、参考文献

[1] 萨师煊 王珊。数据库系统概论。第三版。北京:高等教育出版社,2000。

[2]周霭如、官士鸿、林伟健。Visual Basic程序设计。北京:电子工业出版社,2003。1。

[3]尹贵祥。 Visual Basic6。0程序设计案例教程。 。北京:中国铁道出版社,2005。1

[4] (美) Stephen R。Schach。软件工程。北京: 机械工业出版社,1999。9

相关推荐