收藏 分销(赏)

学生成绩管理系统的设计与实现---1106班--方爽.doc

上传人:快乐****生活 文档编号:2566736 上传时间:2024-06-01 格式:DOC 页数:21 大小:2.94MB
下载 相关 举报
学生成绩管理系统的设计与实现---1106班--方爽.doc_第1页
第1页 / 共21页
学生成绩管理系统的设计与实现---1106班--方爽.doc_第2页
第2页 / 共21页
学生成绩管理系统的设计与实现---1106班--方爽.doc_第3页
第3页 / 共21页
学生成绩管理系统的设计与实现---1106班--方爽.doc_第4页
第4页 / 共21页
学生成绩管理系统的设计与实现---1106班--方爽.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、学生成绩管理系统的设计与实现 1106班 方爽 作者: 日期:2 个人收集整理 勿做商业用途 武汉学院学生学年论文题 目: 学生成绩管理系统的设计与实现 指导教师: 胡仁 学生姓名: 方爽 学号: 11072071 专 业:计算机信息管理 年级: 大二 二一三年五月十日18 学生成绩管理系统的设计与实现摘要本系统依据开发要求主要应用于教育系统,完成对日常的教育工作大学生成绩档案的数字化管理。采用Java技术开发而成.学生成绩管理系统为老师及同学提供充足的信息和快捷的查询手段。学生成绩管理系统涉及不同类别的用户,分别为学生、教师和管理员以及访客。学生只能对系统的信息进行查询。而老师则可以对信息进

2、行录入和修改,管理员账户则拥有教师和学生拥有的全部权限。关键词:成绩管理;Java;异步交互 引言 1。2 背景及课题研究意义为了使学生成绩管理更加的方便,我们有必要开发这样一种实用性强的学生成绩管理系统。这个系统方便学生查看自己的成绩及选课,教师给学生打分,管理员添加学生、教师、课程。对此课题的研究将有助于提升个人系统设计和分析能力,学会软件项目权限管理的基础实现,对以后大型项目的权限设计打下基础.同时,将对本人以下方面起到积极作用:对JavaEE编程知识的理论实践应用;加深对系统权限管理的理解;提高自己的系统分析、设计能力;初步了解软件项目的开发过程。在这个系统的开发大学生可以将自己所学的

3、知识用于实践而得到很多锻炼,达到学以致用的目的。1.2论文撰写思路本文通过对我校现有的学生成绩管理系统和其他学校的成绩管理系统进行研究,他们大多运用的是ASP。NET+SQLSERVER技术.本系统改变开发语言,实现更具人性化的设计和用户体验。让成绩管理系统更好的服务教师和学生。提高学校管理的效率。由于java具有跨平台的特性,它被用于各种系统之中。这个系统也是用JAVAWEB开发。下图为撰写该论文的主要流程。图1论文制作流程图2相关技术概要下面主要介绍该系统涉及到的技术及开发工具。1、JSPJSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与

4、一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(。htm,。html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(。jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。2、JavaBeanJavaBeans就是Java的可重用组件技术.ASP通过COM来扩充复杂的功能,如文件上传、发送E-Mail以及将业务处理或复杂计算分离出来成为独立可重复利用的模块。JSP通过JavaBeans实现了同样的功能扩充。JavaBeans组件可以用来执行复杂的计算任务,或负责与数据

5、库的交互以及数据提取等。 3、3层B/S结构3层由客户端(浏览器)、服务器、数据库组成。在三层模型中,命令先是被发送到服务的中间层,然后由它将SQL语句发送给数据库。数据库对SQL语句进行处理并将结果送回到中间层,中间层再将结果送回给用户。这种模型称为三层式结构。3 系统需求分析 3。1 用户身份级别功能分析系统设计到三种身份的用户:管理员、教师、学生.表1:角色功能表管理员添加新的教师、学生、添加可选课程删除各种信息教师给学生上成绩学生选课、查看成绩图2 系统用例图3.2 学生功能模块分析学生是学生成绩管理系统的主体。其他的功能都是为管理学生成绩信息提供服务的.学生选择身份登录后,左边是他的

6、导航,右面显示他的基本信息,他可以在左边点击查看可选课程进行选课、点击查看成绩可以查看已经出成绩的课程的成绩、点击修改密码可以修改自己的密码。3.3 教师功能模块分析教师选择身份登录后,就可以进行相应的操作。查看自己教的课程,点击课程就可以查看选此课的所有学生,然后可以给他们上成绩。3。4 管理员功能模块分析管理选择身份登录后,可以做一下操作:添加新的教师及信息、添加新的学生及信息、添加新的选课信息、关闭选课、删除离职的教师信息和删除毕业或退学的学生信息.4系统概要设计4.1 系统功能结构系统主要用于对学生成绩的管理.围绕这个核心功能,产生了三种角色。他们的功能主要如表1所示。 4.2 系统技

7、术架构系统采用B/S三层技术架构,即页面展示层、流程控制层、数据库访问层.这三层分别由Jsp、Servlet、JavaBean担任. 4.3 系统类图学生、管理员、教师三个角色分别有三个接口,三个接口有三个实现类.学生的实现类(StudentDAOImpl)可以用Student、Lesson、Result三个bean类完成自己的功能,管理员的实现类(ManagerDAOImpl)可以用Student、Lesson、Teacher三个bean类完成自己的工作,教师实现类(TeacherDAOImpl)用Result、Lesson两个bean类完成相应操作。 4。4 系统顺序图顺序图是,一个用户在

8、系统中一个操作中各个细节的时间顺序的集合。下面列举系统中几个典型的顺序图。1.管理员添加教师的顺序图。管理员填写好教师信息后点击添加,这个请求就会发送到服务器,服务器接受到请求后把这个工作交给AddTeacher这个Servlet处理。AddTeacher又调用MannagerDAOImpl中相应的方法将这个Teacher对象保存到数据库中,最后消息一步一步传到管理的页面上。 2.学生选课学生点击选课按钮,请求发送到服务器后,服务器先将传来的信息给Servlet GetLesson处理,GetLesson后调用StudentDAOImpl类的查看是否有可选课程的方法处理.然后将结果返回给用户。

9、如果没有可选课程则该操作结束.如果有可选课程,学生可以选课,在学生选择了课程之后,服务器将这个请求交给Servlet selectLesson处理。selectLesson将Lesson信息传给StudentDAOImpl类中的添加课程的方法将课程添加到数据库中。然后信息返回到学生页面。 4。5 数据库设计考虑到数据量比较大,该系统采用ORACLE数据库。数据库中一共4张表:学生表、教师表、课程表、成绩表。表之间的关系如下图所示:图3 数据库表之间的关系下面详细介绍各个表的结构:学生表:表2:学生表数据库设计字段名属性条件描述Student_idVarchar2(20)Not null PK学

10、生学号Student_nameVarchar2(20)Not null学生姓名PasswordVarchar2(16)Not null default 学号密码SexVarchar2(5)Not null性别ProfessionalVarchar2(30)Not null专业PhotoVarchar2(50)Not null照片AgeNumber(1)年纪GradeNumber(1)Not null年级Student_introVarchar2(200)学生基本介绍教师表:表3:教师表数据库设计字段名属性条件描述Teacher_idVarchar2(20)Not null PK教师工号Teac

11、her _nameVarchar2(20)Not null教师姓名PasswordVarchar2(16)Not null default 学号密码SexVarchar2(5)Not null性别CollegeVarchar2(30)Not null学院PhotoVarchar2(50)Not null照片AgeNumber(1)年纪Teacher _introVarchar2(200)教师基本介绍课程表:表4:课程表表数据库设计字段名属性条件描述Lesson_idVarchar2(20)Not null PK课程编号Lesson _nameVarchar2(20)Not null课程名Tea

12、cher_idVarchar2(20)Not null FK教师编号GradeNumber(1)Not null所属年级StateNumber(1)Not null是否为可选ProfessionalVarchar2(30)Not null所属专业成绩表:表5:成绩表数据库设计字段名属性条件描述idNumber(10)Not null PK成绩编号Lesson_idVarchar2(20)Not null FK课程编号Student_idVarchar2(20)Not null FK学生学号ScoreNumber(3)Not null得分有主外键的表之间都存在级联删除和条件判断的功能。5 。详细

13、设计及实现5。1 系统开发平台目录结构设计在开发之前要把目录结构和命名规则定好,下图为该系统的目录结构:图4 系统的目录结构Src目录是存放java源代码的地方,beans存放的是实体类,control存放的是SERVLET,DAO存放的是数据访问对象,DAOImpl存放数据库访问对象的实现类,这个是按照抽象编程的原则。dbConn存放的是连接数据库和操作数据库方法类的包.存放的是数据库驱动和其他引用包.存放JSP文件、CSS文件、JS文件。5。2 数据库连接模块和整体流程该系统使用JDBC连接数据库,首先必须将要使用数据库的连接驱动引入项目.这里我们使用的ORACLE数据库,故引入ojdbc

14、14。jar这个包。首先在database。properties文件中加入连接数据库的基本参数,如下:driver=oracle.jdbc.driver。OracleDriverurl=jdbc:oracle:thin:localhost:1521:user=scottpassword=admindbname=management在通过一个java文件读取配置文件的配置:DBProperty。Javapackage com.suggestion。database;import java.io。File;import java.io.IOException;import java。io。Inpu

15、tStream;import java。util。Properties;public class DBProperty private File file; private String dbstr; SuppressWarnings(”unused”)private String name;public DBProperty()public String getProper(String properfile,String name)this.name=name; file = new File(properfile); if(!file。exists() dbstr = file.getP

16、ath(); else dbstr = mydatabase.properties; InputStream in=getClass().getClassLoader().getResourceAsStream(dbstr); Properties prop=new Properties(); try prop.load(in); catch (IOException e) e.printStackTrace(); return prop。getProperty(name);再用读取出的数据得到数据库的连接对象:DBConnection。javapackage com.suggestion.d

17、atabase;import java.sql.Connection;import java。sql。DriverManager;import java。sql.SQLException;/* author leichao * createtime 2010-12-22 * version 1。0 */public class DBConnection private static DBConnection instance; private String driver; private String url; private String user; private String passw

18、ord; private String dbname; private DBConnection() throws Exception DBProperty prop = new DBProperty(); String file=mydatabase.properties; driver=prop.getProper(file,driver”); url=prop。getProper(file,url”); user=prop。getProper(file,”user”); password=prop。getProper(file,password”); dbname=prop。getPro

19、per(file,”dbname”); try Class.forName(driver); catch(Exception e) e。printStackTrace(); public static DBConnection getInstance() try if(instance=null) instance=new DBConnection(); return instance; catch(Exception e) e.printStackTrace(); return null; public Connection getConnection()throws SQLExceptio

20、n Connection con; try con=DriverManager.getConnection(url+dbname, user, password); return con; catch(SQLException e) e。printStackTrace(); return null; public void CloseConnection(Connection con) if(con!=null) try con.close(); catch(SQLException e) e。printStackTrace(); public static void main(String

21、agrs) throws Exception new DBConnection(); 这样就得到数据库的连接,后面就可以用连接对象对数据库进行操作了。系统整体流程如下:图5 系统的基本流程图5.3 用户登录模块当用输入正确的访问地址之后,出现系统登录页面,在用户选择自己的身份后,输入用户名、密码之后会发送一个请求到服务器。如果用户名和密码正确就会跳转到相应的页面,并把用户信息保存在session中,如果在其他页面中没有session信息则用户没有权限访问会跳到登录页面,防止用户乱输入页面地址。如果输入错误会回到登录页面并提示错误.以下是对登录的操作:package com.me.control

22、;import java.io.IOException;import javax。servlet。ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.me。DAOImpl.StudentDAOImpl;import com。me.DAOImpl.TeacherDAOImpl;import com.me.beans。Student;imp

23、ort com。me。beans.Teacher;/* 登录控制 分为三种情况*/public class LoginCal extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException doPost(request,response);public void doPost(HttpServletRequest request, HttpServletResponse response)thro

24、ws ServletException, IOException response。setContentType(”text/html;charset=gbk);/PrintWriter out = response。getWriter();String userId = request。getParameter(name);String pass = request.getParameter(pass);String who = request.getParameter(”hide);boolean correct = true;StudentDAOImpl sdi;TeacherDAOIm

25、pl tdi;Student s ;Teacher t;/判断用户身份if(who.equals(student))s = new Student();s。setStudent_id(userId);s.setPassword(pass);sdi = new StudentDAOImpl();if(sdi.login(s)!=null)correct = false;request。getSession()。setAttribute(username, sdi。login(s)。getStudent_name());request.getRequestDispatcher(”student.j

26、sp”).forward(request, response);else if(who。equals(teacher”))t = new Teacher();t。setTeacher_id(userId);t。setPassword(pass);tdi = new TeacherDAOImpl();if(tdi.login(t)!=null)correct = false;request.getSession()。setAttribute(”username”, tdi。login(t).getTeacher_name();request。getRequestDispatcher(studen

27、t.jsp).forward(request, response);elseif(userId。equals(”admin) & pass。equals(admin)correct = false;request。getSession().setAttribute(username”, ”admin”);request。getRequestDispatcher(”manage。jsp”)。forward(request, response);if(correct)request.setAttribute(”message, 用户名或密码错误!);request.getRequestDispat

28、cher(login。jsp”)。forward(request, response);登录模块整体流程下:图6 登录模块的基本流程5。4 学生操作模块学生成功登陆在左边导航可以选择自己想要进行的操作,它所调用的方法如下:模块整体流程下图7 学生模块的基本流程 5.5 教师操作模块教师成功登陆后,可以在浏览器左边的导航中找到自己的操作。教师修改密码和学生修改密码相同,故流程图没有画出.教师的操作调用的方法如下:package com。me。DAO;import com。me.beans。Student;import com.me。beans.Teacher;public interface T

29、eacherDAO /根据课程给学生打分public void setScore(int lessonId,int studentId);/教师修改密码public boolean changePassword(Student student);/教师登录public Teacher login(Teacher teacher);流程如下:图8 教师模块的基本流程5.6 管理员操作模块管理员是系统中最重要的角色,论文做重点介绍。他主要对教师、学生、课程三个对象进行操作,他一共有7个方法,入一下代码所示:package com。me.DAO;import java.util。ArrayList;

30、import com.me。beans.Lesson;import com。me。beans.Student;import com.me。beans。Teacher;public interface ManagerDAO /管理员添加学生信息public void addStudent(Student student);/管理员添加教师信息public void addTeacher(Teacher teacher);/管理员添加可选课程public void addLesson(Lesson lesson);/管理员更改可选课程public void changeLesson(String

31、lessonId);/管理员删除学生信息public void deleteStudent(Student student);/管理员删除教师信息public void deleteTeacher(Teacher teacher);/得到已有教师public ArrayListTeacher getTeacher();最后一个方法是,当管理员添加课程时,要找对应的任课教师。所以该系统有教师才可能添加课程.基本系统流程如下:图9 管理员模块的基本流程学习软件工程的心得和收获 学习软件工程这门课程已经有一个学期了,整一个学期下来,应该说还是有许多值得肯定的地方的,其实在我看来,软件工程与其说是一门

32、课程,不如说是一门思想。是一个如何去分析和处理问题的过程,应该说其范畴已经远远不止局限于该门课程,成为了一个综合的一个能够解决问题的思想集合. 其次,这门课程教给了我们在完成一个实际项目时的一般程序及过程,我认为这是一份非常具有实际意义的教学内容。当我们在毕业之后,这是我们实际要运用的一项非常有用的技能,而且不仅仅局限于软件工程的范畴,我们即使是从事与其它行业,不也是要从需求获取开始,一直有条有理地到最后成品的出炉吗? 参考文献1张海藩.软件工程导论(第四版):清华出版社,20072施霞萍,张欢欢,王瑾德,马可幸。Java程序设计:机械工业出版社,20083程杰.SQL语言与数据库操作技术大全:电子工业出版社,20094廖若雪.JSP高级编程:机械工业出版社,20095李长,饶居华,李鹏,王志兵.Eclipse与J2ee应用开发:北京大学出版社, 20086郭宁,周晓华软件项目管理M:清华出版社, 20077VivekChopra,Sing Li,Jeff Genender.Apache Tomcat 6高级编程 人民邮电出版社,2009

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服