Oracle数据库课程设计报告学生成绩管理系统方案
- 格式:doc
- 大小:7.38 MB
- 文档页数:34
实验十九Oracle数据库系统开发实例-学生成绩管理系统【一】实验目的1.掌握采用开发Oracle数据库系统的方法;2.掌握开发C/S模式的数据库系统的方法。
【二】实验内容利用SQL Developer,在scott用户下创建6张表:student、teacher、course、allocate、score和users表,如表19-1至19-7所示。
表19-1 users表结构表19-2 users表的数据表19-3 student表的结构表19-4 teacher表的结构表19-5 course表的结构表19-6 allocate表的结构表19-7 score表的结构一、系统功能1.实现学生基本数据的编辑和相关查询。
2.实现教师基本数据的编辑和相关查询。
3.实现课程基本数据的编辑和相关查询。
4.实现各课程任课教师安排和相关查询。
5.实现学生成绩数据的编辑和相关查询。
6.实现用户管理和控制功能。
二、系统结构本系统对应的项目为“学生成绩管理系统.sln”,共有20个窗体和1个公共模块。
本项目的启动窗体为pass,该窗体提示用户输入相应的用户名/密码,并判断是否为合法用户。
如果是非法用户(用户名/密码输入错误),则提示用户再次输入用户名/密码,若用户非法输入3次,便自动退出系统运行。
如果是合法用户,则调用main多文档窗体启动相应的菜单,用户通过该系统菜单执行相应的操作。
系统结构图,如图19-1所示。
main窗体学生数据管理menu13_Click过程系统维护setuser窗体setuser1窗体pass窗体editstudent窗体editstudent1窗体querystudent窗体教师数据管理editteacher窗体editteacher1窗体queryteacher窗体课程数据管理editcourse窗体editcourse1窗体querycourse窗体成绩数据管理editscore窗体queryscore窗体课程安排管理allocatecourse窗体allocatecourse1窗体queryallocate窗体menu62_Click过程2.pass窗体pass窗体用于接受用户的用户名/密码输入,判断是否为合法用户。
软件学院综合训练项目报告书课程名称Oracle数据库项目名称学生成绩管理系统专业班级组别成员任课教师刘腊梅2015 年 6 月目录1.设计时间 (3)2.设计任务 (3)3.设计内容 (3)3.1系统设计 (3)3.1.1系统功能概述 (3)3.1.2系统功能模块设计 (4)3.2数据库设计 (5)3.2.1数据库需求分析 (5)3.2.2数据库逻辑结构设计 (9)3.3数据库实现 (11)3.3.1创建用户 (11)3.3.2创建表和约束 (11)3.3.3创建存储过程、函数及触发器 (13)3.4测试与分析 (16)3.4.1测试 (16)3.4.2分析 (19)3.5代码 (19)4.总结与展望 (30)5.参考文献 (31)1 设计时间2015/6/1~2015/6/72 设计任务信息管理系统—学生成绩管理系统掌握ORACLE数据库的特点,熟悉SQL命令和PL/SQL的编程特点,运用所学知识解决现实问题,完成学生成绩管理系统的后台数据库设计,提高系统性能。
在该项目中,不考虑需求分析过程,要求建立以下关系:院系信息:院系编号、院系名称、院系主管、地址、院系人数;学生基本信息:院系编号、学号、姓名、性别、学生类型、入学日期、籍贯、身份证号、详细地址、出生日期、所学专业、民族、电话(家) 、缴费总计、已修学分、备注;课程信息:课程号、课程名称、开设年级、学时数、学分;成绩单:学号、课程号、学期、成绩、备注。
使用存储过程统计每个学生的‘已修学分’。
使用触发器实现当登记学生成绩(60分以上)时自动统计学生的‘已修学分’。
使用函数实现统计各课程的未及格人数,要求输入参数课程号后,返回各课程的人数NUM。
并实现调用,查‘数据库系统设计’的未及格人数。
将上实验中的存储过程与本实验中函数创建包。
3 设计内容3.1系统设计图3-1-2 业务流程图3.2数据库设计图3-2-6 0层数据流图图3-2-7 1层数据流图3.3.2创建表和约束1.创建院系信息表。
数据库课程设计报告学生成绩管理系统-V1正文:随着信息化时代的到来,学生成绩管理系统已经成为教育领域不可或缺的一部分。
本文旨在重新整理数据库课程设计报告中学生成绩管理系统的内容,以期更好地了解和应用该系统。
一、系统需求分析学生成绩管理系统主要用于管理学生的个人信息和成绩记录。
系统用户包括学生、教师和管理员,系统需具备以下功能:1. 学生用户功能:- 注册账号并登录系统- 查看个人信息- 查看课程成绩- 其他自助操作2. 教师用户功能:- 注册账号并登录系统- 查看学生名单- 添加、修改、删除学生成绩- 其他自助操作3. 管理员用户功能:- 注册账号并登录系统- 管理学生、教师账号信息- 查看系统日志信息- 其他自助操作二、系统设计学生成绩管理系统的数据库设计采用关系型数据库。
系统中包含三个主要的实体:学生、教师和学生成绩。
其中,学生和教师信息保存在用户表中,学生成绩信息保存在成绩表中。
两个表通过用户ID关联起来。
系统需求分析中的功能需求已经被转化为各种数据表和数据表之间的关系。
为方便管理,管理员还可以查看所有用户的日志信息。
三、系统实现1. 学生用户界面学生可以登录系统,查看自己的成绩记录并修改自己的个人信息。
学生还可以通过系统查询课程信息,并提交课程评价。
2. 教师用户界面教师可以登录系统,查看自己所教授课程的学生名单,后续可以添加或修改学生学号、成绩、绩点等信息。
教师还可以查看课程统计信息,以便进行课程质量管理。
3. 管理员用户界面管理员可以登录系统,管理所有用户的信息,根据需要添加、修改或删除用户。
管理员还可以查看系统日志信息,以确保系统正常运行并发现可能存在的错误。
四、总结本文重新整理了数据库课程设计报告中学生成绩管理系统的内容。
通过需求分析、系统设计和系统实现,我们深入了解了该系统的功能和基本实现流程。
学生成绩管理系统不仅应用广泛,而且可以促进学校的信息化建设,提高管理精度。
Oracle数据库课程设计——学生考勤系统的Oracle实现1学生考勤管理系统背景分析随着高校校园信息化的逐步完善,有效地借助网络、数据库等技术提高工作和管理效率。
如今针对师生的成绩查询系统、教务管理系统、招生就业系统、BBS、校园网站等系统在各大高校纷纷出现,对全校师生的学习、生活、管理、办公带来了便利。
因此学生考勤管理系统为进一步加强高校学风建设,维护正常的教学秩序,给学生创造一个优良的学习环境,从而应运而生。
目前高校学生上课考勤管理都是以任课老师上课点名,签到等等记录学生上课情况,对于时间比较长的请假,需要通过递交请假申请让班导师、院系领导都批准方能生效。
这种模式在目前高校管理中暴露了不可避免的弊端,这主要体现在如下几个方面:1、学生请假不方便;2、学生之间有冒名顶替签到的情况3、学生请假对任课老师不透明;4、学生对自己整个学期的上课出勤情况没有整体的统计信息;5、班导师对本班学生整个学期的上课出勤情况不易查看;6、院系领导、学校领导不容易把握学生上课的出勤情况。
因此一个好的学生考勤管理系统在一定程度上可以解决这些弊端,本系统主要针对目前高校学生在线请假以及学生上课出勤管理当中所暴露出来的问题而设计的信息系统。
本系统涉及到高校六大类用户:学生、任课老师、班导师、院系领导、学校领导、系统管理员。
2学生考勤管理系统需求分析2.1 用户需求描述用户是系统的最终使用者,根据分析,本系统应当包括学生、班导师、任课老师、院系领导、学校领导、系统管理员六类用户,这六类用户对系统的需求简要概括如下:2.2.1学生用户需求描述学生对本系统的主要需求是:在线请假以及查看在校期间所有的上课出勤信息。
在线请假需求:学生请假的全过程当中,学生可以随时查看请假的详细进展情况。
查看出勤信息需求:学生可以查看在校期间所有学期上课出勤的详细信息,如:查看“数据库课程设计”这门课程在整个学期请假、旷课多少次等信息。
其它需求:查看本人的基本信息,如本人的所属的院系、年级、专业、班级、学号、姓名、性别等,以及修改个人用户密码。
阶段1.1成绩管理系统实体关系设计一、实验目的和要求(1)熟练掌握实体关系设计的方法。
(2)通过需求分析结果,掌握E-R图。
二、实验内容和原理实体关系设计是在需求分析的一个环节过程,在这一过程中产生E-R图,该图由实体、属性和联系三个要素构成。
逻辑结构设计的任务就是把概念设计阶段建立的基本E-R图按照选定的系统软件支持的数据模型,转换成相应的逻辑模型。
这种转换要符合关系数据模型的原则。
E-R图向关系模型转换时要解决如何将实体和实体间的联系转换为关系,并确定这些关系的属性和码,这种转换一般按下面的原则进行。
(1)一个实体转换为一个关系,实体的属性就是关系的属性,实体的码就是关系的码。
(2)一个联系也转换为一个关系,联系的属性及联系所连接的实体的码都转换为关系的属性,但关系的码会根据联系的类型变化。
三、主要仪器设备计算机一台、Powerdesinger运行环境四、操作方法与实验步骤在成绩管理系统中,需要管理学生、课程和成绩,以及它们之间的联系。
因此在该系统的E-R图中,实体分别为学生、老师、课程。
为了便于掌握,学生实体的属性分别有学号、姓名、性别;课程实体的属性有课程编号、课程名称、学期、课程学分;教师实体的属性有教师编号、姓名、性别。
学生实体与课程实体有选课关系,而且一个学生可以选择多门课程,一门课程也可以被多个学生选择,因此学生和课程之间的联系是m:n联系。
教师实体与课程实体有教授关系,一名教师可以教多门课程,一门课程也可以被多个教师教授,因此教师和课程之间的联系是m:n联系。
学生在选课后会产生成绩,教师授课后会产生授课地点及授课学期。
根据上述分析,绘出的E-R图如下图所示。
阶段1.2 成绩管理系统结构设计一、实验目的和要求1.了解数据库中列的属性以及各个属性的含义。
2.掌握为不同的列选择不同的属性及范围。
二、实验内容和原理在管理信息系统中,物理结构设计主要是指如何将通过逻辑结构设计所得的系统逻辑结构型转换为物理模型,并明确地指出系统的物理存储结构。
华东交通大学理工学院课程设计报告书所属课程名称ORACLE数据库题目学生成绩管理系统分院电信分院专业班级计算机科学与技术ﻩ学号学生姓名指导教师2013年1月4 日华东交通大学理工学院课程设计( 论文)任务书专业计算机科学与技术班级姓名一、课程设计(论文)题目学生成绩管理系统二、课程设计(论文)工作:自2012 年12 月31 日起至2013 年 1 月 4 日止。
三、课程设计(论文)的内容要求:1、学生成绩管理系统的设计1.在对数据库理论及知识理解的基础上,针对具体的实际问题,设计合适的数据库表。
2.给出系统的概要设计、详细设计,完成相关的算法描述。
3.设计必要的视图、触发器、存储过程4.完成规范化的课程设计说明书的编写本设计是我和戈振军2个合作完成,我主要负责各个模块的界面设计与源代码的编译,最后测试系统的运行。
戈振军(20090210440123)主要负责各种数据的收集整理,数据库的设计,E-R图的设计与系统框架的搭建。
学生签名:2013 年1 月4日课程设计(论文)评阅意见评阅人职称20 年月日ﻬ目录第一章系统概述ﻩ错误!未定义书签。
1.1系统背景ﻩ错误!未定义书签。
1.2 可行性研究............................................................. 错误!未定义书签。
第二章需求分析................................................................ 错误!未定义书签。
2.1 运行环境:ﻩ错误!未定义书签。
2.2数据需求ﻩ错误!未定义书签。
第三章软件设计................................................................ 错误!未定义书签。
3.1总体设计............................................................. 错误!未定义书签。
实习 PB/Oracle 学生成绩管理系统项目1 创建与Oracle 8数据库的连接1。
新建操作XSCJ数据库数据源新建操作XSCJ数据库数据源的方法如下。
(1)单击PB工具栏的Database按钮,如图:打开数据库的连接“Database”对话框,如图:(2)双击ODB ODBC,选择Utilities,双击ODBC Administrator,添加新的数据源(3)单击“添加”按钮,为数据源选择驱动程序,选择Oracle ODBC Driver (4)单击“完成“按钮,系统显示Oracle ODBC配置(2)(3)(4)如图:在Database Source Name栏输入数据库名“XSCJ";TNS ServiceName栏输入(选择)服务器名:XSCJ。
输入相应的内容后,单击“OK"按钮,数据源完成设置。
如图:2.新建Profile:xscj_pro与数据源相连新建Profile:xscj_pro与数据源相连的具体步骤如下.(1)在Database对话框中,单击ODB ODBC,选择Profile Name,如图:(2)在Profile Name输入XSCJ,在Data Source选择XSCJ,在User ID 选择SYSMAN,在Password选择dcr48,单击“OK”按钮即可完成。
完成后ODB ODBC的子目录中就会出XSCJ,如图:(3)用鼠标右键单击XSCJ,选择connect连接XSCJ数据库即可,该数据库中的表就会列在Tables中,如图:项目2 主应用程序和界面1。
主应用程序在应用程序xscj的open()事件中添加代码,用于和数据库的连接,具体步骤及代码如下:2。
新建数据界面d_cr新建数据界面d_cr的步骤如下。
(1)单击“New”,选取“DataWindow"下的“FreeFrom”,单击“OK”,选择“Quick Selcet"图标,单击“Next”.如图:(2)在弹出的界面中选取需要建立查询的表,如OFFICE。
学生管理系统Oracle课程设计一、课程目标知识目标:1. 理解Oracle数据库的基本概念,掌握其体系结构。
2. 学会使用SQL语言进行数据查询、插入、更新和删除操作。
3. 掌握学生管理系统数据库的设计原则和方法。
技能目标:1. 能够独立安装和配置Oracle数据库环境。
2. 能够使用SQL Developer等工具进行数据库操作。
3. 能够设计并实现一个简单的学生管理系统数据库。
情感态度价值观目标:1. 培养学生对待数据库技术的积极态度,提高学习兴趣。
2. 培养学生的团队协作精神,学会共同解决问题。
3. 引导学生认识到数据库在现实生活中的重要性,激发其应用创新意识。
课程性质分析:本课程为信息技术课程,以实践操作为主,理论讲解为辅。
课程内容紧密结合学生管理系统项目,以提高学生的实际操作能力为目标。
学生特点分析:高二年级学生对数据库知识有一定了解,具备基本的计算机操作技能,但Oracle数据库知识尚属初学阶段。
学生具有较强的学习兴趣和动手能力,但需注重培养团队协作能力。
教学要求:1. 结合实际项目,注重理论与实践相结合,提高学生的实践能力。
2. 采用任务驱动法,引导学生自主探究,培养学生的自主学习能力。
3. 注重个体差异,因材施教,使每位学生都能在课程中学有所得。
二、教学内容1. Oracle数据库基础知识:- 数据库基本概念- Oracle数据库体系结构- SQL语言基础2. Oracle数据库操作:- 数据查询- 数据插入、更新和删除- 索引和视图的创建与应用3. 学生管理系统数据库设计:- 数据库设计原则- 实体关系模型- 数据库表结构设计4. Oracle数据库环境配置与使用:- Oracle数据库安装- SQL Developer工具的使用- 数据库连接与操作5. 实践项目:学生管理系统数据库实现- 数据库表创建与数据导入- 查询与统计功能实现- 简单的数据维护功能实现教学内容安排与进度:第一周:Oracle数据库基础知识学习第二周:Oracle数据库操作学习第三周:学生管理系统数据库设计第四周:Oracle数据库环境配置与使用第五周:实践项目:学生管理系统数据库实现教材章节关联:《Oracle数据库管理与维护》第一章:数据库基本概念与体系结构《Oracle数据库管理与维护》第二章:SQL语言基础《Oracle数据库管理与维护》第三章:数据库设计《Oracle数据库管理与维护》第四章:数据库操作与维护《Oracle数据库管理与维护》附录:实践项目指导三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用以下多样化的教学方法:1. 讲授法:通过系统的讲解,使学生掌握Oracle数据库的基本概念、体系结构和SQL语言基础。
毕业设计(论文)院系移动通信与软件开发学院专业软件手机嵌入式年级11级学号2011007120121学生姓名罗丽娟指导老师许勇2013 年 12 月四川科技职业学院毕业论文(设计)鉴定院系专业_________________________ 年级姓名 _______________________ 题目 ______________________________指导教师评语________________________________________________________________ ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________指导教师 (签章)评阅人评语_________________________________________________________________________________________________________________________ ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________评阅人 (签章)成绩答辩委员会主任 (签章)年月日目录第一节概述1、课题---------------------------------------------------------------------32、背景说明-----------------------------------------------------------------33、编写目的-----------------------------------------------------------------34、软件定义-----------------------------------------------------------------35、开发环境-----------------------------------------------------------------3数据库设计步骤第二节需求分析1、分析的重要性------------------------------------------------------------42、需求分析的任务和过程----------------------------------------------------43、数据流程图--------------------------------------------------------------54、数据字典----------------------------------------------------------------5第三节概念结构设计1、实体和属性之间的关系----------------------------------------------------72、E-R图------------------------------------------------------------------7第四节逻辑结构设计1、E—R图向关系模型的转换-------------------------------------------------82、设计用户子模式----------------------------------------------------------8第五节数据库的物理设计1、数据库安装与配置--------------------------------------------------------82、SQL脚本----------------------------------------------------------------9第六节数据库的实施1、触发器和存储过程--------------------------------------------------------102、ASP 链接ORACLE 数据库---------------------------------------------------10数据库安全性和完整性第七节数据库安全性1、计算机系统的安全性概述-------------------------------------------------10 2、授权与回收(SQL 语句描述)-----------------------------------------------10 第八节数据库完整性1、数据库完整性的概述-----------------------------------------------------11 2、三大完整性(SQL 语句描述)-----------------------------------------------11第九节课程小结------------------------------------------------------------12第一节概述1、课题Oracle 数据库课程设计(论文)---------------asp/oracle学生成绩管理系统2、背景说明asp/oracle学生成绩管理系统当今社会已进入信息时代,作为信息管理的主要工具的数据库已经成为举足轻重的角色。
数据库课程设计报告学生成绩管理系统(1)数据库课程设计报告:学生成绩管理系统一、项目简介学生成绩管理系统是一款基于数据库系统开发的教务管理应用软件,旨在协助学校高效地管理学生的课程、成绩等信息。
系统采用B/S架构,支持在线操作,管理员可以在管理后台对数据进行增删改查、统计分析等操作,同时提供了学生、教师角色的登录入口,方便他们查询自己的相关信息。
二、功能模块本系统主要包含以下模块:1. 登录模块:管理员、教师、学生可分别进行登录,每个用户登录后只能访问到自己相关的信息。
2. 学生信息管理模块:包括学生基本信息维护、学生选课管理、学生成绩查询等功能。
3. 课程信息管理模块:包括课程信息维护、课程成绩录入、课程信息查询等功能。
4. 教师信息管理模块:包括教师信息维护、教师授课情况查询等功能。
5. 成绩统计分析模块:提供按班级、学年学期、课程等多维度统计分析成绩的功能。
6. 系统管理模块:包括管理员信息维护、系统日志查看等功能。
三、数据库设计本系统主要采用关系型数据库MySQL进行设计,将相关数据表分为学生信息表、教师信息表、课程信息表、成绩信息表、登录信息表等五个部分。
其中每个表都有主键和多个字段,并建立了适当的索引,以提高访问速度。
四、技术选型与开发环境本系统的后端采用Java语言进行开发,使用了SpringMVC、MyBatis 等框架。
前端则采用了Bootstrap、jQuery、AJAX等技术,使页面呈现出良好的用户交互体验。
此外,使用了Tomcat作为Web服务器,Eclipse作为IDE,Navicat作为数据库管理工具。
五、存在问题及解决方案在系统开发过程中,我们也遇到了一些问题。
比如对于成绩的多维度查询与统计,我们最初的设计中采用了多个SQL语句进行计算,但这样会导致效率低下,而且SQL语句嵌套过多,难以维护。
因此,我们改变了思路,采用了Java代码对数据进行分组、过滤等操作,大大提升了查询效率。
Oracle数据库课程设计题目学生考试管理系统班级11网工2班马路瑶学号指导老师超峰目录一、前言 (2)二、需求分析 (3)三、系统设计 (5)四、数据库设计 (7)五、编程步骤 (19)六、测试 (25)七、课程设计总结 (33)八、参考资料 (34)九、附录 (34)一、前言学生考试管理是一个学校必不可少的部分,随着计算机和计算机知识的普及,学生考试管理系统得到了更大的发展空间,通过对学生考试管理系统的开发,可以提高校务人员的工作效率。
学生成绩管理是一个学校不可缺少的部分,一个良好的学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段。
学生考试管理系统对学校加强学生考试管理有着极其重要的作用.由于各个大学都在持续扩招,学生的数量日益庞大,对于如何管理如此庞大的学生考试数据显得更为复杂,传统的手工成绩管理不仅工作量大,而且容易出现问题,如:效率低、性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
已不能适应时代的发展。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,具有手工管理所无法比拟的优点。
例:检索迅速、查找方便、可靠性高、存储量大、性好、寿命长、成本低等。
这些优点能够极提高管理者管理的效率,也是学校走向科学化、正规化管理,与世界接轨的重要条件。
因此,开发设计这样一套学生成考试理软件成为很有必要的事情.二、需求分析1.功能需求1.学生基本信息及所选科目成绩的录入或导入。
2.基本信息的查询(分系、班级;分科目)与修改。
3.对每系或每班各科成绩进行分析(即求单科平均成绩、及格率和优秀率);4.对所开课程的成绩分析(求其平均成绩,最高分和最低分);5.对学生考试成绩进行排名(单科按系别或班级进行排名,对每一个班级,同一学期学生总体成绩进行排名,并显示各科成绩信息)6.不及格情况的统计、导出、打印2.系统需求该学生成绩管理系统采用java语言开发研制, JavaBean作为行为模型,servlet作为响应服务器,DIV+CSS+javascript设计网页,oracle作为数据存储。
在完成用户需求同时,完成条件查询等功能。
针对学生成绩及其数据特点,可以全面实现对学生成绩的插入、查询、修改、删除和输出等功能的计算机管理。
它能使学生成绩数据的工作人员从繁重的工作中解脱出来,大大减轻了工作量,减少人为的工作失误,全面提高学生成绩管理的效率,从而使学校对于学生成绩的管理水平和技术水平跃上一个新的台阶。
3.系统开发环境1.开发语言:java+jsp2.开发工具: IE 8.0,Tomcat ,jdk 1.7,dreamweaver3.数据库:Oracle 10g4.文档编写工具:word5. 服务器端运行环境:oracle 10g,Tomcat ,jdk 1.76. 客户端运行环境:浏览器三、系统设计1.功能模块2.系统流程图3.数据字典(1)数据存储数据表:用户表表组成:用户名,密码数据项:用户名数据类型:varchar数据长度:50数据项:密码数据类型:varchar数据长度:50(2) 数据流定义:登陆名称:登陆简述:用户登陆系统数据来源:用户数据去向:用户表数据组成:用户名+密码四、数据库设计1.数据库结构设计院系表(cs)用户表(user_)2.实体联系图3.数据库源代码select userenv('language') from dual; shutdown immediatestartup mountALTER SYSTEM ENABLE 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 xz3 identified by xz/grant dba to xz/conn xz3/xz/set serveroutput on/create table user_(name varchar(50) primary key,passwd varchar(50) not null) /insert into user_ values('xz','xz');/Commit/create 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 varchar(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 table 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 procedure 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) asbegininsert into student (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;exceptionwhen others then s_state_values:=1;commit;end ;/create or replace procedure c_insert_stu(c_stu_no in student.stu_no%type,c_state_values out number)asbeginselect count(*) into c_state_values from studentwhere stu_no=c_stu_no;end ;/create or replace procedure c_insert_stu_fk(c_cs_class in cs.cs_class%type,c_state_values_fk out number)asbeginselect count(*) into c_state_values_fk from cs where cs_class=c_cs_class;end ;/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)asbegininsert into cs(cs_dept,cs_grade,cs_class)values(p_cs_dept, p_cs_grade, p_cs_class);if sql%rowcount=1then s_state_values:=0;end if;exceptionwhen others then s_state_values:=1; commit;end ;/create or replace procedure c_insert_cs(c_cs_class in cs.cs_class%type,c_state_values out number)asbeginselect count(*) into c_state_values from cs where cs_class=c_cs_class;end ;/create or replace procedure p_insert_sub(p_sub_subject in sub.sub_subject%type,p_sub_teacher_name in sub.sub_teacher_name%type, s_state_values out number)asbegininsert into sub(sub_subject,sub_teacher_name) values(p_sub_subject, p_sub_teacher_name);if sql%rowcount=1then s_state_values:=0;end if;exceptionwhen others then s_state_values:=1;commit;end;/create or replace procedure c_insert_sub(c_sub_subject in sub.sub_subject%type,c_state_values out number)asbeginselect count(*) into c_state_values from sub where sub_subject=c_sub_subject;end ;/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,s_state_values out number)asbegininsert into gd(gd_stu_no,gd_sub_subject,gd_grade) values(p_gd_stu_no,p_gd_sub_subject,p_gd_grade); if sql%rowcount=1then s_state_values:=0;end if;exceptionwhen others then s_state_values:=1;if p_gd_grade=nullthen s_state_values:=2;end if;commit;end ;/create or replace procedure c_insert_gd(p_gd_stu_no in gd.gd_stu_no%type,p_gd_sub_subject in gd.gd_sub_subject%type,c_state_values out number)asbeginselect count(*) into c_state_values from (select gd_stu_no from gdwhere gd_sub_subject=p_gd_sub_subject)where gd_stu_no=p_gd_stu_no;end ;/create or replace procedure c_insert_gd_fk1(c_stu_no in student.stu_no%type,c_state_values_fk1 out number)asbeginselect count(*) into c_state_values_fk1 from studentwhere stu_no=c_stu_no;end ;/create or replace procedure c_insert_gd_fk2(c_sub_subject in sub.sub_subject%type,c_state_values_fk2 out number)asbeginselect count(*) into c_state_values_fk2 from subwhere sub_subject=c_sub_subject;end ;/create or replace procedure p_select_stu_no_info(p_stu_no in out student.stu_no%type,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 out number)asbeginc_state_values:=0;select stu_no, stu_name,stu_sex ,stu_birthday ,stu_phone ,stu_cs_class ,cs_dept ,cs_gradeinto 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;exceptionwhen NO_DATA_FOUND then c_state_values:=1;when others then c_state_values:=2;end ;/create or replace procedure p_select_stu_no_gd(p_stu_no in student.stu_no%type , cursor_gd out sys_refcursor)asbeginopen cursor_gd forselect gd_sub_subject,gd_gradefrom gdwhere gd_stu_no=p_stu_no;end;/create or replace procedure p_select_stu_name(p_stu_name in student.stu_name%type ,cursor_stu out sys_refcursor,c_state_values out number)asbeginc_state_values:=0;open cursor_stu forselect stu_no, stu_name,stu_sex ,stu_birthday ,stu_phone ,stu_cs_class ,cs_dept ,cs_grade from student, cswhere stu_name=p_stu_name and stu_cs_class=cs_class;exceptionwhen others then c_state_values:=2;end;/create or replace procedure p_pm_sum(cursor_gd_sum out sys_refcursor)asbeginopen cursor_gd_sum forselect distinct sno,stu_name,sumfrom student,(select gd_stu_no as sno,sum(gd_grade) as sumfrom gdgroup by gd_stu_no)where stu_no=snoorder by sum desc;end;/create or replace procedure p_pm_sub(p_gd_sub_subject in gd.gd_sub_subject%type,cursor_gd_sub out sys_refcursor)asbeginopen 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;end;/create or replace procedure p_pm_class(p_stu_cs_class in student.stu_cs_class%type,cursor_gd_class out sys_refcursor)asbeginopen cursor_gd_class forselect distinct sno,stu_name,sumfrom student,(select gd_stu_no as sno,sum(gd_grade) as sumfrom gdgroup by gd_stu_no)where stu_no=sno and stu_cs_class=p_stu_cs_classorder by sum desc;end;/create or replace procedure p_fx(cursor_fx out sys_refcursor)asbeginopen 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 0 END)/COUNT(*)*100 AS jigelv, SUM(CASE WHEN gd_grade>=80 THEN 1 ELSE 0 END)/COUNT(*)*100 AS youxiulvfrom gdgroup by gd_sub_subject;end;/create or replace procedure p_bujige(cursor_bujige out sys_refcursor)asbeginopen cursor_bujige forselect gd_stu_no,gd_sub_subject,gd_gradefrom gdwhere gd_grade<60;end;/create or replace procedure p_update_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) asbeginupdate studentsetstu_name=p_stu_name,stu_sex=p_stu_sex,stu_birthday=p_stu_birthday,stu_phone=p_s tu_phone,stu_cs_class=p_stu_cs_classwhere stu_no=p_stu_no;if sql%rowcount=1then s_state_values:=0;end if;exceptionwhen others then s_state_values:=1;commit;end ;/create or replace procedure p_delete_stu(p_stu_no in student.stu_no%type,s_state_values out number)asbegindelete from gd where gd_stu_no=p_stu_no;delete from student where stu_no=p_stu_no;s_state_values:=0;exceptionwhen others then s_state_values:=1;rollback;commit;end;/create or replace procedure p_update_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,s_state_values out number)asbeginupdate gdset gd_stu_no=p_gd_stu_no,gd_sub_subject=p_gd_sub_subject,gd_grade=p_gd_grade where gd_stu_no=p_gd_stu_no and gd_sub_subject=p_gd_sub_subject;if sql%rowcount=1then s_state_values:=0;end if;exceptionwhen others then s_state_values:=1;rollback;commit;end ;/create or replace procedure p_delete_gd(p_gd_stu_no in gd.gd_stu_no%type,p_gd_sub_subject in gd.gd_sub_subject%type,s_state_values out number)asbegindelete from gdwhere gd_stu_no=p_gd_stu_no and gd_sub_subject=p_gd_sub_subject;if sql%rowcount=1then s_state_values:=0;end if;exceptionwhen others then s_state_values:=1;rollback;commit;end ;/create or replace procedure p_denglu(p_name in user_.name%type,p_passwd in user_.passwd%type,s_state_values out number)asbeginselect count(*) into s_state_valuesfrom user_where name=p_name and passwd=p_passwd;end;/create or replace procedure p_update_passwd(p_name in user_.name%type,p_passwd in user_.passwd%type,s_state_values out number)asbeginupdate user_set passwd= p_passwdwhere name=p_name;if sql%rowcount=1then s_state_values:=0;end if;exceptionwhen others then s_state_values:=1;rollback;commit;end;/create or replace procedure p_select_no(cursor_stu_no out sys_refcursor)asbeginopen cursor_stu_no forselect stu_nofrom studentorder by stu_no;end;/create or replace procedure p_select_all(cursor_all out sys_refcursor)asbeginopen cursor_all forselect stu_no, stu_name,stu_sex ,stu_birthday ,stu_phone ,stu_cs_class ,cs_dept ,cs_gradefrom student, cswhere stu_cs_class=cs_classorder by stu_no;end;/create or replace procedure p_select_count(myrowcount out number)asbeginselect count(*) into myrowcountfrom student;end;/五、编程步骤1.连接数据库的javabean由于在本系统的多个JSP页面中都需要访问数据库,因此使用一个JavaBean 来专门完成数据库的连接。