jsp版学生成绩管理系统课程设计报告.docx
《jsp版学生成绩管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《jsp版学生成绩管理系统课程设计报告.docx(25页珍藏版)》请在冰豆网上搜索。
jsp版学生成绩管理系统课程设计报告
《java语言程序设计》课程设计报告
设计题目:
学生成绩管理系统
班级:
计算机四班学号:
********
报告人姓名:
蔺天震
***********
实验地点:
东校区机房
完成起止日期:
2010--2011学年第二学期16周
2、各模块的测试结果……………………………………………22
学生成绩管理系统设计报告
一、引言
1.1课程设计目的
(1)复习,巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;
(2)课程设计为我们提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼我们的分析解决实际问题的能力,提高学生适应实际,实践编程的能力;
(3)培养我们在项目开发中团队合作精神,创新意识及能力。
1.2题目说明
一个学生成绩管理系统,能够实现对学生、老师基本信息、课程信息、成绩信息的管理。
学生端:
能够实现查看自己的成绩、排名、选课信息等;
老师端:
能够让老师查看学生的信息、查看学生的成绩、输入学生的成绩;
管理员端:
能够实现对学生和老师的综合管理,能查看所有的学生、老师的基本信息和课程信息,能够添加、修改老师学生的课程信息和密码等。
二、功能规划
1学生的需求
(1)在第一时间查询自己所有的成绩(自己的平时成绩、卷面成绩、总成绩)
(2)查询某一科成绩
(3)查询自己的上课信息及选课信息
(4)修改登录密码
2老师的需求
(1)查询某一学生的所有成绩(平均成绩,总成绩)
(2)查询某一学生某一科成绩,该科平均成绩,所在名次,最高成绩,最低成绩
(3)查询某一班级的成绩(所有成绩,某一学期的所有成绩,某一学期的某一科目的所有成绩)
(4)对某一科成绩进行统计(及格人数,及格率,不及格人数,不及格率,优秀人数,优秀率,某一分数段的人数)
(5)录入考试成绩和补考成绩(自己所教授的那一科成绩)
(6)查询自己的上课信息
(7)修改登录密码
3管理员的需求
(1)查询某一学生的所有成绩(平均成绩,总成绩)
(2)查询某一学生某一科成绩,该科平均成绩,所在名次,最高成绩,最低成绩
(3)查询某一班级的成绩(所有成绩,某一学期的所有成绩,某一学期的某一科目的所有成绩)
(4)对某一科成绩进行统计(及格人数,及格率,不及格人数,不及格率,优秀人数,优秀率,某一分数段的人数)
(5)录入成绩和修改成绩
(6)对学生和老师进行管理
(7)数据库管理
三、具体设计
本系统MVC三层模式进行开发,使模型,视图和控制分开,业务逻辑和显示分开,这样有利于错误的查找和系统的升级。
该系统适用于各个学校,其功能主要为:
成绩管理:
用于对成绩的录入、修改、汇总、排名以及查询等操作。
系统框图:
1、数据库设计:
数据库中共有老师、学生、管理员、课程、老师课程信息、学生课程信息六张表,
分别如下:
学生信息:
老师信息:
老师课程信息:
连接数据库的类设计如下:
packageDateBase;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
publicclassDbUtile{
publicConnectionconnection=null;
publicResultSetresultSet=null;
publicStatementstatement=null;
privateStringDb_Driver="com.mysql.jdbc.Driver";
privateStringDb_url="jdbc:
mysql:
//localhost:
3306/studentmanagesystem";
privateStringDb_user="root";
privateStringDb_password="sa";
publicDbUtile(){//构造方法连接数据库
try{
Class.forName(Db_Driver);
connection=DriverManager.getConnection(Db_url,Db_user,Db_password);
statement=connection.createStatement();
}
catch(java.lang.ClassNotFoundExceptione){
System.out.println("加载驱动器有错误:
"+e.getMessage());
}
catch(SQLExceptione){
System.out.println("连接数据库有错误:
"+e.getMessage());
}
}
publicintexecuteInsert(Stringsql){//插入记录
intnum=0;
System.out.println(sql);
try{
num=statement.executeUpdate(sql);
}
catch(SQLExceptionex){
System.out.println("执行插入有错误:
"+ex.getMessage());
}
returnnum;
}
publicResultSetexecuteQuery(Stringsql){//查询记录
resultSet=null;
try{
resultSet=statement.executeQuery(sql);
}
catch(SQLExceptionex){
System.out.println("执行查询有错误:
"+ex.getMessage());
}
returnresultSet;
}
publicintexecuteDelete(Stringsql){//删除记录
intnum=0;
try{
num=statement.executeUpdate(sql);
}
catch(SQLExceptionex){
System.out.println("执行删除有错误:
"+ex.getMessage());
}
returnnum;
}
publicintexecuteUpdate(Stringsql){//更改记录
intnum=0;
try{
num=statement.executeUpdate(sql);
}
catch(SQLExceptionex){
System.out.println("执行修改有错误:
"+ex.getMessage());
}
returnnum;
}
publicvoidclose(){//关闭Connection对象
try{
if(resultSet!
=null)
resultSet.close();
statement.close();
connection.close();
}
catch(Exceptionend){
System.out.println("执行关闭Connection对象有错误:
"+end.getMessage());
}
}
}
2、程序界面设计:
通过程序的要求可知该程序有jsp页面或Html页面以及servlet组成。
Jsp主要负责与用户的交互实现视图页面的功能,而servlet主要负责页面跳转控制以及数据处理的功能。
由实验的要求具体的实验设计如下:
A、用户通过一个登陆页面,输入用户名、密码,然后该jsp页面将请求发送给处理用户身份验证的servlet,该servlet获取数据库的信息进行校验,如果用户的身份合法则跳转到应用程序的主界面,否则给出错误的提示信息,并且要求用户重新输入用户名和密码重新登陆。
登陆页面的设计图如下所示:
B、对于程序的主界面主要实现对于用户需要的导航功能以及实现具体的操作功能。
该程序的主界面主要有三个Html的Framset构成,分别为topFrame,leftFrame,mainFrame组成,leftFrame主要实现程序的导航,而mainFrame具体的实现程序的功能。
主界面设计界面如下:
老师登录成功界面
学生登录成功界面
管理员登录成功界面:
C、具体的功能设计如下:
1、学生的功能:
(1)、查询个人成绩
(2)、查询课程:
(3)、修改密码
2、老师的功能:
(1)、查询学生成绩:
(2)、录入学生成绩;
(3)、查看课程信息:
3、管理员功能:
(1)、老师信息管理:
(2)、学生信息管理;
(3)、课程信息管理:
3、servlet设计:
因为本程序应用的servlet较多,所以这里只简单介绍几个
(1)、LoginServlet登录控制
packageservlet;
importjava.io.IOException;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjavax.servlet.http.HttpSession;
importDAO.ManageDAO;
importDAO.StudentDAO;
importDAO.TeacherDAO;
importDAOImpl.ManageDAOImpl;
importDAOImpl.StudentDAOImpl;
importDAOImpl.TeacherDAOImpl;
importDate.Manage;
importDate.Student;
importDate.Teacher;
publicclassLoginServletextendsHttpServlet{
publicLoginServlet(){
super();
}
publicvoiddestroy(){
super.destroy();//Justputs"destroy"stringinlog
//Putyourcodehere
}
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
request.setCharacterEncoding("utf-8");
response.setContentType("text/html");
intn=Integer.parseInt(request.getParameter("n"));
Stringid=request.getParameter("id");
Stringpassword=request.getParameter("password");
booleanb=false;
if(n==1){
StudentDAOsd=newStudentDAOImpl();
b=sd.login(id,password);
if(b){
HttpSessionsession=request.getSession();
session.setAttribute("id",id);
session.setAttribute("identity","1");
Studentstu=sd.queryByID(id);
session.setAttribute("stu",stu);
response.sendRedirect("main.html");
}else
response.sendRedirect("error.jsp");
}elseif(n==2){
TeacherDAOtd=newTeacherDAOImpl();
b=td.login(id,password);
if(b){
HttpSessionsession=request.getSession();
session.setAttribute("identity","2");
session.setAttribute("id",id);
Teachertea=td.queryByID(id);
session.setAttribute("tea",tea);
response.sendRedirect("tea_main.html");
}else
response.sendRedirect("error.jsp");
}else{
ManageDAOtd=newManageDAOImpl();
b=td.login(id,password);
if(b){
HttpSessionsession=request.getSession();
session.setAttribute("identity","3");
session.setAttribute("id",id);
Manageman=td.queryByID(id);
session.setAttribute("man",man);
response.sendRedirect("man_main.html");
}else
response.sendRedirect("error.jsp");
}
}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
doGet(request,response);
}
publicvoidinit()throwsServletException{
//Putyourcodehere
}
}
(2)、InsertServlet输入学生成绩
packageservlet;
importjava.io.IOException;
importjava.io.PrintWriter;
importjava.util.Vector;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjavax.servlet.http.HttpSession;
importDAO.TeacherDAO;
importDAOImpl.TeacherDAOImpl;
publicclassInputServletextendsHttpServlet{
publicInputServlet(){
super();
}
publicvoiddestroy(){
super.destroy();//Justputs"destroy"stringinlog
//Putyourcodehere
}
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
request.setCharacterEncoding("utf-8");
response.setContentType("text/html");
HttpSessionsession=request.getSession();
Stringcourseid=request.getParameter("courseid");
Stringid=(String)session.getAttribute("id");
intn=Integer.parseInt((String)session.getAttribute("len"));
Stringgrade1;
Stringgrade2;
Stringgrade;
TeacherDAOtd=newTeacherDAOImpl();
for(inti=0;igrade1=request.getParameter("grade1"+(i+1));
grade2=request.getParameter("grade2"+(i+1));
grade=request.getParameter("grade"+(i+1));
Stringstuid=request.getParameter("stuid"+(i+1));
td.inputGrade(grade1,grade2,courseid,stuid,grade);
}
td.ranking(courseid,id);
td.changeFinish(id,courseid);
this.getServletConfig().getServletContext().getRequestDispatcher("/input_success.html").forward(request,response);
}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
doGet(request,response);
}
publicvoidinit()throwsServletException{
//Putyourcodehere
}
}
(3)、DeleteServlet删除控制
packageservlet;
importjava.io.IOException;
importjava.io.PrintWriter;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importDAO.ManageDAO;
importDAO.StudentDAO;
importDAO.TeacherDAO;
importDAOImpl.ManageDAOImpl;
importDAOImpl.StudentDAOImpl;
importDAOImpl.TeacherDAOImpl;
importDate.Student;
importDate.Teacher;
publicclassDelectServletextendsHttpServlet{
privatestaticfinallongserialVersionUID=1L;
publicDelectServlet(){
super();
}
publicvoiddestroy(){
super.destroy();//Justputs"destroy"stringinlog
//Putyourcodehere
}
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
doPost(request,response);
}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
request.setCharacterEncoding("utf-8");
response.setContentType("text/html");
Stringparameter=request.getParameter("parameter");
if(parameter.equals("1")){
Stringstuid=request.getParameter("stuid");
StudentDAOsd=newStudentDAOImpl();
St