jsp版学生成绩管理系统课程设计报告.docx

上传人:b****5 文档编号:7779244 上传时间:2023-01-26 格式:DOCX 页数:23 大小:322.38KB
下载 相关 举报
jsp版学生成绩管理系统课程设计报告.docx_第1页
第1页 / 共23页
jsp版学生成绩管理系统课程设计报告.docx_第2页
第2页 / 共23页
jsp版学生成绩管理系统课程设计报告.docx_第3页
第3页 / 共23页
jsp版学生成绩管理系统课程设计报告.docx_第4页
第4页 / 共23页
jsp版学生成绩管理系统课程设计报告.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

jsp版学生成绩管理系统课程设计报告.docx

《jsp版学生成绩管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《jsp版学生成绩管理系统课程设计报告.docx(23页珍藏版)》请在冰豆网上搜索。

jsp版学生成绩管理系统课程设计报告.docx

jsp版学生成绩管理系统课程设计报告

《java语言程序设计》课程设计报告

设计题目:

学生成绩管理系统

班级:

计算机四班学号:

20104777

报告人姓名:

蔺天震

指导老师:

费老师

实验地点:

东校区机房

完成起止日期:

2010--2011学年第二学期16周

一、引言2

二、功能规划3

1学生的需求3

2老师的需求3

3管理员的需求3

三、具体设计4

1、数据库设计:

4

2、程序界面设计:

8

3、servlet设计:

12

四、程序测试22

1、测试项目22

2、各模块的测试结果

22

五、课程设计感想22

六、总结23

学生成绩管理系统设计报告

•、引言

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、数据库设计:

数据库中共有老

idname

师、学生、管理

22b

员、课程、老师

课程信息、学生课程信息六张表,

分别如下:

课程信息:

学生课程信息:

ccuneic

扣dte^d

greiel

砂2

gnde

credt

ranKhg

BBM1O01

201附771111

99

S3

78

4

5

201G4学生信息:

S9

77

4

匚i

BBMU

2&1C4/Jt11h

88

59

4

1

 

id

rams

糊rd

ttleje

$pe:

iaty'

20101111

qq

20101111

m—

20104777

ra

201M777

20104787

2fll)4;87

Wl韭技术

 

id

jfflue

ctlleje

password

老师信息:

1111

sii

ni

2222

2222

老师课程信息:

 

leadcour^&Klisfirwsh

mi

BBDD4014

1

mi

BB001008

0

uh

BB001D02

0

2222

BBWIOO^

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」ang.ClassNotFoundExceptiore){

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=nuII;

try{

resuItSet=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具体的实现程序的功能。

主界面设计界面如下:

管理员登录成功界面:

蜀陆曲龙小

使用本策统诲注蕙:

員邮估昱苦蚩

u为了忆述帐户安全.第窝连陆匸请址时修也営码=

2,£4討诸注跖

注■養薰

C、具体的功能设计如下:

1、学生的功能:

(1)、查询个人成绩

flpje*"偎ffi,爭号

谍担茗做平时壶绩

氐弋沖.于分基贞排窑

柑时MBBW1001

廿忻化学wsa

7*A5

BBuiJlOO:

分斩化学实港9?

Tf43

OBti(J40l4

再序設"H■昱就’.凸召占,制99

闘ji7

(2)、查询课程:

rwffa

谨丽写-

僂程茗称

亍时

学分

试卷亍时

诽按孚尉F

BBfiCJOOl

5)■斬化学54

3

0

54

BBOOIOQ2

分忙比学込岭

3

S-I

DD«(MOH

程芋豈计搖础c.^5

45

25

0

45

 

(3)

输入密码;

隔认密码】

曲«s

、修改密码

.虫说第

2、老师的功能:

(1)、查询学生烬:

孚生学号

学生燥fc

平时感綾

期未成缤总蜩学井荃点

排名

20101777

99W―亍

-_-«-*a■.h—

W真共哺t

(2)、录入学生成绩;

湘录入般皴

1半号妊容

Tfd戚華

20104777前天霍

1/Ijjl三共:

1

(3)、查看课程信息:

瀑程宇号

课程名特—

学时

学廿试验学时

讲授学时

—阶析花学—

$4

旷0

>4

3、管理员功能:

(1)、老师信息管理

工号:

Him11

性容;U1B

学USUIS夏

酉哮员断祁型

(2)、学生信息管理

(3)、课程信息管理:

3、servlet设计:

擁改学生信息学号:

2O1NZT7姓名:

窗衽专业:

计算桃科学与拽朮学院:

[si

课号*

屯称:

学小

学分t

试航学时:

因为本程序应用的servlet较多,所以这里只简单介绍几个

 

J.田Morvla七

.J,ChooseCourseServlet.java

r?

]CourseServletjava

丄rvl^tjava

-,.卩|DeIeteStuCourseServlet.j3va

.IjDeleteTeaCouritSe(Yltl.jdwd

•站ExitServlet.java

.JInputScoreS&rvlet.java

』InputServletjdVd

-jT]InputUnp^EsScoreServlet.java

J]InsertCourseServlet.java

①InserEServietJava

.J][nsert£tuCoLiirse£eirv^t.java

J.dInsert!

eaCourseServletjava

.>.JjListStuServletjava

.JjLoginServletJova

t>aQueryCourseServlet.java

.JjKesetlnpu宅5亡rvlrtja甘日

.JReactPWScrvtet.java

.[]^how^rore^prvlptjavs

iJjSho^vUnpass&coreServfetjava

.JStuCcjuileServlet.jdtfd

':

ljTRa^COre^ervIptjava

>J|UpdateStuServlet.java

_FAiib._」_■_〒__尸.il—

(1)、LoginServlet登录控制

packageservlet;

importjava.io.10Exception;

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.ManageDAOImpI;importDAOImpl.StudentDAOImpI;

importDAOImpl.TeacherDAOImpl;importDate.Manage;

importDate.Student;importDate.Teacher;

publicclassLoginServletextendsHttpServlet{

publicLoginServlet(){super();

}

publicvoiddestroy。

{

super.destroy()〃Justputs"destroy"stringinlog

//Putyourcodehere

}

publicvoiddoGet(HttpServletRequesfequest,HttpServletResponseresponse)throwsServletException,lOException{

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(HttpServletRequestequest,HttpServletResponsaesponse)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.TeacherDAOImpI;

publicclassInputServletextendsHttpServlet{

publicInputServlet(){super();

}

publicvoiddestroy。

{

super.destroy()〃Justputs"destroy"stringinlog

//Putyourcodehere

}

publicvoiddoGet(HttpServletRequesfequest,HttpServletResponseresponse)throwsServletException,lOException{

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;i

grade1=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("/in

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1