学生学籍成绩管理系统(设计报告)

上传人:磨石 文档编号:53470071 上传时间:2022-02-10 格式:DOC 页数:33 大小:62.50KB
返回 下载 相关 举报
学生学籍成绩管理系统(设计报告)_第1页
第1页 / 共33页
学生学籍成绩管理系统(设计报告)_第2页
第2页 / 共33页
学生学籍成绩管理系统(设计报告)_第3页
第3页 / 共33页
点击查看更多>>
资源描述
软件工程课程设计一、前言学籍管理工作在正常的情况下需对大量的数据进行处理,它们包括,学生学籍信息录入、学生学籍修改、学生基本档案输入、学籍变动、学生成绩录入、学生成绩查询等。如果由人工去处理这些数据需要花费大量的时间、人力、物力。学籍管理系统,是在总结以上管理方法的基础上并结合用户的需求对学籍的各种数据进行了有针对性的开发,充分利用Visual Basic具有强大的数据库管理功能及在应用程序开发上高效、灵活的特点,创建了各个过程,目标设计、系统开发背景、开发和运行环境选择、系统功能分析、系统功能模块设计、数据库需求分析、数据库概念结构设计、数据库逻辑结构设计、数据库结构实现、各个功能模块的创建、系统的编译和发行等进行了详细描述。学籍管理系统设计突出了信息管理系统完整实用的开发方法,系统的最大特点是突出了实用性和实效性,紧密的结合了用户的使用要求,操作方便,有一人进行管理就可以完成大量的学籍管理工作。二、系统开发工具和数据库简介 结合本人学习期间所学的有关程序设计的语言为Visual Basic 6.0,因此,本系统软件将采用该语言进行设计开发。下面先介绍一下该工具的好处与特点。Visual Basic 6.0 概述1、Visual Basic 6.0 简介无论用户是一个Windows 编程新手,还是已经具有丰富的Windows程序设计经验的专业程序开发人员,利用Visual Basic 6.0提供的良好开发环境,均可以使你快速地完成所需设计任务。所谓Visual ,中文的意思是“可视化”,它提供了一种创建图形用户界面(GUI)的方法,利用这种方法,用户可不必书写复杂的描述界面元素外观和位置的程序代码,而只需将系统提供的对象放到屏幕上的适当位置,并通过属性窗口进行适当的设置或调整,就可以设计出一个优秀的应用程序界面。此外,用户除了可以使用单独的Visual Basic 6.0程序设计环境进行程序设计外。Visual Basic 6.0 程序设计系统还被包括在Excel Access 等众多Windows功能应用软件中,以供用户进行二次开发。目前在编制网页上使用较多的VBScript 脚本语言实际上是Visual Basic 语言的子集。因此,无论从哪方面讲,用Visual Basic 6.0系统开发软件都是一件非常合算的投资。2、Visual Basic 6.0 语言的特点不管你是编制一个小的应用程序,还是开发一套大型的专业系统软件,甚至是开发一个跨越Internet 的分布式应用系统软件,Visual Basic 6.0 都为用户提供了合适的工具。利用Visual Basic 6.0的数据访问特性,用户可创建数据库、前端应用程序、适用于大多数流行数据库格式的服务器组件等。利用ActiveX技术允许用户使用其他应用程序提供的功能,如Microsoft Word、Microsoft Excel,甚至可直接使用由Visual Basic 6.0 专业版和企业版创建的应用程序和对象。Visual Basic 的Internet 功能允许用户使用程序方便地通过Internet 访问文档和应用程序,甚至创建Internet应用程序。用Visual Basic 6.0用户创建的是一个真正的EXE文件,该文件可直接运行于操作系统(Windows98/2000/XP或Windows NT系统),完全脱离Visual Basic系统环境。并且,该文件可以自由发布,安装到单机或网络服务器上。此外,Visual Basic 6.0 还增加了一些新的功能:具体如下:增加了ADO数据对象,该数据访问技术是一个简单的数据模型,可更好地与其它Microsoft和非Microsoft技术集成。它还是一个通用接口,可用于访问本地或远程数据、连续和离散记录集、用户可访问的数据绑定接口和分层记录集。提供了数据环境设计器,其中提供了一种创建ADO对象的交互设计环境,数据环境可作为窗体或报表中所有要求数据对象的数据源,或者通过数据环境的方法和属性由等程序访问,数据环境设计器具有用户连接设计器的全部功能和附加特性,如拖放、分层、分组和合计等。数据报表,允许用户使用拖放方法利用任何记录集合快速创建报表。数据源,创建可绑定任何控件的数据源用户定义控件和类。SQL编辑器,允许用户增加新的存储过程至SQL服务器程序和Oracle数据库中,用户还可以使用编辑器编写触发器。增强的数据窗体向导,现在用户不仅可以构造不绑定至数据控件的代码窗体,而且可以使用ADO代码,该向导已经集成到应用程序向导、Chart向导和FlexGrid向导中。文件系统对象,Visual Basic 6.0 提供了改进的在文件系统中移动的程序集,并可创建文本文件和目录。DataGrid控件,该控件可帮助用户快速构造观察和编辑记录的程序,它也支持新的ADO数据控件。可视化数据库工具集成(企业版)。在Visual Basic 6.0 中用户可以可视地创建数据库和查询、SQL服务器程序、Oracle数据库表、使用拖放方法创建视图,以及自动改变列数据类型。3、Visual Basic 6.0 的版本目前Visual Basic 6.0有三种版本,各自满足不同的开发需要。其中:Visual Basic 6.0学习版使编程人员可轻松学习和设计一些基本的应用程序。该版本包括所有的内部控件,连同Grid、Tab和Data_Bound控件。Visual Basic 6.0专业版为专业编程人员提供了一套进行开发的功能完备的工具。该版本包括学习版的全部功能连同ActiveX控件,还包括Internet Application Designer(Internet报务器应用程序设计器)、Integrated Visual DatabaseTools(集成可视化数据库工具)、Data Environment (数据环境)、ActiveX污染Data Objects(数据对象,简称ADO)和Dynamic HTML Page Designer (动态HTML页面设计器)。Visual Basic 6.0企业版使得专业编程人员能够开发功能强大的组内分布式应用程序。该版本包括专业版的全部功能连同Back Office 工具,如SQL Server Microsoft Transaction Server 、Internet Information 、Visual SourceSafe、SNA Server。三、需求分析3.1 设计思想由于本系统是一个基于C/S的数据库的信息管理系统,所以第一步就是需要利用SQL Server 2000建立所需要的数据库,第二步就使用Visual Basic 6.0完成该系统客户端应用程序的开发。3.2 可行性分析可行性分析是系统分析阶段的第二项活动,它的主要目是进一步明确系统的目标、规模与功能,对系统开发背景、必要性和意义进行了调查分析并根据需要和可能提出开发系统的初步方案与计划。可行性分析是对系统进行全面、概要的分析。通过调查分析,本系统设计主要有以下三个可行性:3.2.1 操作可行性本系统操作简单,易于理解,只需通过简单指导,上手较快,系统管理员、教师以及学生均能进行操作,运行环境要求低。3.2.2 技术可行性本系统在Windows XP Server 开发环境下,利用Visual Basic 6.0开发工具,并使用SQL Server 2000作为数据库管理系统,来实现学生学籍管理系统的各种功能。SQL Server 2000属于主从时式的数据库服务器这也是主从式数据库服务器的特点,服务器本身重在数据的管理,为客户端应用程序提供一致的接口。当然也可以使用SQL Server 2005为数据库管理系统,开发工具也可以是它的更高版,这样可以提高系统的性能,降低它的局限性。3.2.3 经济可行性采用新的学生学籍管理系统可取代原系统的手工管理工作,减少人工开支,节省资金,并且可大大提高数据信息的取得,缩短数据信息处理时间,提高学生信息的利用率,使教学质量更进了一个台阶。3.3 功能需求按照系统开发业务分析要求和原则,在与系统管理人员的充分沟通,整理出学生学籍管理系统所需求的基本功能和用户界面的一些需求,这些需求将作为系统分析和逻辑设计的依据。3.3.1 基本功能需求能对学生的学籍及成绩进行基本管理,包括:学生基本信息和学科成绩的存储、输入、删除、修改、查询,以及升留级管理。学生基本信息应包括:学号、姓名、出生年份、籍贯、性别、专业、班级、家庭住址、本校住址、个人联系电话、家庭联系电话;成绩信息应包括:学号、课号、课名、成绩、上课时间、教师号。查询能够按照:学号、课号、班级、时间等进行查询。3.4 性能需求根据Visual Basic 6.0的运行需求以及系统的调试需求,至少需要满足以下的软硬件要求:开发工具:Visual Basic 6.0;操作系统:Windows2000/XP;数据库: SQL Server 2000;CPU: 2.4GHz以上;内存: 512以上;硬盘: 80GB以上;VGA显示器或更高;四、系统设计4.1系统设计思想1、采用现有的资源,先进的管理系统开发方案,充分利用学校现有的资源,减少开发中的时间和财力、物力、提高系统开发的水平和应用效果。2、系统就满足学校的需求,例如学生信息的录入、查询、更新等。学生录入与排名。3、系统就具备数据库维护功能,及时根据用户需求进行数据添加、删除、修改等操作。4.2系统设计分析 本系统适用于中小学校,其功能主要分为 成绩管理:用于对成绩的输入、修改、查询。 学籍管理:用于对学生学籍的录入与修改、查询。 帮助信息:用于对本系统的具体操作进行详解。本系统性能力求易于使用,具体有较高的扩展性和可维护性。4.3系统功能分析录入功能:为一般用户提供相应的录入功能,为超级用户提供对所有信息的录入功能。查询功能:为所有用户提供查询的功能,可查询允许范围内的所有信息。维护功能:为一般用户提供查询及相应的修改,删除功能,为超级用户提供对所有信息的修改删除功能。 帮助功能:能帮助初次使用者对本系统的应用及处理常见的问题。 退出功能:结束并关闭系统。4.4学生学籍系统的目标 节约资源,提高学籍信息的精确度 本系统能减少很多不必要的资源,不用象以前那样用冗余的纸张式的管理。大节省了学校能源。并且计算机的存储与快速查询功能大大提高了学籍管理的效率,并且还提高了学籍信息管理的精确度。方便快速操作,精减人员,节约开支方便快速的操作,可减少学籍信息管理的漏洞,又减少因工作的冗余出现的错误,并且操作非常简单,可减少许多不很必要的人员,这无论从物质上还是工作人员的工资上都为学校节约了开支。为学校增加了财富。4.5功能模块分解接口设计外部接口:用户一般通过终端进行操作,用户进入界面后进行相应的操作。硬件接口:赛扬133 、内存32兆以上PC机满足输入端条件。软件接口:Windows2000/NT或更高的操作系统。内部接口:内部接口(模块之间的接口)验证模块:启动系统时,便激活登陆口令界面;初始化模块:对系统进行初始化;系统功能模块:接收系统功能的相应消息,启动信息录入、信息查询、信息维护等模块。4.6各模块的具体分析:学生信息管理:主要用于学生的基本信息管理(如学号、姓名、性别、出生年月、联系地址等)。成绩管理:主要用于学生考试的成绩进行管理 4.7数据库设计4.7.1数据流图(略)4.7.2数据库分析用户需求具体有学籍管理系统提供保存、更新、查询、维护,这就需求数据库结构能充分满足各种信息的输入与输出,实现有组织地、动态地存储大量关联数据,方便用户访问系统中的数据,它与文件系统的重要区别是数据的充分共享,交叉访问,与应用程序的高度独立性。数据流图描述:本系统从总体上分为学生信息管理、学生信息浏览、成绩浏览和成绩管理等部分。每个模块有自己的作用。4.8数据库表设计学生基本信息表:xsxj.Mdb成绩信息表:xscj.Mdb4.9界面设计4.9.1主要窗体实现:学生学籍查询,成绩查询,学籍管理,成绩管理以及其他的窗口信息4.9.2学生的成绩窗口设计有主窗体直接进入成绩的查询模块。主要实现成绩的查询等功能。4.9.3学生学籍窗口设计有主窗体直接进入学生状况窗口模块。主要实现学生状况查询等功能。4.9.4学生学籍管理窗口设计有主窗体直接进入学生学籍管理窗口模块。主要实现学生学籍信息的查询、修改等功能。4.9.5学生成绩管理窗口设计有主窗体直接进入学生成绩修改窗口模块。主要实现学生成绩资料查询结果。五、详细设计及源程序1、模块module1.BasOption ExplicitDeclare Function SetWindowLong Lib user32 Alias SetWindowLongA (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongDeclare Function GetWindowLong Lib user32 Alias GetWindowLongA (ByVal hwnd As Long, ByVal nIndex As Long) As LongDeclare Function CallWindowProc Lib user32 Alias CallWindowProcA (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As LongPublic Const GWL_WNDPROC = (-4)Public Const WM_ENDSESSION = &H16Public Const WM_QUERYENDSESSION = &H11Public preWinProc As LongPublic Function Wndproc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Wndproc = CallWindowProc(preWinProc, hwnd, Msg, wParam, lParam) If (Msg = 132) Then Select Case Wndproc Case 10, 11, 12, 13, 14, 15, 16, 17: Wndproc = 0 Exit Function End Select End IfEnd Function2、主窗口form1.frmOption ExplicitPrivate Sub Command4_Click()Form6.ShowEnd SubPrivate Sub Command5_Click()Form4.ShowUnload MeEnd SubPrivate Sub Command6_Click()Form5.ShowUnload MeEnd SubPrivate Sub Form_Load() Dim ret As Long 记录原来的Window Procedure的位址 preWinProc = GetWindowLong(Me.hwnd, GWL_WNDPROC) 设定form的window Procedure到wndproc ret = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf Wndproc)End SubPrivate Sub Form_Unload2(Cancel As Integer) Dim ret As Long 取消Message的截取,而使之又只送往原来的Window Procedure ret = SetWindowLong(Me.hwnd, GWL_WNDPROC, preWinProc)End SubPrivate Sub Command1_Click()Form2.ShowUnload MeEnd SubPrivate Sub Command2_Click()Form3.ShowUnload MeEnd SubPrivate Sub Command3_Click()Dim yes As Stringyes = MsgBox(你要确定退出?, 32 + 1, 提示信息)If yes = 1 ThenUnload MeEnd IfEnd Sub3、学籍浏览窗口form2.frmOption ExplicitPrivate Sub Form_Load()Data1.DatabaseName = App.Path & xsxj.mdb Dim ret As Long 记录原来的Window Procedure的位址 preWinProc = GetWindowLong(Me.hwnd, GWL_WNDPROC) 设定form的window Procedure到wndproc ret = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf Wndproc)End SubPrivate Sub Form_Unload2(Cancel As Integer) Dim ret As Long 取消Message的截取,而使之又只送往原来的Window Procedure ret = SetWindowLong(Me.hwnd, GWL_WNDPROC, preWinProc)End SubPrivate Sub Command1_Click()Form1.ShowUnload MeEnd SubPrivate Sub Command2_Click()Data1.Recordset.MoveLastCommand4.Enabled = TrueCommand3.Enabled = FalseEnd SubPrivate Sub Command3_Click()Command4.Enabled = TrueData1.Recordset.MoveNextIf Data1.Recordset.EOF Then Data1.Recordset.MovePrevious Command3.Enabled = False End IfEnd SubPrivate Sub Command4_Click()Command3.Enabled = TrueData1.Recordset.MovePreviousIf Data1.Recordset.BOF Then Data1.Recordset.MoveFirst Command4.Enabled = False End IfEnd SubPrivate Sub Command5_Click()Data1.Recordset.MoveFirstCommand4.Enabled = FalseCommand3.Enabled = TrueEnd Sub4、成绩浏览窗口form3.frmOption ExplicitPrivate Sub Command2_Click()Data1.Recordset.MoveLastCommand4.Enabled = TrueCommand3.Enabled = FalseEnd SubPrivate Sub Command3_Click()Command4.Enabled = TrueData1.Recordset.MoveNextIf Data1.Recordset.EOF Then Data1.Recordset.MovePrevious Command3.Enabled = False End IfEnd SubPrivate Sub Command4_Click()Command3.Enabled = TrueData1.Recordset.MovePreviousIf Data1.Recordset.BOF Then Data1.Recordset.MoveFirst Command4.Enabled = False End IfEnd SubPrivate Sub Command5_Click()Data1.Recordset.MoveFirstCommand4.Enabled = FalseCommand3.Enabled = TrueEnd SubPrivate Sub Form_Load()Data1.DatabaseName = App.Path & xscj.mdb Dim ret As Long 记录原来的Window Procedure的位址 preWinProc = GetWindowLong(Me.hwnd, GWL_WNDPROC) 设定form的window Procedure到wndproc ret = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf Wndproc)End SubPrivate Sub Form_Unload2(Cancel As Integer) Dim ret As Long 取消Message的截取,而使之又只送往原来的Window Procedure ret = SetWindowLong(Me.hwnd, GWL_WNDPROC, preWinProc)End SubPrivate Sub Command1_Click()Form1.ShowUnload MeEnd Sub5、学籍管理窗口form4.frmOption ExplicitPrivate Sub Command1_Click()Form1.ShowUnload MeEnd SubPrivate Sub Command2_Click()Dim num As StringDim n As StringDim s As IntegerData1.Recordset.MoveFirstnum = InputBox(请输入要删除的学生学号(三位数), )Do While Not Data1.Recordset.EOF n = Data1.Recordset.Fields(学号) If num = n Then s = MsgBox(确定要删除吗?, vbQuestion + vbOKCancel, 确定删除) If s = 1 Then Data1.Recordset.Delete Data1.Recordset.MoveNext If Data1.Recordset.RecordCount 0 Then If Data1.Recordset.EOF Then Data1.Recordset.MoveLast End If End If End If Exit Do Else Data1.Recordset.MoveNext End IfLoopIf Data1.Recordset.EOF Then Data1.Recordset.MoveFirst MsgBox (查无此人)End IfEnd SubPrivate Sub Command3_Click()Dim n As StringData1.RefreshDo While Not Data1.Recordset.EOF n = Data1.Recordset.Fields(学号)If text1.Text = n Then MsgBox (已有学号) text1.Enabled = False text2.Enabled = False text3.Enabled = False text4.Enabled = False text5.Enabled = False text6.Enabled = False text7.Enabled = False text8.Enabled = False text9.Enabled = False Exit DoElse Data1.UpdateRecord Data1.Refresh Data1.Recordset.MoveLast text1.Enabled = False text2.Enabled = False text3.Enabled = False text4.Enabled = False text5.Enabled = False text6.Enabled = False text7.Enabled = False text8.Enabled = False text9.Enabled = FalseEnd IfLoopEnd SubPrivate Sub Command4_Click()Data1.RefreshData1.Recordset.AddNewtext1.Text = text2.Text = text3.Text = text4.Text = text5.Text = text6.Text = text7.Text = text8.Text = text9.Text = text1.Enabled = Truetext2.Enabled = Truetext3.Enabled = Truetext4.Enabled = Truetext5.Enabled = Truetext6.Enabled = Truetext7.Enabled = Truetext8.Enabled = Truetext9.Enabled = TrueEnd SubPrivate Sub Command5_Click()Dim num As StringDim n As Stringnum = InputBox(请输入三位数学号, 学号查询)Data1.RefreshDo While Not Data1.Recordset.EOF n = Data1.Recordset.Fields(学号) If n = num Then Exit Do Else Data1.Recordset.MoveNext End IfLoop If Data1.Recordset.EOF Then Data1.Recordset.MoveFirst MsgBox (查无此人) End If End SubPrivate Sub Command6_Click()Dim name As StringDim m As Stringname = InputBox(请输入学生姓名, 姓名查询)Data1.RefreshDo While Not Data1.Recordset.EOF m = Data1.Recordset.Fields(姓名) If m = name Then Exit Do Else Data1.Recordset.MoveNext End IfLoop If Data1.Recordset.EOF Then Data1.Recordset.MoveFirst MsgBox (查无此人) End IfEnd SubPrivate Sub Form_Load()Data1.DatabaseName = App.Path & xsxj.mdb Dim ret As Long 记录原来的Window Procedure的位址 preWinProc = GetWindowLong(Me.hwnd, GWL_WNDPROC) 设定form的window Procedure到wndproc ret = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf Wndproc)End SubPrivate Sub Form_Unload2(Cancel As Integer) Dim ret As Long 取消Message的截取,而使之又只送往原来的Window Procedure ret = SetWindowLong(Me.hwnd, GWL_WNDPROC, preWinProc)End Sub6、成绩管理窗口form5.frmOption ExplicitPrivate Sub Command1_Click()Form1.ShowUnload MeEnd SubPrivate Sub Command3_Click()Adodc1.ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & App.Path & xscj.mdb;Persist Security Info=False Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim sql As String Dim cnstr As String cn.CursorLocation = adUseClient cnstr = Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & App.Path & xscj.mdb;Persist Security Info=False cn.ConnectionString = cnstr cn.Open cnstr sql = select * from xscj rs.Open sql, cn, adOpenStatic, adLockOptimistic adOpenStatic或许用adOpenDynamicSet DataGrid1.DataSource = rs End SubPrivate Sub Command5_Click()Dim cn As New ADODB.ConnectionDim rs As New ADODB.Recordsetrs.CursorLocation = adUseClientcn.ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & App.Path & xscj.mdb;Persist Security Info=Falsecn.OpenIf Text1.Text = ThenMsgBox 请填写学号!, vbExclamation, 提示信息Exit SubEnd Ifrs.Open select * from xscj where 学号 = & Text1.Text & , cn, adOpenKeyset, adLockOptimisticIf rs.RecordCount = 0 ThenMsgBox 没有此学号!, vbExclamation, 提示信息End IfSet DataGrid1.DataSource = rsText1.Text = End SubPrivate Sub Command6_Click()Dim cn As New ADODB.ConnectionDim rs As New ADODB.Recordsetrs.CursorLocation = adUseClientcn.ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & App.Path & xscj.mdb;Persist Security Info=Falsecn.OpenIf Text2.Text = ThenMsgBox 请填写课号!, vbExclamation, 提示信息Exit SubEnd Ifrs.Open select * from xscj where 课号 = & Text2.Text & , cn, adOpenKeyset, adLockOptimisticIf rs.RecordCount = 0 ThenMsgBox 没有此课号!, vbExclamation, 提示信息End IfSet DataGrid1.DataSource = rsText2.Text = End SubPrivate Sub Form_Load()Adodc1.ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & App.Path & xscj.mdb;Persist Security Info=False Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim sql As String Dim cnstr As String cn.CursorLocation = adUseClient cnstr = Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & App.Path & xscj.mdb;Persist Security Info=False cn.ConnectionString = cnstr cn.Open cnstr sql = select * from xscj rs.Open sql, cn, adOpenStatic, adLockOptimistic adOpenStatic或许用adOpenDynamicSet DataGrid1.DataSource = rs Dim ret As Long 记录原来的Window Procedure的位址 preWinProc = GetWindowLong(Me.hwnd, GWL_WNDPROC) 设定form的window Procedure到wndproc ret = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf Wndproc)End SubPrivate Sub Form_Unload2(Cancel As Integer) Dim ret As Long 取消Message的截取,而使之又只送往原来的Window Procedure ret = SetWindowLong(Me.hwnd, GWL_WNDPROC, preWinProc)End SubPrivate Sub Command4_Click() DataGrid1.AllowUpdate = True DataGrid1.AllowAddNew = True End SubPrivate Sub Command2_Click() DataGrid1.AllowUpdate = False DataGrid1.AllowAddNew = False DataGrid1.AllowDelete = False End Sub7、帮助窗口form6.frmOption ExplicitPrivate Sub Form_Load() Dim ret As Long 记录原来的Window Procedure的位址 preWinProc = GetWindowLong(Me.hwnd, GWL_WNDPROC) 设定form的window Procedure到wndproc ret = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf Wndproc)End SubPrivate Sub Form_Unload2(Cancel As Integer) Dim ret As Long 取消Message的截取,而使之又只送往原来的Window Procedure ret = SetWindowLong(Me.hwnd, GWL_WNDPROC, preWinProc)End SubPrivate Sub Command1_Click()Unload MeEnd Sub六、设计小结经过设计和开发,学生学籍管理系统基本开发完毕。其功能基本符合用户需求,能够完成学生学籍的存储和成绩的查询以及修改等工作。对于数据的一致性的问题也通过程序进行了有效的解决。但是由于时间较短,所以该系统还有许多不尽如人意的地方,比如用户界面不够美观,部分功能设计比较简单,出错处理不够等多方面问题。这些都有待进一步改善。33 / 33文档可自由编辑打印
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!