




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机工程系毕业设计题目:学生信息管理系统
前言学生信息管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理学生学籍档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对学生学籍信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生学籍管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。
因此,开发这样一套管理软件成为很有必要的事情,在下面的各章中将以开发一套学生信息管理系统为例,谈谈其开发过程和所涉及到的问题及解决方法。目录摘要 1第一章引言 11.1课题介绍 11.2课题目的及意义 11.3研究方法、发展趋势 1第二章开发环境、工具介绍 22.1VisualBasic6.0 22.1.1VisualBasic的编程特点 22.1.2vb支持的数据库系统 32.1.3数据库开发中的三大工具 32.2SQLServer2021简介 42.2.1SQLServer数据库特点 52.3ADO对象概述 62.3.1利用ADO开发网络数据库应用程序 62.3.2ADO组件的主要对象及其功能 72.3.3用来操控数据的SQL命令 72.4VB访问数据库过程 8第三章系统分析与设计 93.1系统功能分析 93.2系统结构图 93.3系统E-R 图 103.4数据库设计 11第四章系统具体实现 124.1模块设计 124.2登录窗体设计 144.3主界面设计 164.3.1ImageLis 194.3.2Toolbar 194.3.3StatusBar 194.3.4菜单编辑器 194.4数据库维护窗体设计 204.5管理员信息管理 214.5.1管理员注册窗体设计 214.5.2密码修改窗体设计 234.6学生基本情况更新窗体设计 254.7学生基本情况维护窗体设计 294.7.1数据环境 314.7.2DateReport1设计 314.7.3班级查找对话框 324.8成绩维护窗体设计 334.8.1DateReport2设计 354.8.2班级查找对话框 354.9关于系统和系统帮助窗体设计 37第五章总结 38结束语 39参考文献 40-PAGE2-摘要随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。本系统是在管理信息系统的理论和方法指导下、数据库技术支持下完成的。本文在结构上首先论述了毕业设计选题的背景、目的和意义,然后叙述了开发环境、开发平台以及数据库技术,接着用表格和图片的方式介绍了系统的整体规划,接下来是系统在具体实现中的详细内容,最终本系统能够完成信息的输入、输出,数据的修改、查询以及打印报表等功能,本系统界面友好,操作简单,比较实用。关键词:控件;窗体;报表;关系数据库管理系统;VB。贵州师范大学职业技术学院计算机工程系毕业设计-PAGE58-第一章引言1.1课题介绍高校学生信息的管理是一项既重要又繁琐的工作。为更好的做好这项工作,提过工作效率,更好的为学校的发展和一线教学服务,决定:结合我校实际情况,自行研制一个学生信息管理系统。1.2课题目的及意义由于现今的学生信息管理非常繁琐,行政人员付出大量的工作时间,得到的效率很低。因此为提高工作效率,减轻校方人员的工作负担,决定开发学生信息管理系统。计算机已经成为我们学习和工作的得力助手:今天,计算机的价格已经十分低廉,性能有了长足的进步。它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面:首先,计算机可以代替人工进行许多繁杂的劳动;其次,计算机可以节省许多资源;第三,计算机可以大大的提高人们的工作效率;第四,计算机可以使敏感文档更加安全等等。为了解决传统学生信息的管理正面临着的这些问题,我所设计的学生信息管理系统也就应运而生了。1.3研究方法、发展趋势本系统采用功能分析法即通过说明社会现象怎样满足一个社会系统的需要(即具有怎样的功能)来解释社会现象和CS模式共同完成。现代教育技术特别是网络与多媒体技术的发展,对学习活动产生了具有深远意义的冲击,人们可以选择或者设计适合其学习特点的信息采集、加工与重组方式。本系统采用CS模式,在某些方面还不是表现的很好,但未来有关学生信息管理的应该采用多层架构的系统,是真正适应教育信息化发展三大趋势的校园网络应用系统,全面支持Internet功能、远程访问功能,采用先进的CS和BS模式共同开发,支持有关学校信息交流、日常教学、教务管理等的各种应用,提供一个基于校园内联网中支持各种类型的学校应用产品的服务平台和开发平台,基本目标是在学校内部和外部建立起顺畅的信息通道,让信息技术成为推动教育生产力的有力工具,提高学校的管理水平和效率,同时充分利用全球的教育资源为学校的教育服务,克服目前大部分学校的校园网建设只起到宣传作用的通病。第二章开发环境、工具介绍该软件是在WindowsXPProfessional+VisualBasic6.0+SQLServer2021的环境下完成的。下面就对这些开发工具进行介绍:2.1VisualBasic6.0微软公司的VisualBasic6.0是Windows应用程序开发工具,是目前最为广泛的、易学易用的面向对象的开发工具。VisualBasic提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。利用VISUALBASIC程序设计语言,可以很方便地设计出在WINDOWS环境下运行的应用程序。故而,实现本系统VB是一个相对较好的选择。2.1.1VisualBasic的编程特点VisualBasic语言的出现为Windows下的编程提出了一个新概念,利用VisualBasic的动态数据交换、对象的链接和嵌入、动态链接库、ActiveX技术可以很方便地设计出功能强大的应用程序。利用VisualBasic语言编程有以下几个特点:1)、可视化程序设计在VisualBasic中开发的应用程序,不但有丰富的图形界面,同时由用户为开发图形界面添加的代码真是少而又少,因为在设计图形界面的过程中只需设置ActiveX控件的属性即可。2)、强大的数据库和网络功能随着VisualBasic语言的向前发展,它在数据库和网络方面的功能优势就愈加明显,利用VisualBasic中的ODBC——开放式的数据库访问技术可以很方便地开发出自己的数据库应用程序;利用VisualBasic自带的可视化数据管理器和报表生成器,完全可以在VisualBasic就完成数据库的开发工作。3)、其他特性在VisualBasic以前的版本中,由于仍然摆脱不了解释执行的代码运行机制,所以在相当的程度上制约了VisualBasic的发展。从VisualBasic5.0版本开始,在VisualBasic中制作的应用程序都改变为编译执行,使得VisualBasic的代码效率有了很大的提高,同时执行的速度也加快了解30%(同VisualBasic4.0相比)。当然在VisualBasic中还有其它特性,例如:面向对象的编程语言;结构化程序设计;事件驱动的程序设计:在传统的或“过程化”的应用程序中,应用程序自身控制了执行哪一部分代码和按何种顺序执行代码。从第一行代码执行程序并按应用程序中预定的路径执行,必要时才会调用过程。在事件驱动的应用程序中,代码不是按预定的路径执行,而是在响不同的事件时执行不同的代码片段。事件可以由用户操作触发、也可以由来自操作系统或其它应用程序的消息触发、甚至由应用程序本身的消息触发。这些事件的顺序,决定了代码执行的顺序,因此应用程序每次运行时所经过的路径都是不同的。支持动态链接库;应用程序之间的资源共享;事件驱动的程序设计;在传统的或“过程化”的应用程序中,应用程序自身控制了执行哪一部分代码和按何种顺序执行代码。从第一行代码执行程序并按应用程序中预定的路径执行,必要时才会调用过程。在事件驱动的应用程序中,代码不是按预定的路径执行,而是在响不同的事件时执行不同的代码片段。事件可以由用户操作触发、也可以由来自操作系统或其它应用程序的消息触发、甚至由应用程序本身的消息触发。这些事件的顺序,决定了代码执行的顺序,因此应用程序每次运行时所经过的路径都是不同的。支持动态链接库;应用程序之间的资源共享2.1.2vb支持的数据库系统VB支持对多格式的数据库的访问和维护,无论是Access还是Foxpro中创建的数据库,都可以用VB打开,对其进行查询、修改和删除等操作。事实上,VB几乎支持对市面上所有数据库的访问。VB可以访问的数据库可以简单的分为三类,即:MicrosoftAccess格式数据库,外部数据库和ODBC数据库。VB对多种数据库格式的支持,大大的增强了开发数据库应用程序的能力。2.1.3数据库开发中的三大工具VisualBasic在数据库应用程序的开发领域中,提供包含数据管理(DataManager),数据控件(DataControl)以及数据编程对象(数据访问对象(DAO)、远程数据对象(RDO)和ActiveX数据对象(ADO))等功能强大的工具,协助设计人员轻松的连接数据库文件,并访问其中的数据,在功能方面与其他一些专业数据库软件(如FoxPro,MicosoftAccess等)不相上下。数据管理器(DataManager)是VisualBasical已有的老成员之一,拓本盛举有的Jet数据库引擎(DatabaseEngine)可以帮助VB程序元件立即维护数据库内容,并可通过输入查询或查找数据库信息,而不必再通过其他数据库软件另外去设计数据库。数据控件是VB所提供的基本控件成员之一。它使得设计者省下一堆程序代码编写的工作,能够轻松的设计及维护数据库内容。数据控件可以通过一些属性的设置去链接某个数据库文件,但是它本身并无法显示数据库各个记录的内容,必须在搭配其他具有数据感知(DataAware)功能的控件对应并显示一个字段内容,以方便地进行记录的浏览及编辑工作。VB提供的数据访问对象(DataAccessObject;DAO)让程序设计者拥有更大的发挥空间。借助程序代码编写,直接控制Jet数据库引擎,配合数据库控件,能够开发出更具弹性且高效率的数据应用程序。RDO是处理远程数据库的一些专门需要的对象集合。使用RDO可以不用本地的查询机就能访问ODBC数据源,这无疑将大大提高应用程序的性能。ADO是VB6.0中新增的对象,它是一个更简单的对象模型,它更好的集成了其它数据访问技术,并且对本地和远程数据库均有共同的界面,可以取代DAO和RDO。ADO更易于使用。我们在本系统中利用数据管理器创建了数据库及数据库表,并采用了ADO数据访问技术。2.2SQLServer2021简介SQLServer2021是微软公司最新版的大型数据库服务器,其性能指标在各方面都有赶超Oracle数据库的趋势。用它可以方便地管理数据库和开发应用程序,它使用了最先进的数据库构架,与WindowsNT/2021平台紧密集成,具有完全的Web功能。通过对高端硬件平台、网络和存储技术的支持,为WEB站和企业的应用最大限度地提供了可扩展性和高可靠性,能在Internet商业领域快速建立并应用。此外,还增强了安全性,保护防火墙内外的数据。支持基于角色的安全并拥有安全审计工具。在经历了SQLServer6.5和7.0两个版本的尝试后,微软公司终于开始了大规模的业务。记得在以前各种关于SQLServer的文章,都会将其定位成中小型应用方面,这种感觉被大家自然的延续到了2021版之中。其实这是一种误解。在过去的很长一段时间中,微软公司聘请了世界上最优秀的数据库专家以及专门搭建了信息量可谓空前的地理信息系统,励精图治,就是为了摘掉扣在自己头上的这顶帽子。有了强大的性能和功能支持,再配合其一向为人称道的易用性,SQLServer可以说成为了开发者手中的一柄利器!
另外,目前国内的一些关于微软平台的数据库编程教程,喜欢使用Access作为数据库平台的案例,并展开相关的内容。这其实对于开发真正的数据库应用并没有直接的帮助作用,只能使大家停留在应用的初级阶段。SQLServer2021提供的非常傻瓜的缺省安装和使用模式,其上手难度并不比Access大。另外,SQLServer2021可以兼顾小、中、大规模的应用,有着远远比Access强大的伸缩性。2.2.1SQLServer数据库特点概括起来,SQLServer2021数据库管理系统具有以下主要特点。1)、丰富的图形管理工具,使系统管理、操作更为直观方便。SQLServer企业管理器是一个基于图形用户界面(GUI)的集成管理工具,利用它可以配置管理SQLServer服务器、管理数据库和数据库对象、备份和恢复数据、调度任务和管理警报、实现数据复制和转换操作等。此外,SQLServer2021还提供了SQL事件探查器、SQL查询分析器、SQLServer服务管理器和多种操作向导等图形界面管理工具,大大简化了用户操作,从而增强了系统的易用性。2)、动态自动管理和优化功能。即使SQLServer数据库管理员不做任何设置,SQLServer也能够在运行过程中根据环境配置和用户访问情况动态自动配置,以达到最优性能,从而减轻管理员工作。3)、充分的Internet技术支持。Internet网络发展到今天已经成为一条重要的信息发布渠道,SQLServer增强了对Internet技术支持,它除保留了前期版本中的数据库Web出版工具“Web助手”外,还增强了对XML和HTTP技术的支持,这使得电子商务系统能够通过XML等访问SQLServer数据库系统,也扩展了SQLServer在数据挖掘和分析服务领域的应用。4)、丰富的编程接口工具,使用户开发SQLServer数据库应用程序更加灵活。SQLServer提供了Transact-SQL、DB-LibraryforC、嵌入式SQL(ESQL)等开发工具,Transact-SQL与工业标准SQL语言兼容,并在其基础上加以扩充,使它更适合事务处理方面的需要。此外,SQLServer2021还支持ODBC、OLEDB、ADO规范,可以使用ODBC、OLEDB、ADO接口访问SQLServer数据库。5)、具有很好的伸缩性和可靠性。SQLServer2021既能运行在Windows桌面操作系统下,又可运行在服务器操作系统(包括WindowsNT和Windows2021)下;既能运行在单CPU计算机上,又能运行在对称多处理系统下。所以,它具有很好的伸缩性,能够满足从桌面应用到大型企业分布式应用到不同层次用户的要求。6)、简单的管理方式。SQLServer2021与MicrosoftWindows2021有机集成,所以可以使用Windows2021的活动目录(ActiveDirectory)功能对SQLServer进行集中管理,大大简化大型企业中的系统管理工作。此外,与Windows2021的集成还使SQLServer能够充分利用操作系统所提供的服务和功能(如安全管理、事件日志、性能监视器、内存管理和异步I/O等),从而增强了SQLServer数据库系统的功能,并且只需要占用很少的系统资源。2.3ADO对象概述ADO对象能够存取到数据库的内容,首先要求数据库的驱动程序(ODBC驱动程序与OLEDB驱动程序)必须安装上,否则,ADO对象是无法存取数据库中内容,其原理示意图如下图所示:客户端客户端客户端客户端ADO对象各种数据库所对应的驱动程序各种数据库(如Access、SQLServer以及Oracle等)请注意:上图中的“各种数据库所对应的驱动程序”即ODBC驱动程序与OLEDB驱动程序。2.3.1利用ADO开发网络数据库应用程序ADO(ActiveDateObjects,即ActiveX数据对象)是一个ASP内置的ActiveX服务器组件(ActiveXServerComponent)。可把它与ASP结合起来,建立提供数据库信息的网页内容,对数据库进行查询、插入、更新、删除等操作,并可以把在用户端实现“网上实时更新显示”的最新Web数据库技术。要执行ADO,服务器端必须安装WindowsNTServer和InternetInformationServer(IIS),而客户端只要有IE或NETSCAPE较新版本的浏览器即可。利用ADO开发网络数据库应用程序有以下几个优点:1)、支持客户机/服务器结构(Client/Server)与Web系统开发技术。2)、内部有多个互相独立的对象模型。3)、支持分批修改数据库内容。4)、支持多种不同的数据控制指标形式。5)、先进的Recordset数据高速缓存管理功能。6)、允许在程序中使用多个Recordset对象或者多个分批修改区块传送。7)、ADO属于Free_threaded对象,利用它可以开发出更有效的Web应用程序。2.3.2ADO组件的主要对象及其功能ADO组件又称为数据库访问组件,它提供了以下七种对象:1)、Connection对象:提供对数据库的连接服务。2)、Command对象:定义对数据库源操作的命令。3)、Recordset对象:由数据库服务器所返回的记录集。Recordset对象的LockType属性的设置值如下表所示:常量值说明adLockReadOnly1默认值,只读。无法更改数据adLockPressimistic2保守式记录锁定(逐条)。提供者执行必要的操作确保成功编辑记录,通常采用立即锁定数据源的记录的方式。adLockOptimistic3开放式记录锁定(逐条)。提供者使用开放式锁定,只在调用Updata方法时锁定记录。adLockBatchOptimistic4开放式批更新。用于与立即更新模式相反的批更新模式。4)、Fields对象:由数据库服务器所返回的单一数据字段5)、Parametes对象:表示Command对象的参数。6)、Property对象:单独的一个Property对象,提供属性功能。7)、Error对象:提供处理错误的功能。使用ADO对象可以建立和管理数据库的连接,按数据库服务器的要求获得数据,执行更新、删除、添加数据等操作,获取ODBC的错误信息等。2.3.3用来操控数据的SQL命令SQL命令是发送给数据库并要求数据库操作的指令,它是专门为数据库设计的语言,比一般的计算机程序语言简单的多。SQL命令主要分成两部分:DDL(DataDefinitionLanguage)和DML(DataManipulationLanguage),其中DDL是建立数据表及数据列的指令群,而DML则是操作数据库记录的指令群,如数据库记录的添加、更新、删除、和查询等。SQL命令,包括Select、Delete、Update、InsertInto、SelectInto等。1)、筛选及排序记录的Select指令基本句型一:Select字段串列From数据表基本句型二:Select…From…Where筛选条件基本句型三:Select…From…OrderBy字段串列SelectTop:限定选取数据的条数2)、删除数据记录的Delete指令基本语法:DeleteFrom数据表Where条件式3)、更新数据记录的Update指令基本语法:Update数据表Set表达式4)、增加数据记录的InsertInto指令基本句型一:InsertInto数据表(字段串列)Values(字段串列)基本句型二:InsertInto数据表(字段1,字段2,…,字段n)Select…5)、建立新数据表的SelectInto指令该指令与“InsertInto…Select…”指令的区别是,这个指令将建立另一个新的数据表,而InsertInto是增加数据记录到“现存的”数据表中。2.4VB访问数据库过程1)、定义数据库组件DimconnAsNewADODB.Connection其中conn为连接对象DimrecoAsNewADODB.Recordset其中reco为结果集对象2)、打开数据库对于SQL数据库,其连接语句为conn.Open"driver={sqlserver};server=localhost;uid=sa;pwd=;database=student"。而对于Access数据库,连接语句为conn.Open"Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&App.Path+"\student.mdb"3)、设定SQL语句,使用“Execute”命令,即可开始执行访问数据库的动作4)、关闭结果集对象,断开与数据库的连接reco.Closeconn.Close第三章系统分析与设计3.1系统功能分析随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。面对庞大的信息量就需要有一个学生信息管理系统来提高学生管理工作的效率。通过这样的系统可以做到信息的规范管理、快速查询、修改、增加、删除等,从而减少管理方面的工作量。设计内容为管理员或普通用户登录该系统进行五个模块操作:1)、学生基本情况更新:增加、修改、删除、查询(按学号)2)、学生基本情况维护:增加、修改、删除、打印、查询(按专业)3)、学生成绩维护:添加成绩、打印、查询(按学号、专业)4)、密码修改:修改所有用户密码(管理员)、修改自己密码(普通用户)5)、数据维护:对该系统数据库进行备份和还原3.2系统结构图本系统主要包括学生基本情况更新,学生基本情况维护、学生成绩维护、密码修改和数据维护5个大的模块,各个模块的具体功能如下图所示:3.3系统E-R 图1)、用户(普通用户、管理员)实体图如下图所示:2)、学生实体图如下图所示:3)、学生选课关系图如下图所示:3.4数据库设计在系统设计过程中,首先要建立的就是数据库。本数据库采用SQLServer2021来构造,共使用了3个表,它们分别是用户信息表(admin)、学生基本情况表(student)、学生成绩表(grade)。1)、用户信息表(admin):表结构如下表所示:名称字段名称类型长度用户IDidint4用户名namechar6用户密码passwordchar6用户类型typechar10注册时间registdatedatetime82)、学生基本情况表(student):表结构如下表所示:名称字段名称类型长度学号snovarchar10姓名snamechar10性别ssexchar2班级sclassvarchar50出生年月sbirthdaychar10政治面貌spavarchar8地址saddressvarchar50sphonevarchar11Emailsemailvarchar203)、学生成绩表(grade):表结构如下表所示:名称字段名称类型长度学号snoint2课程名cnamechar10成绩gradechar2学期semesterchar8第四章系统具体实现本部分主要内容为本系统的各个运行界面以及主要界面的源代码4.1模块设计添加一个模块module1。该部分主要包括一些公共变量的定义、main过程定义以及自动把备份的数据库文件还原到SQLServer2021中的代码设计。代码如下:PublicDeclareFunctionGetComputerNameLib"kernel32"Alias"GetComputerNameA"(ByVallpBufferAsString,nSizeAsLong)AsLong'获取主机名的定义PublicAname,AsortAsString'状态栏上显示当前用户的名称和用户类型PublicconnAsNewADODB.Connection'新建连接对象PublicrecoAsNewADODB.Recordset'新建记录集对象Publicreco2AsNewADODB.RecordsetPublicconn_str1,conn_str2AsString'=====定义一个main过程,从main过程启动程序,同时连接到数据库===PublicSubMain()reco.CursorLocation=adUseClientreco2.CursorLocation=adUseClientconn_str1="Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=maokeyang;DataSource="&GetPcName()conn_str2="Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=master;DataSource="&GetPcName()DB_ADD'先调用DB_ADD来将maokeyang数据库添加到SQLServer2021中conn.Openconn_str1'连接到数据库"frm_login.Show'登录窗体显示EndSub'==================此函数用来获取主机名!==================PublicFunctionGetPcName()AsStringDimcompnameAsString,retvalAsLongcompname=Space(255)retval=GetComputerName(compname,255)compname=Left(compname,InStr(compname,vbNullChar)-1)GetPcName=compnameEndFunction'====关闭记录集====PublicSubClose_Reco()Ifreco.State=1Thenreco.CloseEndIfEndSub'此过程用来在启动软件的时候把maokeyang数据库添加到SQLServer2021中PublicSubDB_ADD()DimsAsStringOnErrorGoToErrorChecka:conn.Openconn_str2reco.Open"select*fromsysdatabaseswherename='maokeyang'",conn,1,3'查询是否存在maokeyang数据库Ifreco.RecordCount<>1Then'如果maokeyang数据库不存在,则添加maokeyang数据库,否则不添加mkdir_killconn.Execute"restoredatabasemaokeyangfromdisk='"&App.Path&"\backup\maokeyang'"Elsereco.Closeconn.CloseExitSubEndIfreco.Closeconn.CloseExitSubErrorCheck:MsgBox"您可能没有启动SQLServer服务",,"提示"Shell"netstartmssqlserver"MsgBox"启动成功!",,"提示"GoToaEndSub'新建路径并删除原有的数据库PublicSubmkdir_kill()OnErrorResumeNextMkDir"c:\programfiles"MkDir"c:\ProgramFiles\MicrosoftSQLServer"MkDir"C:\ProgramFiles\MicrosoftSQLServer\MSSQL"MkDir"C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data"Kill"C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\maokeyang_Log.LDF"Kill"C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\maokeyang_Data.MDF"EndSub4.2登录窗体设计添加一个窗体(frm_login)。该部分主要包括用户的验证以及登录次数的限制。窗体运行情况如下图所示:代码如下:DimnAsInteger'n为限制登陆次数的变量PrivateSubForm_Load()n=4EndSubPrivateSubCommand1_Click()'确定按钮Close_RecoWithreco'连接到表并产生记录集.Open"select*fromadminwherename='"&Trim(Text1.Text)&"'andpassword='"&Trim(Text2.Text)&"'",conn,1,1If.RecordCount>0ThenAname=Trim(.Fields("name"))'将成功登录的用户名赋给AnameAsort=Trim(.Fields("type"))'将成功登录的用户类型赋给Asort.CloseUnloadMefrm_main.Show'主界面显示Elsen=n-1.Close.Open"select*fromadminwherename='"&Trim(Text1.Text)&"'",conn,1,1If.RecordCount=0ThenMsgBox("用户名错误,请重新输入!您还有"&n&"次机会登陆!"),,("错误")Text1.SetFocus.CloseElseMsgBox("密码错误,请重新输入!您还有"&n&"次机会登陆!"),,("错误").CloseText2.SetFocusEndIfEndIfIfn=0ThenClose_RecoUnloadMeEndIfEndWithEndSubPrivateSubCommand2_Click()'取消按钮IfMsgBox("你真的不登录学生信息管理系统吗?",vbQuestion+vbYesNo,"退出系统提示信息")=vbYesThenEndEndIfEndSub'=======只有当用户名和密码框都不为空时“登录”按钮才可用=======PrivateSubText2_Change()'密码文本框IfText1.Text<>""AndText2.Text<>""ThenCommand1.Enabled=TrueCommand1.Default=TrueElseCommand1.Enabled=FalseEndIfEndSubPrivateSubText1_Change()'用户名文本框IfText2.Text<>""AndText1.Text<>""ThenCommand1.Enabled=TrueCommand1.Default=TrueElseCommand1.Enabled=FalseEndIfEndSub4.3主界面设计添加一个窗体(frm_main)。该部分主要添加ImageList、StatusBar、Toolbar控件和菜单编辑器。以用户名为杨茂科、密码为123登录,窗体运行情况如下图所示:代码如下:PrivateSuba1_Click()frm_beifen.ShowEndSubPrivateSubb1_Click()frm_regist.ShowEndSubPrivateSubb2_Click()frm_modify.ShowEndSubPrivateSubc1_Click()frm_qkbgx.ShowEndSubPrivateSubc2_Click()frm_qkbwh.ShowEndSubPrivateSubc3_Click()frm_cjbwh.ShowEndSubPrivateSubd1_Click()frm_about.ShowEndSubPrivateSubd2_Click()frm_help.ShowEndSubPrivateSube_Click()UnloadMefrm_login.ShowEndSubPrivateSubf_Click()EndEndSubPrivateSubForm_Load()StatusBar1.Panels(1).Text="用户:"&Aname'状态栏第一格显示用户名StatusBar1.Panels(2).Text="类型:"&Asort'状态栏第二格显示用户类型EndSubPrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button)SelectCaseButton.KeyCase"one"frm_qkbgx.Show1'情况表更新窗体显示Case"two"frm_qkbwh.Show1'情况表维护窗体显示Case"three"frm_cjbwh.Show1'成绩表维护窗体显示Case"four"frm_modify.Show1'密码修改窗体显示Case"five"frm_beifen.Show1'数据库维护窗体显示EndSelectEndSub4.3.1ImageLis在主界面上添加一个图像列表控件,在属性页设置插入5张图片。4.3.2Toolbar在主窗体上添加一个工具栏控件,在属性页上将图像列表从无设置到ImageList1,添加5个按钮,按钮属性如下表所示:索引12345标题情况表更新情况表维护成绩表维护密码修改数据备份关键字onetwothreefourfive图像123454.3.3StatusBar在主窗体上添加一个状态栏控件,在状态栏上添加5个格子,后三个格子分别设置为日期、时间、文本4.3.4菜单编辑器在主窗体上添加一个菜单编辑器,菜单结构、属性如下表所示:菜单结构标题名称标题名称文件a情况表维护c2数据库维护a1成绩表维护c3管理员信息b帮助d注册b1关于系统d1修改密码b2系统帮助d2数据维护c重新登录e情况表更新c1退出f4.4数据库维护窗体设计添加一个窗体(frm_beifen)、一个CommonDialog控件。该部分主要包括数据库的备份与还原。窗体运行情况如下图所示:代码如下:PrivateSubCommand1_Click()'备份按钮DimbackUpFileNameAsString'变量声明CommonDialog1.DialogTitle="备份文件"'设置对话框的标题CommonDialog1.Filter="*.*"CommonDialog1.ShowSave'设置对话框的按钮类型为保存backUpFileName=CommonDialog1.FileName'将保存的文件名赋给变量IfCommonDialog1.FileName=""ThenMsgBox("文件名不能为空,请输入文件名")CommonDialog1.ShowSaveElseconn.Execute("backupdatabaselibrarytodisk='"&backUpFileName&"'")'执行备份语句MsgBox("备份成功")EndIfEndSubPrivateSubCommand2_Click()'还原按钮conn.Closeconn.Open"Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=master;DataSource="&GetPcName()'借助master数据库来恢复CommonDialog1.DialogTitle="还原的文件名"CommonDialog1.Filter="*.*"backUpFileName=CommonDialog1.FileNameCommonDialog1.ShowOpenrec.Open"selectspidfromsysprocesseswheredbid=db_id('maokeyang')",conn'查询是否有maokeyang数据库,找出进程号DoWhileNotrec.EOFconn.Execute"kill"&reco("spid")'结束sql服务器的所有连接,否则会出现:数据库正在使用,无法完成排它操作等等reco.MoveNextLoopconn.Execute("restoredatabasemaokeyangfromdisk='"&backUpFileName&"'")'还原数据库MsgBox("数据库已还原")reco.Closeconn.Closeconn.Open"Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=master;DataSource="&GetPcName()'借助master数据库来恢复EndSub4.5管理员信息管理该部分包括管理员注册和密码修改的管理4.5.1管理员注册窗体设计添加一个窗体(frm_regist)。该部分主要完成管理员的注册功能。窗体运行情况如下图所示:代码如下:PrivateSubCommand1_Click()'确认按钮IfText3.Text<>Text2.TextThenMsgBox"两次输入的新密码不同,请重新输入!",vbOKOnly+vbExclamation,"警告"Text2.SetFocusText2.Text=""Text3.Text=""ExitSubEndIfWithreco.Open"select*fromadmin",conn,1,3.AddNew.Fields("name")=Trim(Text1.Text).Fields("password")=Trim(Text2.Text).Fields("type")=Combo1.Text.Fields("registdate")=Trim(Text4.Text).Update.CloseMsgBox("注册成功"),,("提示")Text1.Text=""Text2.Text=""Text3.Text=""Text4.Text=""Combo1.Text=""EndWithEndSubPrivateSubCommand4_Click()'更改按钮Text4.Enabled=TrueText4.Text=""Text4.SetFocusEndSubPrivateSubForm_Load()'窗体加载时候注册时间文本框获得当前时间Text4.Enabled=FalseText4.Text=DateEndSub4.5.2密码修改窗体设计添加一个窗体(frm_modify)、一个图像列表控件、一个ListView控件。在图像列表控件属性页插入一张图片作为用户的图标,在ListView属性页图像列表把图标图像列表选项设置为ImageList1。该部分主要完成用户密码修改的功能(管理员修改首页用户的密码、普通用户修改自己的密码)。窗体运行情况如下图所示:代码如下:PrivateSubCommand1_Click()'确认按钮WithrecoIfText2.Text<>trim(.Fields("password"))ThenMsgBox("当前密码错误!请重新输入!"),,("错误")Text2.Text=""ElseIfText3.Text<>Text4.TextThenMsgBox("两次密码输入不一致!"),,("错误")Text3.Text=""Text4.Text=""Else.Fields("password")=Text4.Text.UpdateMsgBox("密码修改成功!"),,("提示")Text4.Text=""Text2.Text=""Text3.Text=""Command1.Enabled=FalseEndIfEndIfEndWithEndSubPrivateSubForm_Load()DimlistAsListItemDimiAsStringText1.Enabled=FalseClose_RecoIfAsort="管理员"Thenreco.Open"select*fromadmin",conn,1,3Elsereco.Open"select*fromadminwherename='"&Aname&"'",conn,1.3EndIfIfreco.RecordCount>0ThenDoWhileNotreco.EOFi=reco.Fields("name")Setlist=ListView1.ListItems.Add(,,i,1)reco.MoveNextLoopEndIfEndSubPrivateSubListView1_Click()DimiAsStringi=ListView1.SelectedItem'获取列表框中的用户名Withreco.MoveFirst'将当前指针移到记录集的第一条.Find"name='"&i&"'"'开始向下检索一列名为i的记录Text1.Text=.Fields("name")EndWithText2.SetFocusEndSub4.6学生基本情况更新窗体设计添加一个窗体(frm_qkbgx)、一个ADO控件。把ADO控件的属性设置为连接到maokeyang数据库、把记录源设置为数据库里面的student表,分别把窗体上的文本框(除查询学号文本框外)和下拉框的数据源设置为adodc1、把数据字段分别设置为数据库里面对应的字段。该部分主要完成学生基本情况的操作。窗体运行情况如下图所示:代码如下:PrivateSubCommand1_Click()'添加按钮Adodc1.Recordset.AddNewText1.Text=""Text2(1).Text=""Text3(0).Text=""Text4(1).Text=""Text5(0).Text=""Text6(1).Text=""Text7(0).Text=""Combo1.Text=""Combo2.Text=""Command1.Enabled=FalseCommand11.Enabled=TrueCommand7.Enabled=TrueCommand6.Enabled=TrueCommand8.Enabled=TrueCommand9.Enabled=TrueEndSubPrivateSubCommand11_Click()'更新按钮WithAdodc1.Recordset.Fields("sno")=Trim(Text1.Text).Fields("sname")=Trim(Text2(1).Text).Fields("sclass")=Trim(Text3(0).Text).Fields("ssex")=Combo2.Text.Fields("sbirthday")=Trim(Text4(1).Text).Fields("spa")=Combo1.Text.Fields("saddress")=Trim(Text5(0).Text).Fields("sphone")=Trim(Text6(1).Text).Fields("semail")=Trim(Text7(0).Text)IfText1.Text=.Fields("sno")ThenMsgBox("学号不能重复!"),,("提示")Text1.Text=""Text1.SetFocusElse.UpdateMsgBox("添加成功!"),,("提示")Command1.Enabled=TrueCommand11.Enabled=FalseEndIfEndWithEndSubPrivateSubCommand2_Click()'删除按钮IfMsgBox("你真的要删除该学生信息吗?",vbQuestion+vbYesNo,"删除信息")=vbYesThenAdodc1.Recordset.DeleteAdodc1.Recordset.MoveNextIfAdodc1.Recordset.EOF=TrueThenAdodc1.Recordset.MoveLastEndIfEndIfEndSubPrivateSubCommand3_Click()'修改按钮WithAdodc1.Recordset.Fields("sno")=Trim(Text1.Text).Fields("sname")=Trim(Text2(1).Text).Fields("sclass")=Trim(Text3(0).Text).Fields("ssex")=Combo2.Text.Fields("sbirthday")=Trim(Text4(1).Text).Fields("spa")=Combo1.Text.Fields("saddress")=Trim(Text5(0).Text).Fields("sphone")=Trim(Text6(1).Text).Fields("semail")=Trim(Text7(0).Text).UpdateMsgBox("修改成功!"),,("提示")EndWithEndSubPrivateSubCommand5_Click()'查询按钮IfLen(Text8.Text)>0ThenAdodc1.CommandType=adCmdTextAdodc1.RecordSource="select*fromstudentwheresno='"&Trim(Text8.Text)&"'"Adodc1.RefreshCommand7.Enabled=FalseCommand6.Enabled=FalseCommand8.Enabled=FalseCommand9.Enabled=FalseElseMsgBox("请指定要查找学生的学号!"),,("提示")EndIfEndSubPrivateSubCommand8_Click()'第一个按钮Adodc1.Recordset.MoveFirstEndSubPrivateSubCommand6_Click()'上一个按钮Adodc1.Recordset.MovePreviousIfAdodc1.Recordset.BOF=TrueThenAdodc1.Recordset.MoveFirstEndIfEndSubPrivateSubCommand7_Click()'下一个按钮Adodc1.Recordset.MoveNextIfAdodc1.Recordset.EOF=TrueThenAdodc1.Recordset.MoveLastEndIfEndSubPrivateSubCommand9_Click()'最后一个按钮Adodc1.Recordset.MoveLastEndSub4.7学生基本情况维护窗体设计添加一个窗体(frm_qkbwh)、一个ADO控件、一个DataGrid控件,在工程中添加一个数据环境,把ADO控件的属性设置为连接到maokeyang数据库、把记录源设置为数据库里面的student表,把DataGrid控件的数据源设置为DataEnvironment1、把DateMenber设置为Command1。该部分主要包括学生基本情况的操作和数据的打印。窗体运行情况如下图所示:代码如下:PublickeyAsStringPrivateSubCommand1_Click()'选择专业按钮Me.key=""frm_Dialog2.Showl'显示班级查找对话框IfMe.key<>""ThenDataEnvironment1.rsCommand1.Filter="sclass='"&key&"'"Adodc1.RefreshDataGrid1.AllowUpdate=FalseEndIfUnloadfrm_Dialog2EndSubPrivateSubCommand2_Click()'修改按钮DataGrid1.AllowUpdate=TrueDataGrid1.SetFocusEndSubPrivateSubCommand3_Click()'添加按钮DataGrid1.AllowUpdate=TrueDataEnvironment1.rsCommand1.AddNewDataGrid1.SetFocusEndSubPrivateSubCommand4_Click()'删除按钮DataGrid1.AllowDelete=TrueDataEnvironment1.rsCommand1.DeleteDataEnvironment1.rsCommand1.MoveNextIfDataEnvironment1.rsCommand1.EOF=TrueThenDataEnvironment1.rsCommand1.MoveLastDataGrid1.SetFocusEndSubPrivateSubCommand5_Click()'打印按钮DataReport1.Show1'报表1显示EndSub4.7.1数据环境把数据环境的连接属性设置为连接到SQLServer2021中的maokeyang数据库中的student表,在建立好的连接下添加命令Command1,在其属性页设置数据源设置为student表、把记录集管理中的锁定类型设置为开发式,在Command1添加子命令Command2,在其属性页设置数据源为grade表、在关联定义中添加一个snotosno的关联。数据环境结构如下图所示:4.7.2DateReport1设计在工程中添加DataReport,添加一个数据报表,名称使用默认的DataReport1,将其数据源设置为DataEnvironment1、DateMenber设置为Command1,报表设计界面如下图所示:报表的运行界面如下图所示:报表的结束(Terminate)事件代码:PrivateSubDataReport_Terminate()‘因为报表结束时,指针指到数据表的开始标志,所以在报表结束时,让指针指到第一条记录DataEnvironment1.rsCommand1.MovefirstEndSub4.7.3班级查找对话框添加一个窗体(frm_Dialog2)、一个ADO控件、一个DataGrid控件,把ADO控件的属性设置为连接到maokeyang数据库、把记录源设置为selectsclassfromstudentgroupbysclass,把DataGrid控件的数据源设置为adodc1,该部分主要功能完成班级选择。窗体运行情况如下图所示:代码如下:PrivateSubCommand1_Click()'选择按钮frm_qkbwh.key=Me.DataGrid1.TextMe.HideEndSubPrivateSubCommand2_Click()'取消按钮frm_qkbwh.key=""Me.HideEndSub4.8成绩维护窗体设计添加一个窗体(frm_qkbwh)、一个DataGrid控件,把DataGrid1控件的数据源设置为DataEnvironment1、把DateMenber设置为Command2,分别把窗体上的文本框和下拉框的数据源设置为DataEnvironment1、把DateMenber设置为Command1、把数据字段设置为数据环境里对应的字段。该部分主要包括为学生添加成绩和数据的打印。窗体运行情况如下图所示:代码如下:PublicfindxhstrAsStringPublicfindbjstrAsStringPrivateSubCommand1_Click()'第一个按钮DataEnvironment1.rsCommand1.MoveFirstEndSubPrivateSub
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智慧农业园区开发与运营合作协议
- 事业单位工会活动方案
- 税务顾问服务协议书
- 云计算服务平台建设合同
- 桩基工程施工专业分包规定合同
- 合同付款补充协议书
- 烟草产品购销合同
- 公司商铺租赁合同书
- 独家代理销售合同
- 办公效率提升解决方案实践
- 男方欠女方钱离婚协议书范本
- 《积极心理学(第3版)》 课件 第1章 主观幸福感
- 2024-2030年中国匹克球市场前景预判与未来发展形势分析研究报告
- 小学二年级新学期开学学生家长会承上启下的二年级模板
- LY/T 3370-2024草原术语及分类
- 2024轨道交通绝缘配合第1部分:基本要求电工电子设备的电气间隙和爬电距离
- 《田间试验统计》课件-项目二 田间试验设计与实施
- 一年级下册《读读童谣和儿歌》试题及答案共10套
- CHZ 3002-2010 无人机航摄系统技术要求(正式版)
- 免拆底模钢筋桁架楼承板图集
- 寻梦环游记(Coco)中英文台词对照
评论
0/150
提交评论