vb+access学生信息管理系统

alscht

贡献于2016-11-28

字数:22799 关键词:

 河南理工大学高等职业学院 毕 业 论 文 学生信息管理系统 (论文名称) (作者姓名) 指导教师 专业班级 答辩日期 评阅教师 年 月 日 前 言 学生信息管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理学生学籍档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 作为计算机应用的一部分,使用计算机对学生学籍信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生学籍管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。 因此,开发这样一套管理软件成为很有必要的事情,在下面的各章中将以开发一套学生信息管理系统为例,谈谈其开发过程和所涉及到的问题及解决方法。 摘 要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已经逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。学生学籍管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学籍管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。作为计算机应用的一部分,使用计算机对学生学籍进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生学籍管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。 本系统主要完成对系部信息、班级信息、任课教师信息、学生信息、课程信息以及有选课记录和成绩等多种数据信息的管理,包括数据库中表的录入、修改、删除等。系统还可以完成对各类信息的查询、录入、修改、删除等功能,其中学籍管理用户包括系统管理员、教师和学生。 本系统采用Access2003来设计数据库,并使用当前优秀的开发工具: Microsoft Visual Studio 2008,它有着最为灵活的数据库结构,对数据库应用有着良好的支持。论文主要介绍了本系统的开发背景,所要完成的功能和开发的过程,主要说明了系统设计的重点、设计思想。 关键词: 学生信息管理系统;关系数据库 Abstract With information technology applied more and more abroad and in-depthly on management,it has grown up step by step that on technology management information system is put in practice.Management information system is a new subject in progess.As long as any corporation lives and develops,organizes activities inside effectly,it needs create itself suitable management information system. The school register management system management system is an education unit essential part.Its content said regarding the school policy-maker and the superintendent all very important, therefore the school register management system management system should be able to provide the sufficient information and the quick inquiry method for the user. But the people have since always used the traditional artificial way management document file, this management way has many shortcomings.For example:the efficiency low, the secrecy is bad,Moreover the time one is long,will produce the massive documents and the data,this regarding the search, the renewal and the maintenance has all brought many difficulties.Along with science and technology unceasing enhancement,The computer science is mature day after day.Its formidable function had profoundly known for the people.It entered the human society each domain and is playing the more and more vital role. This system mainly finishes to manage for department information、class information、teacher information、student information、course information、selective course record and score that needs tables in the database to be created,altered and deleted. The system can realize to select,create,alter and deleted for all informations, and the system users have the system manager、teachers and students. The system uses Microsoft SQL 2,008 to design the database, and uses current outstanding development kit: Microsoft Visual Studio 2010,It has the most nimble database structure, and has the good support to the database application. The paper mainly introduced this topic development background, complete function and development process. The key explanation is system design, key point, design thought. Keywords:The management information system; The school register management system; RDBMS 目 录 摘 要 I Abstract II 第一章 绪 论 1 1.1 课题介绍 1 1.2 课题目的及意义 1 1.3 研究方法、发展趋势 1 第二章 开发环境、工具介绍 2 2.1 Visual Basic 6.0 2 2.1.1 Visual Basic的编程特点 2 2.1.2 vb支持的数据库系统 3 2.1.3 数据库开发中的三大工具 3 2.2 ACCESS 2003 简介 4 2.2.1 ACCESS 2003 数据库特点 5 2.3 ADO 对象概述 6 2.3.1 利用ADO开发网络数据库应用程序 6 2.3.2 ADO组件的主要对象及其功能 7 2.3.3 用来操控数据的SQL命令 7 2.4 VB访问数据库过程 8 第三章 系统分析与设计 9 3.1 系统功能分析 9 3.2 系统结构图 9 3.3 数据库设计 10 3.3.1 建立数据库 6 3.3.2 表结构 7 第四章 系统实现 12 4.1界面、代码设计与实现 12 4.2数据源(Access) 14 第五章 系统管理维护与评价 12 5.1系统的日常管理维护和评价 12 2.2设计过程中遇到的问题以及解决方法 14 第六章 总结 38 致谢 39 参考文献 40 附录 40 第一章 绪 论 1.1 课题介绍 高校学生信息的管理是一项既重要又繁琐的工作。为更好的做好这项工作,提过工作效率,更好的为学校的发展和一线教学服务,决定:结合我校实际情况,自行研制一个学生信息管理系统。 1.2 课题目的及意义 由于现今的学生信息管理非常繁琐,行政人员付出大量的工作时间,得到的效率很低。因此为提高工作效率,减轻校方人员的工作负担,决定开发学生信息管理系统。 计算机已经成为我们学习和工作的得力助手:今天,计算机的价格已经十分低廉,性能有了长足的进步。它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面: 首先,计算机可以代替人工进行许多繁杂的劳动; 其次,计算机可以节省许多资源; 第三,计算机可以大大的提高人们的工作效率; 第四,计算机可以使敏感文档更加安全等等。 为了解决传统学生信息的管理正面临着的这些问题,我所设计的学生信息管 理系统也就应运而生了。 1.3 研究方法、发展趋势 本系统采用功能分析法即通过说明社会现象怎样满足一个社会系统的需要(即具有怎样的功能)来解释社会现象和CS模式共同完成。 现代教育技术特别是网络与多媒体技术的发展,对学习活动产生了具有深远意义的冲击,人们可以选择或者设计适合其学习特点的信息采集、加工与重组方式。本系统采用CS模式,在某些方面还不是表现的很好,但未来有关学生信息管理的应该采用多层架构的系统,是真正适应教育信息化发展三大趋势的校园网络应用系统,全面支持Internet功能、远程访问功能,采用先进的CS和BS模式共同开发,支持有关学校信息交流、日常教学、教务管理等的各种应用,提供一个基于校园内联网中支持各种类型的学校应用产品的服务平台和开发平台,基本目标是在学校内部和外部建立起顺畅的信息通道,让信息技术成为推动教育生产力的有力工具,提高学校的管理水平和效率,同时充分利用全球的教育资源为学校的教育服务,克服目前大部分学校的校园网建设只起到宣传作用的通病。 第二章 开发环境、工具介绍 该软件是在Windows XP Professional + Visual Basic 6.0 + ACCESS 2003的环境下完成的。下面就对这些开发工具进行介绍: 2.1 Visual Basic 6.0 微软公司的Visual Basic 6.0是Windows应用程序开发工具,是目前最为广泛的、易学易用的面向对象的开发工具。Visual Basic提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。利用VISUAL BASIC 程序设计语言,可以很方便地设计出在WINDOWS环境下运行的应用程序。故而,实现本系统VB是一个相对较好的选择。 2.1.1 Visual Basic 的编程特点 Visual Basic语言的出现为Windows下的编程提出了一个新概念,利用Visual Basic的动态数据交换、对象的链接和嵌入、动态链接库、ActiveX技术可以很方便地设计出功能强大的应用程序。 利用Visual Basic语言编程有以下几个特点: 1)、可视化程序设计 在Visual Basic中开发的应用程序,不但有丰富的图形界面,同时由用户为开发图形界面添加的代码真是少而又少,因为在设计图形界面的过程中只需设置 ActiveX控件的属性即可。 2)、强大的数据库和网络功能 随着Visual Basic 语言的向前发展,它在数据库和网络方面的功能优势就愈加明显,利用Visual Basic 中的ODBC——开放式的数据库访问技术可以很方便地开发出自己的数据库应用程序;利用 Visual Basic自带的可视化数据管理器和报表生成器,完全可以在Visual Basic就完成数据库的开发工作。 3)、其他特性 在Visual Basic以前的版本中,由于仍然摆脱不了解释执行的代码运行机制,所以在相当的程度上制约了 Visual Basic 的发展。 从Visual Basic5.0版本开始,在Visual Basic 中制作的应用程序都改变为编译执行,使得Visual Basic的代码效率有了很大的提高,同时执行的速度 也加快了解30%(同Visual Basic4.0相比)。 当然在 Visual Basic中还有其它特性,例如: l 面向对象的编程语言; l 结构化程序设计; l 事件驱动的程序设计: 在传统的或“过程化”的应用程序中,应用程序自身控制了执行哪一部分代码和按何种顺序执行代码。从第一行代码执行程序并按应用程序中预定的路径执行,必要时才会调用过程。 在事件驱动的应用程序中,代码不是按预定的路径执行,而是在响不同的事件时执行不同的代码片段。事件可以由用户操作触发、也可以由来自操作系统或其它应用程序的消息触发、甚至由应用程序本身的消息触发。这些事件的顺序,决定了代码执行的顺序,因此应用程序每次运行时所经过的路径都是不同的。 l 支持动态链接库; l 应用程序之间的资源共享; l 事件驱动的程序设计; 在传统的或“过程化”的应用程序中,应用程序自身控制了执行哪一部分代码和按何种顺序执行代码。从第一行代码执行程序并按应用程序中预定的路径执行,必要时才会调用过程。 在事件驱动的应用程序中,代码不是按预定的路径执行,而是在响不同的事件时执行不同的代码片段。事件可以由用户操作触发、也可以由来自操作系统或其它应用程序的消息触发、甚至由应用程序本身的消息触发。这些事件的顺序,决定了代码执行的顺序,因此应用程序每次运行时所经过的路径都是不同的。 l 支持动态链接库; l 应用程序之间的资源共享 2.1.2 VB支持的数据库系统 VB支持对多格式的数据库的访问和维护,无论是Access还是Foxpro中创建的数据库,都可以用VB打开,对其进行查询、修改和删除等操作。事实上,VB几乎支持对市面上所有数据库的访问。 VB可以访问的数据库可以简单的分为三类,即:Microsoft Access格式数据库,外部数据库和ODBC数据库。VB对多种数据库格式的支持,大大的增强了开发数据库应用程序的能力。 2.1.3 数据库开发中的三大工具 Visual Basic在数据库应用程序的开发领域中,提供包含数据管理(DataManager),数据控件(Data Control)以及数据编程对象(数据访问对象(DAO)、远程数据对象(RDO)和ActiveX数据对象(ADO))等功能强大的工具,协助设计人员轻松的连接数据库文件,并访问其中的数据,在功能方面与其他一些专业数据库软件(如FoxPro,Micosoft Access等)不相上下。 数据管理器(Data Manager)是Visual Basical已有的老成员之一,拓本盛举有的Jet数据库引擎(Database Engine)可以帮助VB程序元件立即维护数据库内容,并可通过输入查询或查找数据库信息,而不必再通过其他数据库软件另外去设计数据库。 数据控件是VB所提供的基本控件成员之一。它使得设计者省下一堆程序代码编写的工作,能够轻松的设计及维护数据库内容。数据控件可以通过一些属性的设置去链接某个数据库文件,但是它本身并无法显示数据库各个记录的内容,必须在搭配其他具有数据感知(Data Aware)功能的控件对应并显示一个字段内容,以方便地进行记录的浏览及编辑工作。 VB提供的数据访问对象(Data Access Object;DAO)让程序设计者拥有更大的发挥空间。借助程序代码编写,直接控制Jet数据库引擎,配合数据库控件,能够开发出更具弹性且高效率的数据应用程序。 RDO是处理远程数据库的一些专门需要的对象集合。使用RDO可以不用本地的查询机就能访问ODBC数据源,这无疑将大大提高应用程序的性能。 ADO是VB6.0中新增的对象,它是一个更简单的对象模型,它更好的集成了其它数据访问技术,并且对本地和远程数据库均有共同的界面,可以取代DAO和RDO。ADO更易于使用。 我们在本系统中利用数据管理器创建了数据库及数据库表,并采用了ADO数据访问技术。 2.1.4 ACCESS 2003 简介 数据库是有结构的数据集合,它与一般的数据文件不同,其中的数据是无结构的是一串文字或数字流。数据库中的数据可以是文字、图象、声音等。 Microsoft Access是一种关系式数据库,关系式数据库由一系列表组成,表又由一系列行和列组成,每一行是一个记录,每一列是一个字段,每个字段有一个字段名,字段名在一个表中不能重复。表与表之间可以建立关系(或称关联,连接),以便查询相关联的信息。Access数据库以文件形式保存,文件的扩展名是.MDB。 本次数据库采用了Microsoft推出的Access数据库,能够快速方便的和Office的其他套件综合使用。由于Access具有显著的简易性和有效性,大量的桌面数据库系统都采用Access作为后台数据库。使用Access的好处还在于,如果你的系统扩展到Client/Server模式的时候,可以使用Microsoft的数据库服务器软件SQL Server,此时,程序只需要简单的修改一下链接(ADO的数据源)就可以,这样,为程序的平滑扩展提供了非常有力的条件。 2.1.5 Access 2003 数据库特点 概括起来,ACCESS 2003数据库管理系统具有以下主要特点。 (1)存储方式单一:Access管理的对象有表、查询、窗体、报表、页、宏和模块,以上对象都存放在后缀为(.mdb)的数据库文件中,便于用户进行操作和管理。 (2)面向对象:Access是一个面向对象的开发工具,利用面向对象的方式将数据库系统中的各种功能对象化,将数据库管理的各种功能封装在各类对象中。它将一个应用系统当作是由一系列对象组成的,对每个对象它都定义一组方法和属性,以定义该对象的行为和外围,用户还可以按需要给对象扩展方法和属性。通过对象的方法、属性完成数据库的操作和管理,极大地简化了用户的开发工作。同时,这种基于面向对象的开发方式,使得开发应用程序更为简便。 (3)界面友好、易操作:Access是一个可视化工具,其风格与Windows完全一样,用户想要生成对象并应用,只要使用鼠标进行拖放即可,非常直观方便。系统还提供了表生成器、查询生成器、报表设计器以及数据库向导、表向导、查询向导、窗体向导、报表向导等工具,使得操作简便,容易使用和掌握。 (4)集成环境、处理多种数据信息:Access基于Windows操作系统下的集成开发环境,该环境集成了各种向导和生成器工具,极大地提高了开发人员的工作效率,使得建立数据库、创建表、设计用户界面、设计数据查询、报表打印等可以方便有序地进行。 (5)Access支持ODBC(开发数据库互联,Open Data Base Connectivity):利用Access强大的DDE(动态数据交换)和OLE(对象的链接和嵌入)特性,可以在一个数据表中嵌入位图、声音、 Excel表格、Word文档,还可以建立动态的数据库报表和窗体等。而且Access可以将程序应用于网络,并与网络上的动态数据相链接。利用数据库访问页对象生成HTML文件,轻松构建Internet/Intranet的应用。 2.2 ADO 对象概述 ADO对象能够存取到数据库的内容,首先要求数据库的驱动程序( ODBC驱动程序与OLE DB驱动程序)必须安装上,否则,ADO对象是无法存取数据库中内容,其原理示意图如下图所示: 客户端 ADO对象 各种数据库所对应的驱动程序 各种数据库(如Access、SQL Server以及Oracle等) 请注意:上图中的“各种数据库所对应的驱动程序”即ODBC驱动程序与OLE DB驱动程序。 2.2.1 利用网络开发数据库应用程序 ADO(Active Date Objects,即ActiveX数据对象)是一个ASP内置的ActiveX服务器组件(ActiveX Server Component)。可把它与ASP结合起来,建立提供数据库信息的网页内容,对数据库进行查询、插入、更新、删除等操作,并可以把在用户端实现“网上实时更新显示”的最新Web数据库技术。 要执行ADO,服务器端必须安装Windows NT Server 和Internet Information Server(IIS),而客户端只要有IE或NETSCAPE较新版本的浏览器即可。 利用ADO开发网络数据库应用程序有以下几个优点: 1)、支持客户机/服务器结构(Client/Server)与Web系统开发技术。 2)、内部有多个互相独立的对象模型。 3)、支持分批修改数据库内容。 4)、支持多种不同的数据控制指标形式。 5)、先进的Recordset数据高速缓存管理功能。 6)、允许在程序中使用多个Recordset对象或者多个分批修改区块传送。 7)、ADO属于Free_threaded对象,利用它可以开发出更有效的Web应用程序。 2.2.2 ADO 组件的主要对象及其功能 ADO组件又称为数据库访问组件,它提供了以下七种对象: 1)、Connection对象:提供对数据库的连接服务。 2)、Command对象:定义对数据库源操作的命令。 3)、Recordset对象:由数据库服务器所返回的记录集。 Recordset对象的LockType属性的设置值如下表所示: 常量 值 说明 adLockReadOnly 1 默认值,只读。无法更改数据 adLockPressimistic 2 保守式记录锁定(逐条)。提供者执行必要的操作确保成功编辑记录,通常采用立即锁定数据源的记录的方式。 adLockOptimistic 3 开放式记录锁定(逐条)。提供者使用开放式锁定,只在调用Updata方法时锁定记录。 adLockBatchOptimistic 4 开放式批更新。用于与立即更新模式相反的批更新模式。 4)、Fields对象:由数据库服务器所返回的单一数据字段 5)、Parametes对象:表示Command对象的参数。 6)、Property对象:单独的一个Property对象,提供属性功能。 7)、Error对象:提供处理错误的功能。 使用ADO对象可以建立和管理数据库的连接,按数据库服务器的要求获得数据,执行更新、删除、添加数据等操作,获取ODBC的错误信息等。 2.2.3 用来操控数据的SQL命令 SQL命令是发送给数据库并要求数据库操作的指令,它是专门为数据库设计的语言,比一般的计算机程序语言简单的多。SQL命令主要分成两部分:DDL(Data Definition Language)和DML(Data Manipulation Language),其中DDL是建立数据表及数据列的指令群,而DML则是操作数据库记录的指令群,如数据库记录的添加、更新、删除、和查询等。 SQL命令,包括Select、Delete、Update、Insert Into、Select Into等。 1)、筛选及排序记录的Select指令 基本句型一:Select 字段串列 From 数据表 基本句型二:Select … From … Where 筛选条件 基本句型三:Select … From … Order By字段串列 Select Top:限定选取数据的条数 2)、删除数据记录的Delete指令 基本语法:Delete From 数据表 Where 条件式 3)、更新数据记录的Update指令 基本语法:Update 数据表Set 表达式 4)、增加数据记录的Insert Into 指令 基本句型一:Insert Into 数据表 (字段串列) Values (字段串列) 基本句型二:Insert Into 数据表 (字段1,字段2,…,字段n) Select … 5)、建立新数据表的Select Into 指令 该指令与“Insert Into … Select …”指令的区别是,这个指令将建立另一个新的数据表,而Insert Into是增加数据记录到“现存的”数据表中。 2.2.4 VB 访问数据库过程 1)、定义数据库组件 Dim conn As New ADODB.Connection其中conn为连接对象 Dim reco As New ADODB.Recordset 其中reco为结果集对象 2)、打开数据库 对于SQL数据库,其连接语句为conn.Open "driver={sql server};server= localhost;uid=sa;pwd=;database=student"。而对于Access数据库,连接语句为 conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & App.Path + "\stu.mdb" 3)、设定SQL语句,使用“Execute”命令,即可开始执行访问数据库的动作 4)、关闭结果集对象,断开与数据库的连接 reco.Close conn.Close 第三章 系统分析与设计 3.1 系统功能分析 随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。面对庞大的信息量就需要有一个学生信息管理系统来提高学生管理工作的效率。通过这样的系统可以做到信息的规范管理、快速查询、修改、增加、删除等,从而减少管理方面的工作量。设计内容为管理员或学生登录该系统进行六个模块操作: 1)、系统管理:修改密码、退出系统 2)、院系管理:添加院系、修改院系、查询院系 3)、学籍管理:添加学籍、修改学籍、查询学籍 4)、班级管理:添加班级、修改班级、查询班级 5)、课程管理:添加课程、修改课程、查询课程、设置年级 6)、成绩管理:添加成绩、修改成绩、查询成绩 3.2 系统结构图 本系统主要包括系统管理、院系管理、学籍管理、班级管理、课程管理和成绩管理6个大的模块,各个模块的具体功能如下图所示: 系统管理 成绩管理 添加成绩 修改成绩 查询成绩 学生信息管理系统 院系管理 学籍 管理 班级 管理 课程管理 修改密码 退出系统 查询院系 添加院系 修改院系 添加学籍 修改学籍 查询学籍 添加班级 修改班级 添加课程 修改课程 查询班级 设置年级 查询课程 3.3 数据库设计 3.3.1 建立数据库 使用VB6.0所提供的“可视化数据管理器”建立数据库以及其中的数据表。在VB集成环境中启动数据管理器:单击“外接程序”菜单下的“可视化数据管理器”命令,打开可视化数据管理器“VisData”窗口。 选择“文件”菜单中的“新建”项,在“新建”子菜单中,选择“Microsoft Access”子菜单中“Version 7.0 MDB”,在创建数据库对框中选择保存数据库的路径和库文件名(XS)后保存。 3.3.2表结构 学生基本信息表: 表3-2 学生基本信息表 用户信息表: 表3-1 用户信息表 院系信息表: 表3-3 院系信息表 班级信息表: 表3-4 班级信息表 课程信息表: 表3-5 课程信息表 年级课程设置表: 表3-6 年级课程设置表 成绩信息表 表3-7 成绩信息表 第四章 系统实现 4.1界面、代码设计与实现 把登陆界面设置为启动项:选择菜单“工程”——“工程1 属性”,打开“工程1—工程属性”,选择“启动对象”,在“启动对象”下拉菜单中选择“Form1”。如图: 图4-1 设置启动项 1. 登录界面,运行.exe文件进入登录界面。 设置窗体的startposition属性为centerscreen。让登陆窗口在屏幕的中央显示。 图4-2 登陆界面 “登录”按钮代码: Private Sub Command2_Click() Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim sql As String conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\stu.mdb" sql = "Select * from 用户信息表 where " If Trim(Text1.Text) = "" Then '如果用户名为空 MsgBox "用户名不能为空!", vbOKOnly + vbCritical, "错误" Text1.SetFocus miCount = miCount + 1 '累加输入次数 Exit Sub End If If Trim(Text2.Text) = "" Then '如果密码为空 MsgBox "密码不能为空!", vbOKOnly + vbCritical, "错误" Text2.SetFocus Exit Sub End If If Trim(Combo1.Text) = "选择类别" Then '如果密码为空 MsgBox "请选择用户类别!", vbOKOnly + vbCritical, "错误" Combo1.SetFocus Exit Sub End If sql = sql + "userName='" & Text1.Text & "'" sql = sql + " AND Pwd='" & Text2.Text & "'" sql = sql + " AND Type='" & Combo1.Text & "'" rs.Open sql, conn, 1, 1 If rs.RecordCount = 1 Then '找到记录 PName = rs("userName") PWord = rs("Pwd") pType = rs("Type") Unload Me form3.Show quanxian Else MsgBox "用户名或密码不对!", vbOKOnly + vbInformation, "错误" Unload Me End If rs.Close Set rs = Nothing conn.Close Set conn = Nothing miCount = miCount + 1 If miCount = 3 Then Me.Hide End If Exit Sub End Sub 2.用户注册界面说明:用户直接单击“注册”按钮进入用户注册界面。 图4-3 用户注册界面 用户注册代码如下: Private Sub Command1_Click() Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim sql As String conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\stu.mdb" sql = "Select * from 用户信息表 where " If Trim(Text1.Text) = "" Then '如果用户名为空 MsgBox "请输入真实姓名", vbOKOnly + vbCritical, "错误" Text1.SetFocus Exit Sub End If If Trim(Text2.Text) = "" Then '如果密码为空 MsgBox "请输入用户名", vbOKOnly + vbCritical, "错误" Text2.SetFocus Exit Sub End If If Text2.Text <> Text3.Text Then MsgBox "新密码与确认的密码不相同", vbOKOnly + vbCritical, "错误" Text3.SetFocus Exit Sub End If If Combo1.Text = "选择类别" Then MsgBox "请选择用户类别", vbOKOnly + vbCritical, "错误" Combo1.SetFocus Exit Sub End If sql = sql + "pwd='" & Text1.Text & "'" rs.Open sql, conn, 1, 3 If rs.RecordCount <> 0 Then MsgBox "用户名已存在" + "重新输入用户名", vbOKOnly + vbInformation, "提示" Text2.SetFocus Exit Sub Else rs.AddNew rs("userName") = Text1.Text rs("pwd") = Text2.Text rs("Type") = Combo1.Text rs.Update MsgBox "用户成功添加", vbOKOnly + vbInformation, "提示" End If Unload Me rs.Close Set rs = Nothing conn.Close Set conn = Nothing End Sub Private Sub Command2_Click() Form1.Show End Sub Private Sub Command3_Click() Text1.Text = "" Text2.Text = "" Text3.Text = "" Combo1.Text = "" End Sub Private Sub Form_Load() Call leibie End Sub Private Sub leibie() Combo1.AddItem "学生" Combo1.AddItem "管理员" End Sub 3.主菜单界面说明:用户直接单击“登陆”按钮进入主菜单界面。 图4-4 主菜单 4.添加院系界面展示及代码: 如果用户类型是学生,“添加院系信息”菜单项呈灰色不可以状态。 图4-5 添加院系信息界面 添加院系信息代码如下: Private Sub Command1_Click() Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim sql As String sql = "Select * from 院系信息表 where " If Trim(Text1.Text) = "" Then MsgBox "请输入院系名称", vbOKOnly + vbCritical, "错误" Text1.SetFocus Exit Sub End If If Trim(Text4.Text) = "" Then MsgBox "请输入院系负责人", vbOKOnly + vbCritical, "错误" Text4.SetFocus Exit Sub End If If Trim(Text3.Text) = "" Then MsgBox "请输入院系电话", vbOKOnly + vbCritical, "错误" Text3.SetFocus Exit Sub End If sql = "Select * from 院系信息表" conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\stu.mdb" rs.Open sql, conn, 1, 3 rs.AddNew rs.Fields("院系名称") = Trim(Text1.Text) rs.Fields("院系编号") = Trim(Text2.Text) rs.Fields("院系电话") = Trim(Text3.Text) rs.Fields("院系负责人") = Trim(Text4.Text) rs.Fields("院系专业") = Trim(Text5.Text) rs.Update Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" Text5.Text = "" Text1.SetFocus rs.Update rs.Close Set rs = Nothing End Sub Private Sub Command2_Click() Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" Text5.Text = "" End Sub Private Sub Command3_Click() Unload Me End Sub 5.修改院系界面展示及代码:. 如果用户类型是学生,“修改院系信息”菜单项呈灰色不可以状态。 图4-6 修改院系信息界面 修改院系信息代码如下: Option Explicit Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim cn As New ADODB.Connection '定义书签,用来记载当前记录位置 Dim myBookmark As Variant '判断是否修改记录 Dim mcclean As Boolean Private Sub Command1_Click() rs.MoveFirst Call viewData End Sub Private Sub Command2_Click() rs.MovePrevious If rs.BOF Then rs.MoveLast End If Call viewData End Sub Private Sub Command3_Click() rs.MoveNext If rs.EOF Then rs.MoveFirst End If Call viewData End Sub Private Sub Command4_Click() rs.MoveLast Call viewData End Sub Private Sub Command5_Click() Dim tstSQL As String Dim MsgText As String '使移动记录按钮失效 Command1.Enabled = False Command2.Enabled = False Command3.Enabled = False Command4.Enabled = False '记下当前记录位置 'myBookmark = rs.myBookmark End Sub Private Sub Command6_Click() rs.Fields("院系名称") = Combo1.Text rs.Fields("院系编号") = Combo2.Text rs.Fields("院系专业") = Combo3.Text rs.Fields("院系电话") = Text1.Text rs.Fields("院系负责人") = Text2.Text rs.Update Command1.Enabled = True Command2.Enabled = True Command3.Enabled = True Command4.Enabled = True End Sub Private Sub Command7_Click() If Not mcclean Then Frame3.Enabled = True '使移动记录按钮失效 Command1.Enabled = True Command2.Enabled = True Command3.Enabled = True Command4.Enabled = True '回到开始记录位置 rs.Bookmark = myBookmark Call viewData Else MsgBox "什么都没有修改!", vbOKOnly + vbExclamation, "警告" End If Command1.Enabled = True Command2.Enabled = True Command3.Enabled = True Command4.Enabled = True End Sub Private Sub Command8_Click() '记下当前记录位置 myBookmark = rs.Bookmark str2$ = MsgBox("是否删除当前记录?", vbOKCancel, "删除当前记录!") If str2$ = vbOK Then rs.MoveNext If rs.EOF Then rs.MoveFirst myBookmark = rs.Bookmark rs.MoveLast rs.Delete rs.Bookmark = myBookmark '调用函数显示数据 Call viewData Else myBookmark = rs.Bookmark rs.MovePrevious rs.Delete '回到原来位置 rs.Bookmark = myBookmark '调用函数显示数据 Call viewData End If Else rs.Bookmark = myBookmark Call viewData End If End Sub Private Sub Form_Load() Dim txtSQL As String Dim MsgText As String txtSQL = "select * from 院系信息表" Set rs = ExecuteSQL(txtSQL, MsgText) While rs.EOF = False Combo1.AddItem rs.Fields("院系名称") Combo2.AddItem rs.Fields("院系编号") Combo3.AddItem rs.Fields("院系专业") rs.MoveNext Wend rs.Close txtSQL = "select * from 院系信息表" Set rs = ExecuteSQL(txtSQL, MsgText) If rs.EOF = False Then rs.MoveFirst Call viewData myBookmark = rs.Bookmark Else MsgBox "没有记录!", vbOKOnly + vbExclamation, "警告" Exit Sub End If End Sub Private Sub Form_Unload(Cancel As Integer) rs.Close End Sub Public Sub viewData() Combo1.Text = rs!院系名称 Combo2.Text = rs!院系编号 Combo3.Text = rs!院系专业 Text1.Text = rs!院系电话 Text2.Text = rs!院系负责人 End Sub 6.查询院系界面展示及代码: 图4-7 查询院系信息界面 查询院系信息代码如下: Private Sub Command1_Click() Dim txtSQL As String Dim MsgText As String Dim dd(3) As Boolean Dim mrc As ADODB.Recordset txtSQL = "select * from 院系信息表 where " If Check1.Value Then If Trim(Text1.Text) = "" Then sMeg = "院系名称不能为空" MsgBox sMeg, vbOKOnly + vbExclamation, "警告" Text1.SetFocus Exit Sub Else dd(0) = True If dd(1) Then txtSQL = txtSQL & "and 院系名称 = '" & Text1.Text & "'" Else txtSQL = txtSQL & "院系名称 = '" & Text1.Text & "'" End If End If End If If Check2.Value Then If Trim(Text2.Text) = "" Then sMeg = "院系编号不能为空" MsgBox sMeg, vbOKOnly + vbExclamation, "警告" Text2.SetFocus Exit Sub Else If Not IsNumeric(Trim(Text2.Text)) Then MsgBox "请输入数字!", vbOKOnly + vbExclamation, "警告" Exit Sub Text2.SetFocus End If dd(1) = True txtSQL = txtSQL & "院系编号 = " & Trim(Text2.Text) '& "'" End If End If If Not (dd(0) Or dd(1) Or dd(2)) Then MsgBox "请设置查询方式!", vbOKOnly + vbExclamation, "警告" Exit Sub End If txtSQL = txtSQL & " order by 院系名称 " Set mrc = ExecuteSQL(txtSQL, MsgText) With MSFlexGrid1 .Rows = 2 .CellAlignment = 1 .TextMatrix(1, 0) = "编号" .TextMatrix(1, 1) = "院系名称" .TextMatrix(1, 2) = "院系负责人" .TextMatrix(1, 3) = "院系编号" .TextMatrix(1, 4) = "院系专业" .TextMatrix(1, 5) = "院系电话" Do While Not mrc.EOF .Rows = .Rows + 1 .CellAlignment = 4 .TextMatrix(.Rows - 1, 0) = mrc.Fields(0) .TextMatrix(.Rows - 1, 1) = mrc.Fields(1) .TextMatrix(.Rows - 1, 2) = mrc.Fields(2) .TextMatrix(.Rows - 1, 3) = mrc.Fields(3) .TextMatrix(.Rows - 1, 4) = mrc.Fields(4) .TextMatrix(.Rows - 1, 5) = mrc.Fields(5) mrc.MoveNext Loop End With mrc.Close End Sub Private Sub Command2_Click() Unload Me End Sub Private Sub Form_Load() With MSFlexGrid1 .CellAlignment = 4 .TextMatrix(1, 0) = "编号" .TextMatrix(1, 1) = "院系名称" .TextMatrix(1, 2) = "院系负责人" .TextMatrix(1, 3) = "院系编号" .TextMatrix(1, 4) = "院系专业" .TextMatrix(1, 5) = "院系电话" End With End Sub 7.设置年级课程界面展示及代码: 如果用户类型是学生,“设置年级信息”菜单项呈灰色不可以状态。 图4-8 年级课程设置界面 设置年级课程信息代码如下: Private Sub Combo1_Change() Dim mrc As ADODB.Recordset Dim txtSQL As String Dim MsgText As String Dim i As Integer '清除列表框内容 List2.Clear txtSQL = "select * form 年级课程设置表 where 院系名称='" & Combo1.Text & "'" Set mrc = ExecuteSQL(txtSQL, MsgText) End Sub Private Sub Combo2_Change() Dim mrc As ADODB.Recordset Dim txtSQL As String Dim MsgText As String Dim i As Integer '清除列表框内容 List2.Clear txtSQL = "select * form 年级课程设置表 where 年级='" & Combo2.Text & "'" Set mrc = ExecuteSQL(txtSQL, MsgText) End Sub Private Sub Command1_Click() If List1.ListIndex <> -1 Then List2.AddItem List1.List(List1.ListIndex) End If End Sub Private Sub Command2_Click() If List2.ListIndex <> -1 Then List2.RemoveItem List2.ListIndex End If End Sub Private Sub Command3_Click() Dim mrc As ADODB.Recordset Dim txtSQL As String Dim MsgText As String '使各个控件有效 List1.Enabled = True List2.Enabled = True Command4.Enabled = True '查询数据 txtSQL = "select * form 课程信息表" Set mrc = ExecuteSQL(txtSQL, MsgText) While (mrc.EOF = False) List1.AddItem mrc.Fields(1) mrc.MoveNext Wend mrc.Close flagset = True End Sub Private Sub Command4_Click() Dim i As Integer Dim mrc As ADODB.Recordset Dim mrcc As ADODB.Recordset Dim txtSQL As String Dim MsgText As String Dim myBookmark As Variant If Not Testtxt(Combo1.Text) Then MsgBox "请先选择院系名称!", vbOKOnly + vbExclamation, "警告" Exit Sub End If If Not Testtxt(Combo2.Text) Then MsgBox "请先选择年级!", vbOKOnly + vbExclamation, "警告" Exit Sub End If If Not Testtxt(List2.List(0)) Then MsgBox "请先选择课程!", vbOKOnly + vbExclamation, "警告" Exit Sub End If For i = 1 To List2.ListCount txtSQL = "select * from 年级课程设置表 where 年级='" & Trim(Combo2.Text) & "'and '" & Trim(Combo2.Text) & "'" Set mrc = ExecuteSQL(txtSQL, MsgText) If mrc.EOF = True And mrc.BOF = True Then mrc.AddNew mrc.Fields("院系名称") = Trim(Combo1.Text) mrc.Fields("年级") = Trim(Combo2.Text) mrc.Fields("课程名称") = Trim(List2.List(i - 1)) mrc.Update End If mrc.Close Next i Combo1.Text = "" Combo2.Text = "" End Sub Private Sub Command5_Click() Unload Me End Sub Private Sub Form_Load() Dim mrc As ADODB.Recordset Dim txtSQL As String Dim MsgText As String txtSQL = "select * from 班级信息表" Set mrc = ExecuteSQL(txtSQL, MsgText) While mrc.EOF = False Combo2.AddItem mrc.Fields("年级") mrc.MoveNext Wend mrc.Close txtSQL = "select * from 院系信息表" Set mrc = ExecuteSQL(txtSQL, MsgText) While mrc.EOF = False Combo1.AddItem mrc.Fields("院系名称") mrc.MoveNext Wend mrc.Close txtSQL = "select * from 课程信息表" Set mrc = ExecuteSQL(txtSQL, MsgText) While mrc.EOF = False List1.AddItem mrc.Fields("课程名称") mrc.MoveNext Wend mrc.Close End Sub Private Sub List1_Click() If List1.ListIndex <> -1 Then List2.ListIndex = -1 End If End Sub Private Sub List2_Click() If List2.ListIndex <> -1 Then List1.ListIndex = -1 End If End Sub 4.2 数据源(Access) Access2003就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。Access 的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于 Excel 的电子表格,可以使数据库一目了然。另外,Access 允许创建自定义报表用于打印或输出数据库中的信息。Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。Access 是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。如上所述,Access 作为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。系统主要建立了学生基本信息表、用户信息表、课程信息表、班级信息表、成绩信息表、院系信息表、年级课程设置表。 第五章 系统管理维护与评价 5.1 系统的日常管理维护和评价 不管系统管理与维护的组织采取什么样的形式,从系统管理与维护本身的规律和要求出发,都必须有一个完整得力的管理队伍和技术队伍。系统管理与维护的人员构成应该包括:系统管理人员,系统维护人员,系统操作人员,资料管理人员。 作为计算机应用的一部分,使计算机对学生学籍信息进行管理,形成一个人机管理信息系统。具有着手工管理所无法比拟的优点,例如:检查迅速,查找方便,可靠性大,存储量大,保密性好,寿命长,成本低等。这些优点能够极大的提高学生学籍管理信息系统的效率。 整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发。 5.2设计过程中遇到的问题以及解决方法 在学生信息管理系统的设计和开发,面临的主要的困难:数据库的连接和编程方面的问题还有在做系统的过程中的调程序方面问题。在运行程序的过程中经常会出现程序出错,需要进行修改代码信息的提示。这些信息使得我不得不反复看书,琢磨程序和老师、同学的细心地帮助下,根据调试信息找出到底哪方面出错,在一遍一遍的调试之下,程序终于被调通了。那时,我终于可以上上的舒一口气了。 第六章 总 结 在毕业设计中,我们遇到的困难很多,在解决它们的同时我又学到了很多,受益匪浅,特别是如何分析、建立、开发一个系统。 在一个系统开发的过程中编码不是重要的,重要的是分析系统、建立起系统模型。在分析一个系统前,分析人员必须要对将要开发的系统所涉及到的各方面知识有一个认识,然后将系统的模型建立起来。而且一个成功的软件要符合用户的需要,要以用户为中心,开发出用户想要的软件,而不能自以为是、想当然的做。 在程序编写中,我认识到软件要有简便的界面,良好的程序风格。拥有这些条件,程序的可读性才会好,开发的复杂度才能大大减少,修改代码时更加容易下手。 我认为,所谓友好的界面,就是用户需要的界面,力求简便全面。所以设计一个界面时,开发人员必须要了解用户的想法,从用户的角度去设计,当然,开发不能全听用户的意见,在详细分析了系统后,开发人员可以向用户提出一些修改的意见,在双方多次交流后定出程序所需的功能,以决定界面的实现。 在编码中,良好的编程风格与习惯是提高工作效率的一个重要方面,而且良好的编程风格与习惯也是使软件便于维护的基础。那如何是良好的编程风格与习惯呢?我认为主要是程序的模块化、必要的注释。所谓模块化就是使程序的功能实现分成多个单独的功能模块,而不能在一大段代码中实现多个功能,如果这样做,别的人是非常难读懂你的程序。必要的注释,显而易见是要在程序的编写中加入对程序的说明,原因就是为了别人能读懂你的程序,过一段时间后你自己还能读懂自己的程序。 最后说明下这次毕业设计给我感受最深的有三点: 1.进行管理系统开发这样的工作,要有恒心,要能静下新来做,而不能浮躁。 2.要善于同别人交流与合作,善于获取各种有用的资源。 3.要真真实实的多查资料,多问,多看。 致 谢 在本次毕业设计中,我从指导老师处学到了很多东西。老师们认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我们受益匪浅。他们无论在理论上还是在操作实践中,都给予我们很大的帮助,使我们得到不少的提高。这对于我们以后的工作和学习都是一种意义深远的帮助,感谢他们耐心的辅导,才使得我们的系统设计能够顺利完成。 正是他们的付出,使我找到并改正了许多看起来很明显的错误和不严谨的论述。毕业设计的过程是愉快的,我很感谢与我设计有帮助的每一个人,是他们的存在,让我感到了工作的快乐,使我融入到了团队工作中,感受到了相互合作的乐趣。 最后,当然不能忘记帮助过我的同学与朋友们。写论文通常是一项非常枯燥的工作,但幸运的是他们使这项工作变成了一种乐趣。还有那些不知是道姓名的朋友和默默无闻帮过我的朋友,也在此表示对你们诚挚的感谢。 参考文献 [1]杨仓杰:《VISUAL BASIC经典范例》 清华大学出版社出版 [2]Bob Reselman:《Visual Basic 6.0 使用指南》 电子工业出版社出版 [3] 宋伟、吴建国:《中文Visual Basic 6.0编程基础》 清华大学出版社出版 [4]Craig Eddy:《中文Access 2000 24学时教程》 机械工业出版社出版 [5]周佩德: 《数据库原理及应用》 电子工业出版社出版 [6]John Sharp:《VS2008从入门到精通》 附 录 系统中的用户名及密码 (1) 管理员:用户名:admin,密码:123 (2) 学 生:用户名:wang,密码:123

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享文档获得金币 ]
0 人已下载

下载文档

相关文档