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

上传人:d**** 文档编号:158499434 上传时间:2022-10-05 格式:DOCX 页数:24 大小:133.86KB
收藏 版权申诉 举报 下载
jsp版学生成绩管理系统课程设计报告_第1页
第1页 / 共24页
jsp版学生成绩管理系统课程设计报告_第2页
第2页 / 共24页
jsp版学生成绩管理系统课程设计报告_第3页
第3页 / 共24页
资源描述:

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

1、ava语言程序设计课程设计报告设计题目:学生成绩管理系统班级:计算机四班学号:报告人姓名:蔺天震实验地点:东校区机房完成起止日期:2010-2011学年第二学期16周目录一、引言3二、功能规划31 学生的需求 32 老师的需求 33 管理员的需求 4三、具体设计41、数据库设计: 52、程序界面设计: 83、servlet 设计: 13四、程序测试221、测试项目 222、各模块的测试结果22五、课程设计感想 23六、总结25学生成绩管理系统设计报告一、引言1.1 课程设计目的(1) 复习,巩固 Java 语言的基础知识,进一步加深对 Java 语言的理解和掌握;(2) 课程设计为我们提供了一

2、个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼我们的分析解决实际问题的能力,提 高学生适应实际,实践编程的能力;(3) 培养我们在项目开发中团队合作精神,创新意识及能力。1.2 题目说明一个学生成绩管理系统,能够实现对学生、老师基本信息、课程信息、成绩信息 的管理。学生端:能够实现查看自己的成绩、排名、选课信息等; 老师端:能够让老师查看学生的信息、查看学生的成绩、输入学生的成绩; 管理员端:能够实现对学生和老师的综合管理,能查看所有的学生、老师的基本 信息和课程信息,能够添加、修改老师学生的课程信息和密码等。二、功能规划1学生的需求(1) 在第一时间查询自己所有

3、的成绩(自己的平时成绩、卷面成绩、总成绩)(2) 查询某一科成绩(3) 查询自己的上课信息及选课信息(4) 修改登录密码2老师的需求(1) 查询某一学生的所有成绩(平均成绩,总成绩)(2) 查询某一学生某一科成绩,该科平均成绩,所在名次,最高成绩,最低成(3) 查询某一班级的成绩(所有成绩,某一学期的所有成绩,某一学期的某一科 目的所有成绩)(4) 对某一科成绩进行统计(及格人数,及格率,不及格人数,不及格率, 优秀人数,优秀率,某一分数段的人数)(5) 录入考试成绩和补考成绩(自己所教授的那一科成绩)(6) 查询自己的上课信息(7) 修改登录密码3管理员的需求(1) 查询某一学生的所有成绩(

4、平均成绩,总成绩)(2) 查询某一学生某一科成绩,该科平均成绩,所在名次,最高成绩,最低成 绩(3) 查询某一班级的成绩(所有成绩,某一学期的所有成绩,某一学期的某一科 目的所有成绩)(4) 对某一科成绩进行统计(及格人数,及格率,不及格人数,不及格率, 优秀人数,优秀率,某一分数段的人数)(5) 录入成绩和修改成绩(6) 对学生和老师进行管理(7) 数据库管理三、具体设计本系统MVC三层模式进行开发,使模型,视图和控制分开,业务逻辑和显 示分开,这样有利于错误的查找和系统的升级。该系统适用于各个学校,其功能主要为: 成绩管理:用于对成绩的录入、修改、汇总、排名以及查询等操作。系统框图:1、数

5、据库设计:数据库中共有老师、学生、管理员、课程、老师课程信息、学生课程信息六张表,分别如下:课程信息:管理员信息:1U3y2EB002呼瓢烈二卫4卫哋咤语詆殻-.5E&WE師瓠苯菇-扑27-.527BMKE0W蘇龍3eras诽翳玉18-18M3yBBflO2O11i-X=|閒23G18-18EMQ2Q1汁記殛34卫EBO卧討巨拥J12-1Smm蹄卫卫E&DO2叩萍戢蕊1S-1393y4卫EMQ2無號喪寺乖18-13BM02021i-E:;y3y2BH12f23瞬榊I詡5SDE&DO2向诣弓|E27-.527idnamepassword11a111122b22学生课程信息:couneidstui

6、dheadgradelgrade2gradecreditrankBB001001201047771111&7S4阴001陋MM777111193甌774BBWM0142D1M7771111册884idname阳 gswofdcollegespecial2Q101111qq2D1D1111信息Ba20104777iSSlmm计算机科字与技术20104787201W787计聊学戢术老师信息:id namecollegepassword1111飪奎22222222老师课程信息:teaidcourseidisfinishmiBBDMD141miEE231 DOSDmiEEOQ1WD2222EEOQ1O

7、D31连接数据库的类设计如下: package DateBase;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class DbUtile public Connection connection = null; public ResultSet resultSet = null; public Statement statement = null;pr

8、ivate String Db_Driver = com.mysql.jdbc.Driver;private String Db_url = jdbc:mysql:/localhost:3306/studentmanagesystem; private String Db_user = root;private String Db_password = sa;public DbUtile() /构造方法 连接数据库tryClass.forName(Db_Driver); connection =DriverManager.getConnection(Db_url,Db_user,Db_pass

9、word); statement = connection.createStatement( );catch(java.lang.ClassNotFoundException e) System.out.println(” 加载驱动器有错误:+ e.getMessage(); catch(SQLException e) System.out.println(连接数据库有错误:+ e.getMessage();public int executeInsert(String sql) /插入记录int num = 0;System.out.println(sql);try num = statem

10、ent.executeUpdate(sql);catch(SQLException ex) System.out.println(执行插入有错误:+ ex.getMessage();return num;public ResultSet executeQuery(String sql) / 查询记录resultSet = null;tryresultSet = statement.executeQuery(sql);catch(SQLException ex) System.out.println(” 执行查询有错误: + ex.getMessage() );return resultSet;

11、public int executeDelete(String sql) /删除记录int num = 0;trynum = statement.executeUpdate(sql);catch(SQLException ex)System.out.println(执行删除有错误:+ ex.getMessage();return num;public int executeUpdate(String sql) /更改记录int num = 0;try num=statement.executeUpdate(sql);catch(SQLException ex) System.out.print

12、ln(执行修改有错误:+ ex.getMessage();return num;public void close() /关闭 Connection 对象try if (resultSet != null) resultSet.close();statement.close(); connection.close();catch(Exception end) System.out.println(执行关闭 Connection 对象有错误:+ end.getMessage( ) );2、程序界面设计:通过程序的要求可知该程序有jsp页面或Html页面以及servlet组成。Jsp主要负 责与用

13、户的交互实现视图页面的功能,而 servlet 主要负责页面跳转控制以及数 据处理的功能。由实验的要求具体的实验设计如下:A、用户通过一个登陆页面,输入用户名、密码,然后该jsp页面将请求发 送给处理用户身份验证的servlet,该servlet获取数据库的信息进行校验,如果用 户的身份合法则跳转到应用程序的主界面,否则给出错误的提示信息,并且要求 用户重新输入用户名和密码重新登陆。登陆页面的设计图如下所示:B、对于程序的主界面主要实现对于用户需要的导航功能以及实现具体的操 作功能。该程序的主界面主要有三个Html的Framset构成,分别为topFrame, leftFrame,mainFr

14、ame组成,leftFrame主要实现程序的导航,而mainFrame具体 的实现程序的功能。主界面设计界面如下:老师登录成功界面咸陵录人帝再成聲录A示 駁桶 卑 生=6诃辻*wja录丄号 LLH I姓喀 费玉奎 登陆成功唄便用.本系统请注意:1、为丁您的帐户安全.第一次登陆 后请及时條改密蒔-2. 离幵时诗注销代浄4 Y W壬皋FF 二:J-R:虫欢迎使用用户各密码:脸订玛;1如0|、学生 老师 管理.员亟理学:号20104777 陛色岡亲軽 蒔忖息案既怜业悽栗机科学与登陆成功山便用本察统i看注意:1、为了您的帐户安全.第一次登陆 后请及时條改密码*2:离幵时谴注誚管理员登录成功界面:工号1

15、1 姓启管理员】昵境査诲登陆成功使用不系统谴注意:教却佶息曾理K为了您的叱户安全,第一次登陆 吕请及时修改密码:学生信定管理2、离开时请注销管理员悚用曲助注編直录C、具体的功能设计如下:1、学生的功能:(1) 、查询个人成绩课程序号课程客轅平时咸策期未成绩总成绩学分基点BB001001分析让学99887&BB001002分析化学实验9988厂3BBA040U程洋设计基础匚语言盹99E&|4-1(2) 、查询课程:百再誉理误程序号课程老称学时学分试验学时讲技学时BB00100I分析比学|543054BB0010Q2分析比学实验543|34蜩f查匍BB004014程学设计基础语言),452.5Q4

16、5丘及搐课猩査询*生帘诧用说明(3) 、修改密码-1視码樓改亍蟻课程査塌姓名;蓟“g査询1及醇课程査询谕入密码:确认密码;丘生瑞程.田说明舸1钠2、老师的功能(2)、录入学生成绩;请录入威绩学号平时成绩20104777蔺天濮丨提宓丨1=(3)、查看课程信息:3、管理员功能:(1)、老师信息管理:密碍官理修改數押信息工号:11111111课程誉理斬师倍息皆盘姓名:硼H学生宿息昔理皆理员憧用靑助注舸豎录画sa(2)、学生信息管理;修改学生信息吨谀11虫盖(3)、课程信息管理:3、servlet 设计:因为本程序应用的servlet较多,所以这里只简单介绍几个servlet|i 7 ChooseCo

17、urs&S ervlstjava JT| 匚ou r se en/l et.j a v a JT Del ect S eivl et.j ava JT Del efieStu 匚匚in rseServI et.j a va JT Delefi&T eaCourseSeirvleLjava:-JT ExitSeirvletjavaJT| InpufiS-coreS&irvlet.j ava: JT In pufiS e irvl et.j avaT In putU n p a ssScoeSrvletjvE: JT IriseirtCourseSeirvlet.java:-JT InsertSe

18、irvI etja va: JT In s eirtSt u Cou irse S ervl et .j ava: JT InsertTeaCou rseSeirvI et.j ava JT Li stStu S ervl et .j a vs: JT Login S ervl et.j ava JT Qu ery Co Li rise Serl et .j a va JT| Resell n pufiS-e irvl et.j ava ResetPWSeirv let java JT Sh owS匚 oir巳SEirvlEtj 目”百 JT ShowUnpassS匚oireEirvlet.j

19、v JT Stu Cou rs eS erv I et.j ava丄 T&aS coir&S-e rvl et.j avaJT UpdateStu S ervlet.javsh ITi ii i J .r-.r* a :-(1)、LoginServlet 登录控制package servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;impo

20、rt javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import DAO.ManageDAO;import DAO.StudentDAO;import DAO.TeacherDAO;import DAOImpl.ManageDAOImpl;import DAOImpl.StudentDAOImpl;import DAOImpl.TeacherDAOImpl;import Date.Manage;import Date.Student;import Date.Teacher;public

21、class LoginServlet extends HttpServlet public LoginServlet() super();public void destroy() super.destroy(); / Just puts destroy string in log/ Put your code herepublic void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException request.setCharacterEncodi

22、ng(utf-8) ; response.setContentType(text/html);int n = Integer.parseInt(request.getParameter(n);String id = request.getParameter(id);String password = request.getParameter(password);boolean b = false;if(n = 1)StudentDAO sd = new StudentDAOImpl();b = sd.login(id, password);if(b)HttpSession session =

23、request.getSession();session.setAttribute(id, id); session.setAttribute(identity, 1); Student stu = sd.queryByID(id); session.setAttribute(stu, stu); response.sendRedirect(main.html);else response.sendRedirect(error.jsp);else if(n = 2)TeacherDAO td = new TeacherDAOImpl(); b = td.login(id, password);

24、if(b)HttpSession session = request.getSession(); session.setAttribute(identity, 2); session.setAttribute(id, id); Teacher tea = td.queryByID(id); session.setAttribute(tea, tea); response.sendRedirect(tea_main.html);else response.sendRedirect(error.jsp);elseManageDAO td = new ManageDAOImpl(); b = td.

25、login(id, password);if(b)HttpSession session = request.getSession(); session.setAttribute(identity, 3); session.setAttribute(id, id); Manage man = td.queryByID(id); session.setAttribute(man, man); response.sendRedirect(man_main.html);else response.sendRedirect(error.jsp);public void doPost(HttpServl

26、etRequest request, HttpServletResponse response) throws ServletException, IOException doGet(request, response);public void init() throws ServletException / Put your code here(2)、InsertServlet 输入学生成绩package servlet;import java.io.IOException;import java.io.PrintWriter;import java.util.Vector;import j

27、avax.servlet.ServletException;import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;import DAO.TeacherDAO;import DAOImpl.TeacherDAOImpl;public class InputServlet extends HttpServlet pub

28、lic InputServlet() super();public void destroy() super.destroy(); / Just puts destroy string in log / Put your code herepublic void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException request.setCharacterEncoding(utf-8) ; response.setContentType(text/

29、html); HttpSession session = request.getSession(); String courseid = request.getParameter(courseid); String id = (String)session.getAttribute(id); int n = Integer.parseInt(String)session.getAttribute(len);String grade1;String grade2;String grade;TeacherDAO td = new TeacherDAOImpl();for(int i = 0;i n

30、;i+)grade1 = request.getParameter(grade1+(i+1);grade2 = request.getParameter(grade2+(i+1);grade = request.getParameter(grade+(i+1);String stuid = request.getParameter(stuid+(i+1); td.inputGrade(grade1, grade2, courseid, stuid, grade);td.ranking(courseid, id); td.changeFinish(id, courseid);this.getSe

31、rvletConfig().getServletContext().getRequestDispatcher(/input_succes s.html).forward(request,response);public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException doGet(request, response);public void init() throws ServletException / Put your code

32、 here(3)、DeleteServlet 删除控制package servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import DAO.ManageDAO;import DAO.Stud

33、entDAO;import DAO.TeacherDAO; import DAOImpl.ManageDAOImpl;import DAOImpl.StudentDAOImpl;import DAOImpl.TeacherDAOImpl; import Date.Student;import Date.Teacher;public class DelectServlet extends HttpServlet private static final long serialVersionUID = 1L;public DelectServlet() super();public void de

34、stroy() super.destroy(); / Just puts destroy string in log / Put your code herepublic void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException doPost(request, response);public void doPost(HttpServletRequest request, HttpServletResponse response) throw

35、s ServletException, IOException request.setCharacterEncoding(utf-8) ; response.setContentType(text/html);String parameter = request.getParameter(parameter); if(parameter.equals(1)String stuid = request.getParameter(stuid);StudentDAO sd = new StudentDAOImpl();Student student = sd.queryByID(stuid); if

36、(student != null) request.setAttribute(parame,1);request.setAttribute(student, student);this.getServletConfig().getServletContext().getRequestDispatcher(/YNDelect.jsp ).forward(request,response);else request.setAttribute(parame,1); request.setAttribute(str,sheckStu.jsp);this.getServletConfig().getSe

37、rvletContext().getRequestDispatcher(/noPerson.jsp ).forward(request,response);else if(parameter.equals(2)String stuid = request.getParameter(stuid); ManageDAO md= new ManageDAOImpl(); md.delectStu(stuid); response.sendRedirect(operate_success.html);else if(parameter.equals(3)String teaid = request.g

38、etParameter(teaid);TeacherDAO td = new TeacherDAOImpl();Teacher teacher = td.queryByID(teaid); if(teacher != null) request.setAttribute(parame,2); request.setAttribute(teacher, teacher);this.getServletConfig().getServletContext().getRequestDispatcher(/YNDelect.jsp ).forward(request,response);else re

39、quest.setAttribute(parame,2); request.setAttribute(str,sheckTea.jsp);this.getServletConfig().getServletContext().getRequestDispatcher(/noPerson.jsp ).forward(request,response);elseString teaid = request.getParameter(teaid); ManageDAO md= new ManageDAOImpl(); md.delectTea(teaid); response.sendRedirec

40、t(operate_success.html);public void init() throws ServletException / Put your code here(4)、QueryCourseServlet 查询课程信息package servlet;import java.io.IOException;import java.io.PrintWriter;import java.util.Iterator;import java.util.Vector;import javax.servlet.ServletException;import javax.servlet.http.

41、HttpServlet; import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;import DAO.StudentDAO;import DAOImpl.StudentDAOImpl;import Date.Course;import Date.Score;import Date.Student;public class QueryCourseServlet extends HttpServ

42、let public QueryCourseServlet() super();public void destroy() super.destroy(); / Just puts destroy string in log / Put your code herepublic void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException doPost(request, response);public void doPost(HttpServl

43、etRequest request, HttpServletResponse response) throws ServletException, IOException request.setCharacterEncoding(utf-8) ; response.setContentType(text/html); HttpSession session = request.getSession();String id;String h = request.getParameter(n);String s = request.getParameter(s); if(s.equals(1) i

44、d = (String)session.getAttribute(id);elseid = request.getParameter(stuid);StudentDAO sd = new StudentDAOImpl();Vector all = new Vector();all = sd.getCourse_all(id); if(h.equals(1) request.setAttribute(vector,all);this.getServletConfig().getServletContext().getRequestDispatcher(/list_course.js p).for

45、ward(request,response);else if(h.equals(2) Iterator iter = all.iterator(); Vector vec = new Vector(); while(iter.hasNext() Course course = (Course) iter.next(); Score sco = new Score(); sco.setId(course.getId(); sco.setName(course.getName(); String str = sd.getScore(id, course.getId(); sco.setGrate1

46、(str0); sco.setGrate2(str1); sco.setGrate(str2); sco.setCredit(str3); sco.setRanking(str4); vec.add(sco);request.setAttribute(vector,vec);this.getServletConfig().getServletContext().getRequestDispatcher(/list_score.jsp).forward(request,response);else request.setAttribute(vector,sd.getUnpass(id);this

47、.getServletConfig().getServletContext().getRequestDispatcher(/list_unpass.js p).forward(request,response);public void init() throws ServletException / Put your code here四、程序运行与测试1、测试项目(因为程序运行界面上面已经展示,这里便不再赘述)(1)登录测试(2)成绩输入和输出测试(3)权限测试(4)学生功能测试(5)教师功能测试(6)教务管理员的功能测试2、 各模块的测试结果如下:(1) 登录测试中,没有发现什么错误。(2

48、) 输入和输出测试中,对所有相同的输入都可以得出相同的输出(3)权限测试过程中,发现教师录入成绩权限存在问题。(4)学生功能测试中,发现显示成绩存在问题。(5)教师功能测试中,所有功能都正常。(6)教务管理员测试中,没有发现什么问题。五、课程设计感想1、团队意识在以后的工作中,软件开发不是由一个人独立完成的,都是在一 个团队的共同努力下才能完成的,虽然此次课程设计是由自己完成 的,但是也感觉到了团队合作的重要性,当我有问题的时候,就去找 别人请教,直至弄懂为止,在以后的工作中,一定要学会与别人更好 的交流,掌握交流技巧,这样才能为我们 以后的工作服务。再次,我感觉命名规范是很有必要的,以后团队

49、开发的时候, 如果命名不规范的话,别人就很难看懂你的代码,我发现有的同学英 语不是很好,所以命名都是用的汉语拼音,还有的同学,jsp页面命 名都没有改,全用的是数字,这样别人就根本看不出来程序的思路, 所以,在以后的程序开发中,我一定会注意命名规范问题。2、创新意识计算机行业是很富有创造力的行业,我们必须具备创新意识, 这次课程设计,很多的同学都按照一种思路做,内容大都大同小异, 这样的没有创新的是不会吸引人的眼球的,例如孟令江的程序,界面 很成熟,完全是正规设计人员设计的界面,和我们设计的很不一样, 只有不断创新,才能开发出更优秀的软件。3、基本知识的重要性 在此次课程设计中,我深刻的感受到

50、了基础知识的重要性,记 得在写一些简单的代码的时候,感觉脑子里竟然空空白白的,在程序 开发过程中,最重要的还是基础知识,如果基础知识不牢固的话,以 后开发大型的系统的时候会感觉很吃力,所以,一定要注重基础知识 的学习。4、考虑用户的感受 我们开发程序是为了应用的,是为广大用户服务的,所以我们一定要 考虑用户的感受,例如,相对来说,用户都喜欢点击鼠标而不喜欢用 键盘输入,所以,能够让用户用鼠标解决的尽量不让用户输入,还有, 在网站的色调和布局方面一定要让用户能够接受,能够很容易的让用 户看懂。5、实用性 在编写一个程序的时候,最重要的是他的实用性,只有你的功能很强 大,人家才会愿意用你的程序,所

51、以一定要让你的程序的功能很强大, 没有实现不了的功能,只有想不到的功能,在写程序之前一定先要考 虑好我要实现什么功能,我应该怎么去实现它,6、安全性 在做一个程序的时候,安全性是不得不考虑的方面,学生成绩管 理系统数据库里面保存着很多老师和学生的信息,如果这些信息被黑 客入侵将数据乱改一通,那么后果是很严重的,在写程序的过程中, 可以运用sql语句的漏洞进入系统,这样是很危险的,在以后的开发中我一定会注意安全性这一问题,身份不同的用户所能涉及的数据库 的内容也应该不同。六、总结在此次的课程设计中,我学到很多在书本上学不到的东西,这些 东西必须需要通过自己实践才能获得的,此次课程设计教给了我以后 开发的一些步骤和经验,这些必将会使我受益良多。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!