Oracle学生成绩管理整理Word下载.docx
《Oracle学生成绩管理整理Word下载.docx》由会员分享,可在线阅读,更多相关《Oracle学生成绩管理整理Word下载.docx(32页珍藏版)》请在冰豆网上搜索。
1.学生基本信息及所选科目成绩的录入或导入。
2.基本信息的查询(分系、班级;
分科目)与修改。
3.对每系或每班各科成绩进行分析(即求单科平均成绩、及格率和优秀率);
4.对所开课程的成绩分析(求其平均成绩,最高分和最低分);
5.对学生考试成绩进行排名(单科按系别或班级进行排名,对每一个班级,同一学期学生总体成绩进行排名,并显示各科成绩信息)
6.不及格情况的统计、导出、打印
2.系统需求
该学生成绩管理系统采用java语言开发研制,JavaBean作为行为模型,servlet作为响应服务器,DIV+CSS+javascript设计网页,oracle作为数据存储。
在完成用户需求同时,完成条件查询等功能。
针对学生成绩及其数据特点,可以全面实现对学生成绩的插入、查询、修改、删除和输出等功能的计算机管理。
它能使学生成绩数据的工作人员从繁重的工作中解脱出来,大大减轻了工作量,减少人为的工作失误,全面提高学生成绩管理的效率,从而使学校对于学生成绩的管理水平和技术水平跃上一个新的台阶。
3.系统开发环境
1.开发语言:
java+jsp
2.开发工具:
IE8.0,Tomcat,jdk1.7,dreamweaver
3.数据库:
Oracle10g
4.文档编写工具:
word
5.服务器端运行环境:
oracle10g,Tomcat,jdk1.7
6.客户端运行环境:
浏览器
三、系统设计
1.功能模块
2.系统流程图
3.数据字典
(1)数据存储
数据表:
用户表
表组成:
用户名,密码
数据项:
用户名
数据类型:
varchar
数据长度:
50
密码
(2)数据流定义:
登陆
名称:
登陆
简述:
用户登陆系统
数据来源:
用户
数据去向:
数据组成:
用户名+密码
四、数据库设计
1.数据库结构设计
院系表(cs)
字段名
数据类型
是否为空
说明
Cs_class
Varchar2(50)
Notnull
班级名(主键)
Cs_dept
系别
Cs_grade
年级
成绩表(gd)
Gd_stu_no
Varchar2(15)
学号(联合主键、外键)
Gd_sub_subject
科目(联合主键、外键)
Gd_grade
Number(3)
成绩
科目表(sub)
Sub_subject
科目名(主键)
Sub_teacher_name
Varchar2(10)
任课老师名
学生表(student)
Stu_no
学号(主键)
Stu_name
学生名
Stu_cs_class
班级名(外键)
Stu_sex
Varchar(4)
性别(约束)
Stu_birthday
出生日期
Stu_phone
Varchar2(200)
联系电话
用户表(user_)
name
用户名(主键)
Passwd
notnull
2.实体联系图
3.数据库源代码
selectuserenv('
language'
)fromdual。
shutdownimmediatestartupmount
ALTERSYSTEMENABLERESTRICTEDSESSION。
ALTERSYSTEMSETJOB_QUEUE_PROCESSES=0。
ALTERSYSTEMSETAQ_TM_PROCESSES=0。
ALTERDATABASEOPEN。
alterdatabasecharactersetINTERNAL_USEUTF8。
shutdownimmediate
startup
createuserxz105151640043identifiedbyxz
/
grantdbatoxz
connxz105151640043/xz
setserveroutputon
createtableuser_(namevarchar(50)primarykey,passwdvarchar(50)notnull)
insertintouser_values('
xz'
'
)。
Commit
createtablecs(
cs_classvarchar(50)primarykey,
cs_deptvarchar(50)notnull,
cs_gradevarchar(50)notnull
)
createtablestudent(
stu_novarchar(15)primarykey,
stu_namevarchar(10)notnull,
stu_sexvarchar(4)notnullcheck(stu_sex='
男'
orstu_sex='
女'
),
stu_birthdayvarchar(50),
stu_phonevarchar(50),
stu_cs_classvarchar(50),
constraintclass_fkforeignkey(stu_cs_class)referencescs(cs_class)
ondeletecascade
/
createtablesub(
sub_subjectvarchar(50)primarykey,
sub_teacher_namevarchar(10)
createtablegd(
gd_stu_novarchar(15),
gd_sub_subjectvarchar(50),
gd_gradenumber(3)notnull,
primarykey(gd_stu_no,gd_sub_subject),
constraintfk_gd_stu_noforeignkey(gd_stu_no)referencesstudent(stu_no),
constraintfk_gd_sub_subjectforeignkey(gd_sub_subject)referencessub(sub_subject)
createorreplaceprocedurep_insert_stu(
p_stu_noinstudent.stu_no%type,
p_stu_nameinstudent.stu_name%type,
p_stu_sexinstudent.stu_sex%type,
p_stu_birthdayinstudent.stu_birthday%type,
p_stu_phoneinstudent.stu_phone%type,
p_stu_cs_classinstudent.stu_cs_class%type,
s_state_valuesoutnumber
)as
begin
insertintostudent(stu_no,stu_name,stu_sex,stu_birthday,stu_phone,stu_cs_class)
values(p_stu_no,p_stu_name,p_stu_sex,p_stu_birthday,p_stu_phone,p_stu_cs_class)。
ifsql%rowcount=1
thens_state_values:
=0。
endif。
exception
whenothersthens_state_values:
=1。
commit。
end。
createorreplaceprocedurec_insert_stu(
c_stu_noinstudent.stu_no%type,
c_state_valuesoutnumber)
as
begin
selectcount(*)intoc_state_valuesfromstudent
wherestu_no=c_stu_no。
createorreplaceprocedurec_insert_stu_fk(
c_cs_classincs.cs_class%type,
c_state_values_fkoutnumber)
selectcount(*)intoc_state_values_fkfromcs
wherecs_class=c_cs_class。
createorreplaceprocedurep_insert_cs(
p_cs_deptincs.cs_dept%type,
p_cs_gradeincs.cs_grade%type,
p_cs_classincs.cs_class%type,
s_state_valuesoutnumber)
insertintocs(cs_dept,cs_grade,cs_class)
values(p_cs_dept,p_cs_grade,p_cs_class)。
whenothersthens_state_values:
createorreplaceprocedurec_insert_cs(
selectcount(*)intoc_state_valuesfromcs
createorreplaceprocedurep_insert_sub(
p_sub_subjectinsub.sub_subject%type,
p_sub_teacher_nameinsub.sub_teacher_name%type,
insertintosub(sub_subject,sub_teacher_name)
values(p_sub_subject,p_sub_teacher_name)。
end。
createorreplaceprocedurec_insert_sub(
c_sub_subjectinsub.sub_subject%type,
selectcount(*)intoc_state_valuesfromsub
wheresub_subject=c_sub_subject。
createorreplaceprocedurep_insert_gd(
p_gd_stu_noingd.gd_stu_no%type,
p_gd_sub_subjectingd.gd_sub_subject%type,
p_gd_gradeingd.gd_grade%type,
insertintogd(gd_stu_no,gd_sub_subject,gd_grade)
values(p_gd_stu_no,p_gd_sub_subject,p_gd_grade)。
ifp_gd_grade=null
=2。
createorreplaceprocedurec_insert_gd(
selectcount(*)intoc_state_valuesfrom(
selectgd_stu_nofromgd
wheregd_sub_subject=p_gd_sub_subject
wheregd_stu_no=p_gd_stu_no。
createorreplaceprocedurec_insert_gd_fk1(
c_state_values_fk1outnumber)
selectcount(*)intoc_state_values_fk1fromstudent
createorreplaceprocedurec_insert_gd_fk2(
c_state_values_fk2outnumber)
selectcount(*)intoc_state_values_fk2fromsub
createorreplaceprocedurep_select_stu_no_info(
p_stu_noinoutstudent.stu_no%type,
p_stu_nameoutstudent.stu_name%type,
p_stu_sexoutstudent.stu_sex%type,
p_stu_birthdayoutstudent.stu_birthday%type,
p_stu_phoneoutstudent.stu_phone%type,
p_stu_cs_classoutstudent.stu_cs_class%type,
p_cs_deptoutcs.cs_dept%type,
p_cs_gradeoutcs.cs_grade%type,
c_state_values:
selectstu_no,stu_name,stu_sex,stu_birthday,stu_phone,stu_cs_class,cs_dept,cs_grade
intop_stu_no,p_stu_name,p_stu_sex,p_stu_birthday,p_stu_phone,p_stu_cs_class,p_cs_dept,p_cs_grade
fromstudent,cs
wherestu_cs_class=cs_classandstu_no=p_stu_no。
whenNO_DATA_FOUNDthenc_state_values:
whenothersthenc_state_values:
createorreplaceprocedurep_select_stu_no_gd(p_stu_noinstudent.stu_no%type,cursor_gdoutsys_refcursor)
opencursor_gdfor
selectgd_sub_subject,gd_grade
fromgd
wheregd_stu_no=p_stu_no。
createorreplaceprocedurep_select_stu_name(
p_stu_nameinstudent.stu_name%type,
cursor_stuoutsys_refcursor,
opencursor_stufor
wherestu_name=p_stu_nameandstu_cs_class=cs_class。
createorreplaceprocedurep_pm_sum(
cursor_gd_sumoutsys_refcursor
opencursor_gd_sumfor
selectdistinctsno,stu_name,sum
fromstudent,(selectgd_stu_noassno,sum(gd_grade)assum
fromgd
groupbygd_stu_no
wherestu_no=sno
orderbysumdesc。
createorreplaceprocedurep_pm_sub(
cursor_gd_suboutsys_refcursor
opencursor_gd_subfor
selectgd_stu_no,stu_name,gd_grade
fromgd,student
wheregd_sub_subject=p_gd_sub_subjectandstu_no=gd_stu_no
orderbygd_gradedesc。
createorreplaceprocedurep_pm_class(
cursor_gd_classoutsys_refcursor
opencursor_gd_classfor
wherestu_no=snoandstu_cs_class=p_stu_cs_class
createorreplaceprocedurep_fx(
cursor_fxoutsys_refcursor
opencursor_fxfor
selectgd_sub_subject,max(gd_grade)aszuigao,min(gd_grade)aszuidi,avg(gd_grade)aspingjun,SUM(CASEWHENgd_grade>
=60THEN1ELSE