武汉理工大学华夏学院
课程设计报告书
课程名称:《可视化编程》课程设计
题 目: 学生信息管理系统
系 名: 信息工程系
专业班级: 软件1121
姓 名:
学 号: 102128
指导教师: 张玉蓉
2014 年 1 月 3 日
武汉理工大学华夏学院信息工程系
课程设计任务书
课程名称: 可视化编程课程设计 指导教师: 张玉蓉
班级名称: 软件1121 开课系、教研室: 软件与信息安全
一、课程设计目的与任务
可视化编程课程设计是《可视化程序设计》课程的后续实践课程,旨在通过一周的实践训练,加深学生对理论课程中可视化以及面向对象程序设计概念,原理和方法的理解,加强学生综合运用VB语言进行实际应用,包括界面编程,文件访问,网络编程和数据库编程的能力,进一步提高学生进行程序设计,分析问题和解决问题的能力。
学生将在指导老师的指导下,完成从需求分析,系统设计,编码到测试的全过程。
二、课程设计的内容与基本要求
本课程设计将设计和开发一个小型的VB桌面应用系统,具有注册,登录,信息查询,添加,更新和删除的功能。要求界面美观,简单实用,功能相对完善,系统流程合理,数据处理正确。
1 、《巧虎做家务》游戏的设计与开发:
(3)加入适当的语音提示,提高游戏的乐趣;
2、《巧虎逛大卖场》游戏的设计与开发:
3、《巧虎自行车比赛》游戏的设计与开发:
(4)赛道的可以用静态和动态2种方式生成:动态生成为加分点
(4)赛道的可以用静态和动态2种方式生成:动态生成为加分点
5、 《巧虎划船大冒险》游戏的设计与开发:
(4)河道可以用静态和动态2种方式生成:动态生成为加分点。
6、小型数据库管理系统的设计与开发:
(1)具有存储数据,新增数据,删除数据,更改数据和搜索查询数据等完善的数据处理功能。
(2)有登陆和退出界面。
(3)要求整体,要求界面美观,简单实用。
具体要完成的任务是:
三、课程设计步骤及时间进度和场地安排
本课程设计将安排在第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
编号:()字号《软件课程设计》报告班级:姓名学号:指导老师:中国矿业大学计算机科学与技术学院年月软件课程设计任务书专业年级:计算机…
华中科技大学电子科学与技术系课程设计报告(20--xx年度第学期)名称:软件课程设计题目:院系:班级:学号:学生姓名:指导教师:设…
软件工程课程设计报告海天一色网上书店软件工程课程设计个人报告题目网上书店学院名称信息科学与工程学院专业班级计算机092班报告人姓名…
软件课程设计实验报告个人报告课班成员学一需求分析1引言32预期功能33设计目标4二界面方案设计说明1拟选用的开发平台和工具介绍42…
软件开发课程设计报告题目职工信息管理系统设计院系专业班级学生姓名学号指导教师2013年9月2日至2013年9月15华中科技大学武昌…
课程设计题目个人收支管理难度:☆☆☆姓名:刘泽禄学号:913103860633随着社会生活步调的不断加快,人们越来越繁忙。也因此各…
南京理工大学能源与动力工程学院VB课程设计报告题目1贪吃蛇游戏题目2列车时刻查询指导老师张小兵学生姓名学号专业班级10083201…
专业实践课程设计报告班级姓名学号08计科一班学生信息管理系统1需求分析随着学校的规模不断扩大学生人数急剧增加有关学生的各种信息也成…
课程设计报告书课程设计名称VB程序设计报告书系部专业班级学生姓名XXX学号指导教师完成日期20xx年1月6日山东科技大学泰山科技学…
经济管理学院本科课程设计说明书面向对象课程设计学号姓名杨凯班级专业信息管理与信息系统系别管理系指导教师20xx年12月7日目录第1…
关于VB课程的认识通过几周对VB的学习,使我增加了对VB课程的了解和认识。首先了解到VB的特点,VB是在原来的Basic语言基础上…