学籍管理系统
1 引言
1.1 问题的提出
学籍管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,它能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机技术日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机软件系统对学生学籍进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生学籍管理的效率,也是与世界接轨的重要条件。
1.2本文研究路线
该系统是在Borland Delphi 7.0面向对象开发软件工具下分析、设计、开发的学籍管理系统。通过对计算机硬件和软件解决方案的论证,对应用领域进行调查分析,参考各种资料和进行数据库编程实践,在指导老师的帮助下,已经基本上成功地实现了预期的设计要求。使该数据库系统能够实现学生基本信息管理,学生成绩信息管理,学生就读状态管理等功能。该系统基本上满足了教师在学生信息管理方面的需求,用户界面友好,使用方便、灵活。此外,该系统还引入了用户权限管理,从而提高了数据的安全和可靠性,并增加了信息的准确性。
2 学籍管理系统的定位与需求分析
2.1 管理信息系统的定位
随着我国教育体制改革的深入进行,教育系统得到了前所未有的发展。学生管理正在逐步迈向管理信息现代化。本系统的主要研究方向是解决对学生的学籍、档案等信息的数字化管理模式,提高以往的工作效率低、误差大等人工管理的缺点,也节约了人力、物力、财力等资源。与此同时,学校是培养国家栋梁之材的场所,无论是在教育,还是在管理上都应走在最前列,而其中管理又是学校运转良好的关键。如何提高管理,是当前学校管理者所面临的重要课题。
2.2 课题的需求分析
当今的时代,网络技术与计算机软件技术已经愈来愈广泛地应用到教育系统中各个方面。使用计算机管理系统不仅可以简化学校传统的管理模式,使学校管理人员能够方便地利用学校内部信息对学生的学籍管理、学生档案管理进行全面管理,更重要的是利用计算机的技术可以使学生管理规范化、制度化、数字化、提高管理水平、降低管理成本、减轻工作强度、提高工作效率,使学校以高效率运转。计算机技术在校园中的应用顺应了我国的国情,实现了教育要面向现代化,面向未来的指导思想,是学生管理走向现代化的有力武器
2.3 管理信息系统存在的问题
通过设计前期对目前已经存在的学籍管理系统的使用调查,以及从学校的行政管理和职能分工角度分析,结合教师集中反映的实际学籍管理当中出现的问题和主要矛盾分析,汇总得出以下三点当前学籍管理系统中存在的主要问题:
(1)学校现行的学籍管理方式仍为基于文本、表格等纸介质的传统手工处理方
式。学籍信息管理没有完全科学化、规范化、处理速度较慢,因此影响教学工作的开展,难以进行有效的信息反馈。
(2)学校领导对整个学校的学生信息不能得到及时反馈,因此不能适时指导教
学方向,以至影响教育质量。
(3)部门之间信息交流少,信息渠道单一,不利于协调工作,容易出错。因此,
我想通过建立学籍管理系统,使学生学籍管理工作科学化、规范化、程序
化,促使提高信息处理的速度和正确性,使学校的信息流程和流向清晰化、合理化,第一时间把握学生信息,以提高整体教学水平。
以上三个主要问题的存在是多方面的,也是实际管理工作当中很难避免的,如何在当前混乱的学籍信息管理工作中理清思路,寻找出一条方便、快捷、实用的工作方法,从根本上提高学籍管理工作的效率,既是该系统设计的初衷,也是设计该系统所急需解决的问题。
2.4 系统的可行性研究
通过调查分析,该系统设计方案有以下三个可行性:
2.4.1 技术可行性
系统最低可采用MS Windows95作为操作平台。数据库开发平台选用Borland Delphi 7.0,这是目前数据库应用软件的主流开发平台,数据库采用MS Office Access 2003,它从速度、容量、稳定性方面更是有口皆碑,该数据库管理系统在MS Windows95及其更高版本操作系统中都能运行,可代替传统的人工管理工作方式,降低出错率,提高数据的真实性、可用性。
2.4.2 经济可行性:
该学籍信息管理系统可取代原有的信息人工管理工作,减少人工开支,节省资金,并且可大大提高信息量的取得,缩短信息处理周期,提高学生信息的利用率,使教学质量更上一个台阶。
2.4.3 营运可行性
该系统操作简单,易于理解,只需通过简单培训,上手较快,学校学籍管理处的教职员以及相关教师均能进行操作,营运环境要求低。
面对于系统设计还应该以“标准性、安全性、兼容性、高效性、保密性、可维护性”为标准,在着眼于当前实用的基础上,为将来系统的扩展,升级留有余地。软件的开发应能在较长时间内满足学校的发展需要。故该系统还需要满足以下这几个标准:
(1)标准性:系统的软硬件选型都应该采用工业化标准,这样既可以保证系统
运行质量又可以分享在此标准上的每一次技术进步。
(2)可靠性:由于学籍信息的重要性,系统的软硬件应均为质量可靠,并采用
RAID0 1廉价磁盘冗余保护技术,确保不会由于软硬件故障造成系统运行终
止而使用户蒙受损失。
(3)安全性:通过软件的编制,控制使用者接触数据的权限,从而确保使用者
无法操作与其无关的数据。
(4)兼容性:系统的所有软硬件理论上都应有100%的兼容性,用以保证软硬件
的可互换
(5)高效性:由于学校学生信息每次处理的信息量较大,因此系统对信息的处
理能力,响应能力都应是快速而有效的,在软件编制过程中应充分考虑到这一点。
(6)可维护性:系统软件设计时应采用结构化模块设计,以便于开发和维护,
也有利于根据情况随时进行功能调整。同时在系统开发时应该充分考虑到用户的日常维护,使之能简便易行。
通过可行性分析研究,认为该系统的开发方案切实可行,可进行开发。
2.5 系统开发设计书
2.5.1、人员组成:XXX
2.5.2、开发阶段描述、任务及负责人(详细情况见表2-1)
(1)、课程设计1:主要完成系统可行性研究报告
(2)、课程设计2:主要完成系统分析说明书
(3)、课程设计3:主要完成系统设计说明书
(4)、课程设计4:主要完成系统实施说明书
表2-1系统开发进度表
3 系统的开发工具
3.1 Delphi开发技术
Delphi 是著名的Borland 公司开发的基于Windows 以Object Pascal语言为核心的一个快速开发应用程序的可视化软件开发平台。Delphi 被称为第四代编程语言,它具有简单、高效、功能强大的特点。Delphi 具有以下的特性:基于窗体和面向对象的方法,高速的编译器,强大的数据库支持,与Windows 编程紧密结合,强大而成熟的组件技术。但最重要的还是在Pascal 语言的基础上发展起来的Object Pascal语言,它才是一切的根本。 Delphi 提供了各种开发工具,包括集成环境、图像编辑(Image Editor ),以及各种开发数据库的应用程序,如DesktopDataBase Expert等。除此之外,还允许用户挂接其它的应用程序开发工具,如Borland 公司的资源编辑器(Resourse Workshop )。在Delphi 众多的优势当中,它在数据库方面的特长显得尤为突出:适应于多种数据库结构,从客户机/服务机模式到多层数据结构模式;高效率的数据库管理系统和新一代更先进的数据库引擎;最新的数据分析手段和提供大量的企业组件。
3.2 ADO开发技术与内存控制技术
该系统采用了目前最为流行的ADO 数据库系统开发技术。ADO 是Microsoft 提供和建议使用的新型的数据访问接口,它被实现为OLEDB 之上的一个薄层,这使得ADO 可以有更快的访问速度,更易使用,同时更节省资源,这意味着程序员可以更为广泛地使用ADO 接口,甚至在所有的基于Windows 平台的数据访问中使用它。 对ADO 对象的主要操作,主要包括5个方面:
(1)连接到数据源。这是可选的、通常涉及AdoConnection 对象。
(2)执行SQL 命令,比如一个SELECT 脚本。涉及AdoQuary 对象。
(3)如果提交的命令有结果返回,可以通过DataScause 对象对结果进行操作,
数据存储在缓存中。
(4)如果合适,可将缓存中被修改的数据更新到物理的存储上。
(5)提供错误检测。通常涉及ADO 的Error 对象。
为使该系统在实际运用中快速高率,还将从以下内存控制方面进行进一步的
完善。
集约化内存控制是使程序在计算机内实现高速运行的先决条件,因此在设计过程中,将尽量使用动态的内存控制,也就是尽量使用生存期自管理类型的数据类型进行编程,如经常使用到字符串类型将会采用AnsiString 类型,合理使用重载的方法,严格控制各Form 之间函数和过程的调用等,这些都将为程序的提速起到关键的作用。
灵活运用构造和析构函数,将操作中必须用到的单元在程序使用过程中进行调用,使用完毕后立即将其在内存中释放,这样,便节约了大部分的内存空间,使程序在很小的内存空间中便可运行,从而兼顾了程序在较低配置中运行。
3.3 Access数据库开发技术
Access 数据库管理系统是Microsoft Office 套件的重要组成部分,适用于小型商务活动,用以存贮和管理商务活动所需要的数据。Access 不仅是一个数据库,而且它具有强大的数据管理功能,它可以方便地利用各种数据源。数据库是有结构的数据集合, 它与一般的数据文件不同,(其中的数据是无结构的) 是一串文字或数字流。Microsoft Access是一种关系式数据库,关系式数据库由一系列表组成,表又由一系列行和列组成,每一行是一个记录,每一列是一个字段,每个字段有一个字段名,字段名在一个表中不能重复。Access 能使用户很容易得到所需信息,并提供强大工具,可以帮助您组织和共享您的数据库,以便您和您的工作组能作出更好的决策。
4 信息系统分析
4.1 系统功能需求分析
学籍管理系统不仅仅是代表了一个学校的管理现代化,是否顺应国际形式,与世界接轨,更重要的是,学籍管理系统的应用是否真的能够起到我们预期的目的,真正的把教师从目前庞杂的学籍信息管理工作当中解脱出来,使用方便,实用性强,工作效率高,达到事半功倍的目的。因此,设计一个真正有用的学籍管理系统才是我的所要面对的问题。
当然,我们还应当认识到,虽然都是学校,但每个学校具体的动作和管理体制都各有不同之处。通过设计初期对本学校的实地调查、系统分析、认真总结,提取出了本校学籍信息管理工作中的重点和难点,主要集中在,入学新生的基本信息收集、档案的管理、存储方式、查阅,以及学生在读期间各学科成绩信息的管理、维护、筛选和查询,在这其间,还存在学校因体制和学科的改革和创新所带来的一系列问题,如增加学科与专业、各系中因教学需要而对课程的改动等,对管理人员上的编制和改动,由于工作需要而临时调派的教师,因为他们的工作性质而对他们各自所要负责的工作职能的调配,都是该系统设计是所要考虑到的。
4.2 系统的业务流程分析
该系统主要运用在老师对学生的基本信息、学习成绩,以及在校学习期间的各项数据的管理,其范畴涉及从学生来校报到第一天的电子档案留存,直至学生毕业后档案的留存,其中包括基本信息、个人简历、组织关系、学习成绩、就读状态等情况。具体的功能设计如下:
该系统分为五个主要部分:学生基本信息管理、学生成绩信息管理、学生就读信息管理、学生全部信息综合筛选、系统维护、权限管理等。
进入该系统时,首先选择管理权限。这里包括管理员与用户(教师),其中管理员可以管理所有的系统功能,而用户则只能对自己的权限内的学生信息进行管理。
(1)新生基本信息登录:新生凭录取通知书到学校登记,经审验完毕后,将学
生班级(课程设置)及关联的学生资料(包括学籍资料、个人简历等等)输入学籍管理系统中。
(2)学生成绩信息维护:存储了学生各科考试的成绩,包括:学期、科目、成
绩等等。系统会根据考试成绩,自动添加及格标记。
(3)学生就读信息维护:该部分分为设置休学、退学、毕业、复学这四种情况,
并将他们的全部数据自动分类,便于对各种不同就读状态的学生进行维护。
(4)学生全部信息综合筛选:这里可以按不同的属性进行筛选,例如:学号、
姓名、系别、专业等等,筛选的条件与数量将由用户根据需求灵活设置。同时,还可以自定义SQL 语句查询,这将为复杂的筛选带来方便。
(5)系统维护:这一部分有两个方面的功能:一是为高级用户(管理员等)设
计的用户管理,高级用户可以对普通用户进行帐户和权限的控制,普通用户可以为多个,且使用权限不同,而且不能互相访问,这样可以保证数据的真实性,管理员为系统中最高权限,既可以通过他查阅系统中所有数据,也可以增加用户,查询或修改他们的用户名或密码。二是对系统中涉及到的一些经常改动的项目,如课程、系别、专业、班级等进行维护。
(6)为了便于日常的学籍信息管理工作,该系统还可以直接调用Windows 计算器。
(7)作者信息。
4.3 系统的数据流程分析
通过下图可以清楚的反映该系统的主要功能、系统与外部环境间的输入输出、系统内部的处理、数据传送、数据存储等情况。
图4-1 数据流程图
4.4 系统的数据字典分析
4.4.1 数据流的描述
4.4.2 处理逻辑的描述
5 学籍管理系统设计
5.1 系统功能结构总体设计
5.1.1 系统登录模块
本系统的“系统登录”模块的主要作用是对欲登录本系统的用户进行身份的核实,其中分为管理员登录和普通用户登录两种方式。
(1)管理员登录:管理员拥有本系统的最高使用权限,可以使用本系统提供的全部功能。登录时,管理员需提供正确的用户名及密码方可登录。
(2)普通用户登录:普通用户的使用权限,是由管理员和被受权更改用户权限的普通用户预先定义好的。登录时,普通用户需提供正确的用户名及密码,系统经过核实无误后,便从数据库中该用户所拥有的使用权限,并在进入系统后将本系统的各功能部分与其使用权限相对应地提供给该用户。 5.1.2 学生基本信息管理模块
本系统的“学生基本信息管理”模块的主要作用是对学生在校期间的个人信息、档案等进行管理,其中包括:
(1)新生入学:可以利用该功能对学生的基本信息进行添加,本该采用每次只能录入一名学生的方式进行输入。
(2)信息修改:可以利用该功能对学生的基本信息进行修改,本系统采用连续修改的操作方式,这对进行大批量的修改是很有帮助的。
(3)信息删除:可以利用该功能删除学生的基本信息,删除后将不能恢复。值得注意的是,当使用该功能时,系统首先会核实与该基本信息对应的分数表中是否存在相应的成绩信息,如果存在,则该信息不能被删除。这是因为,如果直接删除该基本信息,分数表中将产生大量的冗余数据,这将浪费大量存储空间。 (4)显示信息:该功能是以只读的方式浏览学生的基本信息。对于那些未被受权使用某些特殊功能或仅想查看学生基本信息的普通用户而言,从这里可以得到他们所需要的信息。
5.1.3 学生成绩信息管理模块
本系统的“学生成绩信息管理”模块的主要作用是对学生在校期间的个人各科成绩进行管理。基本包括:
(1)成绩录入:可以利用该功能对学生的成绩信息进行添加,本该采用连续录入的操作方式,这对进行大批量的成绩录入时是很方便的。
(2)修改成绩:可以利用该功能对学生的成绩信息进行修改。使用时,用户在系统提供的该学生的所有成绩信息中选择后进行修改。
(3)删除成绩:可以利用该功能删除学生的成绩信息,删除后将不能恢复。 5.1.4 学生就读信息管理模块
本系统的“学生就读信息管理”模块的主要作用是对学生的就读状态进行设置和显示。用户首先选择需要更改就读状态的学生基本信息,而后可对该学生进行休学、退学、毕业、复学四种状态的更改。用户通过就读状态显示功能可查到所有在读、休学、退学、毕业、全部学生。 5.1.5 学生信息综合筛选模块
本系统的“综合筛选”模块的主要作用是对已存在学生信息进行查询,其具体功能主要分为:
(1)学生信息综合筛选:通过该功能可以对已存在的所有学生进行自定义的查询。该功能屏弃了以往数据库系统中,查询条件是设计初期已经固化的缺陷,它允许使用者根据实际需要自行组合查询进行条件。本系统中提供的查询条件包括:系别、专业、班级、学号、姓名、学制、政治面目。当系统查询到结果后,学生所对应的成绩信息也会同时搜索并显示出来。
(2)自定义SQL 高级筛选:使用该功能可以直接利用标准的结构化查询语言SQL 对数据表中的数据进行查询,当然,使用该功能的前提是使用者必须会使用SQL 语言。综合筛选的功能固然可圈可点,但必竟不可以完成全部用户所需要的功能,因此,利用该功能便可以完成许多比较复杂的查询,方便用户的使用。当然,这一功能是对数据库的直接查询,对于数据的安全性是有威胁的,见意管理员及被
受权使用该功能的普通用户慎用此功能。
此外,本系统中的打印功能是不同于以往的报表打印的,使用者可以通过实际需要将查询到的信息或者是大批量的信息导入Excel 进行排版打印,因为Excel 是目前广泛使用的专业化电子表格制作工具,它可以制作出各式各样的电子表格并打印出报表,在本系统中的报表打印也是通过将数据导入Excel 进行排版打印的,这样便大大提高了制作报表的灵活性,且从功能上得到很大的扩展。 5.1.6 系统维护模块
本系统的“系统维护”模块是本系统的重要组成部分,它担负着对系统的一些重要信息及功能的设置,其中包括:
(1)管理员用户帐户维护:该功能部分的主要作用是对管理员在登录本系统时
所需输入的用户名及密码进行维护。系统会要求管理员输入原有的用户名、密码以及欲修改后的用户名、密码,经系统确认输入的信息正确且合法后,管理员帐户便修改完成。
值得注意的是:○1在这里管理员的用户名及密码是允许为空的; ○2普通用户是不允许使用这项功能的。
(2)普通用户帐户维护:该功能部分的主要作用是对每一位普通用户在登录本
系统时所需输入的用户名及密码进行维护。系统首先会要求普通用户输入原有的用户名、密码以及欲修改后的用户名、密码,然后在数据库在查找所有已存在的普通用户中是否存在当前用户输入的原有用户及密码,当确认查到并核实当前用户欲修改的用户名及密码合法后,普通用户帐户便修改完成。 值得注意的是:○1在这里普通用户的用户名及密码是不允许为空的; ○2管理员是不允许使用这项功能的。
○3在这里修改后的普通用户帐户是不能与已存在的帐户重
复的。
(3)普通用户管理:该功能部分的主要作用是管理员和被受权使用该功能的普
通用户对每一位普通用户进行管理,其中包括对普通用户的:
1帐户添加:管理员和被受权使用该功能的普通用户,可以根据实际工作需要○
任意添加N (N ≤65536)个普通用户以配合工作。
2帐户修改:管理员和被受权使用该功能的普通用户,可以根据实际工作需要○
对已存在的每一位用户的通过最高权限进行无条件的修改,修改后原有用户名及密码将被替换。
3帐户删除:管理员和被受权使用该功能的普通用户,可以根据实际工作需要○
对已存在的每一位用户的通过最高权限进行无条件的删除。
4查询:管理员和被受权使用该功能的普通用户,可以使用该功能在所有已存○
在的普通用户中进行查询,查询条件可以仅仅是用户名或密码,也就是说,可以通过该功能帮助普通用户查到他们丢失的密码。
5使用权限分配:管理员和被受权使用该功能的普通用户,可以使用该功能对○
所有已存在的普通用户进行使用权限的管理。在实际工作中,本系统的很多功能是对数据进行维护的,甚至是对数据库进行查询的,这对系统的安全来说造成很大的威胁,而对于某些普能用户而言,在他们的工作中,那些功能或许是很有用的。这样,对于普通用户的管理就更加全面,对于系统的安全也是十分有帮助的。
(4)项目管理:该功能部分的主要作用是管理员和被受权使用该功能的普通用
户对本系统中所有应用到的下拉选单进行维护。在日常工作中,大部分的工作对是对各种信息的维护,比如基本信息的输入或成绩信息的录入等,这里有很多地方需要输入大量重复的数据,费时费力,通过下拉选输入信息则是一个不错的选择。然而,实际工作中,下拉选单中的内容是经常需要添加、修改或删除的。因此,对于下拉选单的功能便有了能够随时更新的要求,修改一下数据库中的数据便能够实现这一要求是十分必要的。
5.1.7 关于系统模块
本系统的“关于系统”模块主要作用是显示本系统作者的一些个人信息及联系方式,以便日后用户在使用过程中与作者取得必要的联系。
5.2 系统功能结构模块图
学籍管理系统功能结构模块图详见附图5-1。
5.3 系统界面设计及模块编码设计
5.3.1 系统登录界面设计
图5-2 系统登录界面
5.3.1.1 系统登录模块编码设计
用户登录部分分为管理员和普通用户登录。管理员登录时开放所有权限,普通用户登录时从PASS 表中提取各自使用权限。
procedure Tfrm_fm.btn_jrClick(Sender: TObject); var
i,j,k:integer;
begin
if rbt_yh.Checked=true then begin
qry_pass.Active:=false;
tempsqlstr:='select * from pass'; qry_pass.SQL.Text:=tempsqlstr; qry_pass.Active:=true; i:=qry_pass.RecordCount; j:=0; k:=0; begin repeat begin
if (qry_pass['user_name']=edt_name.Text) and (qry_pass['user_password']=edt_password.Text) then
begin
if chk_blyhm.Checked then begin
edt_password.Text:=''; end else begin
edt_name.Text:=''; edt_password.Text:=''; end;
frm_cd:=Tfrm_cd.create(self); //用户权限//
if qry_pass['新生入学']=false then begin
frm_cd.N2.Enabled:=false;
frm_cd.SpeedButton1.Enabled:=false; end else begin
frm_cd.N2.Enabled:=true;
frm_cd.SpeedButton1.Enabled:=true; end;
if qry_pass['修改学生']=false then begin
frm_cd.N7.Enabled:=false;
frm_cd.SpeedButton2.Enabled:=false; end else begin
frm_cd.N7.Enabled:=true;
frm_cd.SpeedButton2.Enabled:=true; end;
if qry_pass['删除学生']=false then begin
frm_cd.N23.Enabled:=false;
frm_cd.SpeedButton3.Enabled:=false; end else begin
frm_cd.N23.Enabled:=true;
frm_cd.SpeedButton3.Enabled:=true; end;
if qry_pass['成绩录入']=false then
begin
frm_cd.N6.Enabled:=false;
frm_cd.SpeedButton6.Enabled:=false;
end
else
begin
frm_cd.N6.Enabled:=true;
frm_cd.SpeedButton6.Enabled:=true;
end;
if qry_pass['修改成绩']=false then
begin
frm_cd.N24.Enabled:=false;
frm_cd.SpeedButton7.Enabled:=false;
end
else
begin
frm_cd.N24.Enabled:=true;
frm_cd.SpeedButton7.Enabled:=true;
end;
if qry_pass['删除成绩']=false then
begin
frm_cd.N25.Enabled:=false;
frm_cd.SpeedButton8.Enabled:=false;
end
else
begin
frm_cd.N25.Enabled:=true;
frm_cd.SpeedButton8.Enabled:=true;
end;
if qry_pass['显示信息']=false then
begin
frm_cd.N18.Enabled:=false;
frm_cd.SpeedButton4.Enabled:=false;
end
else
begin
frm_cd.N18.Enabled:=true;
frm_cd.SpeedButton4.Enabled:=true;
end;
if qry_pass['综合筛选']=false then
begin
frm_cd.N14.Enabled:=false;
frm_cd.SpeedButton14.Enabled:=false;
end
else
begin
frm_cd.N14.Enabled:=true;
frm_cd.SpeedButton14.Enabled:=true;
end;
if qry_pass['SQL筛选']=false then
begin
frm_cd.SQL1.Enabled:=false;
frm_cd.SpeedButton15.Enabled:=false;
end
else
begin
frm_cd.SQL1.Enabled:=true;
frm_cd.SpeedButton15.Enabled:=true;
end;
if qry_pass['就读设置']=false then
frm_cd.N26.Enabled:=false
else
frm_cd.N26.Enabled:=true;
if qry_pass['用户帐户']=false then
begin
frm_cd.N19.Enabled:=false;
frm_cd.SpeedButton18.Enabled:=false;
end
else
begin
frm_cd.N19.Enabled:=true;
frm_cd.SpeedButton18.Enabled:=true;
end;
if qry_pass['系统维护']=false then
begin
frm_cd.N17.Enabled:=false;
frm_cd.SpeedButton19.Enabled:=false;
end
else
begin
frm_cd.N17.Enabled:=true;
frm_cd.SpeedButton19.Enabled:=true;
end;
//
frm_cd.ShowModal;
k:=1;
frm_cd.Free;
end
else
begin
inc(j);
qry_pass.MoveBy(1);
end;
end;
until i=j;
end;
if k=0 then
Application.MessageBox('用户名与密码匹配!',' 警告
',MB_OK+MB_ICONWARNING);
edt_name.Text:='';
edt_password.Text:='';
edt_password.SetFocus;
end;
if rbt_gl.Checked=true then
begin
qry_passg.Active:=false;
tempsqlstr:='select admin_name,admin_password from pass'; qry_passg.SQL.Text:=tempsqlstr;
qry_passg.Active:=true;
if qry_passg['admin_name']=edt_name.Text then
begin
if qry_passg['admin_password']=edt_password.Text then
begin
frm_cd:=Tfrm_cd.create(self);
if chk_blyhm.Checked then
begin
edt_password.Text:='';
frm_cd.ShowModal;
frm_cd.Free;
end
else
begin
edt_name.Text:='';
edt_password.Text:='';
frm_cd.ShowModal;
frm_cd.Free;
end;
end
else
Application.MessageBox('
',MB_OK+MB_ICONWARNING);
end
else
Application.MessageBox('
',MB_OK+MB_ICONWARNING);
end;
end;
5.3.2 系统主界面设计 密码错不存在该误!',' 警用户!',' 警告告
图5-3 系统主界面
5.3.3 学生基本信息输入界面设计
图5-4 学生基本信息输入界面
5.3.3.1 添加基本信息编码
frm_cd.qry_jbxx.Append;
if frm_add.ShowModal=mrok then
begin
frm_cd.qry_jbxx.FieldByName('状态').AsInteger:=1;
frm_cd.qry_jbxx.Post;
end
else frm_cd.qry_jbxx.Cancel;
frm_add.Free;
end;
6.2.2 修改基本信息编码
begin
if qry_jbxx.RecordCount>0 then
begin
frm_add:=Tfrm_add.Create(self);
frm_cd.qry_jbxx.edit;
frm_add.ShowModal;
frm_add.Free;
end;
end;
6.2.3 删除基本信息编码
if qry_jbxx.RecordCount>0 then
begin
if qry_fenshu.RecordCount>0 then
Application.MessageBox('存在该学生的成绩信息,不允许删除!',' 错误',MB_OK+MB_ICONERROR)
else
begin
if Application.MessageBox('该操作将删除当前记录, 确认要删除吗?',' 提示',MB_YESNO+MB_ICONWARNING)=IDYes then
begin
qry_jbxx.Delete;
qry_jbxx.Active:=false;
qry_jbxx.Active:=true;
end;
end;
end;
5.3.4 学生基本信息修改界面设计
图5-5 学生基本信息修改界面
5.3.4.1 修改基本信息编码
begin
if qry_jbxx.RecordCount>0 then
begin
frm_add:=Tfrm_add.Create(self);
frm_cd.qry_jbxx.edit;
frm_add.ShowModal;
frm_add.Free;
end;
end;
6.2.3 删除基本信息编码
if qry_jbxx.RecordCount>0 then
begin
if qry_fenshu.RecordCount>0 then
Application.MessageBox('存在该学生的成绩信息,不允许删除!',' 错误',MB_OK+MB_ICONERROR)
else
begin
if Application.MessageBox('该操作将删除当前记录, 确认要删除吗?',' 提示',MB_YESNO+MB_ICONWARNING)=IDYes then
begin
qry_jbxx.Delete;
qry_jbxx.Active:=false;
qry_jbxx.Active:=true;
end;
end;
end;
5.3.5 学生成绩信息输入界面设计
图5-6 学生成绩信息输入界面
5.3.6 学生成绩信息修改界面设计
图5-7 学生成绩信息修改界面
5.3.6.1 学生成绩信息模块编码设计
5.3.6.2 添加学生成绩信息
if qry_jbxx.RecordCount >0 then
begin
frm_fenshu:=Tfrm_fenshu.Create(self); qry_fenshu.Append; frm_fenshu.ShowModal; frm_fenshu.Free; end;
5.3.6.3 修改学生成绩信息
if qry_fenshu.RecordCount >0 then begin
frm_editfenshu:=Tfrm_editfenshu.Create(self); frm_cd.qry_fenshu.edit; frm_editfenshu.ShowModal; frm_editfenshu.Free; end;
5.3.6.4 删除学生成绩信息
if qry_fenshu.RecordCount>0 then begin
if Application.MessageBox('是否确认删除当前成绩信息?',' 提示',MB_YESNO +MB_ICONINFORMATION )=idyes then
begin
qry_fenshu.Delete; qry_fenshu.Active:=false; qry_fenshu.Active:=true; end; end;
图5-8 学生信息综合筛选界面
5.3.7 。1 学生就读状态模块编码设计
在该模块中使用改变JBXX 表中状态字段的值来区分学生的不同就读状态。 if qry_jbxx.RecordCount>0 then begin
if Application.MessageBox('确认该学生要休学吗?',' 提示',MB_YESNO+MB_ICONWARNING)=IDYes then
begin
qry_jbxx.edit;
qry_jbxx.FieldByName('状态').AsInteger:=2; qry_jbxx.Post; end; end;
图5-9 自定义SQL 筛选界面
5.3.8.1 学生信息综合筛选模块编码设计
该模块可根据用户所要查询的不同条件,自由组合筛选出所需要的信息,并可将筛选结果导入Excell 进行排版打印。下面以查找一个课程为例进行介绍:
if (checkbox1.Checked=true) and (dblookupcombobox1.Text'') then begin
xb:=dblookupcombobox1.Text; frm_cd.cx_xb.Active:=false; frm_cd.cx_xb.SQL.Text:='select subrun='''+xb+'''';
frm_cd.cx_xb.Active:=true;
xb:=' and (系别='''+frm_cd.cx_xb.FieldValues['dmcode']+''')'; end else xb:=' ';
导入Excell 主要编码如下:
dmcode
from
dm
where
with ExcelApplication1 do begin
//启动Excel 程序 Disconnect; //前台可见 Visible[0]:=True; //空白文档
SheetsInNewWorkbook[0]:=1; WorkBooks.Add(EmptyParam,0); //完成ExcelWorkBook1的连接
ExcelWorkBook1.ConnectTo(Workbooks[Workbooks.Count] _Workbook);
end;
with ExcelWorkSheet1 do begin
ConnectTo(ExcelWorkBook1.Sheets[1] as _Worksheet); Name:='报表'; with PageSetup do begin
HeaderMargin:=1; end; end; x:=1;
with frm_cd.qry_jbxx do if CheckBox10.Checked then begin
with ExcelWorkSheet1 do begin
//填充表头各个单元格的内容
as
for y:=1 to Fields.Count do
Cells.Item[1,y]:=Fields[y-1].DisplayName; //设定表头颜色字体等属性
with Range[Cells.Item[1,1],Cells.Item[1,Fields.Count]] do begin
Interior.Color:=clGray; //为表头添加底纹 Font.Bold:=1; //表头字体加粗 end; end;
Inc(x); //当填充表头后,计数加一,现在的行为第2行 with ExcelWorkSheet1 do begin First;
while not Eof do begin
//从第一列的第一个字段开始至第一列的最后一个字段 for y:=1 to Fields.Count do begin
if y=1 then
ExcelWorkSheet1.Cells.Item[x,y]:=#39+Fields[x-1].Value
else
ExcelWorkSheet1.Cells.Item[x,y]:=Fields[y-1].Value; end;
Inc(x); //行数改为下一行 moveby(1); //下一条记录 end; end; end
else begin
with ExcelWorkSheet1 do begin First;
while not Eof do begin
//从第一列的第一个字段开始至第一列的最后一个字段 for y:=1 to Fields.Count do begin
if y=1 then //因为第一个字段为文本类型,如果是以数字0开始,
//那么在Excel 中就在导入数据时加一个单引号
ExcelWorkSheet1.Cells.Item[x,y]:=datetostr(Fields[y-1].Value)
else
ExcelWorkSheet1.Cells.Item[x,y]:=Fields[y-1].Value; end;
Inc(x); //行数改为下一行 moveby(1); //下一条记录 end; end; end; end;
5.3.9 管理员帐户维护界面设计
图5-10 管理员帐户维护界面
5.3.10 普通用户管理界面设计
图5-11 普通用户管理界面
5.3.11 项目维护界面设计
图5-12 项目维护界面
5.3.12系统维护模块编码设计
当管理员登录时,不允许使用用户帐户功能,以避免数据混乱,反之,普通用户也不能使用管理员帐户功能。在该模块中包括用户管理和项目管理两部分。
用户管理主要对普通用户帐户以及他们的使用权限进行维护,可实现对普通用户的添加、修改、查找、删除和分配权限的功能,其编码已在登录单元中介绍过,不再重复。
项目管理主要对该系统中经常用到的下拉选单中的内容进行维护,也就是对代码表中的数据进行维护。下面以添加一个课程为例进行介绍:
rec:=inttostr(qry_kc.RecordCount+1); qry_kc.Append;
qry_kc.FieldByName('dmindex').AsString:='0004'; qry_kc.FieldByName('dmcode').AsString:=rec; end;
if qry_jbxx.RecordCount >0 then begin
frm_fenshu:=Tfrm_fenshu.Create(self); qry_fenshu.Append; frm_fenshu.ShowModal; frm_fenshu.Free; end;
5.4 数据库设计
数据库管理系统是网络经济的重要基础设施之一,数据、计算机硬件和数据库应用,这三者推动着数据库技术与系统的发展。数据库要管理的数据的复杂度和数据量都在迅速增长;它历经了30多年的发展演变,已经取得了辉煌的成就,发展成了一门内容丰富的学科,形成了总量达数百亿美元的一个软件产业。 随着IT 技术的进步和计算机网络技术的发展,学籍管理系统也逐渐从传统的桌面管理向网络集成的方向发展,基于不同软硬件平台的各级管理系统需要有机地协同工作。基于Intranet 的学籍管理系统正在慢慢的取代传统的方式,因此学籍管理系统走向电子信息化是时代的需要。 5.4.1 E-R图分析
学籍管理系统E-R 图分析各实体属性及关系统模型如图所示:
图5-13 管理员实体模型 图5-14 普通用户实体模型
图5-15 成绩实体模型 图5-16 学生实体模型
图5-16 学籍管理系统各实体关系统模型
5.4.2 数据表分析
根据以上的数据流程图,本程序所需的数据项和数据结构如下: (1)登陆界面:管理员名与密码、用户名与密码。
(2)基本信息:学号、姓名、性别、出生年月、籍贯、民族、政治面目、健康
状况、身份证号、家庭住址、联系电话、入学时间、学制、系别、专业、班级、英语水平、特长与个人简历等信息。 (3)分数:学号、课程、分数、及格标志、学期。 (4)成绩:学号、补考时间、课程、成绩。
(5)代码:课程种类。 5.4.3 数据表设计
首先,学生基本信息和考试学生成绩信息是相互关联、一一对应的。只有学生的基本信息存在,说明学校中存在该学生,才能对该学生进行考试、评分等工作。为了更加合理的利用存储空间,故将学生基本信息和学生成绩信息分开存储,而它们之间以学号作为唯一的对应关系,并将基本信息表中学号字段设为父键,将成绩信息表中学号字段设为子键。
在学校的实际管理工作中,学校添加新的系别或开设新的专业,乃至某个班级开设新的课程都是十分常见的,然而在使用中往往这些信息都是以下拉列表的形式输入的。又因为在同一个数据表中如果存在大量的重复性数据,并且这些信息是很大的,这样就会造成大量存储空间的浪费,出于这两方面考虑,本系统中必须对平时所涉及到的某些可选项目进行维护,从而引入Lookup 技术,增加代码表。
考虑到工作需要,学校会对教师的职能与管理范围进行随时调配,也就是说,他们的管理权限是不同的。故引入用户权限分达式
配概念,将每个普通用户的使用权限存储到数据表中,供每位普通用户登录时提取各自的使用权,从而增加身份认证表。
表5-1 基本信息表(Jbxx 表)
表5-2 学生成绩表(Fenshu 表)
表5-3 学生代码表(Dm 表)
表5-4 身份认证表(Pass 表)
本文摘自天津网络营销网站(http://www.5iwlyx.com),更多信息请登录了解!