jsp课程设计学生管理系统.docx
《jsp课程设计学生管理系统.docx》由会员分享,可在线阅读,更多相关《jsp课程设计学生管理系统.docx(41页珍藏版)》请在冰豆网上搜索。
![jsp课程设计学生管理系统.docx](https://file1.bdocx.com/fileroot1/2023-2/10/1f646597-22db-443c-a84a-57bb971a305a/1f646597-22db-443c-a84a-57bb971a305a1.gif)
jsp课程设计学生管理系统
课程设计报告
课程:
jsp
学号:
姓名:
班级:
教师:
徐州师范大学
计算机科学与技术学院
课程设计任务书
姓名
学号
班级
课程名称
数据库系统概论
课程性质
课程设计
同组成员
分工
学生选课操作、教师管理操作两部分功能的实现
设计时间
设计名称
学生选课管理信息系统的设计与实现
设计要求
系统功能基本要求:
教师信息,包括教师编号、教师姓名、性别、年龄、学历、职称、毕业院校,健康状况等。
学生信息,包括学号、姓名、所属院系、已选课情况等。
教室信息,包括,可容纳人数、空闲时间等。
选课信息,包括课程编号、课程名称、任课教师、选课的学生情况等。
成绩信息,包括课程编号、课程名称、学分、成绩。
按一定条件可以查询,并将结果打印输出。
设计思路
与
设计过程
设计思路:
,本系统结合数据库和JSP编程实现了学生选课管理系统。
学生选课管理系统分为三个子模块:
第一模块是学生选课的页面操作,包括个人信息,密码修改,查询成绩,选课,退选五个功能;第二模块是教师操作页面,包含个人信息,密码修改,录入成绩,查询选课情况,查看教室信息;第三模块是管理员,包含学生信息管理(增加、修改、删除、查询),教师信息管理(增加、修改、删除、查询),管理员信息管理(增加、修改、删除、查询)。
计划与进度
构思整个系统的框架,在数据库中建表
主要对学生选课的一些操作进行jsp编码
主要对教师的相关操作进行jsp编码
整合整个实验,并进行修改
写课程设计的报告
任课教师
意见
说明
学生选课管理系统
一.系统需求分析
学生选课系统是一个学校不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生选课系统应该能够为用户提供充足的信息和快捷的查询手段。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对选课信息进行管理,有着手工管理所无法比拟的优点。
这些优点能够极大地提高人事劳资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。
因此,开发这样一套软件成为很有必要的事情,在下面的各章中我们将以开发一套学生选课系统为例,谈谈其开发过程和所涉及到的问题及解决方法。
本实验实现的学生选课管理系统主要包括以下功能:
1.完成数据的录入和修改,并提交数据库保存。
其中的数据包括:
学生信息、课程设置、学生成绩以及操作员信息等;
2.设计实现学生信息查询,选课管理、退选管理、分数查询,课程的浏览教师信息查询、教室空闲时间查询等JSP页面。
3.具备一定的安全性管理功能。
包括操作员的权限设置、修改密码设置、注销和等功能。
二.系统总概括
1.系统的总设计
本系统结合数据库和JSP编程实现了学生选课管理系统。
学生选课管理系统分为三个子模块:
第一模块是学生选课的页面操作,包括个人信息,密码修改,查询成绩,选课,退选五个功能;第二模块是教师操作页面,包含个人信息,密码修改,录入成绩,查询选课情况,查看教室信息;第三模块是管理员,包含学生信息管理(增加、修改、删除、查询),教师信息管理(增加、修改、删除、查询),管理员信息管理(增加、修改、删除、查询)。
图1系统的功能模块图
2.数据库设计
2.1数据库概念结构设计
本系统主要有三个实体,其中有学生和课程两个实体集,一个学生可以选修若干门课程,一门课程也可以被多个学生选修,这两个实体集之间是多对多联系,还有教师和课程两个实体,一个老师可以教授若干门课程,一门课程却只能有一个老师教授,这两个实体集之间是一对多联系。
通过选课成绩将老师和学生联系在一起。
为保证系统的安全性,设置了操作员这一实体集,用来存放合法用户的编号、姓名、密码。
本系统的E-R图如下:
图2系统的E-R图
2.2数据库逻辑结构设计
根据关系模型的转换原则,上面的E—R图可转换为如下所示的关系模型:
student(sId,sName,sPass,dId)
含义分别为:
学生(学号,姓名,密码,所在系的编号)
stuDetail(userID,userSex,userMobil,useraddress)
含义分别为:
学生信息(学号,性别,电话,地址)
teacher(tId,tPame,tPass,dId)
含义分别为:
教师(学号,姓名,密码,所在系的编号)
teaDetail(userID,userSex,userAge,useredu,usertitle,usersch,userhealth)
含义分别为:
教师信息(学号,性别,年龄,学历,职称,毕业院校,健康状况)
course(cId,cName,tId,credit,period,cPlace,cNumall,cNum,dId)
含义分别为:
课程(课程号,名称,教师号,学分,学时,上课地点,总人数,已选人数,院系号)
choosecourse(cId,sId,Grade)
含义分别为:
选修(学号,课程代码,成绩)
room(roomname,roomnum,roomtime)
含义分别为:
教室(教室名,容纳人数,空闲时间)
admin(aId,aPass)
含义分别为:
管理员(管理员编号,姓名)
department(dId,dName)
含义分别为:
院系(院系编号,院系名)
根据上面的E-R图设计及关系模型的设计,得出数据表的设计,在本系统中主要的数据表如下:
表1学生表Student的表结构
主码
列名
数据类型
宽度
小数位
空否
备注
Pk
sId
Char
10
N
学号
sName
Char
20
Y
姓名
sPass
Char
2
Y
密码
dId
Char
20
Y
所在系号
表2学生信息表StuDetail的表结构
主码
列名
数据类型
宽度
小数位
空否
备注
Pk
userID
Char
10
N
学号
userSex
Char
10
Y
性别
userMobil
Char
30
Y
电话
userAddress
Char
50
Y
地址
表3教师表teacher的表结构
主码
列名
数据类型
宽度
空否
备注
Pk
tId
Char
10
N
编号
tName
Char
20
Y
姓名
tPass
Char
2
Y
密码
dId
Char
20
Y
所在系号
表4教师信息表teadetail的表结构
主码
列名
数据类型
宽度
空否
备注
Pk
userID
Char
10
N
学号
userSex
Char
10
Y
性别
userAge
Char
50
Y
电话
useredu
Char
30
Y
学历
usertitle
Char
30
Y
职称
usersch
Char
30
Y
毕业院校
Userhealth
Char
50
Y
健康状况
表5课程信息表Course的表结构
主码
列名
数据类型
宽度
空否
备注
Pk
cId
Char
10
N
课程号
coName
Char
20
Y
课程名称
tId
Char
10
Y
教师号
credit
Char
8
Y
学分
period
Char
8
Y
学时
cPlace
Char
10
Y
上课地点
cNumAll
Char
4
Y
总人数
cNum
Char
4
Y
已选人数
dId
Char
10
Y
院系号
表6选课成绩表choosecourse的表结构
主码
列名
数据类型
宽度
空否
备注
Pk
cId
Char
5
N
课程代码
sId
Char
3
N
学号
grade
Decimal
5
Y
成绩
表7教室信息表room的表结构
主码
列名
数据类型
宽度
空否
备注
Pk
roomname
Char
10
N
教室名
roomnum
Char
10
N
容纳人数
roomtime
Char
10
Y
空闲时间
表8管理员表admin的表结构
主码
列名
数据类型
宽度
空否
备注
Pk
aId
Char
10
N
管理员编号
aPass
Char
10
Y
管理员姓名
表9院系表department的表结构
主码
列名
数据类型
宽度
空否
备注
Pk
dId
Char
10
N
院系号
dName
Char
10
Y
院系名
下面在系统实施阶段就可以物理实现数据库了,本系统使用前面实验已经建好的服务器端SQLServer数据库—xuanke,具体创建方法见前面实验。
三.系统实现
本实验是用JSP结合数据库实现的,其中包含了三个主页面,一是学生登录页面,二是教师登录页面,三是管理员登录页面。
其中每个页面中都会有菜单进行相应的操作。
3.1JSP文件代表的操作
(1)主界面操作:
Index.jsp//登录界面(包含学生、教师、管理员三个选项)
Login.jsp//密码验证
(2)学生选课
(a)学生选课界面:
student.jps//菜单显示
studentIndex.html//欢迎界面
studentMessage.jsp
(b)个人信息:
studMessSel.jsp//个人信息的页面显示
(c)密码修改:
stuM.jsp//在数据库中修改密码
stuMessMod.jsp//修改密码界面
stuMessModSuc.jsp//修改成功
(d)成绩查询:
gradeselect.jsp//相应课程的成绩查询
(e)选课:
choosecourse.jsp//所有课程显示
choose.jsp//在数据库中插入数据
choosesuccess.jsp//选课成功
(f)选课情况查询及退选:
courseselect.jsp//选课情况查询
ccdel.jsp//数据库中删除选课记录
(g)注销:
zhuxiao.jsp//注销
(3)教师管理
(a)教师管理界面:
teacher.jps//菜单显示
teacherIndex.html//欢迎界面
teacherMessage.jsp
(b)个人信息:
teacherMessSel.jsp//个人信息的页面显示
(c)密码修改:
teacherM.jsp//在数据库中修改密码
teacherMod.jsp//修改密码界面
teaMessModSuc.jsp//修改成功
(d)提交成绩:
grade.jsp//选课学生信息显示
gradeIns.jsp//在数据库中插入数据
(e)课程信息:
lookcourse.jsp//选课情况查询
(f)教室信息:
classroom.jsp//查看可用教室的空闲时间
(g)注销:
zhuxiao.jsp//注销
3.2数据库的连接
举例:
验证用户类型和密码时的数据库连接
<%
Stringname=(String)request.getParameter("username");
Stringpass=(String)request.getParameter("userpass");
Strings=(String)request.getParameter("userselect");
Connectionconn=null;
Statementstmt=null;
ResultSetrs=null;
StringloginNum="0";
session.setAttribute("lnum",loginNum);
try
{
conn=DriverManager.getConnection("jdbc:
odbc:
xk","sa","");
if(s.equals("1"))
{
Stringsql="select*fromstudentwheresId='"+name+"'andsPass='"+pass+"'";
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
if(rs.next())
{
loginNum="1";
session.setAttribute("lnum",loginNum);
session.setAttribute("name",name);
out.print(name+"登陆成功,页面跳转........");
response.sendRedirect("student/studentIndex.html");
}
else
{
out.print("用户名或密码有误..");
response.sendRedirect("index.jsp");
}
}
if(s.equals("2"))
{
Stringsql="select*fromteacherwheretId='"+name+"'andtPass='"+pass+"'";
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
if(rs.next())
{
loginNum="2";
session.setAttribute("lnum",loginNum);
session.setAttribute("name",name);
out.print(name+"登陆成功,页面跳转........");
response.sendRedirect("teacher/teacherIndex.html");
}
else
{
out.print("用户名或密码有误..");
response.sendRedirect("index.jsp");
}
}
if(s.equals("3"))
{
Stringsql="select*fromadminwhereaId='"+name+"'andaPass='"+pass+"'";
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
if(rs.next())
{
loginNum="3";
session.setAttribute("lnum",loginNum);
session.setAttribute("name",name);
out.print("管理员"+name+"登陆成功,页面跳转........");
response.sendRedirect("admin/adminIndex.html");
}
else
{
out.print("用户名或密码有误..");
out.print("登陆页面");
}
}
}
catch(Exceptione){out.print(e);
//response.sendRedirect("index.jsp");
}
%>
3.3具体操作
(1)学生选课操作
(a)登录页面
图1.1学生登录页面
主要代码:
欢迎您使用学生选课系统
|
|
|
用户名:
|
密码: | |
用户类型: |
学生 教师 管理员 | |
(b)菜单操作
图1.2学生选课系统的界面
主要代码:
学生选课系统
|
个人信息
|
密码修改
|
成绩查询
|
选课查询以及退选
|
选课
|
注销
|
(c)个人信息显示
学生进入后可以在菜单里进行相应的操作,点击个人信息时,就会出现该学生的信息.如下图所示:
图1.2学生信息显示的界面
主要代码:
从数据库中读出相应的信息:
try
{
conn=DriverManager.getConnection("jdbc:
odbc:
xk","sa","");
Stringsql="select*fromstudentwherestudent.sId='"+name+"'";
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
if(rs.next())