Oracle数据库课程设计报告学生成绩管理系统样本.docx

上传人:b****4 文档编号:4134542 上传时间:2023-05-06 格式:DOCX 页数:37 大小:336.30KB
下载 相关 举报
Oracle数据库课程设计报告学生成绩管理系统样本.docx_第1页
第1页 / 共37页
Oracle数据库课程设计报告学生成绩管理系统样本.docx_第2页
第2页 / 共37页
Oracle数据库课程设计报告学生成绩管理系统样本.docx_第3页
第3页 / 共37页
Oracle数据库课程设计报告学生成绩管理系统样本.docx_第4页
第4页 / 共37页
Oracle数据库课程设计报告学生成绩管理系统样本.docx_第5页
第5页 / 共37页
Oracle数据库课程设计报告学生成绩管理系统样本.docx_第6页
第6页 / 共37页
Oracle数据库课程设计报告学生成绩管理系统样本.docx_第7页
第7页 / 共37页
Oracle数据库课程设计报告学生成绩管理系统样本.docx_第8页
第8页 / 共37页
Oracle数据库课程设计报告学生成绩管理系统样本.docx_第9页
第9页 / 共37页
Oracle数据库课程设计报告学生成绩管理系统样本.docx_第10页
第10页 / 共37页
Oracle数据库课程设计报告学生成绩管理系统样本.docx_第11页
第11页 / 共37页
Oracle数据库课程设计报告学生成绩管理系统样本.docx_第12页
第12页 / 共37页
Oracle数据库课程设计报告学生成绩管理系统样本.docx_第13页
第13页 / 共37页
Oracle数据库课程设计报告学生成绩管理系统样本.docx_第14页
第14页 / 共37页
Oracle数据库课程设计报告学生成绩管理系统样本.docx_第15页
第15页 / 共37页
Oracle数据库课程设计报告学生成绩管理系统样本.docx_第16页
第16页 / 共37页
Oracle数据库课程设计报告学生成绩管理系统样本.docx_第17页
第17页 / 共37页
Oracle数据库课程设计报告学生成绩管理系统样本.docx_第18页
第18页 / 共37页
Oracle数据库课程设计报告学生成绩管理系统样本.docx_第19页
第19页 / 共37页
Oracle数据库课程设计报告学生成绩管理系统样本.docx_第20页
第20页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Oracle数据库课程设计报告学生成绩管理系统样本.docx

《Oracle数据库课程设计报告学生成绩管理系统样本.docx》由会员分享,可在线阅读,更多相关《Oracle数据库课程设计报告学生成绩管理系统样本.docx(37页珍藏版)》请在冰点文库上搜索。

Oracle数据库课程设计报告学生成绩管理系统样本.docx

Oracle数据库课程设计报告学生成绩管理系统样本

Oracle数据库课程设计

顾曰学生考试管理系统

班级11网工2班

姓名马路瑶

学号

指导老师杨超峰

一、前言2

二、需求分析3

三、系统设计5

四、数据库设计7

五、编程步骤19

六、测试25

七、课程设计总结33

八、参考资料34

九、附录34

—.前言

学生考试管理杲一个学校必不可少的部分,随着计算机和计算机知识的普及,学生考试管理系统得到了更大的发展空间,经过对学生考试管理系统的开发,能够提高校务人员的工作效率。

学生成绩管理是一个学校不可缺少的部分,一个良好的学生成绩管理系统应该能够为用户提供充分的信息和快捷的查询手段。

学生考试管理系统对学校加强学生考试管理有着极其重要的作用.由于各个大学都在持续扩招,学生的数量日益庞大,对于如何管理如此庞大的学生考试数据显得更为复杂,传统的手工成绩管理不但工作量大,而且容易出现冋题,如:

效率低、保密性差,另外时间—长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。

已不能适应时代的发展。

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能己为人们深刻认识,它已进入人类社合的各个领域并发挥着越来越重要的作用。

作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,具有手工管理所无法比拟的优点。

例:

检索迅速、查找方便.可靠性高.存储量大、保密性好、寿命长、成本低等。

这些优点能够极大地提高管理者管理的效率,也是学校走向科学化、正规化管理,与世界接轨的重要条件。

因此,开发设计这样一套学生成考试理软件成为很有必要的事情.

2.需求分析

1•功能需求

1.学生基本信息及所选科目成绩的录入或导入。

2.基本信息的查询(分系、班级;分科目)与修改。

3.对每系或每班各科成绩逬行分析(即求单科平均成绩、及格率和优秀率);

4.对所开课程的成绩分析(求其平均成绩,最高分和最低分);

5.对学生考试成绩进行排名(单科按系别或班级进行排名,对每—个班级,同一学期学生总体成绩进行排名,并显示各科成绩信息)

6.不及格情况的统计、导出.打印

2•系统需求

该学生成绩管理系统采用java语言开发研制,JavaBean作为行为模型,servlet作为响应服务器,DIV+CSS+javascript设计网页,oracle作为数据存储。

在完成用户需求同时,完成条件查询等功能。

针对学生成绩及其数据特点,能够全直实现对学生成绩的插入.查询.修改.删除和输出等功能的计算机管理。

它能使学生成绩数据的工作人员从繁重的工作中解脱出来,大大减轻了工作量,减少人为的工作失误,全面提高学生成绩管理的效率,从而使学校对于学生成绩的管理水平和技术水平跃上一个新的台阶。

3•系统开发环境

1•开发语言:

java+jsp

3.数据库:

Oracle10g

4.文档编写工具:

word

5.服务器端运行环境:

oracle10g,Tomcat,jdk1.7

6.客户端运行环境:

浏览器

3.系统设计

1•功能模块

 

2•系统流程图

 

 

121/TGTtz?

缺牛II笛

3•数据字典

(1)数据存储

数据表:

用户表

表组成:

用户名,密码

数据项:

用户名

数据类型:

varchar

数据长度:

50数据项:

密码

数据类型:

varchar

数据长度:

50

(2)数据流定义:

登陆

名称:

登陆

简述:

用户登陆系统

数据来源:

用户

数据去向:

用户表

数据组成:

用户名+密码

4.数据库设计

1•数据库结构设计

院系表(cs)

字段名

数据类型

是否为空

说明

Csclass

Varchar2(50)

Notnull

班级名(主键)

Cs.dept

Varchar2(50)

Notnull

系别

Csgrade

Varchar2(50)

Notnull

年级

成绩表(gd)

字段名

数据类型

是否为空

说明

Gd_stu_no

Varchar2(15)

Notnull

学号(联合主键、外键)

Gd_sub_subject

Varchar2(50)

Notnull

科目(联合主键.外键)

Gdgrade

Number(3)

Notnull

成绩

科目表(sub)

字段名

数据类型

是否为空

说明

Subsubject

Varchar2(50)

Notnull

科目名(主键)

Subteachername

Varchar2(10)

任课老师名

学生表(student)

字段名

数据类型

是否为空

说明

Stuno

Varchar2(15)

Notnull

学号(主键)

Stu_name

Varchar2(10)

Notnull

学生名

Stucsclass

Varchar2(50)

班级名(外键)

Stu.sex

Varchar(4)

Notnull

性别(约束)

Stubirthday

Varchar2(50)

出生日期

Stuphone

Varchar2(200)

联系电话

用户表(userj

字段名

数据类型

是否为空

说明

name

Varchar2(50)

Notnull

用户名(主键)

Passwd

Varchar2(50)

notnull

密码

2•实体联系图

3•数据库源代码selectuserenv(rlanguage,)fromdual;

shutdownimmediatestartupmount

ALTERSYSTEMENABLERESTRICTEDSESSION;

ALTERSYSTEMSETJOB_QUEUE_PROCESSES=0;

ALTERDATABASEOPEN;

alterdatabasecharactersetINTERNAL_USEUTF8;

shutdownimmediate

startup

createuserxzidentifiedbyxz

/

grantdbatoxz

/

connxz/xz

/

setserveroutputon

/

createtableuser_(namevarchar(50)primarykey.passwdvarchar(50)

notnull)

/

insertintouser_valuesCxzTxz');

/

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=*®orsUi_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(lO)

/

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);

讦sql%rowcount=l

thens_state_values:

=O;

endif;

exception

whenothersthens_state_values:

=l;

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;

end;

/

createorreplaceprocedurec_insert_stu_fk(

c_cs_classincs.cs_class%type,c_state_values_fkoutnumber)as

begin

selectcount(*)intoc_state_values_fkfromcs

wherecs_class=c_cs_class;

end;

/

createorreplaceprocedurep_insert_cs(p_cs_deptincs.cs_dept%type,

P_cs_gradeincs.cs_grade%type,

p_cs_classincs.cs_class%type,s_state_valuesoutnumber)as

begin

insertintocs(cs_dept,cs_grade,cs_class)values(p_cs_dept,p_cs_grade,p_cs_class);讦sql%rowcount=l

thens_state_values:

=O;

endif;

exception

whenothersthens_state_values:

=l;

commit;

createorreplaceprocedurec_insert_cs(

c_cs_classincs.cs_class%type,c_state_valuesoutnumber)

as

begin

selectcount(*)intoc_state_valuesfromcs

wherecs_class=c_cs_class;

end;

/

createorreplaceprocedurep_insert_sub(

p_sub_subjectinsub.sub_subject%type,

p_sub_teacher_nameinsub.sub_teacher_name%type,s_state_valuesoutnumber)

as

begin

insertintosub(sub_subject,sub_teacher_name)values(p_sub_subject,p_sub_teacher_name);

ifsql%rowcount=l

thens_state_values:

=O;

endif;

exception

whenothersthens_state_values:

=l;

commit;

end;

/

createorreplaceprocedurec_insert_sub(c_sub_subjectinsub.sub_subject%type,c_state_valuesoutnumber)as

begin

selectcount(*)intoc_state_valuesfromsub

wheresub_subject=c_sub_subject;

end;

/

createorreplaceprocedurep_insert_gd(

P_gcl_stu_noingd.gd_stu_no%type,

P_gd_sub_subjectingd.gd_sub_subject%type,

P_gd_gradeingd.gd_grade%type,s_state_valuesoutnumber)as

begin

values(p_gd_stu_no,p_gd_sub_subject,p_gd_grade);ifsql%rowcount=l

thens_state_values:

=O;

endif;

exception

whenothersthens_state_values:

=l;

ifp_gd_grade=null

thens_state_values:

=2;

endif;

commit;

end;

/

createorreplaceprocedurec_insert_gd(

P_gd_stu_noingd.gd_stu_no%type,

P_gd_sub_subjectingd.gd_sub_subject%type,c_state_valuesoutnumber)as

begin

selectcount(*)intoc_state_valuesfrom(

selectgd_stu_nofromgd

wheregd_sub_subject=p_gd_sub_subject

wheregd_stu_no=p_gd_stu_no;

end;

/

createorreplaceprocedurec_insert_gd_fkl(

c_stu_noinstudent.stu_no%type,

c_state_values_fk1outnumber)

as

begin

selectcount(*)intoc_state_values_fk1fromstudent

wherestu_no=c_stu_no;

end;

/

createorreplaceprocedurec」nsert_gd_fk2(c_sub_subjectinsub.sub_subject%type,c_state_values_fk2outnumber)

as

begin

selectcount(*)intoc_state_values_fk2fromsub

wheresub_subject=c_sub_subject;

end;

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_valuesoutnumber)begin

c_state_values:

=O;

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

wherestucsclass=csclassandstuno=pstuno;

exceptionwhenothersthenc_state_values:

=2;

createorreplaceprocedurep_select_stu_no_gd(p_stu_noinstudent.stu_no%type,cursor_gdoutsys_refcursor)

as

begin

opencursor_gdfor

selectgd_sub_subject,gd_grade

fromgd

wheregd_stu_no=p_stu_no;

end;

/

createorreplaceprocedurep_select_stu_name(

p_stu_nameinstudent.stu_name%type,

cursor_stuoutsys_refcursor,

c_state_valuesoutnumber)begin

c_state_values:

=O;opencursor_stuforselectstu_name,stu_sex,stu_birthday,stu_phone,stu_cs_class,cs_dept,cs_g

rade

fromstudent,cs

wherestuname=pstunameandstucsclass=csclass;

exception

whenothersthenc_state_values:

=2;

end;

/

createorreplaceprocedurep_pm_sum(

cursor_gd_sumoutsys_refcursor

as

begin

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(

P_gd_sub_subjectingd.gd_sub_subject%type,

cursor_gd_suboutsys_refcursor

)begin

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;

end;

/

createorreplaceprocedurep_pm_class(

p_stu_cs_classinstudent.stu_cs_class%type,

cursor_gd_classoutsys_refcursor

as

begin

opencursor_gd_classfor

selectdistinctsno,stu_name,sum

fromstudent,(selectgd_stu_noassno,sum(gd_grade)assum

fromgd

groupbygd_stu_no

wherestuno=snoandstucsclass=pstucsclass

orderbysumdesc;

end;

createorreplaceprocedurep_fx(cursor_fxoutsys_refcursorbegin

opencursor_fxfor

selectgd_sub_subject,max(gd_grade)aszuigao,min(gd_grade)aszuidi,avg(gd_grade)aspingjun,SUM(CASEWHENgd_grade>=60

THEN1ELSE0END)/COUNT(*)*100ASjigelv,

SUM(CASEWHENgd_grade>=80THEN1ELSE0

END)/COUNT(*)*100ASyouxiulv

fromgd

groupbygd_sub_subject;

createorreplaceprocedurep_bujige(cursor_bujigeoutsys_refcursor)

as

begin

opencursor_bujigefor

selectgd_stu_no,gd_sub_subject,gd_grade

fromgd

wheregd_grade<60;

end;

/

createorreplaceprocedurep_update_stu(p_stu_noinstudent.stu_no%type,p_stu_name

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2