您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 学生管理系统jsp实验报告
.-.实践考核类课程(二)实验报告姓名张杨学号20090725班级软一0901指导教师刘益先实验名称学生选课系统开设学期2010–2011第二学期评定成绩评定人签字评定日期东北大学软件学院2011年4月.-.1.系统分析与设计本次实验是是设计一个基于web平台的学生选课系统,主要用于实现学生选课,课程管理,与课程维护等等模块;需要使用的技术是Servlet、JSP、JDBC、DAO等关键技术。在本系统中,有三类用户:系统管理员,教师和学生。三种不同的用户所具有的操作权限以及操作内容均不一样。本选课系统给予教师很大的自主权,系统管理员只负责向系统中添加学生和教师的个人信息。教师、学生可以录网站自行进行选课,排课。系统管理员设置一个选课范围,教师可以开设课程;学生可以登陆网站选择课程。教师用户登陆网站后可以开设课程,为自己的课程编辑课程内容和课程信息。每门课程可以是必修或则选修,教师为每门课程设置一个学分,并可以在课程结束后给予成绩和分数,如果学生及格,学生将获得该课程的学分。对于学生用户,每个学生除了必须选择必修课程外,学生可以对自己选课信息进行选择。系统可以根据学生的选课信息,生成一份学生自己的课表。课程结束后学生可登录网站查询成绩。1.2系统功能流程用户登录身份验证模块验证用户名和密码,并根据不同的用户类型,选择;.-.(1)登录与注销每个用户都可以用自己的帐号登录系统。用户操作完成后推出系统,注销后可以重新登录系统。(2)修改密码每个用户第一次登录都用默认密码。(1)系统管理员设置选课:系统管理员通过此项功能设置选课,只有在选课范围内,学生才可以选择课程,不得修改。录入学生与教师个人信息:通过此项功能可以实现对教师和学生的个人信息添加删除。管理员号管理员姓名密码用户类型用户登录身份验证模块登陆注册模块录入信息模块开设课程模块查询个人信息模块评分模块查看课程模块选课模块数据库模块数据库访问模块.-.(2)教师用户显示和修改个人信息:教师用户登录系统后,可以查看和修改教师的个人信息,如姓名,电话,E-mail地址等。开设课程:教师用户登录系统后,可以开设课程,可以设置该课程可以设置该课程的最大人数。编辑课程上课时间:教师在开设了课程后,可以灵活地设置上课时间和地点。给学生分数:课程结束后,教师用户登录系统,可以为学过课程的学生给予相应的成绩,若及格,给予学生学分。(3)学生用户教师号教师姓名密码用户类型性别职称.-.显示和修改个人信息:学生登录系统后,可以查看和修改学生的个人信息,如姓名,性别,电话等。查看必修课程:学生登录后,可以查看所有的必修课程。查看该课程的信息,上课时间地点,开课教师信息等。选择选修课程:学生登录系统后,在所有选修课程中可以选择至少两门选修课程。同时可以查看相关信息。查看最终选课信息:学生登录系统后,可列出已选择的课程,若选课信息未被锁定,则可以退选,若所选课程少于两门,系统会提示选择的课程少于两门。查看学分和成绩课程结束后,学生登录系统可查看自己学习课程的成绩。1.3数据库设计student,Teacher,Course,List,Admin,每个表与逻辑设计中一种的关系模式相对应。下面是每个数据表中的属性,包括属性列的名称、数据类型、长度、是否可以为空和备注说明等内容。学号系号班级成绩政治面貌联系方式就读中学学生性别籍贯姓名身份证号交费情况出生日期入学时间简历民族专业号用户类型.-.(1)Student表。Student表用来存储学生的个人信息,使用学号作为主键,如表3-2:表3-2Student表(2)Teacher表。Teacher表用来存储教师的个人信息,用学校分配给教师的教师编号作为主键,这样可以避免重复,如图3-3:表3-3Teacher表(3)Course表。Course表用来存储课程信息,Course表以课程编号为主键,设置课程编号自动增加1(通过建表的时候对属性列设置“标识”,并设置“标识递增量”为1)。表中开课教师Id为外键,所有“TId”的值必须是Teacher表中的“TId”值。如表3-4:表3-4Course表(4)List表。List表用来存放课程的上课时间和上课信息,包括课程编号。.-.表3-6List表(5)Admin表。Admin表用来存放系统管理员信息,如表3-9:表3-9Admin表2系统实现与测试1系统首页,点击进入选课系统登录页面点击进入选课系统登录页面2登陆页面系统的登陆页面index.jsp在页面左边显示出三种身份登录的链接。便于不同用户清晰的看清登录的位置。不同身份的用户登录提交的用户名和密码提交到不同身份的数据库认证页面中。如学生用户登录提交到login.jsp。当验证通过时,跳到学生用户的页面。.-.并把信息保存进session,以供其他页面判断用户是否已经登录。学生用户通过欢迎界面进入登录界面,输入用户名以及密码,然后选择权限(学生/老师/管理员)进入自己的页面。该页面会对用户是否输入用户名或密码,输入是否正确进行检验,如果输入正确,则直接进入权限所对应的欢迎界面。否则,则提示用户名或密码错误。输入学生学号,进入学生欢迎界面。.-.点击查看已选课程,学生可以查看自己的已选课程。.-.点击注册课程选项,进入页面后选择相应课程后课程列表结果如下:.-.选择注销计算机编程艺术课程,同上。结果如下管理员选择管理员进入欢迎界面。.-.选择删除课程可以进行对相应课程的删除。选择管理课程,可以实现对于课程的管理。选择增加学生可以实现对学生的添加。选择添加/删除老师,可以实现对老师的有效管理。.-.选择查看所有学生/老师可以查看到所有学生/老师的信息。教师以老师身份登录,界面如下。.-.选择查看已带课程,可以查看自己的所有课程。选择给出成绩,可以成功的为学生给出成绩。.-.2.1系统采用的关键技术在页面中用到了页面语言HTML,JavaScript以及JSP;标记语言使用的是:XML;后台中使用了Servlet服务器,数据库操作使用的是JDBC,DAO;全局使用了MVC设计模式等,是在JDK+MyEclipse+Tomcat+MySQL的开发环境中完成了这个学生选课系统。2.2关键程序流程下面用视图的方式展示学生选课系统的流程!基本表视图教师课表班级课表学生学籍表学生选课表课程表选修课开课表教师表学院开课表学生表系部表NNNNN111NN11NN.-.2.3关键代码分析下面将每个模块中好的部分以及重要的部分进行展示连接数据库模块:DataBaseFactory类用于创建数据库连接,是一个连接数据库的工具类!packagecom.jinkun.data;importjava.sql.*;publicclassDataBaseFactory{privateConnectionconn=null;publicvoidDataBaseFactory()throwsException{}//得到一个statementpublicStatementgetStatement()throwsException{DriverManager.registerDriver(neworg.gjt.mm.mysql.Driver());Class.forName(org.gjt.mm.mysql.Driver).newInstance();Stringurl=jdbc:mysql://localhost:3306/register?user=root&password=&useUnicode=true&characterEncoding=UTF-8;conn=DriverManager.getConnection(url);returnconn.createStatement();}publicResultSetexecuteQuery(Statementstmt,Stringquery)throwsException{ResultSetrs=stmt.executeQuery(query);returnrs;}publicbooleanexecute(Statementstmt,Stringquery)throwsException{booleanrs=stmt.execute(query);returnrs;}publicvoidexecuteUpdate(Statementstmt,Stringquery)throwsSQLException{stmt.executeUpdate(query);}publicvoidclose()throwsSQLException{if(conn!=null)conn.close();}}学生模块:.-.studentDao在这个类中具体定义了学生的动能以及权限(包括:增加/删除学生,增加/删除某一门课程,以及显示全部的课程列表等等)publicclassStudentDao{privateDataBaseFactorydataBase;publicStudentDao(){dataBase=newDataBaseFactory();}//注销学生的一门课程publicvoidcancelCoursed(Stringuserid,Stringclassid)throwsSQLException,Exception{Stringquery=deletefromlistwhereCno='+classid+';dataBase.executeUpdate(dataBase.getStatement(),query);dataBase.close();}publicStudentgetStudent(Stringstuno)throwsException{Studentstudent=null;StringsqlStudent=select*fromstudentwherestudentID='+stuno+';ResultSetrs=(ResultSet)dataBase.executeQuery((Statement)dataBase.getStatement(),sqlStudent);if(rs.next()){student=newStudent(rs.getString(1),rs.getString(2),rs.getString(3));}dataBase.close();returnstudent;}//增加一个学生publicvoidaddStudent(Studentstudent)throwsSQLException,Exception{StringsqlStudent=insertintostudentvalues('+student.getID()+','+student.getName()+',+'+student.getPassword()+');dataBase.executeUpdate((Statement)dataBase.getStatement(),sqlStudent);dataBase.close();}publicListStudentgetAllStudents()throwsException{ListStudentstudents=newArrayList();StringsqlStudent=select*fromstudent;ResultSetrs=(ResultSet)dataBase.executeQuery((Statement)dataBase.getStatement(),sqlStudent);.-.while(rs.next()){Stringstudentid=rs.getString(1);StringstudentName=rs.getString(2);Stringpassword=rs.getString(3);Students=newStudent(studentid,studentName,password);students.add(s)
本文标题:学生管理系统jsp实验报告
链接地址:https://www.777doc.com/doc-7070633 .html