• 1.13 MB
  • 2022-04-22 13:44:43 发布

学生管理系统办公自动化毕业设计论文.doc

  • 39页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'第39页共39页学生管理系统办公自动化毕业设计论文目录摘要………………………………………………………………………………1Abstract…………………………………………………………………………2第一章引言……………………………………………………………………4第二章研究现状及设计目标…………………………………………………5§2.1研究现状…………………………………………………………5§2.2设计目标………………………………………………………5第三章要解决的几个关键问题………………………………………………6§3.1运行环境…………………………………………………………6§3.2开发工具和平台…………………………………………………6第四章系统结构与模型………………………………………………………7§4.1需求分析…………………………………………………………7§4.2系统流程…………………………………………………………9§4.3数据库需求分析…………………………………………………10第五章系统详细设计………………………………………………12§5.1数据库创建及使用………………………………………………12§5.2登录主窗体的制作…………………………………………………13§5.3系统主窗体的制作…………………………………………………16§5.4基本表操作…………………………………………………………17§5.5查询功能的实现…………………………………………………25第六章性能测试与分析………………………………………………29§6.1单元测试………………………………………………………29§6.2本系统性能测试与分析……………………………………………29结束语……………………………………………………………………………30致谢……………………………………………………………………………31参考文献……………………………………………………………………32附录(源程序)…………………………………………………………………33 第39页共39页摘要伴随着数字化、网络化、信息化发展的社会,为了方便普通高校对学生的管理,为了巩固自己三年来所学的知识,在临近毕业前,特制作本学生管理系统。此学生管理系统主要由五大模块组成,分别是系统、学生基本情况、学生基本成绩、通讯录、帮助等模块。其中,系统模块主要用来用户注销和退出;学生基本情况是对学生基本信息的存储;学生基本成绩是对学生成绩的存储;通讯录是对学生基本情况的浏览。此学生管理系统主要是完成管理员对学生基本信息的管理(学生基本情况,学生成绩情况,学生通讯录等)。该系统能实现用户和管理员对学生信息的添加、查询、修改、删除等功能;当查到所需信息时,显示出相应的信息等工作。在指导老师的帮助下,已经基本上成功地实现了设计要求。使我们设计的数据库系统能够实现学生管理,学生信息管理,成绩管理,系统管理功能。在此学生管理系统的设计与实现过程中,我主要用MicrosoftVisualBasic6.0和MicrosoftAccess2000两种软件制作,在与数据库链接时,采用了ADO数据控件来访问数据库。关键词:MicrosoftVisualBasic6.0、MicrosoftAccess2000、学生成绩表(Chengj) 第39页共39页AbstractAccompanyingwiththearithmeticfigureturns,thenetworkturns,theinformationturnsthesocietyofthedevelopment,iscommonforthesakeoftheconveniencehighcheckingthestudent"smanagement,formakingstrongertheoneselfthreeinthelastyearsaknowledgeforlearning,beforeclosebygraduate,thespeciallymademakesthisstudentmanagesthesystem.Thisstudentmanagesthesystemthemainbeingconstitutedbyfivegreatestmoldspiece,isingabasicscore,addressbookinbasiccircumstance,studentinsystem,studentandhelprespectivelyetc.moldpiece.Amongthem,thesystemmoldpiecebeusedprimarilycustomercancellationwithwithdraw;Basiccircumstanceinstudentistobasicinformationinstudentofsaving;Basicscoreinstudentistostudent"sscoreofsaving;AddressbookistotheviewofthebasiccircumstanceinstudentThestudentmanagesthesystemtoismanagement(xt,xsjb,gl,txl,guetc.)tocompletetothebasicinformationinstudentthatsystemtorealizeprimarilythecustomerincreasewithmanagingpersontostudent"sinformation,searching,modifying,deletingtowaitthefunction.Whenchecktoaninformationforneeding,displayingthecowgirlinformationetc.Thehelpofguidetheteacher,alreadybasicascendedtorealizesuccessfullydesignrequest.Makingingdatabasesystemthatmedesigncanrealizestudentmanagement,studentinformationmanagement,scoremanagement,systemmanagementetc.function.Herethestudentmanagesthedesignofthesystemwithrealizesprocessinside,IusetheMicrosoftVisualBasicprimarily6.0withMicrosoftAccess2000twokindsofsoftwaresescreate,atconnectwithdatabasechain,adoptthedataofADOcontrolthepiececomestovisittoaskthedatabase.Keywords:MicrosoftVisualBasic6.0、MicrosoftAccess2000、TheStudentInSystem(Chengj) 第39页共39页第一章引言随着计算机和其应用软件的发展及当代学生管理办公自动化的需要,学校对学生管理信息化已经越来越得到重视。实现学生信息化管理,能够提高学校管理效率、减轻学校办公人员的工作压力、进而提高工作效率。本毕业设计主要应用在学生信息管理方面。在学校,学生信息管理是学校管理学生的一项重要的数据资源,也是学校对学生考核记录的一项常规性的重要工作。而长期以来,学生信息管理都是依靠人工进行的,面对如此众多的学生资料信息,其工作量可想而知。数字化、网络化、信息化已经成了新世纪人们生活的一部分,为了跟上社会的发展需要,减少学生管理者的工作量。我们根据学生管理的基本流程,开发一个学生管理系统。此学生管理系统主要由五大模块组成,分别是系统、学生基本情况、学生基本成绩、通讯录、帮助等模块。其中,系统模块主要用来用户注销和退出;学生基本情况是对学生基本信息的存储;学生基本成绩是对学生成绩的存储;通讯录是对学生基本情况的浏览。本系统是以VisualBasic6.0作为开发工具,由于VB具有自己独特的特点,它以Basic语言为基础,包含了Basic语言所有的特点,具有良好的可视化效果,又方便易学,是每一个初学编程者的理想开发工具。我是通过VisualBasic6.0来访问数据库并对其进行各种操作。本系统实现的主要功能模块有:系统(xt)、学生基本情况(xsjb)、学生成绩情况(gl)、通讯录(txl)、关于(gy)等。使用户能方便的对学生基本情况及成绩情况进行添加、查询、删除、修改等操作。 第39页共39页第二章 研究现状及设计目标随着社会经济发展,社会的信息化程度越来越高,管理信息化的需求也逐渐增多.随着技术水平的发展,信息化的实现难度也逐渐降低.2.1研究现状1、问题研究系统开发的目的:提高学生信息管理工作的效率,保证信息的准确和规范,减少相关人员的工作量,使学校的学生管理工作真正做到科学、合理的规划,系统、高效的实施。2、可行性研究:技术可行性根据上述系统功能的分析,下面将进行具体的实现。从技术角度分析,这项开发工作所涉及的专业技术如下: 1.技术平台(OperatingSystem[略作:OS]:操作系统):Windows系列。虽然理论上对操作系统没作更具体的规定,但由于开发中涉及MicrosoftAccess2000的应用,所以建议最好使用Windows2000以上的版本或相应的WindowsNT的版本。2.开发工具:MicrosoftVisualBasic6.03.开发所涉及的技术应用:ADO(ActiveXDataObjects:ActiveX数据对象),ODBC(OpenDataBaseConnectivity:开放式数据库连接标准)和OLEDB(ObjectLinkandEmbedded:对象的链接和嵌入)4.数据库管理系统(DBMS):MicrosoftAccess2000作具体实现阶段主要分两大部分进行:数据库的实现和各种功能模块及窗体的实现。从运用的技术角度分析即:Access部分的实现和VB两大部分的实现。操作可行性:该系统在制作过程中采用的是面向对象的可视化工具,开发出的应用程序均是图形化界面。2.2设计目标本系统要实现的功能如下:(1)登录系统(2)学生个人信息录入(3)学生信息查询(4)学生信息修改(包括更新和删除)(5)系统信息管理(如登录密码等) 第39页共39页第三章要解决的几个问题下面就本系统在开发过程中所遇到的几个问题和解决方法加以总结,主要包括运行环境、开发工具和平台、系统流程等。1、运行环境硬件环境:可以是一台性能较好的机器,也可以局域网,一台性能好的机器作为服务器,其他机器作为客户端,通过安装好的客户端应用程序访问、更新服务器上数据库中的信息。要考虑到数据的安全性。软件环境:操作系统Windows9x或Windows2000Professional或Windows2000Server等应用程序功能完成之后的应用程序2.开发工具和平台:1.开发工具:VisualBasic6.0 2.系统功能概述:序号实现功能功能概述1学生信息录入本系统能够录入学生的学号、姓名、性别、地址、电话、爱好等信息,并且能够判断是否有不符合信息项,如有不符合的则给出提示。2学生信息查询可以根据学号、姓名等信息项中的一项或多项的组合,进行模糊查询和精确查询,从而高效地找到您想要的信息。3学生信息更新可以根据学号、姓名等信息项中的一项或多项的组合,进行模糊查询和精确查询,找到要修改的学生记录,最后是对单个记录进行逐个的修改。也可以把录错或不再有用的信息删除掉。4基本表的维护对使用本系统的用户进行添加、查询、修改、删除等操作。 第39页共39页第四章系统结构与模型本章将进行的是系统结构与模型分析设计。4.1需求分析需求分析的基本任务是准确地回答“系统必须做什么?”这个问题。需求分析所要做的工作是深入描述软件的功能和性能。  需求分析的任务是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。此学生管理系统在这个阶段结束时在文档中应该包括详细的数据流图(DFD),数据字典(DD)。需求分析阶段的任务包括下述几方面:1.目标系统的具体要求确定系统的运行环境要求;系统的性能要求;系统功能。2.分析系统的数据要求分析系统的数据需求是由系统的信息流归纳抽象出数据元素组成、数据的逻辑关系、数据字典格式和数据模型。3.建立目标系统的逻辑模型就是在理解当前系统需要“怎样做”的基础上,抽取其“做什么”的本质数据字典是关于数据的信息的集合,对数据流程图中的各个元素做完整的定义与说明。数据流图和数据字典共同构成系统的逻辑模型。4.数据存储本学生管理系统在数据库模块中有三个表:登录表(denglu)、学生成绩表(chengj)学生基本情况表(edit)。例如:学生成绩表中的学号;此模块是数据存储结构。要设计出一个好的信息管理系统数据库,除满足系统所要求的功能外,还必须遵守下列原则:1.基本表的个数越少越好。2.主键的个数越少越好。键是表间连接的工具,主键越少,表间的连接就越简单。3.字段的个数越少越好。数据库的设计中,如何处理多对多的关系和如何设计主键,是两个有着较大难度、需要重点考虑的问题。下面我们着重从数据库设计范式和查询优化等方面来分析本课题的系统关键技术和实现难点并加以解决。 第39页共39页信息系统的主要任务是通过大量的数据获得管理所需要的信息,这就必须存储和管理大量的数据。因此建立一个良好的数据组织结构和数据库,使整个系统都可以迅速、方便、准确地调用和管理所需的数据,是衡量信息系统开发工作好坏的主要指标之一。“学生管理系统”的主要目的是实现学生管理的信息化,因此首先需要对学生的信息进行管理。对学生信息进行管理的主要目的是为了方便用户的工作,要规范用户对学生信息与成绩管理,还需要能够管理学生信息的用户信息,只有系统中存在的用户才能进行学生基本情况的管理。数据库设计主要是进行数据库的逻辑设计,即将数据按一定的分类、分组系统和逻辑层次组织起来,是面向用户的。数据库设计时需要综合企业各个部门的存档数据和数据需求,分析各个数据之间的关系,按照DBMS提供的功能和描述工具,设计出规模适当、正确反映数据关系、数据冗余少、存取效率高、能满足多种查询要求的数据模型。数据库设计的步骤是:1. 数据表定义:数据表定义指定义数据库中数据表的结构,数据表的逻辑结构包括:属性名称、类型、表示形式、缺省值、校验规则、是否关键字、可否为空等。数据表设计不仅要满足数据存储的要求,还要增加一些如反映有关信息、操作责任、中间数据的字段或临时数据表。2. 存储设备和存储空间组织:确定数据的存放地点、存储路径、存储设备等,备份方案,对多版本如何保证一致性和数据的完整性。3. 数据使用权限设置:针对用户的不同使用要求,确定数据的用户使用权限,确保数据安全。在数据的规范化表达中,一般将一组相互关联的数据称为一个关系(relation),而在这个关系下的每个数据指标项则被称为数据元素(dataelement),这种关系落实到具体数据库上就是基本表,而数据元素就是基本表中的一个字段(field)。规范化表达还规定在每一个基本表中必须定义一个数据元素为关键字(key),它可以唯一地标识出该表中其它相关的数据元素。在对表的形式进行了规范化定义后,数据结构还有五种规范化定义,定名为规范化模式,称为范式。在这五种范式中,一般只用前三种,对于常用系统就足够了。而且这五种范式是“向上兼容”的,即满足第五范式的数据结构自动满足一、二、三、四范式,满足第四范式的数据结构自动满足第一、二、三范式,……,依此类推。第一范式(firstnormalform,简称1st 第39页共39页NF)就是指在同一表中没有重复项出现,如果有则应将重复项去掉。这个去掉重复项的过程就称之为规范化处理。在本文所讨论的开发方法里,1stNF实际上是没有什么意义的。因为我们按规范化建立的指标体系和表的过程都自动保证了所有表都满足1stNF。第二范式(secondnormalform,简称2ndNF)是指每个表必须有一个(而且仅一个)数据元素为主关键字(primarykey),其它数据元素与主关键字一一对应。本系统将学号定义为主关键字(其它数据元素中的记录数据都有可能重名,故不能作为主关键字),如果知道学号就可以找到一组符合条件的信息。通常我们称这种关系为函数依赖(functionaldepEndence)关系。即表中其它数据元素都依赖于主关键字,或称该数据元素唯一地被主关键字所标识。为防止数据库出现更新异常、插入异常、删除异常、数据冗余太大等现象,关系型数据库要尽量按关系规范化要求进行数据库设计。4.2系统流程通过前面的分析可知,我们要制作的程序是一个小型的管理信息系统MIS(ManagementInformationSystem),而且其中需要的数据库表有学生表、用户表等,还可能有其他的一些相关的表。通过分析学生成绩表,学生表中有一些项(如课程)在系统运行过程中有可能会有增加或减少的情况发生,一旦有一点变动就必须重新编辑、编译程序,程序的健壮性不好,故想到可以从数据库中提取相关表中的记录来填充,实现它的思想就是找出所有可能发生变化的项,形成各自的表(这里叫它们为基本表),先对这些基本表进行维护,必须这些基本表中有足够的记录时才可以做其他的修改、添加、删除、查询等。 第39页共39页系统必须考虑安全问题,要求至少给一个登录模块,在使用系统时进行身份的验证。用户的身份验证是通过数据库中的登录表来实现的。然后才可以以合法的身份登录并使用本系统。当用户输入合法信息后,自动进入系统,否则系统提示重新登录。当以合法的身份进行本系统后,就可以进行各种操作,如学生记录的增加、查询等操作。当然也可以在系统中再增加其他的功能。4.3数据库需求分析用户的需求具体体现在各种信息的添加、修改、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入。收集基本数据、数据结构,以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。通过上述系统功能分析,针对一般资料管理系统的需求,总结出以下的需求信息。图4.3“系统用户信息”实体的E-R图从上图中可以看出系统(最小化)至少包括如下一级子模块:系统登录、学生基本情况、学生成绩管理、通讯录、帮助等。系统功能包括用户对系统进行注销和退出。学生基本情况模块应具有的功能:对学生的学号、姓名、性别、电话、爱好、住址等作为构成学生信息最基本的项的表进行增加、查询、修改、删除等操作。学生成绩模块应具有的功能: 第39页共39页对学生成绩的基本成绩(如学号、姓名、性别、高数、英语、计算机等)所构成的基本表进行普通的增加、查询、修改、删除等操作。通讯录模块是对学生基本情况进行浏览的工具。在此模块中增加了学生基本情况报表,也可提供对全部学生信息的浏览。学生成绩管理模块应具有的功能:这个模块是本系统中相对来讲最主要的模块,其中学生成绩表在建立数据库过程中是最主要的表,学生生基本情况模块是的表也是根据本表建立而来的。因此在建立该模块的过程中应考虑到以下问题:1.新增记录:为保证数据的有效性、一致性、完整性,在录入新记录时,系统能根据操作员输入的学生编号到学生表中查询是否已经存在这样的记录,要求学号不能为空,面且还要复合数据表中对其的定义的字段类型、字段长度等。如果已经存在,则给出更换学号的提示;如果不存在,则判断姓名是否为空,如果为空的则提示输入姓名,依次增加其他记录。例如:性别、电话、爱好、住址等。若在学生成绩表中就输入其性别、英语、计算机等基本学科的成绩。经过系统的认定和审核,如果所加的字段都通过在数据表是对其定义的字段类型、字段名、字段长度等,则系统将输入信息项认可,自行插入到物理数据库的学生表中。2.查询信息:系统能按学生编号(编号中的几位)、姓名(或只有姓)、性别、高数、英语、计算机等各项字段进行精确或模糊查询,并把查询的结果显示在表格中。此系统将不支持这些模糊查询,必须输入学号,而且所输入的学号必须满足在数据表中对学号字段的定义,否则系统将提示查询不符合要求,是否结束本次查询。若要继续查询,系统要求再次输入正确的学号。3.更新记录:本模块实际上包含两个模块,即修改和删除。在修改子模块中,首先查询出要修改的记录,然后对每一条记录进行除学号外的任何一项的修改。同样,在更新此记录前,要输入符合系统定义的字段类型、字段名、字段长度。否则,系统将不认正本次记录的更新。在删除子模块中,也同样是先查询出要删除的记录,因为删除操作是一个没有反悔余地的操作,因此在删除前会给出一次确认的机会,如果此时不想删除就可马上取消,但如果真正要删除则从数据库中永久性的删除。当然可以把删除的信息保存到历史记录中。 第39页共39页第五章系统详细设计5.1数据库创建及使用创建数据库的必要性:数据库是一个集中存储各种信息的数据库对象的地方,为每一个应用创建一个专用的数据库空间,可以提高集中管理程度,有效的进行信息处理。达到快速、准确的目的。数据库文件有主要工程文件.vbp(主要系统运行工程文件),次要数据文件.frm(窗体文件),次要数据文件.mbd(主要的数据存储文件)。创建方法:图形方法和代码方法。数据库部分在“外接程序”菜单中选择“可视化数据管理”打开Visdata窗体,建立Bd.mdb表,表字段定义如下:表名字段名字段长度字段类型备注登录dengluName6text用户名Passwd8text口令学生成绩表chengjSno6number学号Name8text姓名Sex2text性别Gaoshu3number高数english3number英语Jsj3number计算机学生基本表editSno6number学号Name8text姓名Sex2text性别Like50text爱好Tel10number电话Addr50text地址 第39页共39页VB工程部分:1.向VB工程中加入一个窗体,在此窗体上加入相应的控件;2.在系统窗体菜单基本表菜单的单击事件中加入连接代码;3.在窗体的装载事件中初始化控件;4.在“添加”按钮中进行判断是对哪个表操作,然后给出输入对话框,判断是否输入有效值,若值无效给出提示;若有效则判断是否已经存在,如果已经存在给出存在在提示,如果不存在则插入到对应的表中,则时更新显示。5.在“查询”按钮中判断对哪一个表操作,把对应表的信息查询出来。6.在点击“删除”按钮时,系统会判断是否已经选中要删除的项;若没有选中要删除的项系统不做任何事,若已经选中则给出是否删除的确认提示,确认则真正从表中删除,否则不删除。7.在“查询”按钮中判断对哪一个表操作,把对应表的信息查询出来。5.2登录窗体的制作模块功能:此模块主要用于验证用户登录身份。当用户输入正确的用户名和密码后,系统允许用户进行系统的相应权限的其他操作;如果输入的用户名和密码有误,系统将给出模提示,并且不允许其进行进一步的操作。表中定义:name和passwd两个字段,分别赋值为(xu,111.user,user.admin,admin.)然后运行VB程序部分,添加以下控件:  在VB工程设计中的denglu设计后的格式如下: 第39页共39页PrivateSubCommand1_Click()/*单击命令按钮1*/DimaaAsString,bbAsString/*定义字符型变量aa、bb*/aa=Trim(Text1.Text)/*将Text1框中Text属性的赋值给aa*/bb=Trim(Text2.Text)/*将Text2框中Text属性的赋值给bb*/IfText1.Text=""AndText2.Text=""Then/*如果Text1和Text2为空*/MsgBox"姓名或密码不可为空",64,"提示"/*提示消息框,姓名或密码不可为空*/Text1.SetFocus/*将焦点设置在Text1框中*/ElseIfText1.Text=""OrText2.Text=""Then/*如果Text1或Text2为空*/MsgBox"姓名或密码错误",64,"提示"/*提示消息框,姓名或密码错误*/Text1.Text=""/*将Text1框中Text属性为空*/Text2.Text=""/*将Text2框中Text属性为空*/Text1.SetFocus/*将焦点设置在Text1框中*/ElseData1.RecordSource="select*fromdengluwherename=""&aa&""andpasswd=""&bb&"""/*用Data数据控件和登录表进行数据链接*/Data1.RefreshIfData1.Recordset.RecordCount<>0Then/*若数据库不为0*/UnloadMe 第39页共39页main.Show/*显示main主窗体*/ElseMsgBox"姓名或密码错误",64,"提示"/*提示消息框,姓名*/Text1.Text=""/*将Text1框中Text属性为空*/Text2.Text=""/*将Text2框中Text属性为空*/Text1.SetFocus/*将焦点设置在Text1框中*/EndIfEndIfEndIfEndSubPrivateSubCommand2_Click()EndEndSubPrivateSubForm_Load()Data1.DatabaseName=App.Path&"db.mdb"/*用Data1数据控件自动获取路径*/EndSub5.3系统主窗体的制作添加系统菜单在VB工程设计环境的工具栏中单击“菜单编辑器”,在出现的“菜单编辑器”对话框中,输入显示菜单的标题和名称(一般是以mnu开头的英文,主要是用来事件编程的)添加完一个后,可以单击“下一个”按钮,进行下一个菜单项的输入,显示标题和名称是已经确定好且有一定实际意义。若某个菜单项是前一项的下一级菜单,可单击向右的箭头。加入完毕后,单击“确定”按钮完成。当然可以在以后的设计过程中再加新菜单。创建的主窗体如下: 第39页共39页编写以下代码:PrivateSubbj1_Click()/*单击学生基本情况主菜单*/edit.Show/*学生基本情况表对应的窗体显示*/EndSubPrivateSubbz_Click()/*单击帮助主菜单*/help.Show/*帮助窗体显示*/EndSubPrivateSubcj_Click()/*单击学生基本成绩主菜单*/chengj.Show/*学生基本成绩表对应的窗体显示*/EndSubPrivateSubcx_Click(IndexAsInteger)/*单击查询子菜单*/find.Show/*Find主窗体显示*/EndSubPrivateSubcx1_Click(IndexAsInteger)find.ShowEndSubPrivateSubll_Click()/*单击通讯录中的浏览子菜单*/review.Show/*review主窗体显示*/EndSub 第39页共39页PrivateSubsc_Click(IndexAsInteger)/*单击学生基本成绩中的子菜单*/del.Show/*del主窗体显示*/EndSubPrivateSubsc1_Click(IndexAsInteger)/*单击学生基本情况主菜单*/dele.Show/*dele主窗体显示*/EndSubPrivateSubtc_Click()/*单击主菜单中的退出子菜单*/aa=MsgBox("是否真的退出!",36,"提示")/*弹出消息框,是否真的退出*/Ifaa=6ThenEndElsemain.Show/*主窗体显示*/EndIfEndSubPrivateSubtx_Click()/*单击通讯录主菜单*/tongx.Show/*tongx主窗体显示*/EndSubPrivateSubtj_Click(IndexAsInteger)/*单击学生成绩表是添加子菜单*/tianj.Show/*tianj主窗体显示*/EndSubPrivateSubtj1_Click(IndexAsInteger)/*单击学生基本情况表是添加子菜单*/appe.Show/*appe主窗体显示*/EndSubPrivateSubxg_Click(IndexAsInteger)/*单击学生基本情况表中的修改子菜单*/edit.Show/*edit主窗体显示*/EndSubPrivateSubxg1_Click(IndexAsInteger)/*单击学生基本成绩表中的修改子菜单*/chengj.Show/*chengj主窗体显示*/EndSubPrivateSubzx_Click()/*单击系统主菜单中的注销子菜单*/ 第39页共39页aa=MsgBox("是否真的注销!",36,"提示")/*弹出消息框,提示是否真的注销*/Ifaa=6ThenUnloadMe/*如果注销,返回登录主窗体*/denglu.ShowElsemain.Show/*否则,返回主窗体*/EndIf5.4基本模块表操作实现学生基本表应有的字段:学号、姓名、性别、爱好、电话、住址、高数、英语、计算机。分析:学生录入时,有学生基本情况表各学生成绩表。这两个表中的公共字段有学号、姓名。在这两个表中以学号为关键字,过维护这两个基本的表来实现(此操作的实现为以后在开发中碰到同样的事情提供解决方案)。因为学生表的这两项信息来学生基本表和学生成绩表。基本表维护实现原则:正常情况下,我们应该对每一项信息(对应一个数据库中的表)都制作一个专用的窗体,进行此项信息的维护。鉴于这两项信息有其相似性---都是字符型字段,为了简单起间,我们把这两项信息的维护可以制作于一个窗体中实现。数据库表及字段的命名原则:正常情况下,数据库名称、数据表名称、字段名称,以及其他数据库对象的名称都应该是英文的,因为英文的有利于提高执行效率,也有利于提高编程的速度。所以表的名称和字段的名称都会是英文单词或汉语拼音,这样有利和VB工程中的窗体名称、控件名称等对应上,提高程序可读性。实现思想:1.学生基本表实现添加用于基本表维护的窗体:单击“工程”菜单下的“添加窗体”菜单项,单击“打开”按钮,就会在当前工程中加入一个名为Form1的窗体。设置窗体属性:名称Edit 第39页共39页Caption学生基本表添加控件Form窗体Form1.Caption=tianjLable控件Caption属性Text控件Text属性Lable1学生基本情况Text1空Lable2学号Text2空Lable3姓名Text3空Lable4性别Text4空Lable5电话Text5空Lable6爱好Text6空Lable7住址Text7空Command控件Caption属性Data控件Command1首记录Data1.Databasename=”F:xudandandb.mdb”Command2上一条Command3下一条Data1.Recordsource=edit.mdbCommand4末记录Command5添加添加控件之后的窗体如下: 第39页共39页用以上同样的方法制作其他的几个窗体。dele.frmdele.frmfindfrm.不同的是Command5按钮。其中依次设置为Command5.Caption=”修改”Command5.Caption=”删除”Command5.Caption=”查询”。其代码和下面的学生成绩表代码类同,这里不再详述。2、学生成绩表实现:模块功能:实现学生成绩添加、修改、查询、删除等功能,确保本表能实现学生成绩的基本管理,保证数据库的一致性。具体实现:添加"确认修改学生学号"窗体,其窗体和控件属性设置如下: 单击“打开”按钮,就会在当前工程中加入一个名为Form1的窗体。设置窗体属性:名称Chengji.frmCaption学生基本表添加以下控件: 第39页共39页Form窗体Form1.Caption=browLable控件Caption属性Text控件Text属性Lable1学生成绩情况Text1空Lable2学号Text2空Lable3姓名Text3空Lable4性别Text4空Lable5高数Text5空Lable6英语Text6空Lable7计算机Text7空Command控件Caption属性Data控件Command1首记录Data1.Databasename=”F:xudandandb.mdb”Command2上一条Command3下一条Data1.Recordsource=chengj.mdbCommand4末记录Command5添加 第39页共39页同样,用以上同样的方法制作其他的几个窗体。dele.frmdele.frmfindfrm.不同的是Command5按钮。其中依次设置为Command5.Caption=”添加”Command5.Caption=”删除”Command5.Caption=”查询”。添加子菜单代码:PrivateSubCommand1_Click()/*单击命令按钮1*/Data1.Recordset.MoveFirst/*Data1移至首记录*/EndSubPrivateSubCommand2_Click()/*单击命令按钮2*/IfData1.Recordset.BOFThen/*Data1到达文件头*/MsgBox"已到首记录",64,"提示"/*提示移至首记录*/ElseData1.Recordset.MovePrevious/*Data1移至前一条记录*/EndIfEndSubPrivateSubCommand3_Click()/*单击命令按钮3*/IfData1.Recordset.EOFThen/*Data1到达文件尾*/MsgBox"已到末记录",64,"提示"/*提示移至末记录*/ 第39页共39页ElseData1.Recordset.MoveNext/*Data1移至后一条记录*/EndIfEndSubPrivateSubCommand4_Click()/*单击命令按钮4*/Data1.Recordset.MoveLast/*Data1移至下一条记录*/EndSubPrivateSubCommand5_Click()/*单击命令按钮5*/Data1.Recordset.MoveLast/*Data1移至最后一条记录*/MsgBox"添加成功",64,"提示"/*提示消息,添加成功*/Data1.Recordset.editData1.Recordset.AddNewData1.Recordset.UpdateData1.RefreshEndSubPrivateSubData1_Validate(ActionAsInteger,SaveAsInteger)Data1.DatabaseName=App.Path&"db.mdb"/*Data1自动获取路径*/EndSub修改子菜单:PrivateSubCommand1_Click()/*单击命令按钮1*/Data1.Recordset.MoveFirst/*Data1移至首记录*/EndSubPrivateSubCommand2_Click()/*单击命令按钮2*/IfData1.Recordset.BOFThen/*Data1到达文件头*/MsgBox"已到首记录",64,"提示"/*提示移至首记录*/ElseData1.Recordset.MovePrevious/*Data1移至前一条记录*/EndIfEndSubPrivateSubCommand3_Click()/*单击命令按钮3*/ 第39页共39页IfData1.Recordset.EOFThen/*Data1到达文件尾*/MsgBox"已到末记录",64,"提示"/*提示移至末记录*/ElseData1.Recordset.MoveNext/*Data1移至下一条记录*/EndIfEndSubPrivateSubCommand4_Click()/*单击命令按钮4*/Data1.Recordset.MoveLast/*Data1移至下一条记录*/EndSubPrivateSubCommand5_Click()/*单击命令按钮5*/Data1.Recordset.AddNewMsgBox"修改成功",64,"提示"/*提示消息:修改成功*/Data1.RefreshEndSub删除子菜单代码如下:PrivateSubCommand1_Click()/*单击命令按钮1*/Data1.Recordset.MoveFirst/*Data1移至首记录*/EndSubPrivateSubCommand2_Click()/*单击命令按钮2*/IfData1.Recordset.BOFThen/*Data1到达文件头*/MsgBox"已到首记录",64,"提示"/*提示移至首记录*/ElseData1.Recordset.MovePrevious/*Data1移至前一条记录*/EndIfEndSubPrivateSubCommand3_Click()/*单击命令按钮3*/IfData1.Recordset.EOFThen/*Data1到达文件尾*/MsgBox"已到末记录",64,"提示"/*提示移至末记录*/ElseData1.Recordset.MoveNext/*Data1移至后一条记录*/ 第39页共39页EndIfEndSubPrivateSubCommand4_Click()/*单击命令按钮4*/Data1.Recordset.MoveLast/*Data1移至下一条记录*/EndSubPrivateSubCommand5_Click()/*单击命令按钮5*/Data1.Recordset.Delete/*调用Data1控件的Delete属性*/MsgBox"删除成功",64,"提示"/*提示消息:删除成功*/Data1.RefreshEndSub5.5查询功能的实现查询模块是为了方便用户浏览所要求的信息,此模块能大量减轻用户的工作量。用户可输入学号对学生基本情况和学生基本成绩进行查询。当用户输入符合条件的学号,系统将调出此条有效信息,否则,系统提示,检查输入的学号是否正确。模块功能:实现学生基本信息查询,为方便学生管理提供信息出口。 第39页共39页Form窗体Form1.form=findForm1.Caption=查询SSTab1名称=SStabSStab1.tapsperrow=2Line控件Line.Borderwidth=2Lable控件Captio属性Text控件Text属性Lable1学号Text1空Lable2学号Text2空Lable3姓名Text3空Lable4性别Text4空Lable5高数Text5空Lable6英语Text6空Lable7计算机Text7空Lable8爱好Data控件Lable9电话Data1.DatabaseName=App.Path&"db.mdb"Data1.DatabaseName=App.Path&"db.mdb"Lable10住址Comman控件Captio属性Command1查找 第39页共39页当单击“确认查询”按钮时,则根据所选择的学号后对应的用于查询的字段值组合成查询条件,ADO数据控件根据查询条件到学生表中去查询,把查询的结果存放在ADO数据控件中,并且显示在查询结果窗体中。代码如下:PrivateSubCommand1_Click()/*单击命令按扭1*/DimaaAsString/*定义字符型变量aa*/aa=Trim(Text1.Text)/*将Text1框中Text属性的赋值给aa*/IfText1.Text=""Then/*如果为空,弹出消息框*/MsgBox"不可为空",64,"提示"/*提示不能为空*/Else 第39页共39页Data1.RecordSource="select*fromeditwheresno=""&aa&"""Data1.Refresh/*用data数据控件和学生基本情况表进行数据链接*/IfData1.Recordset.EOFThenMsgBox"无此信息",64,"提示"EndIfText1.Text=""Text1.SetFocusEndIfEndSubPrivateSubCommand2_Click()/*单击命令按扭1*/DimaaAsString/*定义字符型变量aa*/IfText2.Text=""ThenMsgBox"不可为空",64,"提示"ElseData2.RecordSource="select*fromchengjwheresno=""&aa&"""Data2.Refresh/*用data数据控件和学生基本成绩表进行数据链接*/IfData2.Recordset.EOFThen/*如果到文件尾*/MsgBox"查无此信息",64,"提示"/*弹出消息框,无此信息*/EndIfText2.Text=""Text2.SetFocus/*如果文本框为空,焦点定在此文本框内*/EndIfEndSubPrivateSubForm_Load()Data1.DatabaseName=App.Path&"db.mdb"/*用data1自动获取路径*/Data2.DatabaseName=App.Path&"db.mdb"/*用data1自动获取路径*/EndSub 第39页共39页第六章性能测试与分析软件测试就是在受控制的条件下对系统或应用程序进行操作并评价操作结果的过程,所谓控制条件应包括正常条件与非正常条件。包括以下测试:6.1单元测试单元测试的对象是软件设计的最小单位-模块。我们在设计阶段所采取的测试就是单元测试。单元测试的依据是详细设计描述,单元测试应对模块内所有重要的控制路径设计测试用例,以便发现模块内部的错误。单元测试多采用白盒测试技术,系统内多个模块可以并行也进行测试。单元测试任务包括:模块接口测试,模块局部数据结构测试,模块中所有独立执行通路测试,模块的各条错误处理通路测试,边界条件测试。一般单元测试应紧接在编码之后,当源程序编制完成并通过复审和编译检查,便可开始单元测试。测试用例的设计应与复审工作相结合,根据设计信息选取测试数据,将增大发现上述各类错误的可能性。在确定测试用例的同时,应给出期望结果。提高模块的内聚度可简化单元测试,如果每个模块只能完成一个,所需测试用例数目将显著减少,模块中的错误也更容易发现。6.2本系统性能测试与分析根据以上关于软件测试的理论,我用黑盒测试法对系统进行了测试。结果证明,本系统基本上能实现《学生管理系统》要求的功能。同时测试过程中发现错误如下:1.在登录界面上,连续三次输入密码或用户名错误,但系统并不退出;2.使用共享文件更新数据时,其他用户不能访问该共享文件; 第39页共39页结束语经过一个月对该系统的设计和开发,学生信息管理与分析系统基本开发完毕。其功能基本符合用户需求,能够完成学生基本情况和学生成绩情况的添加、查询、修改、删除等功能。并提供部分系统注销功能、通讯录、帮助等功能,对于数据的一致性的问题也通过程序进行有效地解决。但由于毕业设计时间短,本人技术和水平有限,所以该系统还有许多不尽人意的地方,比如报表设计功能未能实现,只能显示整个数据报表,而不能显示部分数据报表,用户界面不够美观,出错处理不够等许多方面问题。这些都有待进一步改善,我从本次毕业设计中学到许多课外无法学到的知识。 第39页共39页致谢在毕业设计的近几个月时间是我学生生涯中最有价值的一段时光。这里有治学严谨而不失亲切的老师,有互相帮助的同学,更有向上、融洽的学习生活氛围。借此论文之际,我想向大家表示我的谢意。首先感谢老师。本论文是在老师的指导下和同学们的帮助下修改完成的。在此,要对他们的细心帮助和指导表示由衷的感谢。在这段时间里,我从他们身上不仅学到了许多的专业知识,更感受到了他们工作中的兢兢业业,生活中的平易近人。此外,他们严谨的治学态度和忘我的工作精神值得我去学习。非常感谢大家在我的毕业设计中,给予了我极大的帮助,使我对整个毕业设计的思路有了总体的把握,并耐心的帮我解决了许多实际问题,使我有了很大收获。同时,他们在整个开发过程中提出了许多建设性意见,并给我解决了一些专业性问题。感谢三年来传授我知识的老师们,更要感谢我的家人对我学业上的支持和鼓励,同时感谢所有关心帮助过我的同学、老师和学校。总之,在以后的学习生活中我将以加倍的努力作为对给予我帮助的学校、老师及同学们的回报。 第39页共39页参考文献[1]张红军.王虹.VisualBasic6.0中文版高级应用与开发指南.北京:人民邮电出版社,2002[2]伍俊良.VB课程设计与系统开发案例.北京:清华大学出版社,2003[3]林陈雷,郭安源.VisualBasic教育信息化系统开发实例导航.北京:人民邮电出版社,1998 第39页共39页附录(源程序)编写代码:主窗体代码:PrivateSubbj1_Click()edit.ShowEndSubPrivateSubbz_Click()help.ShowEndSubPrivateSubcj_Click()chengj.ShowEndSubPrivateSubcx_Click(IndexAsInteger)find.ShowEndSubPrivateSubcx1_Click(IndexAsInteger)find.ShowEndSubPrivateSubll_Click()review.ShowEndSubPrivateSubsc_Click(IndexAsInteger)del.ShowEndSubPrivateSubsc1_Click(IndexAsInteger)dele.ShowEndSubPrivateSubtc_Click()aa=MsgBox("是否真的退出!",36,"提示")Ifaa=6Then 第39页共39页EndElsemain.ShowEndIfEndSubPrivateSubtx_Click()tongx.ShowEndSubPrivateSubtj_Click(IndexAsInteger)tianj.ShowEndSubPrivateSubtj1_Click(IndexAsInteger)appe.ShowEndSubPrivateSubxg_Click(IndexAsInteger)edit.ShowEndSubPrivateSubxg1_Click(IndexAsInteger)chengj.ShowEndSubPrivateSubzx_Click()aa=MsgBox("是否真的注销!",36,"提示")Ifaa=6ThenUnloadMedenglu.ShowElsemain.ShowEndIfEndSub在主菜单加入如下子菜单代码: 第39页共39页添加子菜单代码:PrivateSubCommand1_Click()Data1.Recordset.MoveFirstEndSubPrivateSubCommand2_Click()IfData1.Recordset.BOFThenMsgBox"已到首记录",64,"提示"ElseData1.Recordset.MovePreviousEndIfEndSubPrivateSubCommand3_Click()IfData1.Recordset.EOFThenMsgBox"已到末记录",64,"提示"ElseData1.Recordset.MoveNextEndIfEndSubPrivateSubCommand4_Click()Data1.Recordset.MoveLastEndSubPrivateSubCommand5_Click()Data1.Recordset.MoveLastMsgBox"添加成功",64,"提示"Data1.Recordset.editData1.Recordset.AddNewData1.Recordset.UpdateData1.RefreshEndSubPrivateSubData1_Validate(ActionAsInteger,SaveAsInteger) 第39页共39页Data1.DatabaseName=App.Path&"db.mdb"EndSub修改子菜单:PrivateSubCommand1_Click()Data1.Recordset.MoveFirstEndSubPrivateSubCommand2_Click()IfData1.Recordset.BOFThenMsgBox"已到首记录",64,"提示"ElseData1.Recordset.MovePreviousEndIfEndSubPrivateSubCommand3_Click()IfData1.Recordset.EOFThenMsgBox"已到末记录",64,"提示"ElseData1.Recordset.MoveNextEndIfEndSubPrivateSubCommand4_Click()Data1.Recordset.MoveLastEndSubPrivateSubCommand5_Click()Data1.Recordset.AddNewMsgBox"修改成功",64,"提示"Data1.RefreshEndSub查询子菜单代码如下:PrivateSubCommand1_Click() 第39页共39页DimaaAsStringaa=Trim(Text1.Text)IfText1.Text=""ThenMsgBox"不可为空",64,"提示"ElseData1.RecordSource="select*fromeditwheresno=""&aa&"""Data1.RefreshIfData1.Recordset.EOFThenMsgBox"无此信息",64,"提示"EndIfText1.Text=""Text1.SetFocusEndIfEndSubPrivateSubCommand2_Click()DimaaAsStringaa=Trim(Text2.Text)IfText2.Text=""ThenMsgBox"不可为空",64,"提示"ElseData2.RecordSource="select*fromchengjwheresno=""&aa&"""Data2.RefreshIfData2.Recordset.EOFThenMsgBox"查无此信息",64,"提示"EndIfText2.Text=""Text2.SetFocusEndIfEndSubPrivateSubForm_Load() 第39页共39页Data1.DatabaseName=App.Path&"db.mdb"Data2.DatabaseName=App.Path&"db.mdb"EndSub删除子菜单代码如下:PrivateSubCommand1_Click()Data1.Recordset.MoveFirstEndSubPrivateSubCommand2_Click()IfData1.Recordset.BOFThenMsgBox"已到首记录",64,"提示"ElseData1.Recordset.MovePreviousEndIfEndSubPrivateSubCommand3_Click()IfData1.Recordset.EOFThenMsgBox"已到末记录",64,"提示"ElseData1.Recordset.MoveNextEndIfEndSubPrivateSubCommand4_Click()Data1.Recordset.MoveLastEndSubPrivateSubCommand5_Click()Data1.Recordset.DeleteMsgBox"删除成功",64,"提示"Data1.RefreshEndSub通讯录主菜单的浏览子菜单代码如下: 第39页共39页PrivateSubCommand1_Click()Data1.Recordset.MoveFirstEndSubPrivateSubCommand2_Click()IfData1.Recordset.BOFThenMsgBox"已到首记录",64,"提示"ElseData1.Recordset.MovePreviousEndIfEndSubPrivateSubCommand3_Click()IfData1.Recordset.EOFThenMsgBox"已到末记录",64,"提示"ElseData1.Recordset.MoveNextEndIfEndSubPrivateSubCommand4_Click()Data1.Recordset.MoveLastEndSubPrivateSubCommand5_Click()EndEndSub本系统制作过程中的代码结束。'