基于VB的学生信息管理系统的开发_第1页
基于VB的学生信息管理系统的开发_第2页
基于VB的学生信息管理系统的开发_第3页
基于VB的学生信息管理系统的开发_第4页
基于VB的学生信息管理系统的开发_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

目录毕业论文题目………………………2摘要…………………2正文…………………3、引言…………3管理信息系统的开展历史……………3管理信息系统的开展方向……………3管理信息系统的特点…………………3、系统设计………………………4系统功能分析…………4系统功能模块设计……………………4、数据库设计……………………5数据库需求分析………5数据库概念结构设计…………………6数据库逻辑结构设计…………………9、数据库结构的实现……………………9、学生信息管理系统主窗体的创立……………9、系统用户管理模块的创立……………………12、课程设置模块的创立…………………15、成绩管理模块的创立…………………18、系统的实现……………21、系统的编译………………21、总结………………………22、致谢……………………22参考文献……………23附录程序………………………24基于VB的学生信息管理系统的开发——学生课程及成绩信息管理系统梁春妙【摘要】本文研究了管理信息系统的开展历史、开展方向及特点。从而提出了学生信息管理系统来提高学生管理工作效率的重要性,系统开发的总体任务是实现学生信息关系的系统化、标准化和自动化。由于我作的是学生课程的设置、修改及学生成绩的输入、修改、查询和统计。重点介绍了其系统,利用SQLServer2000数据库系统中SQL查询分析器实现该逻辑结构,使用VisualBasic来编写数据库系统的各个模块程序。完成了各个功能模块的创立后,将整个系统运行并调试,最后对系统进行编译。【关键词】管理信息系统数据库查询分析器功能模块【Title】Theexploitureofthemanagesystemofstudent’sinformationbaseonVB——Themanagesystemofstudent’scourseandachievement【Abstract】Thisarticleresearchmanagesystem’sdevelopmenthistory、directionofdevelopmentandpeculiarity.Sowebringforwardtheessentialitythatwecanimprovetheworkefficiencybyusingthemanagesystemofstudent’sinformation.Thecollectivitymissionofsystem’sexploitationrealizationthatmanageinformationofstudentsystematization、standardizationandrobotization.Myjobisthesettingandrevampedofstudent’scourse,theinput、revamped、demandandstatisticofstudent’sachievement.Thisarticleintroduceitssystemstressly,realizationitslogicconfigurationbytheSOLdemandanalyzerfromSOLServer2000data-basesystem,compileeachmoduleformalityofthedata-basesystembyVisualBasic.Runninganddebuggingthissystemaftersetupeachfunctionmodule.Finally,translateandeditthesystem.【Keywords】TheinformationsystemofmanagerData-baseInquirerandanalyzerFunctionmodule一引言(一)、管理信息系统的开展历史本文研究的是学生管理信息系统,我们先来了解管理信息系统的开展历史、应用开展方向以及它的特点。管理信息系统就是MIS(ManagementInformationSystem),在强调管理方面,在强调信息的现代社会中它变得越来越普及。MIS是一门新的学科,它跨越了假设干个领域,比方管理科学、系统科学、运筹学、统计学以及计算机科学。在这些学科的根底上,形成信息收集和加工的方法,从而形成一个纵横交织的系统。管理信息系统在最初级阶段是统计系统,所研究的内容是数量数据间外表的规律,它可以把数据分成较相关和较不相关的组,然后把数据转换为信息。第二阶段是数据更新系统,其典型代表是美国航空公司于20世纪50年代建成的ASBRE预约顶票系统。它设有1008个顶票点,可以存取600000个旅客记录和27000个飞行记录。它的操作比拟复杂,在任何一“点〞都可以查到某一航班是否有空座位。但从概念上来讲,它只是一个数据更新系统,比方它不能告诉你以现在的售票速度何时票将售完,从而采取补救措施。因而它也是管理信息系统的低级阶段。第三阶段是状态报告系统,它可以分为生产状态报告、效劳状态报告和研究状态报告等系统。比方生产状态报告系统,它可以分为生产状态报告、效劳状态报告和研究状态报告等系统。生产状态报告系统,它的典型代表是IBM公司的生产管理系统。状态报告系统还有一种形式是数据处理系统,它用来处理日常业务和生产报告,重点在于将手工作业自动化。提高效率和节省人力。数据处理系统一般不能提供决策信息。最后的阶段是决策支持系统,它是用来辅助决策的信息系统。该系统可以方案、分析方案,审查解答和求解的误差。它应有较好的人机对话方式,可以和不怎么熟悉计算机的管理人员通话。它一般包括一些模型用以产生决策信息,但不强调全面的管理功能。(二)、管理信息系统的开展方向近20年间,管理信息系统的开展出现了3种变化:着重建立MIS系统,使管理技术走向成熟。信息是决策的依据,MIS为经理们提供信息效劳。经理通过MIS使其经济方案和具体的业务活动联系在一起。由于以上的变化,MIS应用得到迅速开展。不仅大中型企业中普遍建立了自己的MIS,一些中小企业也不例外,普遍建立了公用数据网络,如电子邮件、电子数据交换等,尤其是近年来Internet的飞速开展,Internet技术得到应用,为企业MIS提供了良好的支持环境。从国际技术开展趋势看,20世纪90年代出现了几种全新的管理技术:BPR—企业过程重组,IDDS—智能化决策支持系统,LeanProduction—精良生产,AgileManufacture—灵捷制造。相应的MIS在20世纪90年代也有了新的开展:信息综合集成;Internet/Intranet;先进的软件开发工;;多媒体技术。(三)、管理信息系统的特点管理信息系统的组成管理信息系统在企业中的应用存在三要素,这就是人、计算机和数据。人是指企业领导者、管理人员、技术人员,以及MIS建设的领导机构和实施机构,他们在系统中起主导作用。MIS是一项系统工程,不是只靠一些计算机开发人员就可以完成的,必须有企业管理人员,尤其是企业领导的积极参加。计算机技术是MIS得以实施的主要技术。在这些技术中,软件开发是MIS开发的重点。第三个因素也不能无视。企业的管理数据是MIS正常运行的根底。广义地说,各项管理制度是MIS建设成功的根底。试想要计算一台机床的本钱,需要按时输入每个部件、每个零件以及每个螺钉螺帽的费用,涉及企业的生产车间、采购、库房、工艺设计和财务等多个部门,必须有一整套管理制度做保证。管理信息系统的界面特点以通信功能作为界面设计的核心界面必须始终一致界面必须使用户随时掌任务的进展情况界面必须能够提供帮助界面友好、使用方便输入画面尽可能接近实际具有较强的容错功能二系统设计随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。而对庞大的信息量,就需要有学生信息管理系统来提高学生管理工作的效率。通过这样的系统,可以做到的标准管理、科学统计和快速的查询,从而减少管理方面的工作量。(一)、系统功能分析系统开发的总体任务是实现学生信息关系化、标准化和自动化。系统功能分析是在系统开发的总体任务的根底上完成的。学生信息管理系统需要完成的功能主要有:有关学籍等信息的输入,包括学生根本信息、所在班级、所学课程和成绩等。学生信息的查询,包括学生根本信息、所在班级、已学课程和成绩等。学生信息的修改。班级管理信息的输入,包括班级设置、年级信息等。班级管理信息的查询。班级管理信息的修改。学校根本课程信息的输入。根本课程信息的修改。学生课程的设置和修改。学生成绩信息的输入。学生成绩信息的修改。学生成绩信息的查询。学生成绩信息的统计。(二)、系统功能模块设计对上述各项功能进行集中、分块,按照结构化程序设计的要求,等到如图1-1所示的系统功能模块图。学生信息管理系统...学生信息管理系统...成绩信息管理课程信息管理系统管理成绩信息管理课程信息管理系统管理用户管理成绩信息统计密码管理课程信息修改课程信息设置成绩信息输入成绩信息修改成绩信息查询用户管理成绩信息统计密码管理课程信息修改课程信息设置成绩信息输入成绩信息修改成绩信息查询SHAPE2-1系统功能模块图三、数据库设计数据库设计包括构造和组织数据库数据的各种概念和方法。数据库设计分为两方面:物理设计和逻辑设计。物理设计指SQLServer如何使用现有硬件。逻辑设计指数据库结构。数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率保证数据的完整和一致。同时,合理的数据库结构也将有利于程序的实现。在设计一个数据库之前,首先要对数据库的设计目的和应用背景进行分析。在进行设计目的分析时,应搞清数据库要解决一个什么样的问题、需要存储那些数据、能够想用户提供那些统计信息、完成那些自动化功能等。应用背景指数据库应用于一个什么样的场合,同样的数据库应用于不同的场合,其特点和要求也不一样。在开发数据库之前,必须掌握一定的背景知识。(一)、数据库需求分析对于用户的需求,具体表达在各种信息的提供、保存、更新和查询等方面,这就要求数据库结构充分满足各种信息的输出和输入。我们收集根本数据、数据结构以及数据处理的流程,为后面的具体设计打下根底。在仔细分析调查有关学生信息需要的根底上,将得到如图3-1所示的本系统所处理数据流程。针对一般学生信息管理系统的需要,通过对学生学习过程的内容和数据流程分析,如下面所示的数据项和数据结构:学生根本信息:包括的数据项有:学生学号、学生姓名、性别、出生日期、班级联系、入校日期、家庭住址、备注等。班级信息:包括的数据项有:班号、所在年级、班主任姓名、所在教室等。课程根本信息:包括的数据项有:课程号、课程名称、课程类别、课程描述等。课程设置信息:包括的数据项有:年级信息、所学课程等。学生成绩信息:包括的数据项有:考试编号、所在班号、学生学号、学生姓名、所学课程、考试分数等。学生注册..学籍信息管理学生注册..学籍信息管理成绩信息输入成绩信息管理班级设置班级管理课程根本信息班级课程管理班级课程设计根本信息输入有了上面的数据结构、数据项和数据流程,我们就能进行下面数据库设计。(二)、数据库概念结构设计几乎所有的应用程序需要存放大量的数据,并将其组织成易于读取的格式,这种要求通常可以通过数据库管理系统来实现。数据库系统提供了数据在数据库内存方式的管理能力。数据库就是一组排列成易于处理和读取的相关信息的集合。得到上面的数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下根底。这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。根据上面的设计规划出的实体有:学生实体、班级实体、年级实体、课程实体。各个实体具体的描述E-R图如下。图3-2为学生实体E-R图。学....生…学生根本信息学....生…学生根本信息学生课程信息学生班级信息学生成绩信息图3-2为学生实体E-R图图3-3为班级实体E-R图。班号…班班号…班…级…所在班级…班主任所在教室…图3-4为课程实体E-R图。课程名称..课程编号..课程描述…课程类型…课程名称..课程编号..课程描述…课程类型…课....程…图3-5为年级实体E-R图。包括班级年级名称包括班级年级名称设置课程年....级…实体和实体之间的关系E-R图3-6所示考核过程学考核过程学…生…班级设置班…级…年级设置年…级…课程设置课…程…图3-6实体之间关系E-R(三)、数据库逻辑结构设计现在需要将上面的数据库概念结构转化为SQLServer2000数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。在上面的实体以及实体之间关系的根底上,形成数据库中的表格以及各个表格之间的关系。学生信息管理系统数据库中各个表格的设计结果如下面的几个表格所示。每个表格表示在数据库中的一个表。表3—1为课程根本信息表表3-1course_info课程根本信息表列名数据类型可否为空说明Course_NoINT(4)NOTNULL课程编号Course_NameCHAR(10)NULL课程名称Course_TypeCHAR(10)NULL课程类型Course_DesCHAR(10)NULL课程描述表3-2为年级课程设置表表3-2gardecouse_info年级课程设置表格列名数据类型可否为空说明GradeCHAR(10)NULL年级Course_NameCHAR(10)NULL课程名称表3—3为学生成绩信息表表3—3result_info学生成绩信息表列名数据类型可否为空说明Exam_NoCHAR(10)NOTNULL考试编号Student_IDINT(4)学生学号Student_nameCHAR(10)NULL学生姓名Class_NoINT(4)NULL学生班号Course_NameCHAR(10)NULL课程名称resultFLOAT(8)NULL分数表3-4为系统用户表表3-4user_info系统用户表列名数据类型可否为空说明User_IDCHAR(10)NOTNULL用户名称〔主键〕User_PWDCHAR(10)NULL用户密码User_DESCHAR(10)NULL用户描述四、数据库结构的实现经过前面的需求分析和概念结构设计以后,得到数据库的逻辑结构。现在就可以在SQLServer2000数据库系统中实现该逻辑结构。这是利用SQLServer2000数据库系统中的SQL查询分析器实现的。创立这些表格的SQL语句见附录。五、学生信息管理系统主窗体的创立前面的SQL语句在SQLServer2000中的查询分析器执行后,将自动产生需要的所有表格。有关数据库结构的所有后台工作已经完成。现在将通过学生信息管理体统中各个功能块的实现,讲解如何使用VisualBasic来编写数据库系统的客户端程序。(一)、创立工程工程——studet_MIS为了用VisualBasic创立应用程序,应当使用工程。一个工程是用来建造和存放应用程序文件的集合,它包括:跟踪所有部件的工程文件〔.vbp〕。每个窗体的文件〔.frm〕。每个窗体的二进制数据文件〔.frx〕,它含有窗体上的属性数据。对含有二进制如图片或图标〕的任何.frm文件都是不可编辑的,这些文件都是自动生的。每个类模块的一个文件〔.cls〕,该文件是可选项。每个标准模块的一个文件(.bas),该文件是可选项。一个或多个包含ActivexX控件的文件(.ocx),该文件是可选项。单个资源文件(.res),该文件是可选项。启动VsiualBasic后,单击FileNewProject菜单,在如图4—1所示的工程模板中StandardEXE,VisualBasic将自动产生一个Form窗体,属性都是缺省设置。这里我们删除这个窗体,单击FilelSaveProject菜单,将这个工程工程命名为StudentMIS。(二)、创立学生信息管理系统的主窗体VisualBasic创立的应用程序可以是SDI〔单文档界面〕和MDI〔多文档界面〕。在SDI的程序中,每个窗体之间是独立的。而MDI的程序中,有一个窗体是主窗体,可以包含其他的窗体,它的类型是MDIform。这个课题采用多文档界面,这样可以是程序更加美观、整齐有序。图5-1程序主窗体单击工具栏中的“ADDMDIform〞按钮,生成一个如图4-2所示的窗体,属性设置见表4-1,主菜单的设置方法将在后面介绍。表5-1主窗体及其控件属性设置控件属性属性取值frmMain(form)NameFrmMainCaption学生信息管理系统StartUpPositonCenterScreenWindowStateMaximizedsbStatusBar(StatusBar)NameSbStatusBar在主窗体中参加状态栏控件,可以实时反映系统中的各个状态的变化。状态栏控件需在通常的属性窗口中设置一般属性,还需要在特有的弹出式彩单中进行设置。选中状态控件,单击鼠标右键,选中Property彩单,出现如图4—10所示的窗体。在“General〞属性对一般属性进行设置,在“Panels〞属性页对各个文本框进行设置,在〞Font〞属性页对文字体进行设置,在〞Picture〞属性页可以添加图片。图5-2状态栏控件特有的属性菜单单击InsertPanel按钮,为状态栏添加三个面板,设置属性页见表5-2。表5-2状态栏控件中三个面板的属性设置面板属性属性取值1StyleSbrText2StyleSbrDate3StyleSbrTime面板1用来显示各种文本信息,面板2用来显示当前日期,面板3用来显示当前时间。(三)、创立公用模块在VisualBasic中需要把各种数据保存到数据库中,而且要求有些变量在不同的窗体中能够使用,因此要创立用公用模块来存放整个工程工程公用的函数、全局变量等。整个工程工程中的任何地方都可以调用公用模块中的函数、变量,这样可以极大地提高代码的效率,给编程人员带来方便。在工程资源管理器中为工程添加一个Module,保存为Module1.bas。下面就可以开始添加需要的代码了。由于系统中各个功能模块都将频繁使用数据库中的各种数据,因此需要一个公用的数据操作函数,用以执行各种SQL语句。添加函数ExecuteSQL,编程代码见附录〔创立公用模块〕。ExecuteSQL函数有两个参数:SQL和MsgString。其中SQL用来存放需要执行的语句,MsgString用来返回执行的提示信息。函数执行时,首先判断SQL语句中包含的内当执行查询操作时,ExecuteSQL函数将返回一个与函数同名的记录集对象〔Recordset〕,有满足条件的记录包含在对象中;当执行如删除、更新、添加等操作时,不返回记录集对,在ExecuteSQL函数中使用了ConnectString函数,这个函数用来连接数据库,这两个函数在后面中也将频繁使用,因为它们对任何数据库连接都是有效的。由于学生信息管理系统启动后,需要对用户进行判断。如果登录者是授权用户,将进入系统,否那么将停止程序的执行。这个判断需要在系统运行的最初进行,因此将代码放在公用模块中。过程Main将在系统启动时首先执行,这就保证对用户的管理。六系统用户管理模块的创立系统用户管理模块主要实现:用户登录。添加用户。修改用户密码。录窗体的创立系统启动后,将首先出现如图6-1所示的用户登录窗体,用户首先输入用户名,然后输入密码。单击确定后如果用户三次输入密码不正确,将退出程序。图6-1用户登录窗体用户登录窗体中放置了两个文本框〔TextBox〕,用来输入用户名和用户密码;两个按钮〔CommandButton〕用来确定或者取消登录;四个标签〔Label〕用来标示窗体的信息。控件的属性设置见表6-1。表6-1登录窗体中各个控件的属性设置控件属性属性取值FrmLogi(form)NamefrmLoginCaprtion登录StartUpPositonCenterScreenWindowStateNomaltxtUserNameNameNomaltxtPasswordNametztPasswordPasswordChar*cmdOKNameCmdOKCaption确定cmdCancelNameCmdCancelCaption取消Label1Caption学生管理信息系统Label2Caption用户名Label3Caption用户密码Label4Caption版权提供:LLSoftwareCorp.文本框txtPassword的PasswordChar属性是用指定字符来掩盖用户输入的密码。为窗体定义全局变量OK,用来判断登录是否成功;定义miCount,用来记载输入密码的次数。并且在载入窗体时初始化这两个全局变量,OptionExplicit是用来规定所有变量使用前必须定义。这样可以防止由于输入错误而产生的新变量。当用户输入完用户名和用户密码,单击该按钮,将触发按钮cmdOK的Click事件。用户如果没有输入用户名和用户密码,将出现消息框提示。如果输入的用户名在表格中没有找到,将提示重新输入用户名,文本框txtUserName将重新获得输入焦点。用户输入的密码不正确,文本框txtPassword将重新获得输入焦点。用户登录成功,全OK将被赋值为True;一旦三次输入密码均不正确,全局变量OK将被赋值为False。快中的Main过程将根据OK的值决定是退出,或者进入系统。如果用户取消登录,单击cmdCancel按钮,将触发按钮的Click事件。添加用户窗体的创立进入系统后,选择菜单“系统/添加用户〞就可以添加用户,出现如图6-2所示的添加用户窗体。在这个窗体中放置了3个文本框,用来输入用户名和密码;两个按钮用来确定是否添加用户;3个标签用来标示文本框的提示。这些控件属性的设置见表6-2所示。用户需要两次输入密码,用来确保输入密码的正确。用户输入信息完毕,单击cmdOK按钮将触发Clidk事件。系统将首先查询数据库中与新建用户名相同的记录,如果有相同提示用户重新输入用户。当确定数据库中没有相同的用户名,并且两次输入密码一样时将把该条记录添加到数据库中。如果输入密码为空时,那么显示“密码不能为空!〞,单击cmdCancel按钮将会取消添加用户的操作。图6-2添加用户窗体表6-2添加用户窗体中各个控件的设置控件属性属性取值FrmAdduser(Form)NamefrmAdduserCaption添加用户StartUpPossitonCenterScreenWindowStateNomalTxtUserNameNameTxtUserNameTxtPassword1NameTxt{asswprd1PasswordChar*TxtPassword2NameTxtPassword2PasswordChar*CmdOKNameCmdOKCaption确定CmdCancelNameCmdCanelCaption取消Label1Caption请输入用户名Label2Caption请输入密码Label3Caption请确认密码〔三〕修改用户密码窗体的创立为了方便用户较容易记密码,用户可以对系统修改自己的密码,选择菜单“系统修改密码〞,出现如图6-3所示的窗体。在这个窗体中放置了两个文本框,用来输入密码;两个按钮用来确定是否修改密码;两个标签用来标示文本框的内容。这些控件属性的设置见表6-3图6-3修改密码窗体两次输入密码后,单击cmdOK按钮,将触发事件判断是否修改密码,当两次输入密码一致时,数据库中的记录将更新。不一致时出现“密码输入密码不正确!〞如果要取消修改密码时,单击cmdCanel按钮即可。表6-3修改用户密码窗体中各个控件的属性设置控件属性属性取值FrmModifyuserinfo(Form)NamefrmAdduserCaption修改密码StartUpPossitonCenterScreenWindowStateNomalTxtPassword1NameTxt{asswprd1PasswordChar*TxtPassword2NameTxtPassword2PasswordChar*CmdOKNameCmdOKCaption确定CmdCancelNameCmdCanelCaption取消Label2Caption请输入密码Label3Caption请确认密码七、程设置模块的创立课程设置模块主要实现如下功能:修改课程信息。设置年级课程。〔一〕、修改课程信息窗体的创立选择“课程设置/修改课程信息〞菜单,将出现如图7-1所示的窗体。窗体中各个控件的属性见表7-2图7-1修改课程信息窗体“查看课程信息〞框架中的4个按钮用来移动的数据集中记录的位置,需要将记录集对象定义为全局变量,程序在窗体载入时自动参加各条记录,由于程序中各处需要显示数据,所以需要定义函数ViewData。单击“第一条记录〞按钮时,将显示第一条记录,单击“最后一条记录〞按钮时,将显示最后一条记录,单击“下一条记录〞按钮时,将显示下一条记录,单击“上一条记录〞按钮时,将显示上一条记录,程序后面很多地方都将用到类似的查看信息的方法,后面就不重复了。“修改课程信息〞框架中的4个按钮用来修改数据集中的记录,单击“修改记录〞按扭,将进入到修改状态。窗体中各个控件的属性见表7-1表7-1修改课程窗体中各个控件的属性设置控件属性属性取值FrmModifycourseinfo(Form)FrmModifycourseinfo(Form)NamefrmModifycourseinfoCaption修改密码MDIChildTrueCmdFirstNamecmdOKCaption第一条记录CmdPreviousNameTxtPassword2Caption上一条记录CmdNextNameCmdOKCaption下一条记录CmdLastNameCmdCanelCaption最后一条记录CmdEditNameCmdEditCaption修改记录CmdUpdateNamecmdUpdateCaption更新记录CmdCancelNamecmdCancelCaption取消修改记录CmdDeleteNameCmdDeleteCaption删除记录Frame1Caption查看课程信息txtCoursenoNametxtClassnotxtCoursenaemNameTxtCoursenaemComboCoursetypeNameComboCoursetypetxtcoursedesNametxtcoursedesLabel1Caption课程编号Label2Caption课程名称Label3Caption课程类型Label4Caption课程描述Frame2Caption修改课程信息〔三〕设置年级课程窗体的创立选择菜单“课程设置/设置年级课程〞,将出现如图7-2所示的窗体。图7-2设置年级课程窗体窗体各个控件的属性设置见表7-2表7-2修改课程信息中各个控件的属性设置控件属性属性取值FrmModifycourseinfo(Form)NamefrmModifycourseinfoCaption设置年级课程MDIChildTrueCombogradeNamecombogradeListallcourse(listbox)NamelistallcourseListselectcourse(listbox)NamelistselectcourseCmdSetNamecmdsetCaption设置课程CmdModifyNamecmdModifyCaption确认设置CmdAddNameCmdEditCaption-CmdDeleteNameCmdDeleteCaption--Label1Caption选择年级Label2Caption所有课程Label3Caption已经选择课程程序开始运行后,选择年级,将在“已经选择课程〞列表框中显示内容。单击“年级〞下拉式文本框,将触发Click事件显示所选择年级的课程,程序根据选择的年级查询获得相应的信息,并显示在列表框中。单击“设置课程〞按钮,将进入设置状态,“所有课程〞列表框将显示所有课程。列表框的ListIndex属性用来指示当前选择项,-1说明没有被选中的数据项。单击“确认设置〞按钮,将课程设置数据保存到数据库中,单击“退出课程设置〞按钮将退出程序。八成绩管理模块的创立成绩管理模块主要实现如下功能添加成绩信息。修改成绩信息。查询成绩信息。统计成绩信息。加成绩信息窗体的创立选择“成绩管理/添加成绩信息〞菜单,将出现如图8-1所示的窗体。图8-1添加成绩信息窗体窗体中各个控件的属性设置见表8-1表8-1添加成绩信息窗体中各个控件的属性设置控件属性属性取值FrmModifycourseinfo(Form)NamefrmAddresultCaption添加成绩信息MDIChildTrueCmdOKNamecmdOKCaption确定添加CmdCancelNameCmdCancelCaption退出添加comboExamtypeNamecomboExamtypecomboClassnoNametxtClassnocomboCourseNamecomboCoursetxtResultNametxtResultcomboSIDNamecomboSIDtxtNameNametxtNameLabel1Caption考试编号Label2Caption选择班号Label3Caption选择学号Label4Caption姓名Label5Caption选择课程Label6Caption分数选择班级后,将触发Click事件,学号的文本框中自动参加相关班级的所有学号,单击“确认添加〞按钮,将输入内容添加到数据库中。单击“取消添加〞按钮,将输入的内容删除。〔二〕、修改成绩管理信息窗体的创立选择“成绩管理修改成绩信息〞菜单,将出现如图8-2所示的窗体。图8-2修改成绩信息窗体窗体中各个控件的属性设置见表8-2表8-2修改成绩信息窗体中各个控件的属性设置控件属性属性取值FrmModifycourseinfo(Form)NamefrmModifycourseinfoCaption修改密码MDIChildTrueCmdFirstNamecmdOKCaption第一条记录CmdPreviousNameTxtPassword2Caption上一条记录CmdNextNameCmdOKCaption下一条记录CmdLastNameCmdCanelCaption最后一条记录CmdEditNameCmdEditCaption修改记录CmdUpdateNamecmdUpdateCaption更新记录CmdCancelNamecmdCancelCaption取消修改记录CmdDeleteNameCmdDeleteCaption删除记录Frame1Caption查看成绩信息comboTestnoNamecomboTestnocomboClassnoNamecomboClassnocomboNoNameComboNotxtNameNametxtNamecomboCourseNamecomboCoursetxtResultNametztResultFrame2Caption修改成绩信息Label1Caption考试编号Label2Caption选择班级Label3Caption选择学号Label4Caption姓名Label5Caption选择课程Label6Caption输入分数“查看成绩信息〞框架中的4个按钮用来移动的数据集中记录的位置,需要将记录集对象定义为全局变量,程序在窗体载入时自动参加各条记录,由于程序中各处需要显示数据,所以需要定义函数ViewData。单击“第一条记录〞按钮时,将显示第一条记录,单击“最后一条记录〞按钮时,将显示最后一条记录,单击“下一条记录〞按钮时,将显示下一条记录,单击“上一条记录〞按钮时,将显示上一条记录,程序后面很多地方都将用到类似的查看信息的方法,后面就不重复了。“修改成绩信息〞框架中的4个按钮用来修改数据集中的记录,单击“修改记录〞按扭,将进入到修改状态。〔三〕查询成绩信息窗体的创立查询成绩信息窗体的创立方法与上面的窗体创立方法相同。选择“成绩管理/查询成绩信息〞菜单,将出现查询信息的窗体,设置窗体中各个控件的属性。(四)统计成绩信息窗体的创立选择“成绩管理/统计成绩信息〞菜单,将出现统计信息的窗体,设置窗体中各个控件的属性。把成绩统计出来并排好名次,然后编写程序代码。九、系统实现完成以上各个功能模块的创立后,当启动该系统时,首先出现登录窗口。在窗口的文本框中输入用户名和密码,如果用户三次输入密码不正确,将退出该程序。如果进入系统。出现学生信息管理系统的主窗体。选择“系统/添加用户〞会出现添加用户窗口,输入用户名和密码,并对密码确实认,单击确认即可添加用户。选择“系统/修改用户密码〞当两次输入密码一致时,数据库中的记录将更新。选择“课程设置/修改课程〞菜单,就可以对课程进行修改。选择“课程设置/设置年级课程〞出现设置课程窗口,选择年级,通过按钮可以增加或删除该年级的课程,单击“确认设置〞按钮,将课程设置数据保存到数据库中。单击“退出课程设置〞按钮将退出程序。选择“成绩管理/添加成绩信息〞菜单,选择班级后,学号的文本框中自动参加相关班级的所有学号,单击“确认添加〞按钮,将输入内容添加到数据库中。单击“取消添加〞按钮,将输入的内容删除。选择“成绩管理/修改成绩信息〞菜单,“查看成绩信息〞框架中的4个按钮用来移动的数据集中记录的位置,“修改成绩信息〞框架中的4个按钮用来修改数据集中的记录,单击“修改记录〞按扭,将进入到修改状态。选择“成绩管理/查询成绩信息〞首先选择查询方式,然后输入查询内容。单击“查询〞按钮,就可以查出成绩信息。选择“成绩管理/统计成绩信息〞,单击“统计〞按钮,即可统计成绩。十、系统的编译完成了学生信息管理系统的编程和调试工作,最后一步就是该系统的编译。这涉及工程工程属性的设置、可执行应用程序的生成。在系统的编译和发行以前,设置工程工程的属性。选择菜单“ProjectlStudentProperties〞,将会出现属性页并对其进行修改。最后选择“FileMakeStudent_Mis.exe〞菜单,编译开始。编译完毕后,即生成了相对的可执行文件。编译成功后,生成可执行文件Student_Mis.exe。需要在发行前对生成的可执行文件进行测试。通过测试的可执行文件就可以发布运行了。一个完整的学生信息管理系统就创立完毕了。十一、总结历时六周的毕业设计终于划上了一个圆满的句号,感慨亦多。这次毕业设计让我稳固了VisualBasic的程序设计以及数据库的知识,使我较系统、全面地了解其他相关学科的知识,拓宽自己的视野。更重要的是通过亲自动手编写程序;调试系统;提高了自己应用知识和动手能力。同时也让我感到在大学三年的理论学习中,根底理论掌握的不够扎实,在毕业设计过程中许多地方还要重新学习,以至浪费了不少珍贵的时间。但是从一无所知,到能独立制作出一个简单的系统,是学习的过程,也是挑战自我的过程。总体讲这次毕业设计对我是受益匪浅的,它不仅让我稳固了大学三年所学的专业知识,而且有效地提高了我独立思考问题能力及与他人协作共同解决问题的能力。通过本次毕业设计,使我积累了VisualBasic程序设计的经验。对我以后从事VisualBasic程序设计的工作增添了信心。十二、致谢词经过了为期六周的毕业设计,我学到了许多珍贵的工程实践经验,并且从中感受到了作为一名工程人员的乐趣,收获很大。在此我首先要感谢我的指导老师——李宏伟老师,是他把我领进门,对我耐心的指导,教给了我丰富的知识,也正是从本次毕业设计开始,我深入地了解了VisualBasic程序设计,并掌握了VisualBasic程序设计技术方法的一般应用,为我将来走上工作岗位打下了坚实的根底。参考文献[1][美]Microsoft公司著.MicrosoftVisualBasic6.0ControlsReference控件参考手册北京希望电子出版社,1999[2]段银田,陈勇孝,郎洪VisualBasic程序设计根底北京:高等教育出版社,1999[3][美]DiannesieboldVisualBasic开发指南—SQLServer篇北京:电子工业出版社,2000[4]胡荣根VisualBasic6.0中文版数据库和Internet编程北京:清华大学出版社1999[5]宋琦凡付敬平使用VisualBasic开发数据库应用软件北京:电子工业出版社,1996[6]龚沛曾陆慰民扬志强VisualBasic程序设计教程[6.0]北京:高等教育出版社2000[7]丁莉等编著VisualBasic6.0中文版编程实例详解北京:电子工业出版社,1999附录创立表格的SQL语句:〔一〕创立系统用户表格user_InfoCREATETABLE[dbo].[user_Info1]([user_ID][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,[user_PWD][char](10)COLLATEChinese_PRC_CI_ASNULL,[user_Des][char](10)COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]〔二〕创立课程根本信息表course_InfoCREATETABLE[dbo].[course_Info]([course_No][int]NOTNULL,[course_Name][char](10)COLLATEChinese_PRC_CI_ASNULL,[course_Type][char](10)COLLATEChinese_PRC_CI_ASNULL,[curse_Des][char](50)COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]〔三〕创立年级课程设置信息表gradecourse_InfoCREATETABLE[dbo].[gradecourse_Info]([grade][char](10)COLLATEChinese_PRC_CI_ASNULL,[course_Name][char](10)COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]〔四〕创立学生成绩信息表result_InfoCREATETABLE[dbo].[result_Info]([exam_No][char](10)COLLATEChinese_PRC_CI_ASNOTNULL[student_ID][int]NOTNULL,[student_Name][char](10)COLLATEChinese_PRC_CI_ASNULL,[class_No][int]NULL,[course_Name][char](10)COLLATEChinese_PRC_CI_ASNULL,[result][float]NULL)ON[PRIMARY]五、学生信息管理系统主窗体的创立〔四〕创立公用模块程序:PublicFunctionExecuteSQL(ByValSQLAsString,MsgStringAsString)DimcnnAsADODB.ConnectionDimrstAsADODB.RecordsetDimsTokens()AsStringOnErrorGoToExecuteSQL_ErrorsTokens=Split(SQL)Setcnn=NewADODB.Connectioncnn.OpenConnectStringIfInStr("INSERT,DELETE,UPDATE",UCase$(sTokens(0)))Thencnn.ExecuteSQLMsgString=sTokens(0)&"querysuccessful"ElseSetrst=NewADODB.Recordsetrst.OpenTrim&(SQL),cnn,adOpenKeyset,adLockOptisticSetExecuteSQL=rstMsgString="查询到"&rst.RecordCount&"记录条"EndIfExecuteSQL_Exit:Setrst=NothingSetcnn=NothingExitFunctionExecuteSQL_Error:MsgString="查询错误:"&Err.DescriptionResumeExecuteSQL_ExitEndFunctionPublicFunctionConnectString()AsStringConnectString="FileDSN=studentinfo.dsn;UID=sa;PWD="EndFunctionPublicFunctionTesttxt(txtAsString)AsBooleanIfTrim(txt)=""ThenTesttxt=FalseElseTesttxt=TrueEndIfEndFunctionSubMian()DimfLoginAsNewFrmlogicfLogin.ShowvbModalIfNotfLogin.OKThenEndEndIfUnloadfLoginSetfMainForm=NewfrmMainfMainForm.ShowEndSubPublicUserNameAsString用户登录窗体的创立程序:OptionExplicitPublicOKAsBooleanDimimCountAsIntegerPrivateSubForm_Load()OK=Falsemicount=0EndSubPrivateSubcmdok_Click()DimtxtsSQLAsStringDimmrcAsADODB.RecordsetDimMsgTextAsStringUserName=""IfTrim(txtUserName.Text="")ThenMsgBox"没有这个用户,请重新输入用户名!",vbOKOnly+vbExclamation,"警告"txtUserName.SetFocusElsetxtsql="select*fromuser_Infowhereuser_ID=""&txtUserName.Text&"""Setmrc=ExecuteSQL(txtsql,MsgText)Ifmrc.EOF=TrueThenMsgBox"没有这个用户,请重新输入用户名!",vbOKOnly+vbExclamation,"警告"txtUserName.SetFocusElseIfTrim(mrc.Fields(1))=Trim(txtPassword.Text)ThenOK=Truemrc.CloseMe.HideUserName=Trim(txtUserName.Text)ElseMsgBox"输入密码不正确,请重新输入!",vbOKOnly+vbExclamation,"警告"txtPassword.SetFocustxtPassword.Text=""EndIfEndIfEndIfmicount=micount+1Ifmicount=3ThenMe.HideEndIfExitSubEndSubPrivateSubcmdCancel_Click()OK=FalseMe.HideEndSub添加用户窗体的创立程序:PrivateSubCmdCancel_Click()UnloadMeEndSubPrivateSubcmdOK_Click()DimtxtSQLAsStringDimmrcAsADODB.RecordsetDimMsgTextAsStringIfTrim(Text1(0).Text)=""ThenMsgBox"请输入用户名称!",vbOKOnly+vbExclamation,"警告"ExitSubText1(0).SetFocusElsetxtSQL="select*fromuser_Info"Setmrc=ExecuteSQL(txtSQL,MsgText)While(mrc.EOF=False)IfTrim(mrc.Fields(0))=Trim(Text1(0))ThenMsgBox"用户已经存在,请重新输入用户名!",vbOKOnly+vbExclamation,"警告"Text1(0).SetFocusText1(0).Text=""Text1(1).Text=""Text1(2).Text=""ExitSubElsemrc.MoveNextEndIfWendIfTrim(Text1(1).Text)<>Trim(Text1(2).Text)ThenMsgBox"两次输入密码不一样,请确认!",vbOKOnly+vbExclamation,"警告"Text1(1).SetFocusText1(1).Text=""Text1(2).Text=""Elsemrc.AddNewmrc.Fields(0)=Trim(Trim(0).Text)mrc.Fields(1)=Trim(Trim(1).Text)mrc.Updatemrc.CloseMsgBox"添加用户成功!",vbOKOnly+vbExclamation,"添加用户"EndIfEndIfEndSub修改用户密码窗体的创立程序:PrivateSubcmdCanel_Click()UnloadMeEndSubPrivateSubcmdOK_Click()DimtxtSQL,MsgTextAsStringDimmrcAsADODB.RecordsetIfTrim(Text1(1).Text)<>Trim(Text1(2).Text)ThenMsgBox"密码输入不正确!",vbOKOnly+vbExclamation,"警告"Text1(1).SetFocsText1(1).Text=""ElsetxtSQL="select*fromuser_Infowhereuser_ID=""&UserName&"""Setmrc=ExecuteSQL(txtSQL,MsgText)mrc.Fields(1)=Text1(1).Textmrc.Updatemrc.CloseMsgBox"密码修改成功!",vbOKOnly+vbExclamation,"修改密码"Me.HideEndIfEndSub修改课程信息窗体的创立程序:DimmrcAsADODB.RecordsetDimmyBookmarkAsVariantDimmccleanAsBooleanPrivateSubCmdCancel_Click()IfNotmccleanThenFrame2.Enabled=TrueCmdFirst.Enabled=TrueCmdPrevious.Enabled=TrueCmdNext.Enabled=TrueCmdLast.Enabled=TruetxtCourseno.Enabled=FalsetxtCoursenaem.Enabled=FalsecomboCoursetype.Enabled=Falsetxtcoursedes.Enabled=Falsemrc.Bookmark=myBookmarkCallviewDataElseMsgBox"什么都没有修改,有什么好取消的!",vbOKOnly+vbExclamation,"警告"EndIfEndSubPrivateSubCmdDelete_click()myBookmark=mrc.Bookmarkstr2$=MsgBox("是否删除当前记录?",vbOKCancel,"删除当前记录")Ifstr2$=vbOKThenmrc.MoveNextIfmrc.EOFThenmrc.MoveFirstmyBookmark=mrc.Bookmarkmrc.MoveLastmrc.Deletemrc.BookmarkCallviewDataElsemyBookmark=mrc.Bookmarkmrc.MovePreviousmrc.Deletemrc.Bookmark=myBookmarkCallviewDataEndIfElsemrc.Bookmark=myBookmarkCallviewDataEndIfEndSubPrivateSubCmdEdit_Click()mcclean=FalseFrame2.Enabled=FalseCmdFirst.Enabled=FalseCmdPrevious.Enabled=FalseCmdNext.Enabled=FalseCmdLast.Enabled=FalsetxtCourseno.Enabled=TruetxtCoursenaem.Enabled=TruecomboCoursetype.Enabled=Truetxtcoursedes.Enabled=TruemyBookmark=mrc.boodmarkEndSubPrivateSubCmdFirst_Click()mrc.MoveLastCallviewDataEndSubPrivateSubCmdLast_Click()mrc.MoveLastCallviewDataEndSubPrivateSubCmdNext_Click()mrc.MoveFirstIfmrc.EOFThenmrc.MoveFirstEndIfCallviewDataEndSubPrivateSubCmdPrevious_Click()mrc.MoveFirstIfmrc.BOFThenmrc.MoveFirstEndIfCallviewDataEndSubPrivateSubCmdUpdate_click()DimtxtSQLAsStringDimMsgTextAsStringDimmrccAsADODB.RecordsetIfmccleanThenMsgBox"请先修改课程信息",vbOKOnly+vbExclamation,"警告"ExitSubEndIfIfNotTesttxt(txtCourseno.Text)ThenMsgBox"请输入课程编号",vbOKOnly+vbExclamation,"警告"txtCourseno.SetFocusExitSubEndIfIfNotTesttxt(txtCoursenaem.Text)ThenMsgBox"请输入课程名称",vbOKOnly+vbExclamation,"警告"txtCoursenaem.SetFocusExitSubEndIfIfNotTesttxt(comboCoursetype.Text)ThenMsgBox"请选择课程类型",vbOKOnly+vbExclamation,"警告"comboCoursetype.SetFocusExitSubEndIfIfNotTesttxt(txtcoursedes.Text)ThenMsgBox"请对课程进行描述",vbOKOnly+vbExclamation,"警告"txtcoursedes.SetFocusExitSubEndIfmrc.DeletetxtSQL="select*fromstudent_Infowherestudet_ID=""&Trim(txtCourseno.Text)&"""Setmrcc=ExecuteSQL(txtCourseno,MsgText)Ifmrcc.EOF=FalseThenMsgBox"课程编号重复,请重新输入!",vbOKOnly+vbExclamation,"警告"mrcc.ClosetxtCourseno.SetFocusElsemrc.AddNewmrc.Fields(0)=Trim(txtCourseno.Text)mrc.Fields(1)=Trim(txtCoursenaem.Text)mrc.Fields(2)=Trim(comboCoursetype.Text)mrc.Fields(3)=Trim(txtcoursedes.Text)mrc.UpdateMsgBox"修改课程信息成功",vbOKOnly+vbExclamation,"修改课程信息"mrc.Bookmark=myBoomarkCallviewDataFrame2.Enabled=TrueCmdFirst.Enabled=TrueCmdPrevious.Enabled=TrueCmdNext.Enabled=TrueCmdLast.Enabled=TruetxtCourseno.Enabled=FalsetxtCoursenaem.Enabled=FalsecomboCoursetype.Enabled=Falsetxtcoursedes.Enabled=Falsemcclean=TrueEndIfEndSubPrivateSubForm_Load()DimtxtSQLAsStringDimMsgTextAsStringtxtSQL="select*fromstudent_Info"Setmrc=ExecuteSQL(txtSQL,,MsgText)mrc.MoveFirstCallviewDatamcbookmark=mrc.Bookmarkmcclean=TrueEndSubPrivateSubviewData()txtCourseno.Text=mrc.Fields(0)txtCoursenaem.Text=mrc.Fields(1)comboCoursetype.Text=mrc.Fields(2)txtcoursedes.Text=mrc.Fields(3)EndSub设置年级课程窗体的创立程序:PrivateSubCmdAdd_Click()IfListallcourse.ListIndex<>-1ThenListselectcourse.AddItemListallcourse.List(Listallcourse.ListIndex)EndIfEndSubPrivateSubCmdDelete_click()IfListselectcourse.ListIndex<>-1ThenListselectcourse.RemoveItemListselectcourse.ListIndexEndIfEndSubPrivateSubcmdModify_Click()DimiAsIntegerDimmrcAsADODB.RecordsetDimmrccAsADODB.RecordsetDimMsgTextAsStringDimmyBookmarkAsVariantIfNotTesttxt(comboGrade.Text)ThenMsgBox"请先选择年级!",vbOKOnly+vbExclamation,"警告"ExitSubEndIfIfNotTesttxt(Listselectcourse.List(0))ThenMsgBox"请先选择课程!",vbOKOnly+vbExclamation,"警告"ExitSubEndIftxtSQL="select*fromgradecourse_Infowheregrade=""&Trim(comboGrade.Text)&"""Setmrc=ExecuteSQL(txtSQL,MsgText)Ifmrc.EOFThenFori=1ToListselectcourse.ListCountmrc.AddNewmrc.Fields(0)=comboGrade.Textmrc.Fields(1)=Listselectcourse.List(i-1)mrc.UpdateNextimrc.CloseMsgBox"课程设置成功!",vbOKOnly+vbExclamation,"警告"Elsemrc.ClosetxtSQL="delete*fromgradecourse_Infowheregrade=""&Trim(comboGrade.Text)&"""Setmrcc=ExecuteSQL(txtSQL,MsgText)txtSQL="selete*fromgradecourse_Info"Setmrcc=ExecuteSQL(txtSQL,MsgText)Fori=1ToListselectcourse.ListCountmrcc.AddNewmrcc.Fields(0)=comboGrade.Textmrcc.Fields(1)=Listselectcourse.List*(i-1)mrcc.UpdateNextimrcc.CloseMsgBox"课程设置成功!",vbOKOnly+vbExclamation,"警告"EndIfEndSubPrivateSubcmdSet_Click()DimmrcAsADODB.RecordsetDimtxtSQLAsStringDimMsgTextAsStringListallcourse.Enabled=TrueListselectcourse.Enabled=TruecmdModify.Enabled=TruetxtSQL="select*fromcourse_Info"Setmrc=ExecuteSQL(txtSQL,MsgText)While(mrc.EOF=False)Listallcourse.AddItemmrc.Fields(1)mrc.MoveNextWendmrc.CloseflagSet=TrueEndSubPrivateSubcomboGrade_Change()DimmrcAsADODB.RecordsetDimtxtSQLAsStringDimMsgTextAsStringDimiAsIntegerListselectcourse.CleartxtSQL="select*fromgradecourse_Infowheregrade=""&comboGrade.Text&"""Setmrc=ExecuteSQL(txtSQL,MsgText)IfNotmrc.EOFThenFori=1Tomrc.RecoudCountListselectcourse.AddItemmrc.Fields(1)mrc.MoveNextNextiEndIfmrc.CloseEndSubPrivateSubCommand5_Click()UnloadMeEndSub添加成绩信息窗体的创立:PrivateSubcomboClassno_Change()DimmrcAsADODB.Records

温馨提示

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

评论

0/150

提交评论