




已阅读5页,还剩56页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计学生成绩管理系统的开发与设计作 者 姓 名 指导导师姓名 班 级 学 号 申请学位级别 学科专业名称 60 目 录摘 要3一、导言4(一)问题的提出4(二)本文研究路线4二、学生成绩管理系统分析与设计5(一)学生成绩管理系统的用户需求简介5(二)学生成绩管理系统的要求7(三)学生成绩管理系统功能描述8(四)系统功能模块图 3.19(五)系统开发环境简介10(六)数据库设计101、数据库介绍102、使用ADO数据控件访问数据库123、数据库需求分析154、数据库概念结构设计16(七)数据词典分析181、student:学生信息表192、course:课程信息表193、score:学习成绩信息表19(八)数据流程图20四、学生成绩管理系统的功能实现21(一)“登陆界面”编码设计21(二)教师管理界面编码设计21(三)发布应用程序231、编译应用程序232、打包应用程序243、发布应用程序的步骤25五、结论与体会26参考文献27附录:源代码28摘 要学生成绩管理系统对学校加强学生成绩管理有着极其重要的作用。由于各个大学都在持续扩招,学生的数量日益庞大,传统的手工成绩管理不仅工作量大,而且容易出现问题。另外,学生的成绩要用到学校教务管理的各个方面,所以一旦学生成绩管理出现了错误,后果往往是非常严重的。传统手工的学生成绩管理,管理过程繁琐而复杂,执行效率低,并且易于出错。通过这样的系统,我们可以做到信息的规范管理和快速查询,实现了学生成绩管理的系统化、规范化和自动化,这样不仅减少了管理工作量,还提高了管理效率,降低了管理成本。第一章简要介绍了本系统的设计总体线路。第二章概述了本系统的功能,设计原理,介绍了功能模块图设计、数据库设计及编码。第三章总结了本系统开发过程中结论及使用过程中的体会。一、导言(一)问题的提出学生成绩管理系统对学校加强学生成绩管理有着极其重要的作用。由于各个大学都在持续扩招,学生的数量日益庞大,传统的手工成绩管理不仅工作量大,而且容易出现问题。另外,学生的成绩要用到学校教务管理的各个方面,所以一旦学生成绩管理出现了错误,后果往往是非常严重的。传统手工的学生成绩管理,管理过程繁琐而复杂,执行效率低,并且易于出错。通过这样的系统,我们可以做到信息的规范管理和快速查询,实现了学生成绩管理的系统化、规范化和自动化,这样不仅减少了管理工作量,还提高了管理效率,降低了管理成本。(二)本文研究路线本文的研究框架如下图1.1所示,反映了如下的研究思路:资料查询熟悉开发环境定 题调查研究系统分析与设计数据库设计功能实现打包发布图1.1 本文的研究框架图二、学生成绩管理系统分析与设计(一)学生成绩管理系统的用户需求简介学生成绩管理系统对学校加强学生成绩管理有着极其重要的作用。由于各个大学都在持续扩招,学生的数量日益庞大,传统的手工成绩管理不仅工作量大,而且容易出现问题。另外,学生的成绩要用到学校教务管理的各个方面,所以一旦学生成绩管理出现了错误,后果往往是非常严重的。就一所学生数量较大的学校来说,它的设计内容非常复杂而且繁多,比如拥有成绩录入管理、教师权限管理、学生成绩的查询和修改等等,而且设计的模块也很多,比如信息统计模块,报表设计模块,打印输出模块,模糊查询模块等等。由于本软件主要是为我系定制开发的,因此针对我系学生成绩管理的实际工作而言,我们经过了反复地论证,最终确定了学生成绩管理系统的设计方案。该学生成绩管理系统的主要功能为:1、掌握每个学生每一门课的成绩信息,并记录在数据库中以便其他管理信息系统的使用;2、分权限的管理。在成绩管理中,教师可以对任何一个学生的成绩进行查询和管理;但是对学生类用户,它只能对自己的成绩进行查看,而且不能对其进行更改。3、教师类用户可以对成绩按照课程进行管理,可以对每一门课所修的学生进行添加、删除和修改;4、教师类用户可以对成绩按照学生进行管理,可以对每一门课所修的学生进行添加、删除和修改;5、可以针对某一门课的学生列表及其成绩生成报表,并打印;6、可以针对某一个学生所选课程及其对应的成绩生成报表,并打印。表3.1 学生成绩管理系统功能需求分析功能模块功能列表访问权限用户管理功 能教师用户的增加、删除和修改成绩系统管理员学生用户的查询成绩教师对成绩管理功能课程角度进行管理系统管理员学生角度进行管理学生信息查询功能学生信息查询普通用户学生成绩查询打印(二)学生成绩管理系统的要求目标系统应该达到以下要求: 1、时间经济性。优化逻辑设计与物理设计,使系统运行效率高,反映速度快。2、可靠性。能连续准确的处理业务,有较强的容错能力。3、可理解性。用户容易理解和使用该系统。4、可维护性和适应性。系统应易于修改、易于扩充、易于维护,能够适应业务不断发展变化的需要。5、可用性。目标系统功能齐全,能够完全满足业务需求。6、安全保密性。保证系统的物理安全、数据存储和存取的安全与保密、数据传输的安全与保密,做好使用人员的授权管理。(三)学生成绩管理系统功能描述1、用户管理功能用户分为教师用户和学生用户两类。不论是教师用户,还是学生用户都需要通过用户名和口令进行登录。教师用户可以对所有的学生成绩进行增加、删除和修改。学生用户只能看到自己的学习成绩,并且不能修改。由于教师用户和学生用户较为固定,所以对教师自身信息和学生自身信息的管理可以由系统管理人员直接操作数据库完成。2、教师对成绩的管理功能教师对成绩的管理可以从两个角度管理:按照课程角度进行管理和按照学生角度进行管理。教师登陆该系统以后,可以对这两种方式进行选择。(1)按照课程角度进行管理按课程角度管理教师可以看到课程信息和成绩信息。课程信息包括课程编号、课程名称、学时和课程类型。当教师用鼠标双击某一课程时,可以自动显示出该课程的所有学生的成绩信息,成绩信息包括选修这门课的学生的学号、姓名、班级和考试成绩。并同时自动计算出所有学生的人数,以及所有学生的平均成绩。在成绩信息中,教师可以对学习成绩进行增加、修改和删除。并能够打印报表。(2)按照学生角度进行管理按学生角度管理教师可以看到学生信息和成绩信息。学生信息包括学号、姓名、班级、生日、性别、地址、电话和简历。当教师用鼠标双击某一学生信息时,可以自动显示出该课程的这个学生所有课程的学习成绩,并同时自动计算出这个学生的总分和平均分。在成绩信息中,教师可以对学习成绩进行增加、修改和删除。并能够打印报表。3、学生对成绩的查看功能学生用户登录后,学生可以看到自己的学生信息和成绩信息。学生信息包括:学号、姓名、班级、生日、性别、地址、电话和简历。成绩信息包括这个学生的所有课程的成绩信息、总分及平均分。学生可以打印成绩报表。(四)系统功能模块图 3.1学生成绩管理系统教师用户学生用户按课程角度进行增删改按学生角度进行增删改打印报表查询自己的考试成绩打印报表图3.1 系统功能模块图(五)系统开发环境简介选择微软平台作为主导,一方面考虑目前微软的飞速发展,越来越多的企业在规划内部网络时,将微软平台作为首选方案;另一方面从技术角度来讲,微软平台上的应用无论是在开发上,还是在软件的部署上都非常容易,而且性能优越。操作系统:Windows 98数据库为:MS Access 2000开发工具与语言: Visual Basic 6.0英文版(六)数据库设计1、数据库介绍所谓数据库(Database)就是指按一定组织方式存储再一起的,相互有关的若干个数据的结合,数据库管理系统(Database Management System)就是一种操纵和管理数据库的大型软件,简称DBMS,他们建立在操作系统的基础上,对数据库进行统一的管理和控制,其功能包括数据库定义,数据库管理,数据库建立和维护,于操作系统通信等。DBMS通常由数据字典,数据描述语言及其编译程序,数据操纵(查询)语言及其编译程序,数据库管理例行程序等部分组成。关系数据库是以关系模型为基础的数据库,是根据表、记录和字段之间的关系进行组织和访问的一种数据库,它通过若干个表(Table)来存取数据,并且通过关系(Relation)将这些表联系在一起,关系数据库提供了成为机构化查询语言(SQL)标准接口,该接口允许使用多种数据库工具和产品,关系数据库是目前最广泛应用的数据库。在Visual Basic中,关系型数据库一般可以分为两类:一类是桌面数据库,例如Access、Paradox、FoxPro、Dbase,另一类就是客户/服务器数据库,例如SQL Server、Oracle和Sybase等。一般而言,桌面数据库主要应用于小型的、单机的数据库应用程序。也是初学者常用的数据库类型。实现起来比较方便,但同时也只能提供数据的存取功能。它主要用于小型的、单机的、单用户的数据库管理系统。学生成绩管理系统的数据库选用Microsoft公司的Access产品作为数据库应用程序。目前的Access 2000是Microsoft强大的桌面数据库平台的第六代产品,是3 2位Access的第三个版本。Access有以下一些基本定义:数据库是一个包含各种Access “对象”(表、查询、窗体、报表、宏和模块)的文件,Access中所有工作都是建立在此基础之上的。表是存放数据的容器,被设计成行和列的格式,就像电子表中的那样。每一列叫做一个“字段”,包含特定类型的信息,如姓名或学历。每一行称为一个“记录”,包含与单个实体有关的所有信息,如某个员工的姓名、性别、所在部门、学历等。对于像Access这样的关系数据库管理程序,一个数据库通常包含几个存放相关数据的不同表。查询是一个Access对象,它询问数据库中有关数据的问题。根据设计方法的不同,查询能够在数据库中检索并组合来自不同表的数据。例如,可以设计一个查询来告知在公司中工作超过1年的职员有多少。查询还可以对一组数据执行操作,如更新或删除某组记录。窗体是一个窗口,它提供一种很方便的途径来查看数据库中已有记录或向数据库中增添新记录。在Access中,可以创建一个窗体,用来同时查阅单个表或多个表中的数据,还可以打印和显示窗体。报表是一个Access对象,设计来显示数据,其作用类似于窗体,但主要是用于数据打印,不能输入数据。 页是一种特殊类型的窗体,它使用户能够利用Web浏览器查看和编辑Access的表。宏用来保存Access中的一系列操作。可自动执行一些日常的任务,以便简化在Access中的工作。 模块是用Visual Basic for Applications(VBA) 编写的过程,VBA是Access的基础程序设计语言。利用VBA可以编写程序代码来完成Access宏所不能完成的特定任务。 2、使用ADO数据控件访问数据库ADO(Active Data Objects)是一种新的数据访问方式,具有以下特征: 有一个简化的对象模型 与其他Microsoft和非Microsoft技术更加紧密的集成。 是一个本地和远程数据访问、远程和断开连接的记录集、用户可以访问的数据绑定接口以及层次化的记录集的通用接口。学生成绩管理系统通过ADO这个数据控件来访问数据库,首先,安装ADO 控件要在简体中文VISUAL BASIC6.0企业版中注册后才能使用。ADO(ActiveX Data Object)是微软提出的数据访问接口,它实现了RDO的绝大多数功能,另外还增加了一些用户以前没有接触到的特征。Visual Basic 6.0可以很好地支持ADO和OLE DB数据访问模式。在ADO2.0中包含了数据绑定、可视化设计工具以及OLE DB数据源书写模板等新的内容。在Visual Basic6.0中,ADO的数据环境设计器(Data Environment Designer)取代了Visual Basic 5.0中的RDO的用户连接设计器(User Connection Designer)。User Connection对象只支持ODBC数据源,而Data Environment对象可以连接所有的OLE DB数据源o ADO对象模型定义了一个可编程的分层的对象集合,它支持部件对象模型(COM)和OLE DB数据源。与其他的数据访问对象相比,包含在ADO的对象少得多,也更加容易使用。ADO对象模型中包含了3个一般用途的对象:Connection、Command和Recordset。程序开发人员可以创建这些对象并且使用这些对象访问数据库。在ADO对象模型中还有其他几个对象,例如Field、Property、Error和Parameter,它们是作为前面3个对象的子对象进行访问的。(1)、ADO数据控件的功能ADO data控件使用ActiveX数据对象(ADO)来快速建立数据约束控件和数据提供者之间的连接,并快速创建记录集,然后将数据通过数据约束控件提供给用户,其中数据约束控件可以是任何具有“数据源”属性的控件,而数据提供者可以是符合OLE DB规范的数据源。使用Visual Basic的类模块也可以很方便的创建子集的数据提供者。在Visual Basic6.0中,可以使用ADO数据控件实现下面一些功能: 连接一个本地数据库或远程数据库。 打开一个指定的数据库表,或定义一个基于结构化查询语言(SQL)的查询、存储过程或者是该数据库中表的视图的记录集合。 将数据字段的数值传递给数据绑定的控件,可以在这些控件中显示或更改这些数值。 添加新的记录,或者根据对显示在绑定的控件中的数据的任何更改来更新一个数据库。(2)、ADO数据控件的属性 ADO数据控件与Visual Basic的内部数据控件(Data)和远程数据控件(RDC)很相似,它允许使用ADO快速地创建与数据库的连接。 与Data控件类似,为了实现对数据库的访问,ADO数据控件提供了几个属性,这些属性定义了怎样连接数据库以及同什么样的数据库相连接。 Connection String属性:是一个字符串,可以包含进行一个连接所需的所有设置值,在该字符串中所传递的参数是与驱动程序相关的。例如,ODBC驱动程序允许该字符串包含驱动程序、提供者、默认的数据库、服务器、用户名称以及密码等。ADO支持Connection String属性的4个参数,而且这4个参数将不经过ADO的处理直接送到数据源。这四个参数的属性如表3.2所示:表3.2 Connection String属性的4个参数表参数描述Provider指定数据源的名称File Name指定基于数据源的文件名称Remote Server指定在打开一个客户端连接时使用的数据源名称Remote Server指定打开客户端连接时使用的服务器的路径与名称3、数据库需求分析数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完善和一致。同时,合理的数据库结构也将有利于程序的实现。用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入。收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,可以为后面的具体设计和开发打下坚实的基础。仔细分析调查有关学生成绩管理信息需求的基础上,将得到本系统所处理的数据流程。学生成绩管理系统数据流程图如图3.2所示。针对一般学生成绩管理信息系统的需求,通过对成绩管理过程的内容和数据流程分析,可以设计出该系统的数据项和数据结构:1、“学生信息”的数据项有:学号、姓名、班级、生日、性别、地址、电话和简历等;2、“课程信息”的数据项有:课程编号、课程名称、学时和课程类型等3、“学生成绩信息”的数据项有:学号、姓名、班级、选修课程、考试成绩等。4、数据库概念结构设计得到上面的数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的数据字典设计打下基础。根据上面的设计可以规划出的实体有:学生实体、课程实体和学生成绩信息实体。各个实体具有的描述ER图如3.2至图3.4所示。1、学生实体ER图学生实体学号姓名班级简历 图3.2 学生实体E-R图2、课程实体ER图课程实体编号名称学时类型 图3.3 课程实体E-R图3、学生成绩信息实体ER图学生成绩信息实体学号姓名课程成绩 图3.4 学生成绩信息实体E-R图(七)数据词典分析该软件的数据库名称为“Score.mdb”,该数据库主要由下述三张表构成:student:学生信息表course:课程信息表score:学习成绩信息表1、student:学生信息表字段名称内 容类 型长 度备注Serial学号文本7主关键字Name姓名文本10Class所属班级文本5Birthday生日日期时间Sex性别文本2Address家庭住址文本30Tel电话文本15Resume简历备注5002、course:课程信息表字段名称内 容类 型长 度备注Serial课程编号文 本50主关键字Name课程名称文 本50Period学时数数 字长整型typeid课程类型文本503、score:学习成绩信息表字段名称内 容类 型长 度备注idID 号自动编号长整型studentID学 号文 本为主键之一,对应于student表的Serial字段CourseID课程编号文 本为主键之一,对应于Course表的Serial字段Score分 数数 字整 型需要注意的是,由于学生的学习总成绩和平均成绩是通过编程方式计算得出的,所以在SCORE表中没有学生“总成绩”和“平均成绩”这两个字段。(八)数据流程图该系统的数据流程图如图3.5所示。用户登录用户类别教师用户学生用户学生角度管理学生角度管理个人成绩查询图3.5该系统的数据流程图四、学生成绩管理系统的功能实现下面给出系统开发出来的详细界面以阐述学生成绩管理系统的具体功能。首先是进入登陆界面,如图4.1所示(一)“登陆界面”编码设计图4.1 登陆界面(二)教师管理界面编码设计 本节以按学生角度进行管理为例,介绍教师管理的编码设计。教师用户进入“成绩管理”中的“按学生进行管理”功能,出现如图4.2所示界面。图4.2“按学生进行管理”学生信息功能界面 教师用户用鼠标双击学生信息后,系统会显示出该学生的成绩信息。如图4.3所示。图4.3“按学生进行管理”成绩信息功能界面(三)发布应用程序在Visual Basic的集成开发环境中创建好学生成绩管理系统后,并无意味着全部工作已完成,此时生成的应用程序只能在Visual Basic的集成环境中运行,要想使应用程序能够脱离Visual Basic的集成开发环境,首先要对学生成绩管理程序进行编译并且生成.exe或其他类型的文件,然后调用打包和展开向导创建安装程序。1、编译应用程序编译学生成绩管理程序就是将创建的应用程序以及它的工程文件合并成一个可执行文件。在发布学生成绩管理应用程序之前,首先应该使用测试和调试工具对改应用程序进行前面测试,在排除了所有可能的错误后,才可以开始对应用程序进行编译。编译应用程序的主要目的如下; 使应用程序转入和运行更快。 给发布应用程序做准备。 使用应用程序更安全。将应用程序进行编译后,Visual Basic将工程中的所有文件进行组织并将这些工程文件转化成一个可执行的文件.exe。Visual Basic提供APP对象来存储应用程序的有关信息属性,例如,公司名,产品名,版本以及其他相关信息。在设计中,可以通过这些属性来告诉用户一些重要的信息,在应用程序运行时用Visual Basic代码读出这些属性值,也可以在Windows资源管理器中观察应用程序对象的版本信息属性值。右击编译过的.exe文件,然后从快捷菜单中选择“属性”命令打开“属性”对话框的版本标签,就可以看到应用程序的版本信息。当完成当前工程的APP对象的属性后,就可以编译代码了。Visual Basic6.0支持两种编译格式:P代码和本地代码。选择P代码格式编译的应用程序生成的可执行文件较小,选择本地代码编译的应用程序生成的可执行文件要大的多,但是可执行文件的运行速度比较快。因此,学生成绩管理系统采用的视本地代码的编译格式。2、打包应用程序创建Visual Basic应用程序后,可以将创建的学生成绩管理应用程序通过磁盘,关盘,网络等途径自由发布,一般来说,发布应用程序必须经过下面的两个步骤:(1)、打包必须将应用程序文件打包为一个或多个可以部署到选定位置的.cab文件(.cab文件是一种压缩文件),对于某些类型的软件包,还必须为其创建安装程序。(2)、部署必须将打包的应用程序放置到适当的位置,以便用户来安装应用程序。可以使用两种工具来打包和发布应用程序。 打包和展开向导(Package and Deployment) Visual Basic安装软件提供的安装工具包。打包和展开向导通过提供有关如何配置.cab文件的选项,使发布应用程序所包含的许多步骤得以自动运行,这是用户一般所采用的方法。使用打包和展开向导进行打包的第一个步骤就是选择一个工程,然后单击打包按钮,开始创建一个可以发布的应用程序。第三步,如果没有编译工程,打包和展开向导会要求编译工程。工程编译完成后,向导询问想制作什么类型的包,我们这里使用向导制作安装程序。当向导完成制作安装包以后,它会自动生成一个带有很多重要信息的报告。3、发布应用程序的步骤将学生成绩管理系统打包后,制作安装程序的过程并没有结束,必须将打包后的应用程序发布到一个媒体上,比如软盘,光盘等,发布学生成绩管理系统的主要步骤如下:选择“学生成绩管理系统”这个包,然后指定把这个包发布到xs cheng ji这个文件夹中,选择发布的媒体,就可以完成“学生成绩管理系统”的发布工作了。五、结论与体会学生成绩管理系统对学校加强学生成绩管理有着极其重要的作用。由于各个大学都在持续扩招,学生的数量日益庞大,传统的手工成绩管理不仅工作量大,而且容易出现问题。另外,学生的成绩要用到学校教务管理的各个方面,所以一旦学生成绩管理出现了错误,后果往往是非常严重的。在软件的编写过程中,我充分体会了软件编程工作者的辛苦,因为每一个细微的细节都必须十分的注意,如果稍有不慎,就会全盘皆输,而且往往很多的时候,程序我自己觉得非常的正确,但是就是编译通不过,在查找错误的过程中,面临着否认自己的过程,非常的痛苦,但是,经过二个月的学习,发现编一个优秀的软件决不是一蹴而就的事情,需要长时间的积累和经验,而这个方面又是我的弱项,因此,在朋友的帮助下,我终于认清自己的不足及劣势,不要贪图大而全,只要尽我所能,编制一个实用简单的软件也不是件很难的事情。在反反复复的学习及虚心请教之下,我的辛勤努力有了回报,终于做出了一个简单的软件,由于我的知识浅薄,经验不足及阅历颇浅,因此,在这个系统的设计方面还有很多不足,比如功能过少,界面不够醒目等问题,我会在以后工作的使用过程中,根据工作的具体要求不断修改,完善,争取使该系统慢慢趋向完美。在本系统的设计过程和论文编写过程中,有很多老师、同事和朋友都给予了我许多无私的帮助,在此也表示衷心的感谢.参考文献1、李群先,李耀伟,江学锋,乔晓林,国嘉 ,Visual Basic 程序设计基础 人民邮电出版社, 2004.62、童爱红,侯太平,Visual Basic数据库编程,清华大学出版社,2004.6 3、杜修平,Visual Basic程序设计,中国电力出版社,2004.54、黄明,梁旭,Visual Basic 6.0信息系统设计与开发实例,机械工业出版社,2004.4 5、朱顺泉,姜灵敏管理信息系统理论与实务(修订版),人民邮电出版社,2004.4 6、王兴晶,Visual Basic 6.0应用编程150例,电子工业出版社,2004.37、林卓然,Visual Basic 程序设计教程, 电子工业出版社,2004.2 8、郭琦,Visual Basic数据库系统开发技术,人民邮电出版社,2003.12 9、张晋连,数据库原理及应用,电子工业出版社 ,2004.710、苏选良,数据库与管理信息系统实验教程,电子工业出版社,2004.2 附录:源代码1.frmAddCourse.frmOption Explicit表示用户是否点击“确定”,来添加一个课程信息Public mbAdded As BooleanPrivate Sub cboType_Click() 点击课程类型时,动态的改变对应的课程类型号 Dim strSQL If cboType.ListIndex 0 Then strSQL = Select * from course where typeid = & cboType.ItemData(cboType.ListIndex) Else strSQL = Select * from course End If If DataEnv.rsAddCourse.State adStateClosed Then DataEnv.rsAddCourse.Close DataEnv.rsAddCourse.Open strSQL刷新dcbSerial所列的课程类型号 dcbSerial.RowMember = dcbSerial.Refresh dcbSerial.ReFill dcbSerial.RowMember = AddCourse dcbSerial.Refresh dcbSerial.ReFill dcbSerial = 刷新dcbName所列的课程类型名 dcbName.RowMember = dcbName.Refresh dcbSerial.ReFill dcbName.RowMember = AddCourse dcbName.Refresh dcbName.ReFill dcbName.Text = Call dcbName_Click(0) Call dcbSerial_Click(0) cmdOK.Enabled = (dcbSerial.Text )End SubPrivate Sub cmdCancel_Click() mbAdded = False Me.HideEnd SubPrivate Sub cmdOK_Click() mbAdded = True Me.HideEnd SubPrivate Sub dcbName_Click(Area As Integer) 动态改变dcbSerial中的课程号 dcbSerial.Text = dcbName.BoundText cmdOK.Enabled = (dcbSerial.Text )End SubPrivate Sub dcbSerial_Click(Area As Integer) 动态改变dcbName中的课程名 dcbName.Text = dcbSerial.BoundText cmdOK.Enabled = (dcbSerial.Text )End SubPrivate Sub Form_Load() mbAdded = False 从课程类型表重读取数据,写入到cboType中 将name写入到列表框中,id写入到对应的ItemData中 cboType.Clear cboType.AddItem 全部 If DataEnv.rsCourse_type.State = adStateClosed Then DataEnv.rsCourse_type.Open While Not DataEnv.rsCourse_type.EOF Dim s As String s = DataEnv.rsCourse_type.Fields(name) cboType.AddItem s cboType.ItemData(cboType.ListCount - 1) = DataEnv.rsCourse_type(id) DataEnv.rsCourse_type.MoveNext Wend cboType.ListIndex = 0End SubPrivate Sub txtScore_Change() cmdOK.Enabled = Len(dcbSerial.Text) 0 And Len(txtScore.Text) 0End SubPrivate Sub txtScore_KeyPress(KeyAscii As Integer) 如果输入的字符不属于数字或者顿号,则取消输入的字符 If (KeyAscii Asc(9) Or KeyAscii Asc(0) And KeyAscii Asc(.) And KeyAscii vbKeyBack Then KeyAscii = 0End Sub2. frmAddStudent.frmOption Explicit表示用户是否点击“确定”,来添加一个课程信息Public mbAdded As BooleanPrivate Sub cboClass_Click() 针对所选的班级,列出班级中所有的学籍信息 Dim strSQL If cboClass.Text = 全部 Then strSQL = from student order by serial Else strSQL = from student where class= & cboClass & order by serial End If DataEnv.rsAddStudent.Close DataEnv.rsAddStudent.Open select * & strSQL 刷新dcbSerial所列的学号 dcbSerial.RowMember = dcbSerial.ReFill dcbSerial.Refresh dcbSerial.RowMember = AddStudent dcbSerial.ReFill dcbSerial.Refresh dcbSerial.Text = 刷新dcbName所列的学生姓名 dcbName.RowMember = dcbName.Refresh dcbSerial.ReFill dcbName.RowMember = AddStudent dcbName.Refresh dcbName.ReFill dcbName.Text = End SubPrivate Sub cmdCancel_Click() mbAdded = False Me.HideEnd SubPrivate Sub cmdOK_Click() mbAdded = True Me.HideEnd SubPrivate Sub dcbName_Click(Area As Integer) 动态改变dcbSerial中的学号 dcbSerial.Text = dcbName.BoundText cmdOK.Enabled = (dcbSerial.Text )End SubPrivate Sub dcbSerial_Click(Area As Integer) dcbName.Text = dcbSerial.BoundText cmdOK.Enabled = (dcbSerial.Text )End SubPrivate Sub Form_Load() Dim rsDep As New ADODB.Recordset, rsClass As New ADODB.Recordset Set rsDep = DataEnv.rsDepartment Set rsClass = DataEnv.rsClass 从class中读取数据,填充到cboClass复合框中 If rsClass.State = adStateClosed Then rsClass.Open cboClass.Clear cboClass.AddItem 全部 While Not rsClass.EOF cboClass.AddItem rsClass(Name) rsClass.MoveNext Wend cboClass.ListIndex = 0End SubPrivate Sub txtScore_Change() cmdOK.Enabled = Len(dcbSerial.Text) 0 And Len(txtScore.Text) 0End SubPrivate Sub txtScore_KeyPress(KeyAscii As Integer) 如果输入的字符不属于数字或者顿号,则取消输入的字符 If (KeyAscii Asc(9) Or KeyAscii Asc(0) And KeyAscii Asc(.) And KeyAscii vbKeyBack Then KeyAscii = 0End Sub3. frmCourseScore.frmOption Explicit当改变记录集时,需要刷新整个网格控件Sub RefreshGrid() grdScan.DataMember = grdScan.Refresh If DataEnv.rssqlCourse.State adStateClosed Then DataEnv.rssqlCourse.Close DataEnv.rssqlCourse.Open grdScan.DataMember = sqlCourse grdScan.Refresh 刷新各个绑定控件 Call grdScan_ChangeEnd Sub用以在浏览时,根据当前记录所出的位置不同,来改变个浏览按钮的状态Sub ChangeBrowseState() With DataEnv.rssqlCourse 如果没有任何记录,则清空显示目录;并且使浏览部分和管理部分的按钮无效 If .State = adStateClosed Then .Open 假如处于记录的头部 If .BOF Then If Not .EOF Then DataEnv.rssqlCourse.MoveFirst cmdPrevious.Enabled = False cmdFirst.Enabled = False Else cmdPrevious.Enabled = True cmdFirst.Enabled = True End If 假如处于记录的尾部 If .EOF Then If Not .BOF Then DataEnv.rssqlCourse.MoveLast cmdNext.Enabled = False cmdLast.Enabled = False Else cmdNext.Enabled = True cmdLast.Enabled = True End If End WithEnd Sub通过当前课程的成绩,来得到该课程的总成绩和平均成绩Sub Calculate(sSerial As String) Dim rs As New ADODB.Recordset Dim str str = select avg(score) as avg_score, count(*) as count_score from score where courseid= & sSerial & rs.Open str, DataEnv.Con, adOpenStatic If Not rs.EOF Then txtSum.Text = FormatNumber(rs(count_score), 0) txtAverage.Text = FormatNumber(rs(avg_score), 2) End IfEnd Sub刷新课程编号为sSerial的成绩的网格控件grdScoreSub RefreshScore(sSerial As String) With DataEnv.rssqlStudentScore If .State adStateClosed Then .Close Dim str If sSerial = Then str = select student.serial,, student.class, score.score & _ from student,score where score.studentid=student.serial Else str = select student.serial,, student.class, score.score & _ from student,score where score.studentid=student.serial & _ and Score.cours
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 10.5 带电粒子在电场中的运动 教学设计 -2024-2025学年高二上学期物理人教版(2019)必修第三册
- 本章复习与测试教学设计-2025-2026学年初中数学青岛版2012七年级上册-青岛版2012
- 开展翻译思维训练提升翻译创新能力
- 高校与产业界协同合作机制创新
- 飞机维修员考试题及答案
- 2025年合同期内如何充分调动员工积极性挖掘其潜在价值的美文综述
- 法学概论考试题划分及答案
- 员工面试基础试题及答案
- 2025年上海市建筑工程维护与装饰装修施工合同
- 城市旧供水管网改造工程环境影响报告书
- 2025秋人教鄂教版(2024)科学一年级第一单元走近科学《1“钓鱼”游戏》 教学设计
- 食品腐烂变质安全培训课件
- 2025网络设备购销合同文本
- 2025年山东省东营市辅警协警笔试笔试预测试题(附答案)
- 风机高空作业安全培训课件
- 2024-2025学年南充市七年级下英语期末考试题(含答案和音频)
- 成都产业投资集团有限公司所属产业投资板块企业2025年招聘投资管理等岗位的考试参考试题及答案解析
- 2025年法院书记员招聘考试笔试试题含答案
- 重阳节活动致辞
- 地下室结构施工课件
- 2025至2030中国氢燃料电池堆行业项目调研及市场前景预测评估报告
评论
0/150
提交评论