1、1.学生基本信息及所选科目成绩的录入或导入。2.基本信息的查询(分系、班级;分科目)与修改。3.对每系或每班各科成绩进行分析(即求单科平均成绩、及格率和优秀率);4.对所开课程的成绩分析(求其平均成绩,最高分和最低分);5.对学生考试成绩进行排名(单科按系别或班级进行排名,对每一个班级,同一学期学生总体成绩进行排名,并显示各科成绩信息)6.不及格情况的统计、导出、打印2.系统需求该学生成绩管理系统采用java语言开发研制, JavaBean作为行为模型,servlet作为响应服务器,DIV+CSS+javascript设计网页,oracle作为数据存储。在完成用户需求同时,完成条件查询等功能。
2、针对学生成绩及其数据特点,可以全面实现对学生成绩的插入、查询、修改、删除和输出等功能的计算机管理。它能使学生成绩数据的工作人员从繁重的工作中解脱出来,大大减轻了工作量,减少人为的工作失误,全面提高学生成绩管理的效率,从而使学校对于学生成绩的管理水平和技术水平跃上一个新的台阶。3.系统开发环境1.开发语言:java+jsp2.开发工具: IE 8.0,Tomcat ,jdk 1.7,dreamweaver3.数据库:Oracle 10g4.文档编写工具:word5.服务器端运行环境:oracle 10g,Tomcat ,jdk 1.76.客户端运行环境:浏览器三、系统设计1.功能模块2.系统流程
3、图3.数据字典(1)数据存储数据表:用户表表组成:用户名,密码数 据 项:用户名数据类型:varchar数据长度:50密码(2) 数据流定义:登陆名 称: 登陆简 述: 用户登陆系统数据来源: 用户数据去向:数据组成:用户名+密码四、数据库设计1.数据库结构设计院系表(cs)字段名数据类型是否为空说明Cs_classVarchar2(50)Not null班级名(主键)Cs_dept系别Cs_grade年级成绩表(gd)Gd_stu_noVarchar2(15)学号(联合主键、外键)Gd_sub_subject科目(联合主键、外键)Gd_gradeNumber(3)成绩科目表(sub)Sub_
4、subject科目名(主键)Sub_teacher_nameVarchar2(10)任课老师名学生表(student)Stu_no学号(主键)Stu_name学生名Stu_cs_class班级名(外键)Stu_sexVarchar(4)性别(约束)Stu_birthday出生日期Stu_phoneVarchar2(200)联系电话用户表(user_)name用户名(主键)Passwdnotnull2.实体联系图3.数据库源代码select userenv(language) from dual。shutdown immediatestartup mountALTER SYSTEM ENABLE
5、 RESTRICTED SESSION。ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0。ALTER SYSTEM SET AQ_TM_PROCESSES=0。ALTER DATABASE OPEN。alter database character set INTERNAL_USE UTF8。shutdown immediatestartupcreate user xz105151640043 identified by xz/grant dba to xzconn xz105151640043/xzset serveroutput oncreate table u
6、ser_(name varchar(50) primary key,passwd varchar(50) not null)insert into user_ values(xz,)。Commitcreate table cs(cs_class varchar(50) primary key,cs_dept varchar(50) not null,cs_grade varchar(50) not null)create table student(stu_no varchar(15) primary key,stu_name varchar(10) not null,stu_sex varc
7、har(4) not null check (stu_sex=男or stu_sex=女), stu_birthday varchar(50) ,stu_phone varchar(50),stu_cs_class varchar(50),constraint class_fk foreign key(stu_cs_class) references cs(cs_class)on delete cascade/ create table sub(sub_subject varchar(50) primary key,sub_teacher_name varchar(10)create tabl
8、e gd(gd_stu_no varchar(15),gd_sub_subject varchar(50),gd_grade number(3) not null,primary key(gd_stu_no,gd_sub_subject),constraint fk_gd_stu_no foreign key(gd_stu_no) references student(stu_no),constraint fk_gd_sub_subject foreign key(gd_sub_subject) references sub(sub_subject)create or replace proc
9、edure p_insert_stu(p_stu_no in student.stu_no%type,p_stu_name in student.stu_name%type,p_stu_sex in student.stu_sex%type,p_stu_birthday in student.stu_birthday%type,p_stu_phone in student.stu_phone%type,p_stu_cs_class in student.stu_cs_class%type,s_state_values out number) asbegin insert into studen
10、t (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)。if sql%rowcount=1then s_state_values:=0。end if。exception when others then s_state_values:=1。commit。end 。create or replace procedure c_insert_stu(c_stu_no
11、in student.stu_no%type,c_state_values out number)asbeginselect count(*) into c_state_values from studentwhere stu_no=c_stu_no。create or replace procedure c_insert_stu_fk(c_cs_class in cs.cs_class%type,c_state_values_fk out number)select count(*) into c_state_values_fk from cswhere cs_class=c_cs_clas
12、s。create or replace procedure p_insert_cs(p_cs_dept in cs.cs_dept%type,p_cs_grade in cs.cs_grade%type,p_cs_class in cs.cs_class%type,s_state_values out number)insert into cs(cs_dept,cs_grade,cs_class)values(p_cs_dept, p_cs_grade, p_cs_class)。 when others then s_state_values:create or replace procedu
13、re c_insert_cs(select count(*) into c_state_values from cscreate or replace procedure p_insert_sub(p_sub_subject in sub.sub_subject%type,p_sub_teacher_name in sub.sub_teacher_name%type,insert into sub(sub_subject,sub_teacher_name)values(p_sub_subject, p_sub_teacher_name)。end。create or replace proced
14、ure c_insert_sub(c_sub_subject in sub.sub_subject%type,select count(*) into c_state_values from subwhere sub_subject=c_sub_subject。create or replace procedure p_insert_gd(p_gd_stu_no in gd.gd_stu_no%type,p_gd_sub_subject in gd.gd_sub_subject%type,p_gd_grade in gd.gd_grade%type,insert into gd(gd_stu_
15、no,gd_sub_subject,gd_grade)values(p_gd_stu_no,p_gd_sub_subject,p_gd_grade)。if p_gd_grade=null=2。create or replace procedure c_insert_gd(select count(*) into c_state_values from (select gd_stu_no from gdwhere gd_sub_subject=p_gd_sub_subjectwhere gd_stu_no=p_gd_stu_no。create or replace procedure c_ins
16、ert_gd_fk1(c_state_values_fk1 out number)select count(*) into c_state_values_fk1 from studentcreate or replace procedure c_insert_gd_fk2(c_state_values_fk2 out number)select count(*) into c_state_values_fk2 from subcreate or replace procedure p_select_stu_no_info(p_stu_no in out student.stu_no%type,
17、p_stu_name out student.stu_name%type,p_stu_sex out student.stu_sex%type,p_stu_birthday out student.stu_birthday%type,p_stu_phone out student.stu_phone%type,p_stu_cs_class out student.stu_cs_class%type,p_cs_dept out cs.cs_dept%type,p_cs_grade out cs.cs_grade%type,c_state_values:select stu_no, stu_nam
18、e,stu_sex ,stu_birthday ,stu_phone ,stu_cs_class ,cs_dept ,cs_grade into p_stu_no, p_stu_name, p_stu_sex, p_stu_birthday, p_stu_phone, p_stu_cs_class, p_cs_dept, p_cs_gradefrom student, cswhere stu_cs_class=cs_class and stu_no=p_stu_no。when NO_DATA_FOUND then c_state_values:when others then c_state_
19、values:create or replace procedure p_select_stu_no_gd(p_stu_no in student.stu_no%type , cursor_gd out sys_refcursor)open cursor_gd forselect gd_sub_subject,gd_gradefrom gdwhere gd_stu_no=p_stu_no。create or replace procedure p_select_stu_name(p_stu_name in student.stu_name%type , cursor_stu out sys_r
20、efcursor,open cursor_stu forwhere stu_name=p_stu_name and stu_cs_class=cs_class。create or replace procedure p_pm_sum(cursor_gd_sum out sys_refcursoropen cursor_gd_sum forselect distinct sno,stu_name,sumfrom student,(select gd_stu_no as sno,sum(gd_grade) as sum from gd group by gd_stu_nowhere stu_no=
21、snoorder by sum desc。create or replace procedure p_pm_sub(cursor_gd_sub out sys_refcursoropen cursor_gd_sub forselect gd_stu_no,stu_name,gd_gradefrom gd,studentwhere gd_sub_subject=p_gd_sub_subject and stu_no=gd_stu_noorder by gd_grade desc。create or replace procedure p_pm_class(cursor_gd_class out sys_refcursoropen cursor_gd_class forwhere stu_no=sno and stu_cs_class=p_stu_cs_classcreate or replace procedure p_fx(cursor_fx out sys_refcursoropen cursor_fx forselect gd_sub_subject,max(gd_grade) as zuigao,min(gd_grade) as zuidi,avg(gd_grade) as pingjun,SUM(CASE WHEN gd_grade=60 THEN 1 ELSE
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1