JAVA+SQL_学生成绩管理系统的设计与实现

3995
    


来源:
Licence:
联系:
分类:
平台:
环境:
大小:
更新:
标签:
联系方式 :
免费下载 ×

下载APP,支持永久资源免费下载

限免产品服务请联系qq:1585269081

下载APP
免费下载 ×

下载APP,支持永久资源免费下载

下载APP 免费下载
下载 ×

下载APP,资源永久免费


如果出现不能下载的情况,请联系站长,联系方式在下方。

免费下载 ×

下载论文助手APP,资源永久免费

免费获取

如果你已经登录仍然出现不能下载的情况,请【点击刷新】本页面或者联系站长


江苏大学

毕业设计论文

学生成绩管理系统的设计与实现

THE DESIGN AND REALIZATION OF THE RESULT OF STUDENT ADMINISTRATION MANAGEMENT SYSTEM学生姓名:赵娜

学 号:3041201055

年级专业:2004级计算机科学与技术

指导老师:李慧老师

学 院:应用科学技术学院

提交日期:年 月目录

HYPERLINK \l "_Toc137783592" 摘 要 3

一、 HYPERLINK \l "_Toc137783595" 开发平台及工具简介 5

二、系统分析 7

(一)学生成绩管理系统概述 7

(二) 需求分析 8

1) 功能需求分析 8

2) HYPERLINK \l "_Toc137783598" 性能需求分析 9

HYPERLINK \l "_Toc137783599" 3)数据库需求分析――数据流图 9

4) HYPERLINK \l "_Toc137783600" 数据结构分析――数据流图 10

HYPERLINK \l "_Toc137783601" (三)系统功能结构设计 12

三、 HYPERLINK \l "_Toc137783602" 系统设计 13

(一)设计目标 13

(二)开发及运行环境 13

(三) HYPERLINK \l "_Toc137783603" 数据库设计 14

HYPERLINK \l "_Toc137783604" 四、系统的实现 17

(一)学生查询成绩部分 17

(二)后台管理成绩部分 19

登陆模块 19

年纪班级管理模块 20

课程管理模块 24

评分模块 24

学生信息管理模块 27

管理员模块 29

五、系统存在的问题及前景展望 30

(一)系统存在问题 30

(二)前景展望 30

HYPERLINK \l "_Toc137783608" 参考文献 31摘要

随着现代计算机科学的发展,计算机信息系统越来越受到重视,网络已经成为人们交流信息的重要方式,所以基于网络平台的各种系统不断出现,B/S结构的软件已经成为人们生活工作的一种重要工具。本文将介绍如何使用java后台结合RIA富客户端技术制作学生管理系统,其中涉及到数据库的建立和系统模块功能的实现,并在最后说明了系统存在问题和前景展望。
关键词:java,SQL ,TOMCAT,学生成绩管理

Abstract

Along with the modern computer science development, the computer information system is more and more important, the network already became the people to exchange the information important way, therefore appeared systems that based on network platform, the B/S system already became one kind of important tool which the people exchanged. Now we will introduce how to use java and RIA to develop a student score management system. This part including database creation and the system function realization. Finally expound the matter and shortage of the system, in order to ameliorate better in the future.
Keywords: java, SQL, TOMCAT,Student score management

开发平台及工具简介

1、Java概述

Java包括Java编程语言、开发工具和环境、Java类库等。

Java语言是美国SUN公司开发的一种完全面向对象的程序设计语言。Java语言由C++语言发展而来,但比C++语言简单。Java语言具有简单、与平台无关、高效、健壮、安全、多线程等特点,它是当前网络编程中的首选语言。

JDK提供了Java程序的编译和运行方式,并且编译和运行都是命令行方式。JDK本身没有提供源程序编辑环境,没有提供可视化的集成开发环境(Integrated Development Environment,IDE)。有一些其他Java开发工具提供集成开发环境,如Eclipse、JCreator、JBuilder等,它们都是建立在JDK的运行时环境之上的。

Java是一门编译语言(compiled language),但它不直接生成硬件处理器指令,而是生成一种字节码(bytecodes)这种字节码由Java虚拟机解释执行。

Java虚拟机(Java Virtual Machine,JVM)实际上是一个程序,它定义了指令集、寄存器集、类文件结构栈、垃圾收集堆、内存区域等,提供了跨平台能力的基础框架。

Java虚拟机实现了一台理想的计算机,并可以优化运行Java程序。因此,一个Java程序其实是被Java虚拟机执行的,而Java虚拟机运行于实际的处理器之上。

Java虚拟机执行应用程序具有以下三个典型特点:

1)JavaJava

2、SQL Server 2000

SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的最新版本该版本继承了SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能具有使用方便可伸缩性好与相关软件集成程度高等优点可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。它的优点有:

1)上手容易,学习SQL Server是掌握其他平台及大型数据,如Oracle,Sybase,DB/2的基础。因为这些大型数据库对于设备、平台、人员知识的要求往往较高,而并不是每个人都具备这样的条件,且有机会去接触它们。但有了SQL Server的基础,再去学习和使用它们就容易多了。IT行业的实践经验充分证明了这一点。

2)兼容性良好,由于今天Windows操作系统占领着主导地的位,选择SQL Server一定会在兼容性方面取得一些优势。另外,SQL Server 2000 除了具有扩展性,可靠性以外,还具有可以迅速开发新的因特网系统的功能。尤其是它可以直接存贮 XML 数据,可以将搜索结果以 XML格式输出等特点,有利于构建了异构系统的互操作性,奠定了面向互联网的企业应用和服务的基石。这些特点在.NET 战略中发挥着重要的作用。

3)相对于7.0的忧越性,Microsoft SQL Server 2000是在SQL Server 7.0的基础上对性能、可靠性、质量以及易用性进行了扩展。SQL Server 2000中包含许多新特性,这些特性使其成为针对电子商务、数据仓库和在线商务解决方案的卓越的数据库平台。其增强的特性包括对丰富的扩展标记语言(XML)的支持、综合分析服务以及便捷的数据库管理。

4)电子商务,在使用由Microsoft SQL Server 2000关系数据库引擎的情况下,XML数据可在关系表中进行存储,而查询则能以XML格式将有关结果返回。此外,XML支持还简化了后端系统集成,并实现了跨防火墙的无缝数据传输。你还可以使用Hypertext Transfer Protocol(超文本传输协议,HTTP)来访问SQL Server 2000,以实现面向SQL Server 2000数据库的安全Web连接和无须额外编程的联机分析处理(OLAP)多维数据集。

5)数据仓库,Microsoft SQL Server 2000非常明显的改进就是增加了OLAP(联机分析处理)功能,这可以让很多中小企业用户也可以使用数据仓库的一些特性进行分析。OLAP可以通过多维存储技术对大型、复杂数据集执行快速、高级的分析工作。数据挖掘功能能够揭示出隐藏在大量数据中的倾向及趋势,它允许组织或机构最大
限度的从数据中获取价值。通过对现有数据进行有效分析,这一功能可以对未来的趋势进行预测。

6)增强的在线商务,Microsoft SQL Server 2000简化了管理、优化工作,并且增强了迅速、成功的部署在线商务应用程序所需的可靠性和伸缩性。其中,用以提高可靠性的特性包括日志传送、在线备份和故障切换群集。在伸缩性方面的改进包括对多达32颗CPU和64 GB RAM的支持。通过自动优化和改进后的管理特性--诸如数据文件尺寸的自动管理、基于向导的数据库拷贝、自动内存管理和简化的故障切换群集安装与管理,在线商务应用程序能够被迅速部署并有效管理。

 7)利于构筑"敏捷性商务",所谓"敏捷性商务" 就是能够打破内部和外部的商业界限,对迅速改变的环境做出快速反应。。微软已经与关键的合作伙伴建立起了战略关系,创造出了能够与许多供应商的产品实现整合的解决方案,因而企业用户并不需要做出"要么完全接受,要么全部不要"的承诺。在部署解决方案的过程中,企业用户不一定要拆除原有的设备从头。敏捷商务让企业用户能够充分利用现有的系统,自主决定所需的硬件和软件解决方案以及由谁来提供,伸缩自如、游刃有余。
3、TOMCAT简介

Tomcat是一个带有jsp环境的servlet容器.servlet容器是一个根据用户的行为可以管理和激活servlet的运行时的shell.

启动与关闭Tomcat,使用”bin”目录中的脚本启动与关闭Tomcat. 启动:uinx:bin/startup.sh ,win32:bin\startup 。关闭: unix:bin/shutdown.sh ,win32:bin\shutdown 。

Tomcat目录结构 ,目录名--描述: bin 包含启动/关闭脚本 ;conf 包含不同的配置文件, 包括 server.xml(Tomcat的主要配置文件)和为不同的Tomcat配置的web应用设置缺省值的文件web.xml ;doc 包含各种Tomcat文档 ;lib 包含Tomcat使用的jar文件.unix平台此目录下的任何文件都被加到Tomcat的classpath中 ;logs Tomcat摆放日志文件的地方 ;src ServletAPI源文件.先别高兴,这些只有些必须在Servlet容器内实现的空接口和抽象类 ;webapps 包含web项目示例 ,此外Tomcat会创建如下目录: work ,Tomcat自动生成,放置Tomcat运行时的临时文件(如编译后的JSP文件).如在Tomcat运行时删除此目录.JSP页面将不能运行;classes可以创建此目录来添加一些附加的类到类路径中.任何加到此目录中的类都可在Tomcat的类路径中找到自身.

Tomcat的脚本 ,Tomcat是一个Java程序,因此在设置好几个环境变量后即可用命令行的方式运行.然而设置Tomcat使用的每个环境变量和如下的命令行参数乏味且易错.因此,Tomcat开发组提供了一些脚本使启动和关闭Tomcat变得轻松.
系统分析

学生成绩管理系统概述
1)学生成绩管理系统的发展背景

学生成绩管理是各大学的主要日常管理工作之一,涉及到校、系、师、生的诸多方面,随着教学体制的不断改革,尤其是学分制、选课制的展开和深入,学生成绩日常管理工作及保存管理日趋繁重、复杂。迫切需要研制开发一款功能强大,操作简单,具有人性化的学生成绩管理系统。

目前研究的现状在安全性和信息更新化方面存在有一定的不足,各现有系统资料单独建立,共享性差;在以管理者为主体的方式中,信息取舍依赖管理者对于信息的认知与喜好,较不容易掌握用户真正的需求,也因此无法完全满足用户的需求。因此,教务管理软件应充分依托校园网,实现教务信息的集中管理、分散操作、信息共享,使传统的教务管理朝数字化、无纸化、智能化、综合化的方向发展,并为进一步实现完善的计算机教务管理系统和全校信息系统打下良好的基础。

随着计算机及网络技术的飞速发展,Internet/Intranet应用在全球范围内日益普及,在众多的网络服务中,Web给人耳目一新的感觉,而在这其中,网络已经日渐普及,任何人可以在网络所提供的平台上进行自由的交流,通过网络,学生可以通过在线的网络直接查询程序,而学校教师也可在网上在线管理学生的成绩,不需要再去张贴成绩单,使用了在线电子系统,既便于数据查询不容易使数据丢失,又省去了印刷张贴的麻烦,可谓一举两得。
B/S系统得益于网络的兴起,采用浏览器作为前端用户操作的平台,所有的操作系统都预装了网络浏览器,比如IE,用户不用再去费心安装每个系统的客户端就可以通过浏览器访问服务器上架设的系统
只是随着网络的发展,人们不再局限于只查看文字信息图片这些静态信息,对B/S系统的互操作性有了进一步的需求,这才兴起了RIA富客户端的风潮,使用各种技术对浏览器进行功能上的增强,让它可以满足现代用户的需要。
这套学生成绩管理系统,就是基于java平台和ajax实现的RIA富客户端开发的,它包括学生查询平台和后台管理平台两部分,分别为学生提供成绩查询功能,为老师提供管理学生成绩的功能。
2)方案论证

成绩管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。

本系统主要完成对学生成绩的管理,包括数据库中表的添加、修改、删除等。系统还可以完成对各类信息的浏览、查询、添加、删除、修改等功能。
3) 开发工具的选择

本系统开发工具:JDK Version1.5+ SQL SERVER 2000
需求分析
1) 功能需求分析

该学生成绩管理系统具备三方面的功能:一方面是学生用户,学生通过输入学号和密码进下该系统后,可以进行一些基础查询(学生信息查询、班级信息查询、课程信息查询)、成绩管理(成绩查询、计算平均分)重新登陆系统;一方面老师进入该系统则比学生多一些权限:成绩输入、成绩查询。

具体功能的详细描述如下

1 选择[学生基本维护]菜单命令,即可进入 [学生基本维护]功能窗体,在其中输入学生的相关信息,如果需要添加或修改学生信息,则单击相应的按纽,输入新信息后单击[添加]就可以了。需要删除一条信息,则只要选择这条信息再点击 [删除]。在搜索条件中输入相关的条件,单击 [查询]就可查找信息。

2 选择[学生信息查询]菜单命令,即可进入[学生信息查询]功能窗体,在其中的下拉列表中选择你要看的信息,则在下面的表格中显示你要的信息。

3 选择[成绩管理] [添加成绩]菜单命令,即可进入 [添加成绩]功能窗体,此功能权限只有管理员和教师。

4 选择[成绩管理] [输入成绩]菜单命令,即可进入 [输入成绩]功能窗体,

此功能权限只有管理员和教师。

5 选择[成绩管理] [修改成绩] 界面,此功能规管理员所有。

6 选择[成绩管理] [查询成绩]界面此界面对学生也是可见的,它的权限规所有用户所有。

7 选择[登陆] [重新登陆] 则会返回登陆界面,为用户提供方便。

8 选择[退出]将退出整个系统。
2) 性能需求分析

时间特性要求:在软件方面,响应时间有点慢,因为是用JBuilder做的,它占用内存比较大,更新处理时间比较快而且迅速。

安全性:设立口令号和密码验证方式,防止非法用户登录进行操作。也就是用户只有管理员、学生和教师才能进入这个系统,用户凭口令号和密码进入此系统,系统会自动判断用户是那种类型,分别拥有不同的权限。
3) 数据库需求分析――数据流图

在教务系统中功能模块主要牵涉到的信息包括:是学生信息(base_info)、班级信息(class_info)、课程信息(class_info)、成绩表(chengjibiao)、选课表 (xuankebiao)、登陆表(stu)。

学生信息:包含学号(id)、姓名(name)、班级(class)、班级(grade)、性别(sex)

课程信息:包括课程编号(course_id)、课程名称(coursename)

姓名(name)、成绩(result)

成绩表:编号(number)、学号(id)、课程名称(coursename)、成绩(result)

班级信息:班级编号(bjbh)、学号(id)、姓名(name)、班级名称(bjmc)。

登陆表:口令号(id)、密码(password)。

根据以上划分的具体数据信息,得到数据流图如1.1所示: SHAPE \* MERGEFORMAT

1.1数据库需求分析——数据流图

4)数据结构分析
学生信息={组成: {学号(id)、姓名(name)、班级(class)、性别(sex)、地址(address)}}

课程信息={组成: {编号(course_id)、课程名称(coursename)、教师(teacher)}}

选课信息={组成:{编号(select_id) 课程名称(coursename)、课程编号(course_id)、学号(xh)、姓名(name)、成绩(result) 、教师(teacher)}}

成绩表包括={组成:编号(number)、学号(id)、课程名称(coursename)、成绩(result)、教师(teacher)}}

课程信息包括={组成:课程编号(course_id)、课程名称(coursename)、教师(teacher)}}

班级信息={组成:班级编号(bjbh)、年级(nj)、班级名称(bjmc)、人数(rs)、班主任(bzr)}}

登陆表={组成:口令号(id)、密码(password)、权限(rightlimit)
1、对图1.1中所涉及的数据流描述如下:

1) 数据流名:口令号

说明:根据这个口令号定位到用户管理数据库,以便进行身份验证。

数据流来源:登陆界面输入的口令号和密码。

数据流去向:其中用户口令信息将存在于整个操作过程中,防止非法登陆。

数据流组成:口令号(文本);密码(文本)

数据流名:寻找信息

说明:根据用户在学生信息维护的时候所填写的信息。

数据流来源:学生信息维护界面学生输入包含学号、班级编号、名称等。

数据流去向:学号将存在整个操作,其它的存入数据库。

数据流组成:学号(文本);姓名(文本)等

数据流名:寻找信息

说明:根据用户在成绩管理的时候所填写的信息。

数据流来源:成绩输入、修改、添加等界面用户输入包含课程编号、课程名称、成绩、教师。

数据流去向:学号、班级编号、课程编号将存在整个操作,其它的存入数据库。

数据流组成:课程编号(文本)、课程名称(文本)、教师(文本)等。

数据流名:返回信息

说明:根据用户在学生信息维护的时候所填写的信息存入了数据库之后。

数据流来源:由学生信息维护界面学生输入的包含学号、姓名、性别等存入数据库的。

数据流去向:学生信息维护界面。

数据流组成:学号(文本)、姓名(文本)、班级名称(文本)、性别(文本)等。

数据流名:返回信息

说明:根据用户在成绩管理的时候所填写的信息存入数据库后。

数据流来源:由成绩管理输入的包含班级名称、教师、课程名、成绩存入数据库的。

数据流去向:成绩管理的各子界面。

数据流组成:班级编号(文本);班级名称(文本);教师(文本)等
2. 对图1.1中所涉及的处理过程描述如下:

处理过程名:登陆

输入数据流:口令号、密码

输出数据流:不符合输入条件的错误信息

处理过程逻辑:用 IF条件进行判断。
处理过程名:班级信息维护

输入数据流:班级编号、班级名称、教师等

输出数据流:班级编号、班级名称等 ,其中班级编号将存在整个操作。

处理过程号:班级编号,其中班级编号将存在整个操作。
处理过程名:学生信息维护

输入数据流:学号、姓名、班级编号、性别等。

输出数据流:学号、姓名、班级编号、性别等。其中学号将存在整个操作。
处理过程名:课程查询

输入数据流:学号、姓名

输出数据流:学号、班级名称、课程名称、上课时间节、上课时间天、上课地点、其中课程编号将存在整个操作。
处理过程名:成绩输入

输入数据流:课程编号、课程名称

输出数据流:编号、学号、课程名称、成绩 、其中编号和学号将存在整个操作。

系统功能结构设计

根据需求分析阶段得到的功能需求,管理员、学生和教师用户通过输入口令号和密码进下该系统后,可以进行一些学生基础信息查询(学生信息查询、班级信息查询、课程信息查询)、学生信息维护、成绩管理(成绩查询、计算平均分)重新登陆系统、退出。

模块功能大概可以分为如下4个方面:这几个模块学生基础维护、成绩管理、登陆、退出。其中基础维护还要包括学生信息维护、班级信息维护、课程信息维护。成绩管理包括成绩查询、添加成绩、成绩输入等。综上所述,得到客户端功能模块图如下2.1所示。 SHAPE \* MERGEFORMAT SHAPE \* MERGEFORMAT 系统设计

(一)设计目标

通过对学生管理工作的调查和研究,要求系统设计完成后将达到以下目标:

界面设计友好、美观,方便管理员的日常操作。

基本信息的全面设置,数据录入方便、快捷。

具有用户维护功能。

最大限度地实现了易维护性和易操作性。

(二)开发及运行环境

硬件平台:

CPU:P41.8GHz;

内存:256MB以上。

软件平台:

操作系统:Windows2000 Server;

数据库:SQL Server 2000;

开发工具包:JDK Version1.5

建立环境,这个过程如下:

在 HYPERLINK "http://java.sun.com/jdk/" \t "_blank" http://java.sun.com/jdk/处下载JDK(Java2SDK、StandardEdition、v6.0)。JDK的安装是首先运行下载得到的jdk-6u5-windows-i586-p.exe,然后修改系统环境变量,新建JAVA_HOME=[x:]\jdk6.0,并在PATH参数中加入%JAVA_HOME%\bin;,其中[x:]是安装JDK的硬盘符(c:、d:等)。

在http://jakarta.apache.org/处下载Tomcat6.0。tomcat的安装仅需将apache-tomcat-5.5.26.zip带目录释放到硬盘根目录下(c:\、d:\等),然后就可以在硬盘上找到apache-tomcat-5.5.26目录。

启动则在apache-tomcat-5.5.26/bin目录下执行startup.bat,就可启动tomcat中一个支持JSP网页技术的Web服务器。为了不与现有的Web服务器(例如IIS、PWS等)冲突,tomcat的Web服务器使用了8080端口。

在浏览器的地址栏中键入 HYPERLINK "http://localhost:8080/" \t "_blank" http://localhost:8080或者 HYPERLINK "http://127.0.0.1:8080/" \t "_blank" http://127.0.0.1:8080后,如果能看到tomcat的欢迎页就说明JSP实验环境已经建成,可进入下一步实验。要关闭Web服务器则运行shutdown.bat。
(三)数据库设计

数据库连接数据库连接对动态网站来说是最为重要的部分,从JSP中访问数据通常是通过Java Bean来实现的。Java中连接数据库的技术是JDBC(Java Database Connectivity)。很多数据库系统带有JDBC驱动程序,Java程序就通过JDBC驱动程序与数据库相连,执行查询、提取数据等等操作。Sun公司还开发了JDBC-ODBC bridge,用此技术Java程序就可以访问带有ODBC驱动程序的数据库,目前大多数数据库系统都带有ODBC驱动程序,所以Java程序能访问诸如Oracle、Sybase、MSSQL Server和MS Access等数据库。

JavaBean

JavaBeans 是基于java的组件模型,由属性,方法和事件3个部分组成。在该模型中,Javabeans可以被修改或与其他组件结合生成新组件或完成的程序。它是一种Java类,通过封装成为具有某种功能或者处理某个业务的对象。因此,也可以通过嵌在 JSP页面内的Java代码访问Bean及其方法。Bean的含义是可重复使用的Java组件。所谓组件就是一个由可以自行进行内部管理的一个或几个类所组成,外界了解其内部信息和运行方式的群体。使用它的对象只能通过接口来操作。
Bean实际上是根据JavaBeans技术标准所指定的Bean的命名和设计规范而编写的Java类。Bean并不需要继承特别的基类(base class)或事项特定的接口(Interface)。JavaBeans1.01-A规范定义了该组件的5种重要的机制:
内省(Introspection):组件可发表其支持的操作和属性,同时也支持在其他组件中发现重复利用的对象库,例如用户权限和电子自动回复等。

通信(Communication):生成和收集组件的消息事件

持续(Persistence):存放组件的状态。

属性(Properties):支持组件布局的控制,包括组件占用的空间和组件的相对位置。

定制(Customization):开发者可控制组件所需的改变机制。

Javabeans可实现在设计平台被规定的操作,一般可表示为简单的图形界面,如按钮,光标和菜单等,也可以是不可见的接受并处理事件的操作,如数据库连接Bean。JSP吸引人之处很大程度上在于它使用了Javabeans组件技术,但JSP中只支持不可见的Javabeans。
jdbc

创建一个简单的数据库连接Bean需要5个步骤:导入JDBC标准类库,注册数据库驱动程序,建立数据库连接,数据库操作和关闭。

1)导入JDBC标准类库

JDBC(Java DataBase Connectivity, Java数据库连接)是一种可用于执行SQL(Structured Query Language ,结构化查询语言)语句的应用程序接口,为了将服务器从客户端接受信息存入数据库,需要使用JDBC标准类库,所以需要在程序的开始加入以下import语句:

Import java.sql.*;

2)注册数据库驱动程序

在一个JDBC的驱动程序被用来建立数据库连接之前,必须向数据库驱动程序管理器注册该驱动程序。管理器的主要职责是保证所有的驱动程序对象可被JDBC的用户程序访问。当一个JDBC驱动程序被载入时,它将自动地在驱动程序管理器上注册。

可以调用Class.forName()方法载入一个JDBC驱动程序:

String strDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";

Class.forName(“strDBDriver ”);

Class.forName()是Java的Class类的静态方法,它使Java虚拟机动态的寻找,载入并连接指定的类。

一个JDBC的驱动程序就是一个可以通过classpath找到一个Java类。这里载入的JDBC_ODBC桥驱动程序就在sun.jdbc.odbc包中

3)建立数据库连接

载入一个正确的驱动程序后,就可以用它来建立与数据库的连接了。一个JDBC的数据库连接是用数据库URL来标记的。连接标记将告诉驱动程序管理器使用哪个驱动程序和连接哪个数据库。数据库URL的基本形式:

jdbc::<数据源标记>

URL的第一部分表示使用JDBC建立数据库连接。第2部分表示所使用的JDBC驱动程序名或网络协议名。第3部分是数据源标记,它映射所需连接的数据库。例如数据库的数据源标记是firm则同JDBC-ODBC桥连接该数据库所用的数据库URL为jdbc:odbc:firm.

可以通过DriverManager类的静态方法getConnection()来建立一个数据库连接:

String strDBUrl="jdbc:odbc:firm";

conn=DriverManager.getConnection(strDBUrl,"sa","");

一旦建立数据库连接,就可以打开该目标数据库,并通过该连接向目标数据库SQL指令。SQL指令通常会执行查询,插入,更新和删除等数据库操作。要执行SQL指令,必须通过Connection对象的createStatement()方法来创建一个STMT对象。STMT对象提供了许动方法来执行不同的数据库操作。可以 通过以下方式创建STMT对象:

private Connection conn=null;

private Statement stmt=null;

ResultSet rs=null;

stmt=conn.createStatement();

4)数据操作

与数据库建立了连接后,接着就要进行数据操作了。数据操作包括查询,插入,更新和删除等操作。要对数据库精心操作可以使用STMT对象的executeQuery()方法。executeQuery()方法接受一个SQL指令字符串作为参数,返回结果信息是ResultSet对象。具体如下:

rs=stmt.executeQuery(sql);

5)关闭

因为数据库连接是宝贵和有限的资源,因此必须在数据库操作完毕后即使释放数据库连接。Connection 对象提供了一个简单的关闭数据库连接的方法 close()。例如:conn.close();

stmt.close。
利用数据库原理相关知识,对数据库设计和每个模块、每个界面的具体设计。此系统采用的数据库软件是sqldb。

以下是系统需要的六张主要数据表的结构。字段名

字段类型

null

default

描述

主键

外键

id

bigint

 

 

主键

increment

 

code

varchar(100)

 

 

年级代码

 

 

name

varchar(200)

 

 

年级名称

 

 

School_grade年级字段名

字段类型

null

default

描述

主键

外键

id

bigint

 

 

主键

increment

 

code

varchar(100)

 

 

班级代码

 

 

name

varchar(200)

 

 

班级名称

 

 

school_grade

bigint

 

 

所在年级

 

school_grade

School_class班级字段名

字段类型

null

default

描述

主键

外键

id

bigint

 

 

主键

increment

 

code

varchar(50)

 

 

课程编码

 

 

name

varchar(200)

 

 

课程名称

 

 

credit_hour

float

 

 

学分

 

 

pass

float

 

 

及格线

 

 

school_grade

bigint

 

 

所在学期

 

school_grade

Lesson课程
字段名

字段类型

null

default

描述

主键

外键

id

bigint

 

 

主键

increment

 

username

varchar(200)

 

 

用户名

 

 

password

varchar(200)

 

 

密码

 

 

truename

varchar(200)

 

 

真实姓名

 

 

sex

integer

 

 

性别

 

 

school_class

bigint

 

 

所在班级

 

school_class

Student学生
字段名

字段类型

null

default

描述

主键

外键

id

bigint

 

 

主键

increment

 

score

float

 

 

成绩

 

 

student

bigint

 

 

用户

 

student

lesson

bigint

 

 

课程

 

lesson

Score成绩
字段名

字段类型

null

default

描述

主键

外键

id

bigint

 

 

主键

increment

 

username

varchar(200)

 

 

用户名

 

 

password

varchar(200)

 

 

密码

 

 

Admin管理员
系统的实现

(一)学生查询成绩部分

访问 HYPERLINK "http://localhost:8080/studentscope/" http://localhost:8080/ST/index.html。

测试用户名:test

测试密码:test学生需要先登录才能进入查询程序的界面, 进入系统前要对用户和密码进行校验,即用户名和密码正确才能进入系统。并且若用户连续三次密码输入错误,则不能再次输入。
输入用户ID后,按键,系统校验该用户是否存在.在公共方法jTuser_keyPressed()中,定义一个String类型变量sqlSelect用来生成SQL查询语句,再定义一个公共类 PetrieveObject类型变量 retrieve,然后调用retrieve的getObjectRow()方法,其参数为sqlSelect,用来判断该用户是否存在。

如果用户名与密码不正确,就会弹出警告信息,要求用户重新输入。登录成功后就可以看到登录学生的个人信息和相关学科的分数。后台管理成绩部分
访问 HYPERLINK "http://localhost:8080/studentscope/admin.html" http://localhost:8080/st/admin.html,进入后台管理界面。
测试管理员帐号:admin

测试密码:admin输入用户ID之后,按键,系统校验该用户是否存在。在公共方法jTuser_keyPressed()中,定义一个String类型变量sqlSelect用来生成SQL查询语句,再定义一个公共类RetrieveObject类型变量retrieve,然后调用retrieve的getObjectRow()方法,其参数为sqlSelect,用来判断该用户是否存在。该方法的详细代码如下:

Public void jTextField1_keyPressed(KeyEvent keyEvent){

If(keyEvent.getKeyCode()==KeyEvent.VK_ENTER){

String sqlSelect=null;

Java.util.Vector vdata=null;

sqlSelect=”select username from tb_user where userid=”’+jTextField1.getText().trim()+””’;

appstu.util.RetrieveObject retrieve=new appstu.util.RetrieveObject();

vdata=retrieve.getObjectRow(sqlSelect);

if (vdata.size()>0){

jPasswordField1.requestFocus();

}else{

Javax.swing.JOptionPane.showMessageDialog(null,”该用户不存在”,”错误”

,javax.swing.JOptionPane.ERROR_MESSAGE);

jTextField1.requestFocus();

}

}

}

如果用户存在,再输入对应的口令,输入的口令正确时,单击“登录”按钮,进入系统。公共方法jTuser_keyPressed()的设计与jTextField1_keyPressed的设计方法相似,其关键代码如下:

Public void jBlogin_actionPerformed(ActionEvent e){



String sqlSelect=null;

sqlSelect=”select count(*)from tb_user where userid=”’+jTextField1.getText().trim()

+”’and pass=”’+pass+””’;

Java.util.Vector vdata=null;

appstu.util.RetrieveObject retrieve=new appstu.util.RetrieveObject();

vdata=retrieve.getObjectRow(sqlSelect);

if(Integer.parseInt(String.valueOf(vdata.get(0)))>0){

AppMain frame=new AppMain();

This.setVisible(false);

}else{

Javax.swing.JOptionPane.showMessageDialog(null,”密码错误”,”错误”,

Javax.swing.JOptionPane.ERROR_MESSAGE);

jPasswordField1.requestFocus();

return;

}

} 登录成功可以选择功能模块进行操作。其中包括有年级班级管理模块、课程管理模块、学生管理模块、系统管理模块。这些模块都只有管理人员才能使用。管理年级信息,年级管理模块可以添加、修改、删除各年级的ID、年级编码及年级名称。

管理班级信息,班级信息设置用来维护班级的基本情况,包括对班级信息的添加、修改和删除等操作。

通过调用Jdbcadapter,完成对班级表的相应操作。执行该模块程序,首先从数据表中检索出班级的基本信息,如果存在数据用户单击某一条数据之后可以对其进行修改、删除等操作。单击jf_view_sysset_class.java 文件的source代码,编辑窗口首先导入UTIL公共包下的相应类文件;定义一个BOOLEAN实例变量INSERTFLAG,用来标志操作数据库的类型,然后定义一个私有方法BUILDTABLE(),用来检索班级数据。代码如下:

private void buildTable(){

DefaultTableModel=null;

String[] name ={“班级编号”,”年级编号”,”班级名称”};

String sqlstr=”select*from tb_classinfo”;

Appstu.util.retrieveObject bdt=new appstu.util.RetrieveObject();

Tabemodel=bdt.getTableModel(name,sqlstr);

jTable.setModel(tablemodel);

jTable.setRowHeight(24);

}
单击“新增”按钮,用来增加一条新的数据信息。在公共方法jBadd_actionPerformed()中定义局部字符串变量sqlgrade,用来生成年级sql的查询语句,然后调用公共类RetrieveObject的getObjectRow()方法,其参数为sqlgrade,将返回结果数据解析后添加到jComboBox1组件中。其jBadd_actionPerformed()方法的代码如下:

Public void jBadd_actionPerformed(ActionEvent e){

//获得年级名称

//if(jComboBox1.getItemCount()<=0){

Insertflag=true;

RetrieveObject bdt=new RetrieveObject();

String sqlgrade=”select gradeName from tb_gradeinfo”;

Java.util.Vector vdata=new java.util.Vector();

Vdata=bdt.getObjectRow(sqlgrade);

jComboBox1.removeAllItems();

for (int i=0;i
jComboBox1.addItem(vdata.get(i));

}

}

ItemEvent item=new ItemEvent(jComboBox1,0,jComboBox1,

jComboBox1.getSelectedIndex());

jComboBox1_itemStateChanged(item);

jTextField2.setText(“”);

jTextField2.requestFocus();

}

用户单击表格上的某条数据后,程序会将这条数据填写到jPanel2面板上的相应组件上,以方便用户进行相应的操作,在公共方法jTable1_mouseClicked()中定义一个string类型的局部变量sqlStr,用来生成sql查询语句,然后调用公共类RetrieveObject的getObjectPow()方法,进行数据查询,如果找到数据则将该数据解析显示给用户,代码如下:

Public void jTable1_mouseClicked(MouseEvent e)

Insertflag=false;

String id=null;

String sqlStr=null;

Int selectrow=0;

Selectrow=jTable1.getSelectedRow();

If(selectrow<0)return;

Id=jTable1.getValueAt(selectrow,0).toSwing();

sqlStr=”SELECT c.classID,d.gradeName FROM tb_classinfo c INNER JOIN” +”tb_gradeinfo d ON c.gradeID=d.gradeID”

+ “where c.classID=”’+id+”’”;

Java.util.Vector vdata=null;

RetrieveObject retrive=new RetrieveObject();

Vdata=retrive.getObjectRow(sqlStr);

jComboBox1.removeAllItems();

jTextField1.setText(vdata.get(0).toString());

jComboBox1.addItem(vdata.get(1));

jTextField2.setText(vdata.get(2).toString());

}
管理课程信息,课程管理模块可增加、修改、删除学院各班级开设的课程数据,包括课程的ID、课程代码、课程名称、课程学分、该课程的及格分数线及开设该课程的年级信息。评分模块主要是给学习某一课程的学生评分,通过选择课程的名称,可录入、修改、删除和查看学习该门课程所有学生的成绩。

this.tbar = new Ext.Toolbar(['选择课程:', filter, '-', {

id: 'addMenu',

text: '添加',

iconCls : 'add',

tooltip : '添加',

disabled: true,

handler: function() {

if (this.filter.getValue() == '') {

Ext.Msg.alert('提示', '请先选择课程');

} else {

var initValue = {

id: null,

"student.truename": null,

"student.id": null,

score: 0

};

var p = new this.dataRecord(initValue);
this.stopEditing();

this.store.insert(0, p);

this.startEditing(0, 0);
p.dirty = true;

p.modified = initValue;

if(this.store.modified.indexOf(p) == -1){

this.store.modified.push(p);

}

if (this.insertedRecords.indexOf(p) == -1) {

this.insertedRecords.push(p);

}

}

}.createDelegate(this)

},{

id: 'deleteMenu',

text: '删除',

iconCls : 'delete',

tooltip : '删除',

disabled: true,

handler: function() {

if (this.filter.getValue() == '') {

Ext.Msg.alert('提示', '请先选择课程');

} else {

Ext.Msg.confirm('信息', '确定要删除?', function(btn){

if (btn == 'yes') {

var sm = this.getSelectionModel();

var cell = sm.getSelectedCell();
var record = this.store.getAt(cell[0]);

if(this.store.modified.indexOf(record) != -1){

this.store.modified.remove(record);

}

// 记录删除了哪些id

var id = record.get('id');

if (id == null && this.insertedRecords.indexOf(record) != -1) {

this.insertedRecords.remove(record);

} else if (id != null && this.removedRecords.indexOf(record) == -1) {

this.removedRecords.push(record);

}
this.store.remove(record);

}

}, this);

}

}.createDelegate(this)

},{

id: 'saveMenu',

text: '提交修改',

iconCls : 'edit',

tooltip : '提交修改',

disabled: true,

handler: function() {

if (this.filter.getValue() == '') {

Ext.Msg.alert('提示', '请先选择课程');

} else {

var m = this.store.modified.slice(0);

var data = [];

Ext.each(m, function(item) {

data.push({

id: item.get("id"),

studentId: item.get("student.id"),

score: item.get("score")

});

});

var removedIds = [];

Ext.each(this.removedRecords, function(item) {

removedIds.push(item.get('id'));

});
if (data.length == 0 && removedIds.length == 0) {

// 没有修改,不需要提交

return;

}学生信息管理模块,包括学生信息的添加、修改、删除、保存修改等功能。同时学生信息中包括了学生的登陆查询界面的用户名及相应的登陆密码。单击“学生管理”/“学生”选项,进入该模块,其运行结果如下图所示。
用户进入该模块后,程序首先从数据库表中检索出学生的基本信息,如果检索到学生的基本信息,那么用户在单击某一条数据之后可以对该数据进行修改、删除等操作。公共类JdbcAdapter是对学生表tb_studentinfo进行相应操作。

用户单击表格中的某条数据之后,系统会将学生的信息读取到面板jPanel1的组件上来,以供用户进行操作,其关键代码F_view_student.java如下:

Public void jTable1_mouseClicked(MouseEvent e){

Id=jTable1.getValueAt(selectrow,0).toString();

sqlStr=”select*from tb_studentinfo where stuid =”’+id+’’’”;

java.util.Vetrive.getObjectRow(sqlStr);

string gradeid=null,classid=null;

string gradename=null,classname=null;

java.util.Vector vname=null;

classid=vdata.get(1).toString();

gradeid=classid.substring(0,2);

vname=retrive.getObjectRow(“select className from tb_classinfo where classID=’’’+classid+’””);

classname=String.valueOf(vname.get(0));

vname=retrive.getObjectRow(“select gradeName from tb_gradeinfo where gradeID=’”+gradeid+”’”);

gradename=String.valueOf(vname.get(0));

}
单击“添加”按钮,进行学生的录入操作,其代码编写最大流水号的生成其中公共方法jBdel_actionPerfromed()的关键代码JF_view_student.java如下:

Public voidjBadd_actionPerformed(ActionEvent e){



Int index=jComboBox2.getSelectedIndex();

Classid=classID[index];

String sqlMax=”select max(stuid)from tb_studentinfo where classID=”’+classid+”’”;

ProduceMaxBh pm=new appstu.util.produceMaxBh();

String stuid=unll;

Stuid=pm.getMax,classid);



}

单击“删除”按钮,删除学生信息,其中公共方法jBdel_actionPerformed()的关键代码如下:

Public viod jBdel _actionPerfromed(ActionEvente){



String sqlDel=”delete tb_studentinfo where stuid=”’+jTexField1.getText().trim()+’””;

JdbcAdapter jdbcAdapter=new JdbcAdapter();

If(jdbcAdapter.DeleteObject(sqlDel)){

jTextField1.setText(“”);

jTextField2.setText(“”);

jTextField3.setText(“”);

jTextField4.setText(“”);

jTextField5.setText(“”);

jTextField6.setText(“”);

jComBox1.removeAllItems();

jComBox3.removeAllItems();

ActionEvent event=new ActionEvent(jBrefresh,0,null);

jBrefresh_actionPerformed(event);

}

}
管理员模块,包括对管理员信息的新增、修改及删除。五、系统存在问题及前景展望

(一)系统存在问题

经过1个多月的学习和实践,基本上完成了学生成绩管理系统体设计和开发,并具备一定的使用价值。但是由于时间、技术等各方面因素,本系统仍不完善,有很多问题需要解决,结合在系统开发过程中的思考和各方面的意见,发现以下3点尚不成熟需要改进和完善的地方:

系统总体规划欠缺:系统在开发过程中就感到总体规划存在一定问题,如后台数据库表的冗余,导致对数据库的操作复杂。这个问题是开发到中后期发现的,发现的时候以及为时过晚,若当时改正,需要重新开发,这时才认识到软件开发过程的重要性。

功能不够完善:规划时出现的功能现在由于时间,技术等原因不能实现。

码中没有写注释。良好的写代码习惯是应该在代码中加入注释,以便以后维护更新系统的时候容易让人读懂,这个缺陷的产生是因为开发时偏重速度导致的。

(二)前景展望

“学海无涯”,学习和教育是无止境的,正是由于这种无限的需求,使得各种各样的基于网络形式的交流不断出现,诸如网上论坛、网上新闻组等等事物已不在是新鲜的事物了,它正在被人们广泛地接受和使用,网络强大的功能正在吸引着人们更进一步的探索。

计算机技术和Internet技术的迅猛发展和广泛普及,使得基于Web的应用开发势在必行,数据库技术更是需要和Web技术相结合,才能有更为广阔的前景。具有简单易懂、开发效率高等特点的Java和RIA技术则正适应了这种潮流,在Web开发中发挥了十分重要的作用,成为流行的开发工具之一。可以预见,java和RIA将成为网上不可或缺的卓越技术,利用java和RIA技术开发的各种网络系统必将大行其道。

参考文献:

《JSP编程实践——动态网页的引擎》 何川 方兴 陈渝 齐畅 清华大学出版社

《深入 JSP 网络编程》 雨阳隆春 等 清华大学出版社

《JSP入门与提高》 杨学瑜 王志军 刘同利 编著 清华大学出版社

《JSP 技术大全 (1-1版) 》 (美) Phil Hanna 机械工业出版社

《JSP 编程指南(第二版)》 王军等译 电子工业出版社

《JSP 站点设计编程指南》 王军等译 电子工业出版社

《电子政务总体设计与技术实现》 国家信息研究中心著 电子工业出版社

《电子政务基础知识读本》 汪玉凯主编 电子工业出版社《精通 Java 核心技术》 刘晓华等编 电子工业出版社

《Java 2编程指南(SDK 1.4版)》 李昭智等译 电子工业出版社

《JDK1.5类库大全》 陈烨 张蓓等编著 清华大学出版社
PAGE PAGE 18

用 户
数 据 库
返回信息
账号信息2 开发环境与工具介绍

前端客户端我用的是Macromedia Dreamweaver 8来编写JSP文件。中间业务逻辑层的JavaBeans用的是JBuilderX EnterpriseX版。数据库的编写是采用MYSQL数据库。

2.1开发环境

由于我用的是JBuilderX Enterprise版开发的这个系统,这个开发软件功能十

分强大,所以自然对开发环境要求相对来说比较高。

1.对系统硬件的要求:最小512M RAM,推荐786MB RAM。

2. 对系统平台的要求:

Windows平台

CPU:Intel PentiumIII 及以上兼容系列500MHz以上。

操作系统:Microsoft Windows2000(SP4)、WindowXP或者WindowsServer2003。

Linux平台

CPU:Intel PentiumIII 及以上兼容系列500MHz以上。

操作系统:Sun Java Desktop System Release2或者RedHat Enterprise Linux 3 .0

2.2 运行环境:

硬件:适用于数据吞吐量较大的不同服务器;

软件 :服务器端:WINDOWS XP+MySQL

用户端: WindowXP+IE登陆信息
操 作
登 录
寻找信息
错误信息
图2.1客户模块系统功能模块图
成绩修改
成绩添加
成绩查询
学生信息查询
学生信息维护
学生基本信息
退出
登陆
退出
管理员模块
成绩管理
成绩输入
重新登陆

学生成绩管理系统
学生模块
成绩查询

免费下载 ×

下载APP,支持永久资源免费下载

下载APP 免费下载
温馨提示
请用电脑打开本网页,即可以免费获取你想要的了。
扫描加我微信 ×

演示

×
登录 ×


下载 ×
论文助手网
论文助手,最开放的学术期刊平台
				暂无来源信息			 
回复
来来来,吐槽点啥吧

作者联系方式

×

向作者索要->