学生信息管理系统毕业设计

更新时间:2024-04-30 22:52:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

本 科 生 毕 业 设 计(论 文)

论文题目 : 姓学班年专学

名 : 号 : 级 : 级 : 业 : 院 :

学生信息管理系统

XXX XXXXXXX XXXX 10级 软件工程 软件学院 XXX

2014年 5 月10日

指导教师 : 完成时间 :

作 者 声 明

本人以信誉郑重声明:所呈交的学位毕业设计(论文),是本人在指导教师指导下由本人独立撰写完成的,没有剽窃、抄袭、造假等违反道德、学术规范和其他侵权行为。文中引用他人的文献、数据、图件、资料均已明确标注出,不包含他人成果及为获得东华理工大学或其他教育机构的学位或证书而使用过的材料。对本设计(论文)的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本毕业设计(论文)引起的法律结果完全由本人承担。

本毕业设计(论文)成果归东华理工大学所有。 特此声明。

毕业设计(论文)作者(签字):

签字日期: 年 月 日

本人声明:该学位论文是本人指导学生完成的研究成果,已经审阅过论文的全部内容,并能够保证题目、关键词、摘要部分中英文内容的一致性和准确性。

学位论文指导教师签名:

年 月 日

学生信息管理系统

张福运

Student information management system

ZhangFuyun

2014年 5 月10日

摘 要

随着社会时代的发展,教育事业蒸蒸日上,学校规模不断扩大,学生数量急剧增加,有关学生的各种信息也是越来越多。面对如此庞大的信息量,开发学生信息管理系统来提高学生管理工作的需求已是必然。通过使用一个完善的学生信息管理系统,可以做到学生信息的规范管理、科学统计和快速查询,从而减少管理方面的工作量。

本文主要介绍了学生信息管理系统的主要任务,阐述了开发该系统用到的关键技术,如采用B/S结构、使用 JSP编程、利用MySQL server建立数据库、使用JDBC连接数据库、编写JavaBean实现各项功能、采用HTML,JavaScript、Servlet等编程技术。

本系统是采用B/S模式进行开发的,系统的用户权限有两种:学生和管理员,不同权限用户登录到不同的操作界面。该系统主要由学生信息管理、选课管理、成绩管理三大主要功能模块组成,本文具体介绍了各功能模块所包含的小模块的功能,学生信息维护模块主要是对学生的基本信息进行添加、删除、修改、查询;选课管理模块主要是对选修课程进行添加、删除、统计选修人数、修改、查询,以及学生对选修课程进行选课和退选的操作;成绩查询模块主要是由管理员对必修课学生成绩进行录入、删除、修改、查询以及学生进行成绩查询等功能。

关键字:学生信息管理 B/S JSP MySQLserver JDBC JavaBean JavaScript Servlet

Abstract

With the development of society, education career be on the upgrade, the schoolscale is continually expanding, sharp increase in the number of students, the students all kinds of information is also more and more. In the face of such a huge amount of information, the development of student information management system to improve the management of students is the inevitable demand. Through the use of a complete student information management system, student information can be standardized management, scientific statistics and fast query, thereby reducing the workload management.

This paper mainly introduces the main task of the student information management system, discusses the key technologies of the system used in developm-ent, such as the use of B/S structure, using JSP programming, using MySQL se-rver to establish a database, using JDBC database connection, the realization ofvarious functions written in JavaBean, using HTML, JavaScript, Servlet programmi-ng te-chnology.

This system is developed by using the B/S pattern, the system has two typ-es of user rights: students and administrators, different permissions to different userlogin interface. The system is composed of student information management,course management, performance management of the three major function modules, this paper introduces the function module contains small module'sfunction, student i-nformation maintenance module is mainly to add, delete, modify,query the basic information on students; course management module is the mainelective course add, delete, modify, query, statistics the number of students, andstudents to elective elective courses and withdraw from the election; the result inquiry module ismainly composed of the administrator of the compulsory student achievement ent-ry, delete, modify, query and student performance query functions.

Keyword: student information management B/S JSP MySQLserver JDBC

JavaBean JavaScript Servlet

[键入文字]

有用户界面(User Interface,UI)的JavaBean,还有一种是没有用户界面,主要负责表示业务数据或者处理事务(如数据运算、操纵数据库)的JavaBean。本系统正是采用第二种,没用用户界面,主要负责处理与数据库的连接以及各个模块功能 的实现。

简单的说,JavaBean就是普通的Java类,只是它遵循了一些特定的规范(可称之为JavaBean规范),对一些功能进行封装,并对外界提供可以调用的方法接口,从而使其他开发者可以调用其内部已有的功能,从而实现代码的重复利用,而且对某个功能模块的修改完全不会影响其他模块。当程序出错时,很容易把错误定位在某哥模块上,使程序调试、开发效率大大提高。由于开发的功能模块都封装成了可以重复利用的组件,团队联合开发大型应用系统也方便了许多。

2.1.4 Servlet技术介绍

servlet是在服务器上运行的小程序。这个词是在Java applet的环境中创造的,Java applet是一种当作单独文件跟网页一起发送的小程序,它通常用于在客户端运行,结果得到为用户进行运算或者根据用户互作用定位图形等服务。

服务器上需要一些程序,常常是根据用户输入访问数据库的程序。这些通常是使用公共网关接口(CGI(Common Gateway Interface))应用程序完成的。然而,在服务器上运行Java,这种程序可使用Java编程语言实现。在通信量大的服务器上,Javaservlet的优点在于它们的执行速度更快于CGI程序。各个用户请求被激活成单个程序中的一个线程,而无需创建单独的进程,这意味着服务器端处理请求的系统开销将明显降低。

2.1.5 Servlet实现原理

最早支持Servlet技术的是JavaSoft的Java Web Server。此后,一些其它的基于Java的WebServer开始支持标准的ServletAPI。Servlet的主要功能在于交互式地浏览和修改数据,生成动态Web内容。这个过程为:

客户端发送请求至服务器端; 服务器将请求信息发送至Servlet

Servlet生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求

服务器将响应返回给客户端

Servlet看起来像是通常的Java程序。Servlet导入特定的属于Java ServletAPI的包。因为是对象字节码,可动态地从网络加载,可以说Servlet对Server就如同Applet对Client一样,但是,由于Servlet运行于Server中,它们并不需要一个图形用户界面。从这个角度讲,Servlet也被称为FacelessObject。

一个servlet就是Java编程语言中的一个类,它被用来扩展服务器的性能,服务器上驻留着可以通过“请求-响应”编程模型来访问的应用程序。虽然servlet可以对任何类型的请求产生响应,但通常只用来扩展Web服务器的应用程序。

5

[键入文字]

2.2 B/S体系结构介绍

在B/S体系结构系统中,用户通过浏览器向分布在网络上的许多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。B/S结构简化了客户机的工作,客户机上只需配置少量的客户端软件。服务器将担负更多的工作,对数据库的访问和应用程序的执行将在服务器上完成。浏览器发出请求,而其余如数据请求、加工、结果返回以及动态网页生成等工作全部由Web Server完成。实际上B/S体系结构是把二层C/S结构的事务处理逻辑模块从客户机的任务中分离出来,由Web服务器单独组成一层来负担其任务,这样客户机的压力减轻了,把负荷分配给了Web服务器。这种三层体系结构如图1所示。

Browse Web服 务器 数据库

图2-1 三层体系结构

采用该结构软件的优势在于:

(1)无须开发客户端软件,维护和升级方便;

(2)可跨平台操作,任何一台机器只要装有WWW浏览器软件,均可作为客户机来访问系统;

(3)具有良好的开放性和可扩充性;

(4)可采用防火墙技术来保证系统的安全性,有效地适应了当前用户对管理信息系统的新需求。

这种三层结构层与层之间相互独立,任何一层的改变不影响其他层的功能。 三层B/S结构将应用的三个部分明确的分开:表示部分、应用逻辑部分、数据访问部分。这三个部分在逻辑上独立的分开,分别加以实现,称之为:客户端、应用服务器、数据库服务器。而在客户端和应用服务器之间加入一个WEB服务器,就形成了一种特殊的B/S结构:Browser/Server,只在客户端安装浏览器软件即可。客户端使用Internet Explore时,就可以让Internet Explore变成为能够处理数据的应用系统。

由于这种模式是提供一个跨平台的、简单一致的应用环境,实现了开发系统与应用系统的分离,因此避免了为多重不同的操作系统开发同一应用系统的重复操作,便于用户群的扩展、变化以及应用系统的管理。

因此该结构在管理信息系统开发领域中获得飞速发展,成为应用软件开发中一种流行的体系结构.所以在开发本系统时采用这种模式。

6

[键入文字]

2.3 JavaScrit技术介绍

JavaScript是一种基于对象(object)和事件驱动(event driven)并具有安全性能的脚本语言。它的目的是与html超文本标记语言、java 脚本语言(java小程序)一起实现在一个web页面中链接多个对象,与web客户交互作用。它被嵌入 HTML 的文件之中。通过 JavaScript 可以做到响应用户的需求事件(如表单的输入),这样当一位使用者输入一项信息时,它不需要通过网络传送到服务器端进行处理再传回来的过程,而可以直接在客户端进行事件的处理。它的出现弥补了html语言的缺陷。

JavaScript是一种脚本语言,它采用小程序段的方式实现编程。像其它脚本语言一样,JavaScript同样已是一种解释性语言,它提供了一个易的开发过程。

它的基本结构形式与C、C++、VB、Delphi十分类似。但它不像这些语言一样,需要先编译,而是在程序运行过程中被逐行地解释。它与HTML标识结合在一起,从而方便用户的使用操作。

2.4 MySQL server 数据库 2.4.1 MySQL数据库介绍

MySQL server是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

2.4.2 MySQL数据库主要特点:

MySql的核心程序采用完全的多线程编程。线程是轻量级的进程,它可以灵活地为用户提供服务,而不过多的系统资源。用多线程和C语言实现的MySql能很容易充分利用CPU。

MySql可运行在不同的操作系统下。简单地说,MySql可以支持Win-dows95/98/NT/2000以及UNIX、Linux和SUN OS等多种操作系统平台。这意味着在一个操作系统中实现的应用可以很方便地移植到其他的操作系统下。

MySql有一个非常灵活而且安全的权限和口令系统。当客户与MySql服务器连接时,他们之间所有的口令传送被加密,而且MySql支持主机认证。

MySql支持ODBC for Windows。MySql支持所有的ODBC 2.5函数和其他许多函数,这样就可以用Access连接MySql服务器,从而使得MySql的应用被大大扩展。 MySql支持大型的数据库。虽然对于用PHP编写的网页来说只要能够存放上百条以上的记录数据就足够了,但MySql可以方便地支持上千万条记录的数据库。作为一个开放源代码的数据库,MySql可以针对不同的应用进行相应的修改。

MySql拥有一个非常快速而且稳定的基于线程的内存分配系统,可以持续使用面不

7

[键入文字]

必担心其稳定性。事实上,MySql的稳定性足以应付一个超大规模的数据库。

2.4.2 JDBC数据访问接口

为支持Java程序的数据库操作功能,Java语言采用了专门的Java数据库编程接口

(Java DataBase Connecivity,JDBC),用于在Java程序中实现数据库操作功能并简化操作过程。JDBC支持基本SQL语句,提供多样化的数据库连接方式,为各种不同的数据库提供统一的操作界面。 JDBC工作原理如图3所示。

J 应 用 程 序 DBC 驱动程序管JDBC驱动程序 for Oracle Orcale SQLserver驱动程序 for DB2 DB2 ODBC连接的数据库 JDBC-ODBC桥驱动程序 JDBC网络驱动程序 …….....

图2-3 JDBC工作原理

第三章 系统设计

3.1 需求分析

本系统主要是针对各个学校的学生信息进行管理,本系统满足以下几点要求: 系统安全性。由于该系统的使用对象多,要求有较好的权限管理。不同权限进入不同的界面,为了防止数据的并发现象的出现,数据的编辑必须由合法用户来操作,并对每个学生的信息进行良好的保密。

系统内容的全面性。学生信息管理系统不仅是对学生的基本信息进行管理,还包过

8

[键入文字]

学生选课管理,成绩管理等,因此,本系统能够很好的满足学校对学生的信息进行完善、统一的管理。

系统灵活性。要求有良好的人机界面,操作简单(数据的添加、删除、修改、查询等方便快捷)。

可扩展性。站点的数据承载量、功能模块的单个或整体调整都可以满足变化的需要,这种适应性称为可扩展性。固定资产管理系统的可扩展性,体现在不同用户群需要处理不同类型的数据、数据与用户之间进行交互、数据要符合个用户的使用需求、多表查询系统化、避免性能下降等方面。

易维护性。本系统采用B/S结构,系统的升级只需要在服务器端完成,更新软件系统的数据库、文件也只需要更新服务器端即可。在进行系统的维护时,只需要远程登录服务器系统,减少了维护系统的成本和周期。

3.1.1 运行环境

系统是基于校园网的客户、服务器环境下开发的,主要软件平台及开发工具是:

操作系统:Windows XP

数据库管理系统(DBMS):MySQL server 应用程序服务器软件:Apache Tomcat 7.0 集成开发工具:MyEclipse 7.0

3.2 系统总体设计 3.2.1 系统目标设计

系统开发的总体任务是实现学校学生信息管理系统化、规范化和自动化,从而达到

学生信息管理高效率的目的。使得教务处人员能够方便快捷地管理学生信息以及学生能够方便快捷的查看修改个人信息,从而提高工作效率和经济效益。计算机的资源是受到限制的,因此要充分利用JSP的功能,设计出功能强大的软件,同时要尽可能减少对系统资源的占用,同时对本系统要求有良好的灵活性和完善性。

3.2.2 系统设计思想

学生信息管理系统主要是对学生的信息,选课,成绩等的管理。学生信息管理首先

就应该有学生,所以系统应该有对学生的添加和删除以及学生信息的修改;选课,固然要有课程让学生选,就应该有添加、删除选修课程的功能,要让学生选课就应该有学生查看、添加、变更选修课程;成绩管理就是学生能够在网上平台上快速查询自己的成绩,这个功能的实现首先应该有添加、删除基础课程信息及课程成绩的功能,学生登入界面后能够查询。根据所需功能以及数据库,利用JSP+JavaBean+Servlet来设计该系统。

3.2.3 系统功能描述

本系统功能主要包过三大块:学生信息管理(管理员添加、删除、修改、查看学生

9

[键入文字]

基本信息及详细信息;学生查看个人所有信息、并可修改个人详细信息);选课管理(管理员添加、删除、修改、查看选修课表,查看包括单门课程被学生选修情况;学生查看选修课程、对未选修课程进行选修和对已选修课程进行退选);成绩查询(管理员添加、删除基础课程和学生基础课程成绩以及查询单人或单门课程分数情况;学生查看自己所学基础课成绩)。

由于该系统权限有2个,学生和管理员,故这两个权限范围内的都应该具有上述指定的功能,即将上述三大功能模块划分给这2 个权限去具体实现。

信息管理系统 学生 管理员

图3-1 权限管理模块图

学生页面应具有的功能模块:

学生 修改密码 信息维护 选修课程 查看成绩

图3-2 学生功能模块

修改密码:学生进入页面后可以修改自己的密码,以达到保密性;

信息维护:学生可以查看自己的基本信息(基本信息由管理员录入不能修改),

并填写修改自己的详细个人信息情况;

查看课程:学生可以查看自己必修课程列表。

选修课程:该功能主要是让学生查看已有的选修课程并进行选修,

还可以查看自己已选修的课程如不满意可以删除重选;

查看成绩:学生可以查看自己的必修课成绩。

管理员页面应具有的功能模块:

10

[键入文字]

管理员 学生管理 选课管理 成绩管理

图3-3 管理员功能模块

学生管理:该模块主要添加新学生基本信息;查看已有学生基本信息及详细信息及可对

其修改,删除多余或出错学生信息。

选课管理:可以添加新选修课程;查看已有选修课程并对起进行删除修改;查看学生选

课情况,可以统计每门课程选修的人数以便打印出给任课老师,还可以删除某个学生对某门课程的选修。

成绩管理:可以添加学生所学的基础课程并修改;添加学生基础识得成绩;查看学生成

绩(根据输入学号和课程号来查看不同的成绩情况);可以对学生成绩进行修改。

下面是学生信息管理系统的总功能模块图:

信息管理 选课管理 成绩管理 学生信息管理系统 管学理生 员 添删加除 学学生 生 修改学生信息 查看学生信息 修改学生信息 查看学生信息 查看学生信息 添加选修课程 管理员 学生 管理员 学生 删除选修课程 修查改看选选修修课课程 程 查看已 选课程 查看未选课程 选修未选课程 退选已选课程 添加学生成绩 删除学生成绩 修改学生成绩 查看学生成绩 管理必修课程 查查看看学必生修成课绩 程 图3-4 系统功能图

11

[键入文字]

3.2.4 系统UML活动图

系统主页 学生操作 修改密码

12

选定登录模块 管理员操作 信息维护 选修课程 查看成绩 学生管理 选课管理 成绩管理 [键入文字]

图3-7 系统UML活动

第四章 数据库设计

在本系统中使用的是MySQL server数据库管理系统。本系统使用的数据库名为student,下面具体讲解数据库中各数据表的创建和逻辑结构.

4.1 总体表设计

本系统中共用到了6个数据表,如下: 1. student表:记录学生信息; 2. xianxiuke表:记录选修课信息; 3. bixiuke表:记录学生必修课信息; 4. chengji表:记录学生基础课成绩信息; 5. xianke表:记录学生选课信息。 6. admin表:记录管理人员信息。

4.2 数据库表的结构

表4-1 admin表的定义:字段名 字段描述 是否主键 数据类型 长度 admin_id 管理员ID 是 varchar 20 password 密码

varchar

20

表4-2 student表的定义:字段名 字段描述 是否主键 数据类型 长度 name 学生姓名 否 varchar 20 stu_id 学号 是 varchar 20 password 密码 否 varchar 20 sex 性别 否 varchar 20 zy 专业 否 varchar 20 mz

民族

char

10

13

约束 Not null Not null

约束 Not null Not null Not null Not null Not null Not null

说明 唯一标识

说明 唯一标识

[键入文字]

zzmm 政治面貌 cym 曾用名 sfz 身份证 csrq 出生日期 jg 籍贯 jkzk 健康状况 rxnf 入学年份 jtdz 家庭地址 jtdh 家庭电话 bm 邮政编码 lxfs 联系方式 email 邮件 qtlxfs 其他联系 bz 备注

字段名 字段描述 xqh 学期号 kch 课程号 kcm 课程名 xf 学分 zjjs 主讲教师

字段名

字段描述

否 varchan 20 否 varchar 20 否 varchar 20 否 varchar 20 否 varchar 20 否 varchar 20 否 varchar 20 否 varchar 50 否 varchar 20 否 varchar 10 否 varchar 20 否 varchar 20 否 varchar 20 否

varchar

20

表4-3 bixiuke表的定义

是否主键 数据类型 长度 否 varchar 20 是 varchar 20 否 varchar 20 否 varchar 20 否

varchar

20

表4-4 xianxiuke表的定义

是否主键

数据类型

长度

14

Not null

约束 Not null Not null

约束

说明 唯一标识

说明

[键入文字]

kch kcm rkjs xq time skjs

课程号 课程名 任课教师 星期几 时间 上课教室

是 否 否 否 否 否

varchar varchar varchar varchar varchar varchar

20 20 20 20 20 20

Not null Not null

唯一标识

表4-5 chengji表的定义

字段名 id stu_id skch cj cxcj

字段描述 自动标识 学号 课程号 成绩 重修成绩

是否主键 是 否 否 否 否

数据类型 int varchar varchar varchar varchar

表4-6 xianke表的定义

字段名 id stu_id kch

字段描述 自动标识 学号 课程号

是否主键 是 否 否

数据类型 int varchar varchar

长度 4 20 20

约束 Not null Not null Not null

说明 唯一标识 外键 外键

长度 4 20 20 20 20

约束 Not null Not null Not null Not null Not null

说明 唯一标识 外键 外键

4.3 实体及ER图 4.3.1 实体介绍

本系统中的实体共有4 个,分别为:

实体1: 学生(姓名name,学号stu_id,密码password,性别sex,专业zy,民族mz,

政治面貌,曾用名cym,身份证sfz,出身日期csrq,籍贯jg,健康状况jkzk,

15

[键入文字]

入学年份rxnf,家庭地址jtdz,家庭电话jtdh,邮政编码bm,联系方式lxfs, Email email,备注bz); 关键字为:学号stu_id

实体2:选修课(课程号kch,课程名kcm,任课教师rkjs,星期几xq,时间time,

上课教室skjs); 关键字为:课程号kch

实体3:基础课(学期号xqh,课程号kch,课程名kcm,学分xf,主讲教师zjjs)

关键字为:课程号

实体4:成绩(id,学号stu_id,课程号kch,成绩cj,重修成绩cxcj);

4.3.2 实体的ER图以及各实体之间联系的ER图

实体1的ER图:

姓名 学号 密码 专业 性别 籍贯 政治面貌 民族 学生 出生日期 曾用名 健康状况 身份证 入学年份

家庭地址 联系方式 图4-1 实体1

16

[键入文字]

实体2的ER图

课程号 课程名 任课教师 选修课 星期几 上课教室 时间

图4-2 实体2

实体3的ER图

课程号 学期号 必修课 课程名 主讲教师 学分

图4-3 实体3

17

[键入文字]

实体4的ER图:

学号 ID 成绩 课程号 成绩

图4-4 实体4

重修成绩

实体1与实体2之间的联系:选修(学号,课程号)

学生 选修 选修课

图4-5 实体1与实体2(m:n)关系

实体1与实体3之间的关系:学习(学号,课程号,成绩)

学生 学习 必修课

图4-6 实体1与实体3(m:n)关系

18

[键入文字]

4.4 数据库连接

JDBC是Java数据库连接(Java Data Base Connectivity)技术的简称,是为各种常用的数据库提供无缝连接的技术。JDBC定义了Java语言同各种SQL数据之间的应用程序设计接口(API),提高了软件的通用性。

JDBC的关键技术是数据库连接驱动程序,针对这点大量的数据库厂商和第三方开发商 支持Java的JDBC的标准,并开发了不同的数据库JDBC驱动程序。这些驱动程序可以分成四种:JDBC-ODBC Bridge驱动程序、JDBC Native Bridge驱动程序、JDBC-Network Bridge驱动程序、Pure Java JDBC Driver。

本系统正是利用JDBC-ODBC Bridge驱动程序来连接数据库的,连接数据库时利用JavaBean封装连接程序,其代码为: package com.connection; import java.sql.*;

public class ConnectMysql {

private Connection conn=null; private String user=\; private String password=\;

private String classurl=\;

Private String url=\ useUnicode=true&characterEncoding=UTF-8\; public Connection getConn()throws Exception {

Class.forName(classurl);

this.conn=DriverManager.getConnection(url,user,password); return this.conn; }

public void close()throws Exception {

if(this.conn!=null) {

this.conn.close(); } } }

19

[键入文字]

第五章 系统具体实现

按照上面所说的学生信息管理系统应具有的功能来具体实现该系统,尽量完善系统

的每一个要求,做到精益求精。

5.1 登入界面

由于系统设置了2个不同的权限,所以登入时首先应该对权限进行判断,然后对所

属权限范围内的用户进行用户名和密码验证,验证成功才进入相应的页面。

当密码错误 输入用户名和密码 选择权限 判断用户 学生界面 系统验证通过 判断权限 管理员界面

图5-1 权限判断

20

[键入文字]

登入系统界面如下:

图5-1 登入系统界面

当用户输入ID和密码后会根据选择的权限对ID和密码进行验证验证成功时进入下一 页面,主要调用CheckdeluServlet进行处理,判断用户权限及密码正确与否的代码如下:

功能实现主要代码:

//查找管理员ID和密码是否存在

public boolean findAdmin(String admin,String password)throws Exception {

String sql=\+admin+\password='\+password+\;

this.pstmt=this.conn.prepareStatement(sql); ResultSet rs=this.pstmt.executeQuery(); if(rs.next()) //判断rs是否查找到内容 {

this.flag=true; }

this.conn.close(); return this.flag;

21

[键入文字]

}

//查找学生ID和密码是否存在

public boolean findStudent(String student,String password)throws Exception {

String sql=\+student+\and password='\+password+\;

this.pstmt=this.conn.prepareStatement(sql); ResultSet rs=this.pstmt.executeQuery(); if(rs.next()) //判断rs是否查找到内容 {

this.flag=true; }

this.conn.close(); return this.flag; }

5.2 学生界面

当验证用户名和密码正确后进入学生界面:

(学生登录的初始用户名及密码都是学号)

图5-2 学生界面

22

[键入文字]

学生主页面主要就是左侧显示学生的登录状态及可操作的一些功能, 在右边设置了一个 iframe框来显示学生选择功能后进入的页面。

5.3 学生界面功能实现

在学生主页面中有学生所需要的一些功能,如修改自己的登录密码,查看学籍(即基本信息),修改个人详细信息,查看自身必修课程,查看必修课程成绩,查看未选修课表并进行选修,查看已选课程并可退选。

5.3.1 学生修改密码页面

图5-4 学生修改密码界面

修改密码主要实现代码:

//学生修改密码

public boolean updateStudentpass(String stu_id,String oldpass, String newpass) throws SQLException {

String extrasql=\ stu_id='\+stu_id+\+oldpass+\; PreparedStatement extrapstmt=this.conn.prepareStatement(extrasql); ResultSet rs=extrapstmt.executeQuery();

23

[键入文字]

String sql=\+newpass+\ where stu_id='\+stu_id+\;

this.pstmt=this.conn.prepareStatement(sql); if(rs.next() && this.pstmt.executeUpdate()>0) {

this.flag=true; }

this.conn.close(); return this.flag; }

5.3.2学生信息修改及查看页面

学生可以查看自己的基本信息以及修改自己的个人详细信息。

图5-5 学生学籍信息(不可修改)

图5-5 学生个人详细信息(可修改)

学生信息维护模块主要有两个页面来实现:一个显示学生的基础学籍信息,学生自身不可修改;一个显示并可编辑学生自身的详细个人信息。 功能实现主要代码如下: //输出学生信息

24

[键入文字]

public Student findStudent(String stu_id) throws SQLException {

Student stu=new Student();

String sql=\+stu_id+\; this.pstmt=this.conn.prepareStatement(sql); ResultSet rs=this.pstmt.executeQuery(); if(rs.next()) //判断rs是否查找到内容 {

stu.setStu_id(rs.getString(\)); stu.setPass(rs.getString(\)); stu.setName(rs.getString(\)); stu.setSex(rs.getString(\)); stu.setZy(rs.getString(\)); stu.setMz(rs.getString(\));

stu.setZzmm(rs.getString(\)); stu.setSfz(rs.getString(\)); stu.setJg(rs.getString(\));

stu.setJkzk(rs.getString(\)); stu.setRxnf(rs.getString(\)); stu.setLxfs(rs.getString(\)); stu.setEmail(rs.getString(\)); stu.setQtlxfs(rs.getString(\)); stu.setBz(rs.getString(\)); stu.setCym(rs.getString(\)); stu.setCsrq(rs.getString(\)); stu.setJtdz(rs.getString(\)); stu.setJtdh(rs.getString(\)); stu.setYzbm(rs.getString(\)); }

this.conn.close(); return stu; }

//学生修改自身信息

public boolean updateStudentbyself(Student stu,String stu_id) throws SQLException {

String sql=\+stu.getCym()+\ sfz='\+stu.getSfz()+\+stu.getCsrq()+\ jg='\+stu.getJg()+\+stu.getJkzk()+\

rxnf='\+stu.getRxnf()+\+stu.getJtdz()+\ jtdh='\+stu.getJtdh()+\+stu.getYzbm()+\ lxfs='\+stu.getLxfs()+\+stu.getEmail()+\ qtlxfs='\+stu.getQtlxfs()+\+stu.getBz()+\ where stu_id='\+stu_id+\;

this.pstmt=this.conn.prepareStatement(sql);

25

[键入文字]

if(this.pstmt.executeUpdate()>0) {

this.flag=true; }

this.conn.close(); return this.flag; }

5.3.3成绩查询

学生可以查看自己所学基础课程的成绩,省了寄成绩单的麻烦。

图5-6 学生成绩查询界面

5.3.4查看必修课表

学生可以查看并清楚地知道自身需要学习的基础课程有哪些。

26

[键入文字]

功能实现主要代码: //输出必修课程表

public List findallBixiuke() throws SQLException {

ArrayList al=new ArrayList(); String sql=\;

this.pstmt=this.conn.prepareStatement(sql); ResultSet rs=this.pstmt.executeQuery(); while(rs.next()) {

Bixiuke kecheng=new Bixiuke();

kecheng.setKch(rs.getString(\)); kecheng.setKcm(rs.getString(\)); kecheng.setZjjs(rs.getString(\)); kecheng.setXqh(rs.getString(\)); kecheng.setXf(rs.getString(\)); al.add(kecheng); }

this.conn.close(); return al; }

5.3.5 查看选修课表并进行选修和退选

学生可以在该页面进行查看已有的选修课程,并进行选修。

27

[键入文字]

图5-7 学生未选修课程界面

功能实现主要代码:

//输出未选课程表

public List findKecheng(String stu_id) SQLException {

ArrayList al=new ArrayList(); String sql=\;

this.pstmt=this.conn.prepareStatement(sql); ResultSet rs=this.pstmt.executeQuery(); while(rs.next()) {

Xianxiuke kecheng=new Xianxiuke(); String kch=rs.getString(\); String extrasql=\* from xianke stu_id='\+stu_id+\+kch+\; PreparedStatement

extrapstmt=this.conn.prepareStatement(extrasql);

ResultSet extrars=extrapstmt.executeQuery(); if(!extrars.next()) {

kecheng.setKch(rs.getString(\)); kecheng.setKcm(rs.getString(\)); kecheng.setRkjs(rs.getString(\)); kecheng.setXq(rs.getString(\));

kecheng.setTime(rs.getString(\)); kecheng.setSkjs(rs.getString(\)); al.add(kecheng); } }

this.conn.close(); return al; }

28

throws

where

[键入文字]

图5-8 查看已选课程并退选界面

功能实现主要代码有: //输出已选 课程表

public List findKechenged(String stu_id) throws SQLException {

ArrayList al=new ArrayList();

String sql=\+stu_id+\; this.pstmt=this.conn.prepareStatement(sql); ResultSet rs=this.pstmt.executeQuery(); while(rs.next()) {

Xianxiuke kecheng=new Xianxiuke(); String kch=rs.getString(\); String extrasql=\* from xianxiuke where kch='\+kch+\; PreparedStatement

extrapstmt=this.conn.prepareStatement(extrasql);

ResultSet extrars=extrapstmt.executeQuery(); if(extrars.next()) {

kecheng.setKch(extrars.getString(\)); kecheng.setKcm(extrars.getString(\)); kecheng.setRkjs(extrars.getString(\)); kecheng.setXq(extrars.getString(\));

kecheng.setTime(extrars.getString(\)); kecheng.setSkjs(extrars.getString(\)); al.add(kecheng); } }

this.conn.close(); return al; }

选修与退选课程操作实现主要代码:

//删除学生选课

public boolean deleteXianke(String stu_id,String kch) throws SQLException

29

[键入文字]

{

String sql=\from xianke where stu_id='\+stu_id+\and kch='\+kch+\;

this.pstmt=this.conn.prepareStatement(sql); if(this.pstmt.executeUpdate()>0) {

this.flag=true; }

this.conn.close(); return flag; }

//添加学生选课

public boolean addXianke(String stu_id,String kch) throws SQLException {

String sql=\values('\+kch+\+stu_id+\;

this.pstmt=this.conn.prepareStatement(sql); if(this.pstmt.executeUpdate()>0) {

this.flag=true; }

this.conn.close(); return this.flag; }

5.4 管理员界面

管理员页面与学生页面布局类似,只有左侧可以可选操作功能选项不同而已!

30

[键入文字]

图5-9 管理员界面

该界面是管理员通过验证后进入的页面,管理员可以选择进行自己所需要的操作。

5.5 管理员界面功能实现

进入管理员界面后,后台工作人员可以选择不同功能进行操作,主要功能有:添加新学生;查看学生所有信息并进行修改、删除操作;查看选修课及学生选课情况并进行修改;查看必修课表并进行修改;查看、修改、添加、删除学生成绩;管理员具有最高权限可以管理所有信息。

5.5.1 查看学生基本信息

31

[键入文字]

查看学生基本信息

该页面可以对学生进行删除,以及对学生详细信息(包括基本信息)进行查看修改。

修改学生信息页面:

图5-11 管理员修改学生信息

该功能实现主要代码有:

//输出学生列表 public List outputStudent()throws SQLException { ArrayList al=new ArrayList(); String sql=\; this.pstmt=this.conn.prepareStatement(sql); ResultSet rs=this.pstmt.executeQuery(); while(rs.next()) //判断rs是否查找到内容 { Student stu=new Student(); stu.setStu_id(rs.getString(\)); stu.setPass(rs.getString(\)); stu.setName(rs.getString(\)); stu.setSex(rs.getString(\)); stu.setZy(rs.getString(\)); stu.setMz(rs.getString(\)); stu.setZzmm(rs.getString(\)); stu.setSfz(rs.getString(\)); stu.setJg(rs.getString(\));

32

[键入文字]

stu.setJkzk(rs.getString(\)); stu.setRxnf(rs.getString(\)); stu.setLxfs(rs.getString(\)); stu.setEmail(rs.getString(\)); stu.setQtlxfs(rs.getString(\)); stu.setBz(rs.getString(\)); stu.setCym(rs.getString(\)); stu.setCsrq(rs.getString(\)); stu.setJtdz(rs.getString(\)); stu.setJtdh(rs.getString(\)); stu.setYzbm(rs.getString(\)); al.add(stu); }

this.conn.close(); return al; }

//管理员修改学生信息 public boolean updateStudentbyadmin(Student stu,String stu_id) throws SQLException { String sql=\

name='\+stu.getName()+\+stu.getStu_id()+\ +

\+stu.getSex()+\+stu.getZy()+\+stu.getMz()+\ + \+stu.getZzmm()+\

cym='\+stu.getCym()+\+stu.getSfz()+\+stu.getCsrq()+\ +

\+stu.getJg()+\+stu.getJkzk()+\+stu.getRxnf()+\z='\+stu.getJtdz()+\ +

\+stu.getJtdh()+\+stu.getYzbm()+\+stu.getLxfs()+\,\ +

\+stu.getEmail()+\+stu.getQtlxfs()+\+stu.getBz()+\+stu_id+\; this.pstmt=this.conn.prepareStatement(sql); if(this.pstmt.executeUpdate()>0) { this.flag=true; } this.conn.close(); return this.flag;

}

5.5.2 添加新学生

该页面主要是用来添加新的学生及其基本信息。

33

[键入文字]

图5-12 添加新学生界面

功能实现主要代码如下:

//添加新学生

public boolean addStudent(Student stu) throws SQLException { String sql=\into student(stu_id,password,sex,name,zy,zzmm,mz) \ +

\+stu.getStu_id()+\+stu.getStu_id()+\+stu.getSex()+\ +

\+stu.getName()+\+stu.getZy()+\+stu.getZzmm()+\+stu.getMz()+\')\; this.pstmt=this.conn.prepareStatement(sql); if(this.pstmt.executeUpdate()>0) { this.flag=true; } this.conn.close(); return this.flag; }

添加新学生的同时,系统自动设置学生登录密码为学生学号。。

5.5.3添加新选修课

34

本文来源:https://www.bwwdw.com/article/qxlg.html

Top