管锦亮 张庆
摘 要: 本文主要研究在建筑类高校学生成绩管理系统的功能架构,并设计一个基于web技术的学生信息管理系统,采用B/S+C/S模式作为主要开发模式,后台数据库设计采用oracle数据库。使用的web技术包括三层结构的实现技术、开发平台技术等。基于web的学生成绩管理系统的功能包括学生信息管理、课程信息管理和成绩管理等功能,系统的设计包括数据库的设计和各功能模块的设计。
关键词: 成绩管理系统 ORACLE 系统开发设计
一、引言
建筑类高校具有的特性,如果按照传统的学生管理方式,已经跟不上现在高校发展的需求。由于建筑类高校已经从学年制向学分制过渡,一般高校都提供了一定数量的公共选修课程供学生选课,而传统的基于C/S模式很难满足大量学生同时选课。因此,网上选课迫切需要提上日程。基于此,本文主要介绍一种学生成绩管理系统,满足网上选课的需求。
二、系统开发思路
本文框架结构如图1:
三、系统开发环境设计
硬件环境拓扑如图2:
1.开发环境
(1)操作系统:Windows7
(2)浏览器:Mozilla Firefox
(3)Web服务器:Apache-Tomcat
(4)数据库服务器:oracle
(5)开发工具:MyEclipse10 英文版,方便快捷地创建web工程。
2.运行环境
(1)服务器运行环境
B/S结构系统的运行规模、稳定性等特性主要取决于服务器端的软硬件配置和网络系统的配置,三层B/S结构,则需要Web服务器和数据库服务器各自独立运行。
(2)客户端运行环境
由于B/S结构系统的客户端是“瘦客户端”,即客户端计算机只需安装操作系统和Mozilla Firefox浏览器并接入网络,无须作任何特殊处理即可实现系统访问。
3.系统目标
设计学生成绩管理系统,实现学生信息的查询、修改,课程信息的查询、修改,学生成绩信息查询管理和系统常规管理。
4.系统功能
建立学生信息表、教师信息表、管理员信息表、成绩信息表和课程信息表。
用户包括:管理员、教师和学生;学生可查询学生个人信息、课程信息和成绩信息,更改自己的注册信息;教师可查询学生和教师个人信息、课程信息和成绩信息,更改自己的注册信息、课程信息和成绩信息;管理员除具有教师和学生的所有权限外,还可以对全部信息进行添加和更改,并可以添加、更改和删除,要求系统能有效、快速、安全、可靠和无误地完成上述操作。具体功能如下:
(1)学生信息
操作要求:能注册、修改、注销;访问时要进行身份验证,查询自己、课程和成绩的信息;更改自己的注册信息。
(2)教师信息
操作要求:能注册、修改、注销;访问时要进行身份验证,查询自己、学生、课程和成绩的信息;更改自己的注册信息、课程和成绩信息。
(3)管理员信息
操作要求:可以对全部信息进行查询和更改。
(4)成绩信息
操作要求:学生输入自己的账号密码可以查询自己的课程成绩信息;教师输入自己的账号密码可以查询和修改课程成绩信息。
(5)课程信息
操作要求:学生输入自己的账号密码可以查询自己的课程信息和选课;教师输入自己的账号密码可以查看和发布课程信息。
四、数据库设计
1.总体设计目标
系统规划系统开发的总体任务是实现学生信息关系的系统化、规范化和自动化。面对庞大的信息量,要做到对学生的各类信息有准确、快速了解,有科学的统计和快速的查询。
2.系统数据流图和E-R图设计
数据流图(DFD,data flow diagram),是采用图形方式表达系统的逻辑功能和数据在系统内部的逻辑流向和逻辑变换过程的表达工具,如图3:
系统整体E-R图如图4:
3.数据库设计
数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求。
以下是根据系统需求所做的设计。
(1)系统完整性约束
外键约束在一定程度上保证了数据的完整性和一致性,该系统下需要定义的几个外键约束如下:
/*外键约束定义*/
/*教师表和教师账号表*/
alter table teacher_info add constraint foreign1 foreign key(tno) references teacher(tno);
/*学生表和学生账号表*/
alter table student_info add constraint foreign2 foreign key(sno) references student(sno);
/*课程表和教师账号表*/
alter table project add constraint foreign3 foreign key(tno) references teacher(tno);
/*成績表和学生账号表*/
alter table grade add constraint foreign4 foreign key(sno) references student(sno);
/*成绩表和课程表*/
alter table grade add constraint foreign5 foreign key(cno) references project(cno);
该系统的所有主键约束已经在创建表的时候定义完毕。
(2)系统触发器
触发器是一种特殊类型的存储过程,它在指定的表中的数据发生变化时自动生效。以下是该系统需要的触发器,其中只以部分代码作为展示:
/*学生账号表主键触发器*/
create or replace trigger student_trigger
before insert on student
for each row
declare
l_lock_id number;
resource_busy exception;
pragma exception_init(resource_busy,-54);
begin
l_lock_id:=dbms_utility.get_hash_value(to_char(:new.sno),0,1024);
if(dbms_lock.request(
id =>l_lock_id,
lockmode=>dbms_lock.x_mode,
timeout=>0,
release_on_commit=>TRUE
) not in(0,4))
then
raise resource_busy;
end if;
end;
/
/*创建主键ID自增触发器*/
create or replace trigger increase_stu
before insert on student
for each row
when (new.sno is null)
begin
select student_seq.nextval into :new.sno from dual;
end;
/
五、系统的测试、运行和维护
1.测试范围和结果
(1)系统登录测试:进行用户身份验证、权限确认测试,当输入的用户名或密码有误时,给予提示。
(2)管理员和操作员权限界面测试:登录系统时系统将根据登录者身份分配不同的权限页面。
(3)数据关联测试:测试有关联关系的数据是否已实现了关联。如教师登录后对学生成绩进行录入或修改后,学生能否看到本人的成绩更改信息。教师在成绩录入界面录入或修改学生成绩,学生在成绩查询界面查看个人成绩。
(4)主要单元模块测试:测试主要功能单元的功能实现是否完整。
2.运行和维护
经以上测试可见,系统已经实现了需求功能,运行正常无误。维护工作主要由技术支持工程师完成。
六、结语
本文主要研究在建筑类高校学生成绩管理系统的功能架构,并设计一个基于web技术的学生信息管理系统,采用B/S+C/S模式作为主要开发模式,后台数据库设计采用oracle数据库。从业务流程、功能描述、数据流、数据库四方面对系统进行了详尽的分析和主要功能模块的实现,后续还需要进行完善和详细的开发,设计中存在的不足有待在后续使用过程中进行弥补。
参考文献:
[1]胡祖辉.学生成绩管理系统数据查询优化方法研究[J].软件导刊,2016,15(9):149-151.
[2]李文娟,郭永红.基于C语言的学生成绩管理系统的设计与实现[J].中央民族大学学报(自然科学版),2016,25(2):36-42.
[3]鲍倩.基于Java語言的学生成绩管理系统设计与实现[J].电子科技,2013,26(9):155-156,159.
基金项目:安徽建筑大学教学研究项目(2015yx13,2015yx10)。