还剩43页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
贵州师范大学职业技术学院计算机工程系毕业设计题目学生信息管理系统系别 计算机工程系专业、班级 2008级计算机应用班姓名 杨茂科学号 082113010053指导教师 尹丹老师完成时间 2011年 03月 25日前言学生信息管理系统是一个教育单位不可缺少的部分它的内容对于学校的决策者和管理者来说都至关重要所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段但一直以来人们使用传统人工的方式管理学生学籍档案,这种管理方式存在着许多缺点如:效率低、保密性差另外时间一长将产生大量的文件和数据这对于查找、更新和维护都带来了不少的困难随着科学技术的不断提高计算机科学日渐成熟其强大的功能已为人们深刻认识它已进入人类社会的各个领域并发挥着越来越重要的作用作为计算机应用的一部分使用计算机对学生学籍信息进行管理具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等这些优点能够极大地提高学生学籍管理的效率也是企业的科学化、正规化管理与世界接轨的重要条件因此,开发这样一套管理软件成为很有必要的事情在下面的各章中将以开发一套学生信息管理系统为例谈谈其开发过程和所涉及到的问题及解决方法目录TOC\o1-3\h\z\u摘要1第一章引言
11.1课题介绍
11.2课题目的及意义
11.3研究方法、发展趋势1第二章开发环境、工具介绍
22.1VisualBasic
6.
022.
1.1VisualBasic的编程特点
22.
1.2vb支持的数据库系统
32.
1.3数据库开发中的三大工具
32.2SQLServer2000简介
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摘要随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统本系统是在管理信息系统的理论和方法指导下、数据库技术支持下完成的本文在结构上首先论述了毕业设计选题的背景、目的和意义,然后叙述了开发环境、开发平台以及数据库技术,接着用表格和图片的方式介绍了系统的整体规划,接下来是系统在具体实现中的详细内容,最终本系统能够完成信息的输入、输出数据的修改、查询以及打印报表等功能,本系统界面友好,操作简单,比较实用关键词控件;窗体;报表;关系数据库管理系统;VB第一章引言
1.1课题介绍高校学生信息的管理是一项既重要又繁琐的工作为更好的做好这项工作,提过工作效率,更好的为学校的发展和一线教学服务,决定结合我校实际情况,自行研制一个学生信息管理系统
1.2课题目的及意义由于现今的学生信息管理非常繁琐,行政人员付出大量的工作时间,得到的效率很低因此为提高工作效率,减轻校方人员的工作负担,决定开发学生信息管理系统计算机已经成为我们学习和工作的得力助手今天,计算机的价格已经十分低廉,性能有了长足的进步它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面首先,计算机可以代替人工进行许多繁杂的劳动;其次,计算机可以节省许多资源;第三,计算机可以大大的提高人们的工作效率;第四,计算机可以使敏感文档更加安全等等为了解决传统学生信息的管理正面临着的这些问题,我所设计的学生信息管理系统也就应运而生了
1.3研究方法、发展趋势本系统采用功能分析法即通过说明社会现象怎样满足一个社会系统的需要(即具有怎样的功能)来解释社会现象和CS模式共同完成现代教育技术特别是网络与多媒体技术的发展,对学习活动产生了具有深远意义的冲击,人们可以选择或者设计适合其学习特点的信息采集、加工与重组方式本系统采用CS模式,在某些方面还不是表现的很好,但未来有关学生信息管理的应该采用多层架构的系统,是真正适应教育信息化发展三大趋势的校园网络应用系统,全面支持Internet功能、远程访问功能,采用先进的CS和BS模式共同开发,支持有关学校信息交流、日常教学、教务管理等的各种应用,提供一个基于校园内联网中支持各种类型的学校应用产品的服务平台和开发平台,基本目标是在学校内部和外部建立起顺畅的信息通道,让信息技术成为推动教育生产力的有力工具,提高学校的管理水平和效率,同时充分利用全球的教育资源为学校的教育服务,克服目前大部分学校的校园网建设只起到宣传作用的通病第二章开发环境、工具介绍该软件是在WindowsXPProfessional+VisualBasic
6.0+SQLServer2000的环境下完成的下面就对这些开发工具进行介绍
2.1VisualBasic
6.0微软公司的VisualBasic
6.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的发展从VisualBasic
5.0版本开始,在VisualBasic中制作的应用程序都改变为编译执行,使得VisualBasic的代码效率有了很大的提高,同时执行的速度也加快了解30%同VisualBasic
4.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是VB
6.0中新增的对象,它是一个更简单的对象模型,它更好的集成了其它数据访问技术,并且对本地和远程数据库均有共同的界面,可以取代DAO和RDOADO更易于使用我们在本系统中利用数据管理器创建了数据库及数据库表,并采用了ADO数据访问技术
2.2SQLServer2000简介SQLServer2000是微软公司最新版的大型数据库服务器,其性能指标在各方面都有赶超Oracle数据库的趋势用它可以方便地管理数据库和开发应用程序,它使用了最先进的数据库构架,与WindowsNT/2000平台紧密集成,具有完全的Web功能通过对高端硬件平台、网络和存储技术的支持,为WEB站和企业的应用最大限度地提供了可扩展性和高可靠性,能在Internet商业领域快速建立并应用此外,还增强了安全性,保护防火墙内外的数据支持基于角色的安全并拥有安全审计工具在经历了SQLServer
6.5和
7.0两个版本的尝试后,微软公司终于开始了大规模的业务记得在以前各种关于SQLServer的文章,都会将其定位成中小型应用方面,这种感觉被大家自然的延续到了2000版之中其实这是一种误解在过去的很长一段时间中,微软公司聘请了世界上最优秀的数据库专家以及专门搭建了信息量可谓空前的地理信息系统,励精图治,就是为了摘掉扣在自己头上的这顶帽子有了强大的性能和功能支持,再配合其一向为人称道的易用性,SQLServer可以说成为了开发者手中的一柄利器!另外,目前国内的一些关于微软平台的数据库编程教程,喜欢使用Access作为数据库平台的案例,并展开相关的内容这其实对于开发真正的数据库应用并没有直接的帮助作用,只能使大家停留在应用的初级阶段SQLServer2000提供的非常傻瓜的缺省安装和使用模式,其上手难度并不比Access大另外,SQLServer2000可以兼顾小、中、大规模的应用,有着远远比Access强大的伸缩性
2.
2.1SQLServer数据库特点概括起来,SQLServer2000数据库管理系统具有以下主要特点1)、丰富的图形管理工具,使系统管理、操作更为直观方便SQLServer企业管理器是一个基于图形用户界面(GUI)的集成管理工具,利用它可以配置管理SQLServer服务器、管理数据库和数据库对象、备份和恢复数据、调度任务和管理警报、实现数据复制和转换操作等此外,SQLServer2000还提供了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语言兼容,并在其基础上加以扩充,使它更适合事务处理方面的需要此外,SQLServer2000还支持ODBC、OLEDB、ADO规范,可以使用ODBC、OLEDB、ADO接口访问SQLServer数据库5)、具有很好的伸缩性和可靠性SQLServer2000既能运行在Windows桌面操作系统下,又可运行在服务器操作系统(包括WindowsNT和Windows2000)下;既能运行在单CPU计算机上,又能运行在对称多处理系统下所以,它具有很好的伸缩性,能够满足从桌面应用到大型企业分布式应用到不同层次用户的要求6)、简单的管理方式SQLServer2000与MicrosoftWindows2000有机集成,所以可以使用Windows2000的活动目录(ActiveDirectory)功能对SQLServer进行集中管理,大大简化大型企业中的系统管理工作此外,与Windows2000的集成还使SQLServer能够充分利用操作系统所提供的服务和功能(如安全管理、事件日志、性能监视器、内存管理和异步I/O等),从而增强了SQLServer数据库系统的功能,并且只需要占用很少的系统资源
2.3ADO对象概述ADO对象能够存取到数据库的内容,首先要求数据库的驱动程序ODBC驱动程序与OLEDB驱动程序必须安装上,否则,ADO对象是无法存取数据库中内容,其原理示意图如下图所示请注意上图中的“各种数据库所对应的驱动程序”即ODBC驱动程序与OLEDB驱动程序
2.
3.1利用ADO开发网络数据库应用程序ADO(ActiveDateObjects即ActiveX数据对象)是一个ASP内置的ActiveX服务器组件(ActiveXServerComponent)可把它与ASP结合起来,建立提供数据库信息的网页内容,对数据库进行查询、插入、更新、删除等操作,并可以把在用户端实现“网上实时更新显示”的最新Web数据库技术要执行ADO,服务器端必须安装WindowsNTServer和InternetInformationServerIIS,而客户端只要有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命令主要分成两部分DDLDataDefinitionLanguage和DMLDataManipulationLanguage其中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…字段nSelect…5)、建立新数据表的SelectInto指令该指令与“InsertInto…Select…”指令的区别是,这个指令将建立另一个新的数据表,而InsertInto是增加数据记录到“现存的”数据表中
2.4VB访问数据库过程1)、定义数据库组件DimconnAsNewADODB.Connection其中conn为连接对象DimrecoAsNewADODB.Recordset其中reco为结果集对象2)、打开数据库对于SQL数据库,其连接语句为conn.Opendriver={sqlserver};server=localhost;uid=sa;pwd=;database=student而对于Access数据库,连接语句为conn.OpenProvider=Microsoft.Jet.OLEDB.
4.0;DataSource=App.Path+\student.mdb3)、设定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数据库设计在系统设计过程中,首先要建立的就是数据库本数据库采用SQLServer2000来构造,共使用了3个表,它们分别是用户信息表(admin)、学生基本情况表(student)、学生成绩表(grade)1)、用户信息表(admin)表结构如下表所示名称字段名称类型长度用户IDidint4用户名namechar6用户密码passwordchar6用户类型typechar10注册时间registdatedatetime82)、学生基本情况表(student)表结构如下表所示名称字段名称类型长度学号snovarchar10姓名snamechar10性别ssexchar2班级sclassvarchar50出生年月sbirthdaychar10政治面貌spavarchar8地址saddressvarchar50电话sphonevarchar11Emailsemailvarchar203)、学生成绩表(grade)表结构如下表所示名称字段名称类型长度学号snoint2课程名cnamechar10成绩gradechar2学期semesterchar8第四章系统具体实现本部分主要内容为本系统的各个运行界面以及主要界面的源代码
4.1模块设计添加一个模块module1该部分主要包括一些公共变量的定义、main过程定义以及自动把备份的数据库文件还原到SQLServer2000中的代码设计代码如下PublicDeclareFunctionGetComputerNameLibkernel32AliasGetComputerNameAByVallpBufferAsStringnSizeAsLongAsLong获取主机名的定义PublicAnameAsortAsString状态栏上显示当前用户的名称和用户类型PublicconnAsNewADODB.Connection新建连接对象PublicrecoAsNewADODB.Recordset新建记录集对象Publicreco2AsNewADODB.RecordsetPublicconn_str1conn_str2AsString=====定义一个main过程,从main过程启动程序,同时连接到数据库===PublicSubMainreco.CursorLocation=adUseClientreco
2.CursorLocation=adUseClientconn_str1=Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=maokeyang;DataSource=GetPcNameconn_str2=Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=master;DataSource=GetPcNameDB_ADD先调用DB_ADD来将maokeyang数据库添加到SQLServer2000中conn.Openconn_str1连接到数据库frm_login.Show登录窗体显示EndSub==================此函数用来获取主机名!==================PublicFunctionGetPcNameAsStringDimcompnameAsStringretvalAsLongcompname=Space255retval=GetComputerNamecompname255compname=LeftcompnameInStrcompnamevbNullChar-1GetPcName=compnameEndFunction====关闭记录集====PublicSubClose_RecoIfreco.State=1Thenreco.CloseEndIfEndSub此过程用来在启动软件的时候把maokeyang数据库添加到SQLServer2000中PublicSubDB_ADDDimsAsStringOnErrorGoToErrorChecka:conn.Openconn_str2reco.Openselect*fromsysdatabaseswherename=maokeyangconn13查询是否存在maokeyang数据库Ifreco.RecordCount1Then如果maokeyang数据库不存在,则添加maokeyang数据库,否则不添加mkdir_killconn.Executerestoredatabasemaokeyangfromdisk=App.Path\backup\maokeyangElsereco.Closeconn.CloseExitSubEndIfreco.Closeconn.CloseExitSubErrorCheck:MsgBox您可能没有启动SQLServer服务提示ShellnetstartmssqlserverMsgBox启动成功!提示GoToaEndSub新建路径并删除原有的数据库PublicSubmkdir_killOnErrorResumeNextMkDirc:\programfilesMkDirc:\ProgramFiles\MicrosoftSQLServerMkDirC:\ProgramFiles\MicrosoftSQLServer\MSSQLMkDirC:\ProgramFiles\MicrosoftSQLServer\MSSQL\DataKillC:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\maokeyang_Log.LDFKillC:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\maokeyang_Data.MDFEndSub
4.2登录窗体设计添加一个窗体(frm_login)该部分主要包括用户的验证以及登录次数的限制窗体运行情况如下图所示代码如下DimnAsIntegern为限制登陆次数的变量PrivateSubForm_Loadn=4EndSubPrivateSubCommand1_Click确定按钮Close_RecoWithreco连接到表并产生记录集.Openselect*fromadminwherename=TrimText
1.Textandpassword=TrimText
2.Textconn11If.RecordCount0ThenAname=Trim.Fieldsname将成功登录的用户名赋给AnameAsort=Trim.Fieldstype将成功登录的用户类型赋给Asort.CloseUnloadMefrm_main.Show主界面显示Elsen=n-
1.Close.Openselect*fromadminwherename=TrimText
1.Textconn11If.RecordCount=0ThenMsgBox用户名错误,请重新输入!您还有n次机会登陆!错误Text
1.SetFocus.CloseElseMsgBox密码错误,请重新输入!您还有n次机会登陆!错误.CloseText
2.SetFocusEndIfEndIfIfn=0ThenClose_RecoUnloadMeEndIfEndWithEndSubPrivateSubCommand2_Click取消按钮IfMsgBox你真的不登录学生信息管理系统吗vbQuestion+vbYesNo退出系统提示信息=vbYesThenEndEndIfEndSub=======只有当用户名和密码框都不为空时“登录”按钮才可用=======PrivateSubText2_Change密码文本框IfText
1.TextAndText
2.TextThenCommand
1.Enabled=TrueCommand
1.Default=TrueElseCommand
1.Enabled=FalseEndIfEndSubPrivateSubText1_Change用户名文本框IfText
2.TextAndText
1.TextThenCommand
1.Enabled=TrueCommand
1.Default=TrueElseCommand
1.Enabled=FalseEndIfEndSub
4.3主界面设计添加一个窗体(frm_main)该部分主要添加ImageList、StatusBar、Toolbar控件和菜单编辑器以用户名为杨茂科、密码为123登录,窗体运行情况如下图所示代码如下PrivateSuba1_Clickfrm_beifen.ShowEndSubPrivateSubb1_Clickfrm_regist.ShowEndSubPrivateSubb2_Clickfrm_modify.ShowEndSubPrivateSubc1_Clickfrm_qkbgx.ShowEndSubPrivateSubc2_Clickfrm_qkbwh.ShowEndSubPrivateSubc3_Clickfrm_cjbwh.ShowEndSubPrivateSubd1_Clickfrm_about.ShowEndSubPrivateSubd2_Clickfrm_help.ShowEndSubPrivateSube_ClickUnloadMefrm_login.ShowEndSubPrivateSubf_ClickEndEndSubPrivateSubForm_LoadStatusBar
1.Panels
1.Text=用户Aname状态栏第一格显示用户名StatusBar
1.Panels
2.Text=类型Asort状态栏第二格显示用户类型EndSubPrivateSubToolbar1_ButtonClickByValButtonAsMSComctlLib.ButtonSelectCaseButton.KeyCaseonefrm_qkbgx.Show1情况表更新窗体显示Casetwofrm_qkbwh.Show1情况表维护窗体显示Casethreefrm_cjbwh.Show1成绩表维护窗体显示Casefourfrm_modify.Show1密码修改窗体显示Casefivefrm_beifen.Show1数据库维护窗体显示EndSelectEndSub
4.
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退出f
4.4数据库维护窗体设计添加一个窗体(frm_beifen)、一个CommonDialog控件该部分主要包括数据库的备份与还原窗体运行情况如下图所示代码如下PrivateSubCommand1_Click备份按钮DimbackUpFileNameAsString变量声明CommonDialog
1.DialogTitle=备份文件设置对话框的标题CommonDialog
1.Filter=*.*CommonDialog
1.ShowSave设置对话框的按钮类型为保存backUpFileName=CommonDialog
1.FileName将保存的文件名赋给变量IfCommonDialog
1.FileName=ThenMsgBox文件名不能为空请输入文件名CommonDialog
1.ShowSaveElseconn.Executebackupdatabaselibrarytodisk=backUpFileName执行备份语句MsgBox备份成功EndIfEndSubPrivateSubCommand2_Click还原按钮conn.Closeconn.OpenProvider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=master;DataSource=GetPcName借助master数据库来恢复CommonDialog
1.DialogTitle=还原的文件名CommonDialog
1.Filter=*.*backUpFileName=CommonDialog
1.FileNameCommonDialog
1.ShowOpenrec.Openselectspidfromsysprocesseswheredbid=db_idmaokeyangconn查询是否有maokeyang数据库找出进程号DoWhileNotrec.EOFconn.Executekillrecospid结束sql服务器的所有连接,否则会出现数据库正在使用,无法完成排它操作等等reco.MoveNextLoopconn.Executerestoredatabasemaokeyangfromdisk=backUpFileName还原数据库MsgBox数据库已还原reco.Closeconn.Closeconn.OpenProvider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=master;DataSource=GetPcName借助master数据库来恢复EndSub
4.5管理员信息管理该部分包括管理员注册和密码修改的管理
4.
5.1管理员注册窗体设计添加一个窗体(frm_regist)该部分主要完成管理员的注册功能窗体运行情况如下图所示代码如下PrivateSubCommand1_Click确认按钮IfText
3.TextText
2.TextThenMsgBox两次输入的新密码不同,请重新输入!vbOKOnly+vbExclamation警告Text
2.SetFocusText
2.Text=Text
3.Text=ExitSubEndIfWithreco.Openselect*fromadminconn
13.AddNew.Fieldsname=TrimText
1.Text.Fieldspassword=TrimText
2.Text.Fieldstype=Combo
1.Text.Fieldsregistdate=TrimText
4.Text.Update.CloseMsgBox注册成功提示Text
1.Text=Text
2.Text=Text
3.Text=Text
4.Text=Combo
1.Text=EndWithEndSubPrivateSubCommand4_Click更改按钮Text
4.Enabled=TrueText
4.Text=Text
4.SetFocusEndSubPrivateSubForm_Load窗体加载时候注册时间文本框获得当前时间Text
4.Enabled=FalseText
4.Text=DateEndSub
4.
5.2密码修改窗体设计添加一个窗体(frm_modify)、一个图像列表控件、一个ListView控件在图像列表控件属性页插入一张图片作为用户的图标,在ListView属性页图像列表把图标图像列表选项设置为ImageList1该部分主要完成用户密码修改的功能(管理员修改首页用户的密码、普通用户修改自己的密码)窗体运行情况如下图所示代码如下PrivateSubCommand1_Click确认按钮WithrecoIfText
2.Texttrim(.Fieldspassword)ThenMsgBox当前密码错误!请重新输入!错误Text
2.Text=ElseIfText
3.TextText
4.TextThenMsgBox两次密码输入不一致!错误Text
3.Text=Text
4.Text=Else.Fieldspassword=Text
4.Text.UpdateMsgBox密码修改成功!提示Text
4.Text=Text
2.Text=Text
3.Text=Command
1.Enabled=FalseEndIfEndIfEndWithEndSubPrivateSubForm_LoadDimlistAsListItemDimiAsStringText
1.Enabled=FalseClose_RecoIfAsort=管理员Thenreco.Openselect*fromadminconn13Elsereco.Openselect*fromadminwherename=Anameconn
1.3EndIfIfreco.RecordCount0ThenDoWhileNotreco.EOFi=reco.FieldsnameSetlist=ListView
1.ListItems.Addi1reco.MoveNextLoopEndIfEndSubPrivateSubListView1_ClickDimiAsStringi=ListView
1.SelectedItem获取列表框中的用户名Withreco.MoveFirst将当前指针移到记录集的第一条.Findname=i开始向下检索一列名为i的记录Text
1.Text=.FieldsnameEndWithText
2.SetFocusEndSub
4.6学生基本情况更新窗体设计添加一个窗体(frm_qkbgx)、一个ADO控件把ADO控件的属性设置为连接到maokeyang数据库、把记录源设置为数据库里面的student表,分别把窗体上的文本框(除查询学号文本框外)和下拉框的数据源设置为adodc
1、把数据字段分别设置为数据库里面对应的字段该部分主要完成学生基本情况的操作窗体运行情况如下图所示代码如下PrivateSubCommand1_Click添加按钮Adodc
1.Recordset.AddNewText
1.Text=Text
21.Text=Text
30.Text=Text
41.Text=Text
50.Text=Text
61.Text=Text
70.Text=Combo
1.Text=Combo
2.Text=Command
1.Enabled=FalseCommand
11.Enabled=TrueCommand
7.Enabled=TrueCommand
6.Enabled=TrueCommand
8.Enabled=TrueCommand
9.Enabled=TrueEndSubPrivateSubCommand11_Click更新按钮WithAdodc
1.Recordset.Fieldssno=TrimText
1.Text.Fieldssname=TrimText
21.Text.Fieldssclass=TrimText
30.Text.Fieldsssex=Combo
2.Text.Fieldssbirthday=TrimText
41.Text.Fieldsspa=Combo
1.Text.Fieldssaddress=TrimText
50.Text.Fieldssphone=TrimText
61.Text.Fieldssemail=TrimText
70.TextIfText
1.Text=.FieldssnoThenMsgBox学号不能重复!提示Text
1.Text=Text
1.SetFocusElse.UpdateMsgBox添加成功!提示Command
1.Enabled=TrueCommand
11.Enabled=FalseEndIfEndWithEndSubPrivateSubCommand2_Click删除按钮IfMsgBox你真的要删除该学生信息吗vbQuestion+vbYesNo删除信息=vbYesThenAdodc
1.Recordset.DeleteAdodc
1.Recordset.MoveNextIfAdodc
1.Recordset.EOF=TrueThenAdodc
1.Recordset.MoveLastEndIfEndIfEndSubPrivateSubCommand3_Click修改按钮WithAdodc
1.Recordset.Fieldssno=TrimText
1.Text.Fieldssname=TrimText
21.Text.Fieldssclass=TrimText
30.Text.Fieldsssex=Combo
2.Text.Fieldssbirthday=TrimText
41.Text.Fieldsspa=Combo
1.Text.Fieldssaddress=TrimText
50.Text.Fieldssphone=TrimText
61.Text.Fieldssemail=TrimText
70.Text.UpdateMsgBox修改成功!提示EndWithEndSubPrivateSubCommand5_Click查询按钮IfLenText
8.Text0ThenAdodc
1.CommandType=adCmdTextAdodc
1.RecordSource=select*fromstudentwheresno=TrimText
8.TextAdodc
1.RefreshCommand
7.Enabled=FalseCommand
6.Enabled=FalseCommand
8.Enabled=FalseCommand
9.Enabled=FalseElseMsgBox请指定要查找学生的学号!提示EndIfEndSubPrivateSubCommand8_Click第一个按钮Adodc
1.Recordset.MoveFirstEndSubPrivateSubCommand6_Click上一个按钮Adodc
1.Recordset.MovePreviousIfAdodc
1.Recordset.BOF=TrueThenAdodc
1.Recordset.MoveFirstEndIfEndSubPrivateSubCommand7_Click下一个按钮Adodc
1.Recordset.MoveNextIfAdodc
1.Recordset.EOF=TrueThenAdodc
1.Recordset.MoveLastEndIfEndSubPrivateSubCommand9_Click最后一个按钮Adodc
1.Recordset.MoveLastEndSub
4.7学生基本情况维护窗体设计添加一个窗体(frm_qkbwh)、一个ADO控件、一个DataGrid控件,在工程中添加一个数据环境,把ADO控件的属性设置为连接到maokeyang数据库、把记录源设置为数据库里面的student表,把DataGrid控件的数据源设置为DataEnvironment
1、把DateMenber设置为Command1该部分主要包括学生基本情况的操作和数据的打印窗体运行情况如下图所示代码如下PublickeyAsStringPrivateSubCommand1_Click选择专业按钮Me.key=frm_Dialog
2.Showl显示班级查找对话框IfMe.keyThenDataEnvironment
1.rsCommand
1.Filter=sclass=keyAdodc
1.RefreshDataGrid
1.AllowUpdate=FalseEndIfUnloadfrm_Dialog2EndSubPrivateSubCommand2_Click修改按钮DataGrid
1.AllowUpdate=TrueDataGrid
1.SetFocusEndSubPrivateSubCommand3_Click添加按钮DataGrid
1.AllowUpdate=TrueDataEnvironment
1.rsCommand
1.AddNewDataGrid
1.SetFocusEndSubPrivateSubCommand4_Click删除按钮DataGrid
1.AllowDelete=TrueDataEnvironment
1.rsCommand
1.DeleteDataEnvironment
1.rsCommand
1.MoveNextIfDataEnvironment
1.rsCommand
1.EOF=TrueThenDataEnvironment
1.rsCommand
1.MoveLastDataGrid
1.SetFocusEndSubPrivateSubCommand5_Click打印按钮DataReport
1.Show1报表1显示EndSub
4.
7.1数据环境把数据环境的连接属性设置为连接到SQLServer2000中的maokeyang数据库中的student表,在建立好的连接下添加命令Command1,在其属性页设置数据源设置为student表、把记录集管理中的锁定类型设置为开发式,在Command1添加子命令Command2,在其属性页设置数据源为grade表、在关联定义中添加一个snotosno的关联数据环境结构如下图所示
4.
7.2DateReport1设计在工程中添加DataReport,添加一个数据报表,名称使用默认的DataReport1,将其数据源设置为DataEnvironment
1、DateMenber设置为Command1,报表设计界面如下图所示报表的运行界面如下图所示报表的结束(Terminate)事件代码PrivateSubDataReport_Terminate‘因为报表结束时,指针指到数据表的开始标志,所以在报表结束时,让指针指到第一条记录DataEnvironment
1.rsCommand
1.MovefirstEndSub
4.
7.3班级查找对话框添加一个窗体(frm_Dialog2)、一个ADO控件、一个DataGrid控件,把ADO控件的属性设置为连接到maokeyang数据库、把记录源设置为selectsclassfromstudentgroupbysclass,把DataGrid控件的数据源设置为adodc1,该部分主要功能完成班级选择窗体运行情况如下图所示代码如下PrivateSubCommand1_Click选择按钮frm_qkbwh.key=Me.DataGrid
1.TextMe.HideEndSubPrivateSubCommand2_Click取消按钮frm_qkbwh.key=Me.HideEndSub
4.8成绩维护窗体设计添加一个窗体(frm_qkbwh)、一个DataGrid控件,把DataGrid1控件的数据源设置为DataEnvironment
1、把DateMenber设置为Command2,分别把窗体上的文本框和下拉框的数据源设置为DataEnvironment
1、把DateMenber设置为Command
1、把数据字段设置为数据环境里对应的字段该部分主要包括为学生添加成绩和数据的打印窗体运行情况如下图所示代码如下PublicfindxhstrAsStringPublicfindbjstrAsStringPrivateSubCommand1_Click第一个按钮DataEnvironment
1.rsCommand
1.MoveFirstEndSubPrivateSubCommand2_Click前一个按钮DataEnvironment
1.rsCommand
1.MovePreviousIfDataEnvironment
1.rsCommand
1.BOFThenDataEnvironment
1.rsCommand
1.MoveFirstEndIfEndSubPrivateSubCommand3_Click下一个按钮DataEnvironment
1.rsCommand
1.MoveNextIfDataEnvironment
1.rsCommand
1.EOFThenDataEnvironment
1.rsCommand
1.MoveLastEndIfEndSubPrivateSubCommand4_Click最后一个按钮DataEnvironment
1.rsCommand
1.MoveLastEndSubPrivateSubCommand5_Click添加成绩按钮DataGrid
1.AllowAddNew=TrueEndSubPrivateSubCommand6_Click查找按钮Me.findxhstr=Me.findbjstr=frm_Dialog
1.Show1用frm_Dialog1窗体的返回值还过滤数据环境IfMe.findxhstrThenDataEnvironment
1.rsCommand
1.Filter=sno=findxhstrEndIfIfMe.findbjstrThenDataEnvironment
1.rsCommand
1.Filter=sclass=findbjstrEndIfUnloadfrm_Dialog1EndSubPrivateSubCommand7_Click打印按钮DataReport
2.Show1EndSubPrivateSubDataGrid1_LostFocusDataGrid
1.AllowAddNew=False在DataGrid1失去焦点时,使其进入不添加状态EndSubPrivateSubForm_UnloadCancelAsIntegerDataEnvironment
1.rsCommand
1.Filter=adFilterNoneEndSub
4.
8.1DateReport2设计在工程中添加DataReport,添加一个数据报表,名称使用默认的DataReport1,将其数据源设置为DataEnvironment
1、DateMenber设置为Command1,报表设计界面如下图所示报表的运行界面如下图所示
4.
8.2班级查找对话框添加一个窗体(frm_Dialog1)、一个ADO控件、一个DataGrid控件,把ADO控件的属性设置为连接到maokeyang数据库、把记录源设置为selectsclassfromstudentgroupbysclass,把DataGrid控件的数据源设置为adodc1,该部分主要功能完成班级或学号选择窗体运行情况如下图所示代码如下PrivateSubForm_LoadText
1.Visible=FalseDataGrid
1.Visible=FalseLabel
1.Visible=FalseEndSubPrivateSubcommand1_Click确定按钮IfOption
1.ValueAndText
1.TextThenfrm_cjbwh.findxhstr=TrimText
1.TextMe.HideEndIfIfOption
2.ValueThenfrm_cjbwh.findbjstr=Me.DataGrid
1.TextMe.HideEndIfEndSubPrivateSubOption1_ClickText
1.Visible=TrueLabel
1.Visible=TrueDataGrid
1.Visible=FalseText
1.SetFocusEndSubPrivateSubOption2_ClickText
1.Visible=FalseLabel
1.Visible=FalseDataGrid
1.Visible=TrueDataGrid
1.SetFocusEndSub
4.9关于系统和系统帮助窗体设计由于这两个窗体的设计很简单,所以在此只给出窗体的运行结果关于系统运行情况如下系统帮助运行情况如下第五章总结在毕业设计中,我们遇到的困难很多,在解决它们的同时我又学到了很多,受益匪浅,特别是如何分析、建立、开发一个系统在一个系统开发的过程中编码不是重要的,重要的是分析系统、建立起系统模型在分析一个系统前,分析人员必须要对将要开发的系统所涉及到的各方面知识有一个认识,然后将系统的模型建立起来而且一个成功的软件要符合用户的需要,要以用户为中心,开发出用户想要的软件,而不能自以为是、想当然的做在程序编写中,我认识到软件要有简便的界面,良好的程序风格,较全的代码注释拥有这些条件,程序的可读性才会好,开发的复杂度才能大大减少,修改代码时更加容易下手我认为,所谓友好的界面,就是用户需要的界面,力求简便全面所以设计一个界面时,开发人员必须要了解用户的想法,从用户的角度去设计,当然,开发不能全听用户的意见,在详细分析了系统后,开发人员可以向用户提出一些修改的意见,在双方多次交流后定出程序所需的功能,以决定界面的实现在编码中,良好的编程风格与习惯是提高工作效率的一个重要方面,而且良好的编程风格与习惯也是使软件便于维护的基础那如何是良好的编程风格与习惯呢?我认为主要是程序的模块化、必要的注释所谓模块化就是使程序的功能实现分成多个单独的功能模块,而不能在一大段代码中实现多个功能,如果这样做,别的人是非常难读懂你的程序必要的注释,显而易见是要在程序的编写中加入对程序的说明,原因就是为了别人能读懂你的程序,过一段时间后你自己还能读懂自己的程序总结这次毕业设计给我感受最深的至少有三点1.进行软件开发这样的工作,要有恒心,要能静下新来做,而不能浮躁2.要善于同别人交流与合作,善于获取各种有用的资源3.要真真实实的多查资料,多问,多看结束语经过一个月的毕业设计,本人学会了很多知识,个人的能力有了很大的提高,对VisualBasic
6.0和SQLServer2000有了更深刻的认识,并用VisualBasic
6.0结合SQLServer2000顺利的开发了这样的一个学生信息管理系统,我的毕业设计取得了应有的效果在这里,我还要感谢我的指导老师尹丹老师,她帮助我解决了设计中的疑难和困惑,为我完成毕业设计提供了极大的帮助在我遇到问题时她总是耐心的为我解答,并帮我查找相关资料;在我遇到困难时帮助解决了不少的难点,使得系统能及时完成尹丹老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我受益匪浅,使我得到不少的提高,这对于我以后的工作和学习都有一种巨大的帮助,感谢指导老师耐心的辅导能够顺利完成毕业课题我还要感谢贵州师范大学职业技术学院计算机工程系毕业设计给我们提供了良好实习和设计环境本人在此对所有向我提供帮助的老师和同学致以最诚挚的敬意参考文献
1、《VisualBasic
6.0》林陈雷人民邮电出版社
2、《面向对象程序设计系列教材》龚沛曾高等教育出版社
3、《学用VisualBasic编程》潭浩西安电子科技大学出版社
4、《VisualBasic
6.0数据库开发与专业应用》敬铮国防工业出版社
5、《VisualBasic
6.0数据库程序设计高手》温贤发科学出版社客户端客户端客户端ADO对象各种数据库所对应的驱动程序各种数据库如Access、SQLServer以及Oracle等。