资源描述
第9章 学生管理信息系统
随着学校规模的不断扩大,学生数量的不断增长,学生的信息量也成倍增长。学生管理工作是学校各项工作的一个重要部分,其管理水平的高低将直接影响到人才的培养质量。面对庞大的信息量,如何有效地提高学生管理工作的效率是一个学校急需解决的问题。因此开发适合学校需要的学生管理信息系统,通过这样的系统,可以做到信息的规范管理、科学记录和快速查询,并减少管理方面的工作量。
9.1概 述
学生管理信息系统作为学校管理中的一个子系统,与其他子系统,如教学管理系统、人事管理系统、后勤管理系统,图书馆管理系统等一起构成构园管理信息系统,为校园管理信息化提供一个子功能。所以,几乎所有的大、中、小学校都需要一套这样的管理系统来提高平常的工作效率。图1和图2所示是两个典型的学生管理信息系统的界面。
图1第一个典型的学生管理信息系统的界面
图2第二个典型的学生管理信息系统的界面
从界面可以看到,学生管理信息系统应当涉及学生信息管理、学籍管理、成绩管理、奖惩管理和系统管理等基本内容。
(1)学生信息管理的数据有:学生学号、姓名、性别、出生日期、所属班级、所属院系、籍贯等,当有新生到校时,就启动相应的信息管理功能,对所有的学生信息进行入库,随时掌握学生的基本信息。
(2)学籍管理重要是对学生的学籍变更情况及时控制和管理,变更的因素有:转系、休学、复学、退学和毕业离校。
(3)成绩管理是数据量比较大的管理工作,每次考试结束后负责对学生各个科目的成绩入库工作和对数据库成绩犯错的校对工作。
(4)奖惩管理是针对学生在校的表现情况,对学生进行相应的解决工作,奖励的项目有各种奖学金和文体奖励,处罚的项目有通报批评、警告、严重警告、记过、留校查看、开除等。
(5)系统管理重要是执行数据库备份和恢复、数据库表的维护等工作,保证系统的正常运营。
学生管理信息系统作为典型的数据库项目应用的一种,其开发流程涉及需求分析、UML系统建模、拟定系统集成方案、数据库分析和设计以及各功以模块的开发等。下面介绍一个学生管理信息系统的具体开发过程。
9.2需 求 分 析
需求分析是数据库系统开发的第一步,也是最重要的一步。需求分析可以分为两个过程:一是理解需求,二是分析需求。下面分别分析这两个过程。
9.2.1 理解需求
只有通过对学生管理信息系统的终端用户和客户进行大量的调研,才干真正理解终端用户和客户的需求,才干开发出合理的、实用的管理系统,才干满足各大、中、小学校的管理需要。基于大量的调研数据,下面列出对最典型、最关键的需求。
(1)每年开学时,新生来报琶,要对每位新生的信息建立个人档案,这部分工作由学籍科的管理人员进行维护和操作。学生个人档案涉及学生学号、姓名、性别、出生日期、所属班级、所属院系、籍贯等。
(2)考试结束时,教务科的管理人员将学生各科的成绩录入数据库,以备随时查询。当然录入成绩也有犯错的也许,所以,必须具有校对修改成绩的功能。
(3)当学生的表现杰出或差的时候,学生科的管理人员应对其进行奖励或处罚,相应的奖项(或处罚)和奖励(或处罚)时间的数据都应当入库。
(4)当学生由于疾病、学业修完等因素学籍需要变更的时候,学籍科的管理人员应当对其进行学籍变更手续。
(5)学生应当具有查询个人信息和成绩的权力和权限。
(6)系统还应提供强大的数据记录、查询、报表生成以及打印等功能。
(7)系统客户端运营在Windows平台下,服务器端可以运营在Windows平台或者Unix平台下。
(8)系统应当有很好的可扩展性。
在本系统中重要提供新生信息录入、学籍变更、成绩管理和奖惩管理等相关的功能。
9.2.2 分析需求
分析需求就是描述系统的需求,通过定义系统中的关键域类来建立模型。分析的主线目的是在开发者和提出需求的人之间建立一种理解和沟通的机制,因此学生管理信息系统的需求分析是开发人员和学校管理人员一起完毕的。
分析需求的第一步是描述学生管理信息系统的功能,即定义用例,以此拟定系统的功能需求。一所学校的重要成员就是学生和学校的管理人员、教师、系统管理员等,管理人员重要指学籍科、学生科和教务科的人员,他们是学生管理信息系统的重要使用者。学生也是学生管理信息系统的重要使用者,只是具有的管理权限没有管理人员那么广。系统管理员也是其中一个管理人员,这不影响本系统的功能。
学生管理信息系统的用例涉及以下内容。
·新生信息
·学生成绩(涉及录入和校对)
·学籍变更
·学生奖励
·学生处罚
·学生信息查询修改
需要注意的是,学生信息查询修改用例涉及学生对个人基本信息和查询和修改,这些信息指的是新生入学时被录入的基本信息。此外,学生还具有查询和打印成绩的权限,查询奖惩情况、学籍变更记录等权限。
学生管理信息系统的分析可以用UML的用例图来描述。每个用例还可以以文本的方式描述,描述的内容涉及用例以及用例与角色交互的更具体的信息,文本的内容是通过和用户讨论后拟定的。下面给出上述用例的描述。
(1)新世界生信息
增长学生记录→标记学生学号→拟定学生院系→拟定学生班级
(2)学生成绩
增长学生成绩记录→校对学生成绩
(3)学籍变更
增长学籍变更记录→标记变更因素→标记变更时间
(4)学生奖励
增长学生奖励记录→标记奖励项目→标记奖励时间
(5)学生处罚
增长学生处罚记录→标记处罚等级→标记处罚时间
(6)学生信息查询修改
查询个人信息→修改个人信息→保存个人信息→查询奖惩情况→查询学籍变更情况→打印成绩单
9.3UML 系 统 建 模
完毕需求分析后,就需要对系统进行UML建模。UML建模是对需求分析结果的模型建立过程。下面进行学生管理信息系统的UML建模过程。
9.3.1 学生管理信息系统的用例分析
在上一节需求分析中列出了学生管理信息系统的所有用例:新生信息、学生成绩、学籍变更、学生奖励、学生处罚、学生信息查询修改。这里,使用权用Rose软件进行UML建模,其用例如图3所示。
图3学生管理信息系统用例图
该用例图标记了所有的学生管理住处系统的用例,从中可以得知,学生管理信息系统的角色可以划分为两类。
·学校管理人员:用例涉及学生管理信息系统的所有用例。
·学生:用例只有学生信息查询修改。
要注意的是,学校管理人员具有查询和修改所有数据的权限,处在高权限位置,而学生只有修改个有基本信息、查询奖惩情况、查询学籍变更情况和打印成绩单的权限,处在低权限位置。
9.3.2 学生管理信息系统的域类分析
UML建模的第二步就是域类分析。实际开发学生管理信息系统时,域类分析是建立在用例分析基础上的。要了解系统要解决的概念,最佳奖学校的管理人员组织起来开个讨论会,具体谈论和列举所需要包含水量的用例,了解概念和概念之间的关系。
学生管理信息系统中的域重要涉及:学生(Student)、成绩(Score)、学籍变更(Change)、奖励(Encourage)、处罚(Punish)。可以在类图中将上面这些域以及它们之间的关系表达出来,如图4所示。
图4学生管理信息系统域草图
需要说明的是,这里的域类还是处在“草图”状态,定义的操作和属性不是最后的片本,只是 在现阶段看来这些操作和属性是比较合适的,有些操作奖在时序图的草图中定义,而不晨用例哪定义。
有些类可以用UML状态图来显示类的对象的不同状态以及改变状态的事件。在本系统中有状态图的类是学生,该类的状态图将在后面的内容中介绍。
为了描述域类的动态行为,可以使用权UML的时序图、协作图或者活动图来描述。本文选用时序图。时序图的基础是用例。在时序图中要说明域类是如何协作以操作该系统中的用例。当然,在建立时序图时,将会发现新的操作,并将其加入类中,这将在后面看到所建立的时序图模型。用时序图建模时,需要窗口或对话框作为角色界面。显然,这里需要操作界面的有基本信息、奖励、处罚、学籍变更、修改查询等,此外维护也需要一个操作界面。
9.3.3 学生管理信息系统的设计
在设计阶段,一方面要设计类的状态的图。类的状态图说明了也许的状态以及需要被解决的过渡期,使用状态图可以揭示单个对象在整个系统中的变化细凶,对了解和实现关键类有较大的帮助。
不是所有的类都有状态图,在本系统中,有状态图的类是学生。
学生的状态图如图5所示。
图5学生的状态图
设计阶段的最后一步是设计UML模型,也就是将前面设计的模型进竽扩展和细化。下面给出各个用例的时序图。设计的目的是产生一个可以使用的解决方案,并且可以容易地将方案转换成程序代码。
学生的时序如图6所示
图6学生时序图
成绩的时序如图7所示。
图7成绩时序图
学籍变更的时序如图8所示。
图8学籍变更时序图
奖励的时序如图9所示。
图9奖励时序图
处罚的时序如图10所示。
图10处罚时序图
查询修改的时序如图11所示。
图11查询修改时序图
时序图设计完毕后,开始进行学生管理信息系统的架构设计和细节设计。在架构设计中将定义包(子系统)、包间的相关性和基本的通信机制。
设计架构时,应当将应用逻辑和技术逻辑分割。应用逻辑是需要编码设计的,而技术逻辑,重要涉及用户界面、数据库或者通信一般是已有的。学生管理信息系统中的包(或者为子系统、层)有如下几个,如图9-12所示。
图9-12包和包间关系
·用户界面包(User Interface Package):为通用用户界面类,调用业务对象包中的操作检索和插入数据,可以简朴地把它们当作将来用户要操作的界面。
·业务对象包(Business Object Package):业务对象包包含上面设计的分析模型的域类。业务对象包同数据库包协同完毕任务。
·数据库包(Database Package):数据库包向业务对象数据包提供服务。
·应用包(Utility Package):应用包向其他包提供服务。
至此,UML系统建模完毕。
9.4系 统 配 置
优秀的数据库系统必有一个相对最优的系统配置方案。系统配置要根据用户的实际情况设计,重要依据就是系统的吞吐量和系统对稳定性的规定,此外,用户的维护水平也是一个重要的方面。
9.4.1 软件配置
软件配置重要涉及数据库的选择和操作系统的选择。学生管理信息系统的软件配置要根据用户对系统的稳定性规定、系统的容量以及用户的维护水平来拟定。
(1)数据库选择
可以根据数据量的大小选择不同的数据库,如表1所示。数据量是指数据库中需存放的单表的最大记录数。
表1学生管理信息系统数据库的选择
用 户
数据量(登记表)
稳定性规定
维护水平
备选数据库
社区小学
100~500
低
差
Access、Foxpro
公立小学或社区小学
500~5000
低
差
Access、Foxpro
公立中学或社区大学
5000~50000
中
一般
SQL Server
专业型大学
50000~202300
较高
较好
SQL Server、Oracle
综合型大学
202300
高
好
Oracle
在本系统中,选择Access2023数据库。
(2)操作系统选择
可以根据用户量的大小选择不同的操作系统。操作系统的选择如表2所示。
表2学生理管信息系统操作系统的选择
用 户
每秒数据库并发
数据访问记录数
稳定性
规定
维护
水平
备选操作系统
社区小学
10~50
低
差
Windows 2023 Professional
Windows 2023 Professional
公立小学或社区中学
50~500
中
一般
Windows NT
Windows 2023 Server
公立中学或社区大学
500~2023
较高
较好
Windows NT
Windows2023 Server
Linux、UNIX
专业型大学
500~2023
较高
较好
Linux、UNIX
综合型大学
2023以上
高
好
Linux、UNIX
在本例中,选择Windows 2023 Server操作系统。
9.4.2 硬件配置
硬件配置重要涉及客户端硬件的选择和服务器端硬件的选择。学生管理信息系统的硬件配置要根据用户对系统的稳定性规定、系统的容量、系统的吞吐量以及用户的维护水平来拟定。
(1)客户端硬件选择
可以根据稳定性规定选择不同的客户端。一般情况下,对客户端的规定不高。如表3所示。
表3学生管理信息系统客户端硬件的选择
用 户
稳定性规定
备选客户端
查询客户端
低
Pentium CPU/64MB/4GB
管理客户端
中
Pentium Ⅲ/256MB/20GB
(2)服务器端硬件选择
可以根据数据量和吞吐量的大小选择不同的服务器硬件。服务器端的选择如表9-4所示。
表4 学生管理信息系统服务器端硬件的选择
用 户
每秒数据库并发
数据访问登记表
稳定性
规定
维护水平
备选服务器
社区小学
9~50
低
差
Pentium Ⅲ/256MB/20GB个人
计算机
公立小学或社区中学
50~500
中
一般
双CPU/1GB/RAID53×72GB
公立中学或社区大学
50~500
中
一般
双CPU/1GB/RAID53×72GB
专业型大学
500~2023
较高
较好
强4CPU/4GB/RAID56×72GB
综合型大学
2023以上
高
好
小型计逄机/双机热备
当然,这种配置不是绝对的,这里只给出参考配置的范围。具体的配置需要根据用户的需求和建设经费精确计算。
9.4.3 网络配置
学生管理信息系统的网络配置一般有如下几种类型。
(1)单机模式:即服务器和客户端在一台计算机上。
(2)百兆模式:计算机网络的速度为百兆,如图13所示。
(3)千兆模式:计算机网络的速度为千兆,事实上,没有必要给每个节点都配备千兆网络接口,只需要服务端配备千兆接口即可,如图14所示。
图13学生管理信息系统网络百兆配置
图14学生管理信息系统网络千兆配置
在实际的运营中,可以根据用户情况选择不同的网络配置,如表5所示。
表5学生管理信息系统配置的选择
用 户
每秒数据并发数据访问记录数
稳定性规定
维护水平
备选网络方案
社区小学
10~50
低
差
单机模式
公立小学或社区中学
50~500
中
一般
百兆模式
公立中学或社区大学
50~500
中
一般
百兆模式
专业型大学
500~2023
较高
较好
百兆模式
综合型大学
2023以上
高
好
千兆模式
9.5数 据 库 分 析
在开发学生管理信息系统时,可以先进行E-R图分析,然后对表和字段进行分析,最后进行数据库建模。
9.5.1 E-R图分析
对学生管理信息系统的E-R图分析是建立在UML系统模型基础上的。这里给出E-R图分析的结果。实体关系图的分析结果非常复杂,一般情况下使用从简到繁的方式进行设计。一方面从大的方面设计出各个实体之间的关系,然后在这个关系的基础上进行细化。
图15所示为学生管理信息系统的实体关系简图。
图15学生管理信息系统的实体关系简图
在简图的基础上进一步设计实体关系的具体结构。图16所示为学生管理信息系统的实体关系详图。图916只是学生管理信息系统最基本元素的实体关系图,可以在此基础上根据用户的不同需要进行扩展。
图16学生管理信息系统的实体关系图
9.5.2 表/字段分析和数据库建模
表/字段分析是建立在实体关系图基础上。对表和字段分析后就可以建立数据库模型了。以图16所示的学生管理信息系统的实体关系图为基础,可设计表和字段,然后建立数据库模型。
建立的数据库模型如图17所示。
图9学生管理信息系统的数据库模型
9.6数 据 库 设 计
数据库设计与应用等程序设计是分离的,数据库的设计非常重要。有了数据库模型,数据库的设计就简朴多了。在学生管理信息系统中,一方面要创建学生管理信息系统数据库,然后在数据库中创建需要的表和字段。下面分别讲述本系统中数据库的设计。本例采用Access2023数据库系统来进行数据库的设计。
9.6.1 创建数据库
下面给出在Access中创建数据库的过程。
(1)运营Access应用程序,在“新建数据库”选项组中选取“空Access数据库”单选,按钮,然后单击“拟定”按钮,如图18所示。
(2)在“文献新建数据库”窗口指定数据库的存放位置与数据库文献名称(本例为Stu.mdb)然后单击“创建”按钮,如图19所示。
图18新建数据库
图19指定数据库的存放位置与数据库文献名称
9.6.2 创建表
下面给出在Access 中创建表的过程。
(1)在创建数据库后,进入主界面,单击“Stu:数据库”子窗口中的“设计”按钮。此时将会出出“表1:表”窗口,如图20所示。
图20开始设计表
(2)在表的设计窗口“表1:表”中,按表6建立数据字段,并指定字段的数据类型与相关属性。
表6学生信息数据库(Stuinfo)
字 段 名 称
数 据 类 型
说 明
StuId
数字
编号
StuNo
数字
学号
DepartMent
文本
院系
Class
文本
班级
Name
文本
姓名
Sex
文本
性别
BirthDay
日期/时间
生日
NativePlace
文本
籍贯
建立数据库字段并指定字段的数据类型与相关属性后,字段设计界面如图21所示。
(3)在StuId字段上单击鼠标右键,选择快捷菜单中的“主键”选项,让StuId字段成为重要索引字段,则StuId 字段前方将出邮一个钥匙图标,如图22所示。
图21字段设计
图22设立“StuId”字段为主键
(4)字段设计完毕后,单击工具栏中的“保存”按钮,此时将会出现“另存为”对话框,在“表名称”文本框输入“StuInfo”,如图23所示,然后单击“拟定”按钮将这个表保存。
(5)回到“Stu:数据库”子窗口中,假如出现了StuInfo 这个表项目,就代表现在已经完毕学生数据文献的设计,如图24所示。
图23保存表
图24完毕数据库中的表创建工作
(6)反复环节(1)~(5),按表7、表8、表9、表10建立表,并指定表中各字估的数据类型与相关属性。
表7字籍变更数据表(Change)
字 段 名 称
数 据 类 型
说 明
StuNo
数字
学号
Name
文本
姓名
Class
文本
班级
DeparMent
文本
院系
ChangeName
文本
学籍变更项
ChangeTime
日期/时间
学籍变更时间
Remark
文本
备注
图8学生奖励数据表(Encourage)
字 段 名 称
数 据 类 型
说 明
StuNo
数字
学号
Name
文本
姓名
Class
文本
班级
DeparMent
文本
院系
EncourageName
文本
奖励项
EncourageTime
日期/时间
奖励时间
表9学生处罚数据表(Punish)
字 段 名 称
数 据 类 型
说 明
StuNo
数字
学号
Name
文本
姓名
Class
文本
班级
DepartMent
文本
院系
PunishName
文本
处罚项
PunishTime
日期/时间
处罚时间
表10学生成绩数据表(Score)
字 段 名 称
数 据 类 型
说 明
ScoreId
数字
编号
StuNo
数字
学号
Name
文本
姓名
Course
文本
课程
Score
数字
成绩
(7)将这些表分别名为Change、Encourage、Punish、Score,主键分别为:StuNo、StuNo、StuNo、Scoreld,设计结果如图25所示。,
(8)回到“Stu:数据库”子窗口中,出现了StuInfo、Change、Encourage、Punish、Scores个表项目,完毕数据文献的设计,如图26所示。
图25完毕数据库表项目的设计
图26完毕后端数据库创建工作
9.7界 面 设 计
以上内容完毕了数据库的后台工作,建立起了可以保障系统顺利、对的运营的后台。界面设计工作在进行系统开发的时候是必不可少,也是十分重要的。下面就对学生管理信息系统的界面设计。
9.7.1 用户登录界面设计
运用用户登录成功能实现对用户操作权限的限制。管理员和学生的权限不同样,管理员拥有系统的所有权限,学生只有查询修改个人信息和打印成绩单的权限。用户必须输入对的的密码才干进入下一界面,假如用户的密码输入错误,应用程序会提醒错误信息。用户假如连续3次输入错误,应用程序会逼迫使用者退出并终止应用程序的运营,图27所示是用户登录界面窗体。
9.7.2 学生管理信息系统主界面设计
学生管理信息系统主界面重要实现新生信息录入、成绩管理、学籍变更、处罚管理、奖励管理和查询修改的功能。选择该界面中工具栏中的不同按钮,就会进入实现不同功能的窗体。图28是图书馆理系统主界面窗体。
图27用户登录界面窗体
图28学生管理信息系统主界面窗体
这里重要介绍与数据库相关的组件的属性,如表11所示。
表11学生管理信息系统主界面中数据库组件的属性设立
组 件
属 性
属 性 值
Table1
DatebaseName
Student
TableName
Stulnfo
Table2
DatebaseName
Student
TableName
Change
Table3
DatebaseName
Student
TableName
Encourage
Table4
DatebaseName
Student
TableNsam
Punish
Table5
DatebasdeName
Student
TableName
Score
Query1
DatebaseName
Student
Query2
DatebaseName
Student
Query3
DatebaseName
Student
Query4
DatebaseName
Student
Query5
DatebaseName
Student
DataSource1
DataSet
Table1
DataSource2
DataSet
Query2
DataSource3
DataSet
Query3
DataSource4
DataSet
Query4
DataSource5
DataSet
Table5
DataSource6
DataSet
Query5
9.7.3 新生信息录入界面设计
新生信息录入界面重要实现学生信息的添加功能,涉及学号、性别、出生日期、籍贯、姓名、班级、所属院系等信息的添加,图29是新生信息录入界面窗体。
图29新生信息录入界面窗体
9.7.4 成绩管理界面设计
成绩管理界面重要实现成绩的添加和校对修改的功能,图30是成绩管理界面窗体。
图30成绩管理界面窗体
9.7.5 学籍变更界面设计
学籍变更界面是实现学生学籍变更的功能,图31是学籍变更界面窗体。
图31学籍变更界面窗体
9.7.6 奖励管理界面设计
当学生在校表现优秀,学校应当奖励该学生,以鼓励大家的学习热情。奖励管理界面用于实现学生奖励的功能。相应的奖项有校特等奖、校一等校、校二等校、校三等校、工作奖等,用户可以根据实际情况进行设计。图32是奖励管理界面窗体。
图32奖励管理界面窗体
9.7.7 处罚管理界面设计
当学生在校的表现差,学校应当处罚该学生。处罚管理界面就是实现学生处罚的功能。相应的处罚项有警告、记过、开除等,用户可以根据实际情况进行设计。图33是处罚管理界面窗体。
图33处罚管理界面窗体
9.7.8 查询修改界面设计
学生可以根据自己的学号在查询修改界面中查询自己的个人信息,涉及基本信息、个人成绩、学籍变更情况、奖励和处罚情况。假如发现基本信息有错误的话,有权进行修改,并且学生有权打印自己的成绩单。图9-34是查询修改界面窗体。
图34查询修改界面
9.8代 码 分 析 与 实 现
上面对程序界面设计进行了具体的设计,基本完毕了程序界面的设计工作。程序代码是程序的核心所在,是系统开发的灵魂。下面对系统的代码做具体的分析。
9.8.1 用户登录的代码实现
学生管理信息系统启动时,一方面出现的是系统主界面。单击系统主界面中工具栏的“用户登录”按钮,就弹出用户登录界面。程序从配置文献中获取管理员和学生的密码,和用户输入的密码比较,假如密码对的,则根据身份配权限;假如不对的,则提醒用户重输或退出:重输3次以上,系统自动退出。代码如下:
Proctdure TLoginFrm.BitBtn1Click(Sender:TObject);//“用户登陆”按钮的单击事件
Var pwdfile:textfile;
PwdStr:string;
Begin
if RadioButton1.checked=True then
assingnfile(pwdfile,’.\Admini.cfg’);
if RadioButton2.checked=True then
assingfile(pwdfile,’.\student.cfg’);
reset(pwdfile);
readln(pwdfile,pwdStr);
closefile(pwdfile);
Times:=Times=1;
If edit1.Text=PwdStr then
begin
close;
StuMainFrm.Enabled:=True
StuMainFrm.PageControll.ActivePage:=StuMainFrm.Tabsheet6;
StuMainFrm.PageControll.Visible:=true;
if Radiobuttonl.checked=True then
begin
StuMainFrm.ToolButton2.Enabled:=Ture;
StuMainFrm.Toolbutton3.Enabled:=True;
StuMainFrm.ToolButton4.Enabled:=True;
StuMainFrm.ToolButton5.Enabled:=True;
StuMainFrm.ToolButton8.Enabled:=True;
StuMainFrm.ToolButton6.Enabled:=True;
end;
if RadioButton2.checked=True then
begin
StuMainFrm.ToolButton6.Enabled:=True;
end;
end
else
begin
if MessageDlg(‘密码输入错误,是否退出?’,mtContirmation,[mbYes,mbNo],0)=mryes
then
begin
close;
StuMainFrm.Enabled:=True;
end
else
begin
if times<3 then editl.SetFocus
else
begin
MessageDlg(‘对不起,密码输入严重错误,请退出!’,mtInformation,[mbOk],0);
Application.Terminate;
end;
end;
end;
end;
为了防止用户多次重输密码,限制了输入了次数为3次,因此需要对次数进行初始化,活加代码如下:
Procedure TLoginFrm.FormShow(Sender:TObject);
Begin
Times:=0;
End;
9.8.2 成绩管理的代码实现
当管理员选择了一位学生后,输入各科成绩,程序把数据保存到数据库。代码如下:
Procedure TStuMainFrm.BitBtn9Click(Sender:TObject);//“添加”按钮的单击事件
var StuNo,StuName:string;
i:integer;
begin
with Query do
begin
close;
Sql.Clear;
Sql.Add(‘Select StuNo from Score Whers StuNo=’+’’’’+DbEdit6.Text+’’’’);
Open;
if recordcount=0 then
begin
StuNo:=DbEdit6.Text;
StuName:=DbEdit7.Text;
for i:=l to 12 do
begin
if Course[i]<>’0’then
with Table5 do
begin
Open;
Append;
SetFields([nil,StuNo,kStuName,Course[i],Score[i]]);
Post;
end;
end;
end
else
MessageDlg(‘对不起,该记录已经存在!’,mtInformation,[mbOk],0);
end;
end;
9.8.3 学籍变更的代码实现
当管理员选择了学籍需要变更的学生后,输入变更项和变更时间,程序把数据保存到数据库。代码如下:
procedure TStuMainFrm.BitbtnlClick(Sender: Tobject);//“添加”按钮的单击事件
var StuNo,StuName,StuClass,StuDepart.ChangeName,ChangeRemark:string;
begin
winth Table2 do
begin
Open;
StuNo:=Editl.text;
StuName:=Edit2.text;
StuClass:=Edit3.text;
StuDepart:=Edit4.text;
ChangeName:=ComboBoxl.Text;
ChangeRemark:=Edit5.text;
append;
SetFields([StuNo,StuName,StuClass,StuDepart,ChangeName,ChangeRemark,
Formatdatetime(‘dddddde’,DateTimePicker2.Dat)]);
Post;
end;
end;
9.8.4 奖励管理的代码实现
当管理员选择了需要奖励的学生后,选择了奖项和奖励时后,程序把数据保存到数据库。代码如下:
procedure TStuMainFrm.bitbtn3Click(Sender: TObject);//“添加”按钮的单击事件
var StuNo,StuName,StuClass,StuDepart,EncourageName:sering;
begin
with Table3 do
begin
Open;
StuNo:=Edit6.text;
StuName:=Edit7.text;
StuClass:=Edit8.text;
StuDepart:=Edit9.text;
if RadioButtonl.checked=true then
EncourageName:=RadioButtonl.Caption;
if RadioButton2.checked=true then
EncourageName:=RadioButton2.Caption;
if RadioButton3.checked=true then
EncourageName:=RadioButton3.lCaption;
if RadioButt
展开阅读全文