学生学籍成绩管理系统(设计报告)_第1页
学生学籍成绩管理系统(设计报告)_第2页
学生学籍成绩管理系统(设计报告)_第3页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程课程设计一、前言学籍管理工作在正常的情况下需对大量的数据进行处理,它们包括,学生学籍信息录入、学生学籍修改、学生基本档案输入、学籍变动、学生成绩录入、学生成绩查询等。如果由人工去处理这些数据需要花费大量的时间、人力、物力。学籍管理系统,是在总结以上管理方法的基础上并结合用户的需求对学籍的各种VisualBasic具有强大的数据库管理功能及在应用程序开发上高效、灵活的特点,创建了各个过程,目标设计、系统开发背数据库概念结构设计、数据库逻辑结构设计、数据库结构实现、各个功能模块的创建、系统的编译和发行等进行了详细描述。学籍管理系统设计突出了信息管理系统完整实用的开发方法,系统的最大特点是突出了实用性和实效性,紧密的结合了用户的使用要求,操作方便,有一人进行管理就可以完成大量的学籍管理工作。二、系统开发工具和数据库简介结合本人学习期间所学的有关程序设计的语言为VisualBasic6.0,因此,本系统软件将采用该语言进行设计开发。下面先介绍一下该工具的好处与特点。VisualBasic6.0概述1、VisualBasic6.0简介无论用户是一个WindowsWindows程序设计经验的专业程序开发人员,利用VisualBasic6.0你快速地完成所需设计任务。所谓Visual,中文的意思是“可视化界面元素外观和位置的程序代码,而只需将系统提供的对象放到屏幕上的适当位置,并通过属性窗口进行适当的设置或调整,就可以设计出一个优秀的应用程序界面。此外,用户除了可以使用单独的VisualBasic6.0程序设计环境进行程序设VisualBasic6.0程序设计系统还被包括在ExcelAccess等众多Windows功能应用软件中,以供用户进行二次开发。目前在编制网页上使用较多的VBScript脚本语言实际上是VisualBasicVisualBasic6.0系统开发软件都是一件非常合算的投资。2、VisualBasic6.0语言的特点不管你是编制一个小的应用程序,还是开发一套大型的专业系统软件,甚至是开发一个跨越Internet的分布式应用系统软件,VisualBasic6.0都为用户提供了合适的工具。利用VisualBasic6.0的数据访问特性,用户可创建数据库、前端ActiveX技术允许用户使用其他应用程序提供的功能,如MicrosoftWord、MicrosoftExcel,甚至可直接使用由VisualBasic6.0VisualBasic的Internet功能允许用户使用程序方便地通过Internet访问文档和应用程InternetVisualBasic6.0用户创建的是一个真正的EXE(Windows98/2000/XP或WindowsNT系统VisualBasic系统环境。并且,该文件可以自由发布,安装到单机或网络服务器上。此外,VisualBasic6.0还增加了一些新的功能:具体如下:①增加了ADOMicrosoftMicrosoft地或远程数据、连续和离散记录集、用户可访问的数据绑定接口和分层记录集。②提供了数据环境设计器,其中提供了一种创建ADO对象的交互设计环境,数据环境可作为窗体或报表中所有要求数据对象的数据源,或者通过数据环境的方法和属性由等程序访问,数据环境设计器具有用户连接设计器的全部功能和附加特性,如拖放、分层、分组和合计等。③数据报表,允许用户使用拖放方法利用任何记录集合快速创建报表。④数据源,创建可绑定任何控件的数据源用户定义控件和类。⑤SQLSQL服务器程序和Oracle库中,用户还可以使用编辑器编写触发器。⑥增强的数据窗体向导,现在用户不仅可以构造不绑定至数据控件的代码窗体,而且可以使用ADO代码,该向导已经集成到应用程序向导、Chart向导和FlexGrid向导中。Basic6.0并可创建文本文件和目录。⑧DataGridADO数据控件。(企业版VisualBasic6.0中用户可以可视地创SQLOracle以及自动改变列数据类型。3、VisualBasic6.0的版本目前VisualBasic6.0有三种版本,各自满足不同的开发需要。其中:①VisualBasic6.0该版本包括所有的内部控件,连同Grid、Tab和Data_Bound控件。②VisualBasic6.0专业版为专业编程人员提供了一套进行开发的功能完备的ActiveXInternetApplicationDesigner(Internet报务器应用程序设计器IntegratedVisual集成可视化数据库工具DataEnvironment)ActiveXData数DynamicHTMLPageDesigner(动态HTML页面设计器③VisualBasic6.0企业版使得专业编程人员能够开发功能强大的组内分布式BackOfficeSQLServerMicrosoftTransactionServerInternetInformationVisualSNA三、需求分析设计思想C/SSQLServer2000VisualBasic6.0完成该系统客户端应用程序的开发。可行性分析可行性分析是系统分析阶段的第二项活动,它的主要目是进一步明确系统的目标、规模与功能,对系统开发背景、必要性和意义进行了调查分析并根据需要和可能提出开发系统的初步方案与计划。可行性分析是对系统进行全面、概要的分析。通过调查分析,本系统设计主要有以下三个可行性:操作可行性本系统操作简单,易于理解,只需通过简单指导,上手较快,系统管理员、教师以及学生均能进行操作,运行环境要求低。技术可行性本系统在WindowsXPServer开发环境下,利用VisualBasic6.0开发工具,SQLServer2000能。SQLServer2000属于主从时式的数据库服务器这也是主从式数据库服务器的特点,服务器本身重在数据的管理,为客户端应用程序提供一致的接口。当然也SQLServer2005样可以提高系统的性能,降低它的局限性。经济可行性采用新的学生学籍管理系统可取代原系统的手工管理工作,减少人工开支,节省资金,并且可大大提高数据信息的取得,缩短数据信息处理时间,提高学生信息的利用率,使教学质量更进了一个台阶。功能需求统分析和逻辑设计的依据。基本功能需求能对学生的学籍及成绩进行基本管理,包括:学生基本信息和学科成绩的存储、输入、删除、修改、查询,以及升留级管理。学生基本信息应包括:学号、姓名、出生年份、籍贯、性别、专业、班级、家庭住址、本校住址、个人联系电话、家庭联系电话;成绩信息应包括:学号、课号、课名、成绩、上课时间、教师号。查询能够按照:学号、课号、班级、时间等进行查询。性能需求根据VisualBasic6.0软硬件要求:开发工具:VisualBasic操作系统:Windows2000/XP;数据库: SQLServerCPU: 2.4GHz以上;内存: 512以上;硬盘: 80GB以上;VGA显示器或更高;四、系统设计系统设计思想1、采用现有的资源,先进的管理系统开发方案,充分利用学校现有的资源,减少开发中的时间和财力、物力、提高系统开发的水平和应用效果。2、系统就满足学校的需求,例如学生信息的录入、查询、更新等。学生录入与排名。3、系统就具备数据库维护功能,及时根据用户需求进行数据添加、删除、修改等操作。系统设计分析本系统适用于中小学校,其功能主要分为成绩管理:用于对成绩的输入、修改、查询。学籍管理:用于对学生学籍的录入与修改、查询。帮助信息:用于对本系统的具体操作进行详解。本系统性能力求易于使用,具体有较高的扩展性和可维护性。系统功能分析录入功能:为一般用户提供相应的录入功能,为超级用户提供对所有信息的录入功能。查询功能:为所有用户提供查询的功能,可查询允许范围内的所有信息。对所有信息的修改删除功能。退出功能:结束并关闭系统。学生学籍系统的目标节约资源,提高学籍信息的精确度大节省了学校能源。并且计算机的存储与快速查询功能大大提高了学籍管理的效率,并且还提高了学籍信息管理的精确度。方便快速操作,精减人员,节约开支方便快速的操作,可减少学籍信息管理的漏洞,又减少因工作的冗余出现的错误,并且操作非常简单,可减少许多不很必要的人员,这无论从物质上还是工作人员的工资上都为学校节约了开支。为学校增加了财富。功能模块分解接口设计13332兆以上PC机满足输入端条件。软件接口:Windows2000/NT或更高的操作系统。内部接口:内部接口(模块之间的接口)验证模块:启动系统时,便激活登陆口令界面;初始化模块:对系统进行初始化;系统功能模块:接收系统功能的相应消息,启动信息录入、信息查询、信息维护等模块。各模块的具体分析:学生信息管理:主要用于学生的基本信息管理(年月、联系地址等。成绩管理:主要用于学生考试的成绩进行管理数据库设计数据流图(略)数据库分析用户需求具体有学籍管理系统提供保存、更新、查询、维护,这就需求数据库结构能充分满足各种信息的输入与输出,实现有组织地、动态地存储大量关联交叉访问,与应用程序的高度独立性。数据流图描述:本系统从总体上分为学生信息管理、学生信息浏览、成绩浏览和成绩管理等部分。每个模块有自己的作用。数据库表设计学生基本信息表:xsxj.Mdb成绩信息表:xscj.Mdb界面设计他的窗口信息学生的成绩窗口设计有主窗体直接进入成绩的查询模块。主要实现成绩的查询等功能。学生学籍窗口设计有主窗体直接进入学生状况窗口模块。主要实现学生状况查询等功能。学生学籍管理窗口设计有主窗体直接进入学生学籍管理窗口模块。学生成绩管理窗口设计有主窗体直接进入学生成绩修改窗口模块。主要实现学生成绩资料查询结果。五、详细设计及源程序1、模块module1.BasOptionExplicitDeclareFunctionSetWindowLongLib"user32"Alias"SetWindowLongA"(ByValhwndAsLong,ByValnIndexAsLong,ByValdwNewLongAsLong)AsLongDeclare Function GetWindowLong Lib "user32" Alias (ByValhwndAsLong,ByValnIndexAsLong)AsLongDeclare Function CallWindowProc Lib "user32" Alias (ByVallpPrevWndFuncAsLong,ByValhwndAsLong,ByValMsgAsLong,ByValwParamAsLong,ByVallParamAsLong)AsLongPublicConstGWL_WNDPROC=(-4)PublicConstWM_ENDSESSION=&H16PublicConstWM_QUERYENDSESSION=&H11PublicpreWinProcAsLongPublicFunctionWndproc(ByValhwndAsLong,ByValMsgAsLong,ByValwParamAsLong,ByVallParamAsLong)AsLongWndproc=CallWindowProc(preWinProc,hwnd,Msg,wParam,lParam)If(Msg=132)ThenSelectCaseWndprocCase10,11,12,13,14,15,16,17:Wndproc=0ExitFunctionEndSelectEndIfEndFunction2、主窗口form1.frmOptionExplicitPrivateSubCommand4_Click()Form6.ShowEndSubPrivateSubCommand5_Click()Form4.ShowUnloadMeEndSubPrivateSubCommand6_Click()Form5.ShowUnloadMeEndSubPrivateSubForm_Load()DimretAsLong'记录原来的WindowProcedure的位址preWinProc=GetWindowLong(Me.hwnd,'设定formwindowProcedure到wndprocret=SetWindowLong(Me.hwnd,GWL_WNDPROC,AddressOfWndproc)EndSubPrivateSubForm_Unload2(CancelAsInteger)DimretAsLong'取消Message的截取,而使之又只送往原来的WindowProcedureret=SetWindowLong(Me.hwnd,GWL_WNDPROC,preWinProc)EndSubPrivateSubCommand1_Click()Form2.ShowUnloadMeEndSubPrivateSubCommand2_Click()Form3.ShowUnloadMeEndSubPrivateSubCommand3_Click()DimyesAsStringyes=MsgBox("你要确定退出?",32+1,"提示信息")Ifyes=1ThenUnloadMeEndIfEndSub3form2.frmOptionExplicitPrivateSubForm_Load()Data1.DatabaseName=App.Path&"\xsxj.mdb"DimretAsLong'记录原来的WindowProcedure的位址preWinProc=GetWindowLong(Me.hwnd,GWL_WNDPROC)'设定formwindowProcedure到wndprocret=SetWindowLong(Me.hwnd,GWL_WNDPROC,AddressOfWndproc)EndSubPrivateSubForm_Unload2(CancelAsInteger)DimretAsLong'取消Message的截取,而使之又只送往原来的WindowProcedureret=SetWindowLong(Me.hwnd,GWL_WNDPROC,preWinProc)EndSubPrivateSubCommand1_Click()Form1.ShowUnloadEndSubPrivateSubCommand2_Click()Data1.Recordset.MoveLastCommand4.Enabled=TrueCommand3.Enabled=FalseEndSubPrivateSubCommand3_Click()Command4.Enabled=TrueData1.Recordset.MoveNextIfData1.Recordset.EOFThenData1.Recordset.MovePreviousCommand3.Enabled=FalseEndIfEndSubPrivateSubCommand4_Click()Command3.Enabled=TrueData1.Recordset.MovePreviousIfData1.Recordset.BOFThenData1.Recordset.MoveFirstCommand4.Enabled=FalseEndIfEndSubPrivateSubCommand5_Click()Data1.Recordset.MoveFirstCommand4.Enabled=FalseCommand3.Enabled=TrueEndSub4、成绩浏览窗口form3.frmOptionExplicitPrivateSubCommand2_Click()Data1.Recordset.MoveLastCommand4.Enabled=TrueCommand3.Enabled=FalseEndSubPrivateSubCommand3_Click()Command4.Enabled=TrueData1.Recordset.MoveNextIfData1.Recordset.EOFThenData1.Recordset.MovePreviousCommand3.Enabled=FalseEndIfEndSubPrivateSubCommand4_Click()Command3.Enabled=TrueData1.Recordset.MovePreviousIfData1.Recordset.BOFThenData1.Recordset.MoveFirstCommand4.Enabled=FalseEndIfEndSubPrivateSubCommand5_Click()Data1.Recordset.MoveFirstCommand4.Enabled=FalseCommand3.Enabled=TrueEndSubPrivateSubForm_Load()Data1.DatabaseName=App.Path&"\xscj.mdb"DimretAsLong'记录原来的WindowProcedure的位址preWinProc=GetWindowLong(Me.hwnd,'设定formwindowProcedure到wndprocret=SetWindowLong(Me.hwnd,GWL_WNDPROC,AddressOfWndproc)EndSubPrivateSubForm_Unload2(CancelAsInteger)DimretAsLong'取消Message的截取,而使之又只送往原来的WindowProcedureret=SetWindowLong(Me.hwnd,GWL_WNDPROC,preWinProc)EndSubPrivateSubCommand1_Click()Form1.ShowUnloadMeEndSub5、学籍管理窗口form4.frmOptionExplicitPrivateSubCommand1_Click()Form1.ShowUnloadMeEndSubPrivateSubCommand2_Click()DimnumAsStringDimnAsStringDimsAsIntegerData1.Recordset.MoveFirstnum=InputBox("请输入要删除的学生学号(三位数)","")DoWhileNotData1.Recordset.EOFn=Data1.Recordset.Fields("学号")Ifnum=nThens=MsgBox("确定要删除吗?",vbQuestion+vbOKCancel,"确定删除")Ifs=1ThenData1.Recordset.DeleteData1.Recordset.MoveNextIfData1.Recordset.RecordCount>0ThenIfData1.Recordset.EOFThenData1.Recordset.MoveLastEndIfEndIfEndIfExitDoElseData1.Recordset.MoveNextEndIfLoopIfData1.Recordset.EOFThenData1.Recordset.MoveFirstMsgBox("查无此人")EndIfEndSubPrivateSubCommand3_Click()DimnAsStringData1.RefreshDoWhileNotData1.Recordset.EOFn=Data1.Recordset.Fields("学号")Iftext1.Text=nThenMsgBox("text1.Enabled=Falsetext2.Enabled=Falsetext3.Enabled=Falsetext4.Enabled=text5.Enabled=text6.Enabled=Falsetext7.Enabled=Falsetext8.Enabled=Falsetext9.Enabled=FalseExitDoElseData1.UpdateRecordData1.RefreshData1.Recordset.MoveLasttext1.Enabled=Falsetext2.Enabled=Falsetext3.Enabled=Falsetext4.Enabled=Falsetext5.Enabled=Falsetext6.Enabled=Falsetext7.Enabled=Falsetext8.Enabled=Falsetext9.Enabled=FalseEndIfLoopEndSubPrivateSubCommand4_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=TrueEndSubPrivateSubCommand5_Click()DimnumAsStringDimnAsStringnum=InputBox("请输入三位数学号","学号查询")Data1.RefreshDoWhileNotData1.Recordset.EOFn=Data1.Recordset.Fields("Ifn=numThenExitDoElseData1.Recordset.MoveNextEndIfLoopIfData1.Recordset.EOFThenData1.Recordset.MoveFirstMsgBox("查无此人")EndIfEndSubPrivateSubCommand6_Click()DimnameAsStringDimmAsStringname=InputBox("请输入学生姓名","姓名查询")Data1.RefreshDoWhileNotData1.Recordset.EOFm=Data1.Recordset.Fields("Ifm=nameThenExitDoElseData1.Recordset.MoveNextEndIfLoopIfData1.Recordset.EOFThenData1.Recordset.MoveFirstMsgBox("查无此人")EndIfEndSubPrivateSubForm_Load()Data1.DatabaseName=App.Path&"\xsxj.mdb"DimretAsLong'记录原来的WindowProcedure的位址preWinProc=GetWindowLong(Me.hwnd,'设定formwindowProcedure到wndprocret=SetWindowLong(Me.hwnd,GWL_WNDPROC,AddressOfWndproc)EndSubPrivateSubForm_Unload2(CancelAsInteger)DimretAsLong'取消Message的截取,而使之又只送往原来的WindowProcedureret=SetWindowLong(Me.hwnd,GWL_WNDPROC,preWinProc)EndSub6、成绩管理窗口form5.frmOptionExplicitPrivateSubCommand1_Click()Form1.ShowUnloadMeEndSubPrivateSubCommand3_Click()Adodc1.ConnectionString = " Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&App.Path&"\xscj.mdb;Persist Security Info=False"DimcnAsNewADODB.ConnectionDimrsAsNewADODB.RecordsetDimsqlAsStringDimcnstrAsStringcn.CursorLocation=adUseClientcnstr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&App.Path&"\xscj.mdb;PersistSecurityInfo=False"cn.ConnectionString=cnstrcn.Opencnstrsql="select*fromxscj"rs.Open sql, cn, adOpenStatic,adLockOptimistic'adOpenStatic 或许用adOpenDynamicSetDataGrid1.DataSource=rsEndSubPrivateSubCommand5_Click()DimcnAsNewADODB.ConnectionDimrsAsNewADODB.Recordsetrs.CursorLocation=adUseClientcn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" App.Path&"\xscj.mdb;PersistSecurityInfo=False"cn.OpenIfText1.Text=""ThenMsgBox"请填写学号!",vbExclamation,"提示信息"ExitSubEndIfrs.Open "select * from xscj where 学号= '" adOpenKeyset,adLockOptimisticIfrs.RecordCount=0ThenMsgBox"没有此学号!",vbExclamation,"提示信息"EndIfSetDataGrid1.DataSource=rsText1.Text=""

Text1.Text& "'", cn,EndSubPrivateSubCommand6_Click()DimcnAsNewADODB.ConnectionDimrsAsNewADODB.Recordsetrs.CursorLocation=adUseClientcn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" App.Path&"\xscj.mdb;PersistSecurityInfo=False"cn.OpenIfText2.Text=""ThenMsgBox"请填写课号!",vbExclamation,"提示信息"ExitSubEndIfrs.Open "select * from xscj where 课号= '" & Text2.Text& "'", cn,adOpenKeyset,adLockOptimisticIfrs.RecordCount=0ThenMsgBox"没有此课号!",vbExclamation,"提示信息"EndIfSetDataGrid1.DataSource=rsText2.Text=""EndSubPrivateSubForm_Load()Adodc1.ConnectionString = " Source="&App.Path&"\xscj.mdb;Persist Security Info=False"DimcnAsNewADODB.ConnectionDimrsAsNewADODB.RecordsetDimsqlAsStringDimcnstrAsStringcn.CursorLocation=adUseClientcnstr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论