JSP段倩.docx
- 文档编号:26138644
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:15
- 大小:22.64KB
JSP段倩.docx
《JSP段倩.docx》由会员分享,可在线阅读,更多相关《JSP段倩.docx(15页珍藏版)》请在冰豆网上搜索。
JSP段倩
JSP段倩
题目:
教务管理系统院(系):
信息学部年级:
12级
专业:
软件工程姓名:
段倩
学号:
120105031117教师:
李宏
学期:
大三下
一、系统的内容简介
教务管理系统为教务管理人员管理日常教务工作提供了方便。
学生可以使用此系统查询自己已修完课程的成绩、查看自己的学籍信息、选课等;教师可以使用此系统给学生所选的课程打分、查看自己的信息及课程安排情况等;管理员可以使用此系统添加相关用户信息、备份数据等。
因此本系统主要实现学生功能、教师功能、管理员功能。
学生功能:
个人信息查询、修改;在线选课;密码修改;留言、查看留言等。
教师功能:
教学实施计划查询;选课信息查询、打分;个人信息查询、修改;密码修改等。
管理员功能:
教师信息修改、删除;管理员信息修改、删除(有权限之分);课程信息添加、修改、删除;学生学籍信息查询、修改、删除(有权限之分);留言查看、删除(有权限之分)等。
二、系统中主要用到的技术
MySQL数据库、Java
三、教务管理系统的设计与实现
1、系统功能分析
教务管理系统主要具有以下功能要求:
学生功能:
个人信息查询、修改;在线选课,密码修改等。
教师功能:
教学实施计划查询;选课信息查询、打分;个人信息查询、修改;密码修改等。
管理员功能:
教师信息修改、删除;管理员信息修改、删除(有权限之分);课程信息添加、修改、删除;学生学籍查询、修改、删除(有权限之分);留言查看、删除(有权限之分)等。
2、系统功能模块设计
根据系统功能要求分析,可以将系统分解成以下几个功能模块来设计如图所示。
系统功能模块图
3、数据库设计
在数据库中需建立8张表。
本系统创建的数据库为education,该数据库由学生信息表单(stuinfo)、教师信息表单(teachinfo)、管理员表单(manainfo)、教学实施计划表单(teachingplan)、教学班表单(teachclassinfo)、留言板表单(leavewordinfo)、课程信息表单(courseinfo)、选课信息表单(selectcourseinfo)组成,在设计中所用到的关系表及其结构分别如下所示
(1)学生信息表单(stuinfo),如表3.1所示。
表3.1学生信息表单
(2)教师信息表单(teachinfo),如表3.2所示。
表3.2教师信息表单
(3)管理员表单(manainfo),如表3.3所示。
表3.3管理员表单
(4)教学实施计划表单(teachingplan),如表3.4所示。
表3.4教学实施计划表单
(5)教学班表单(teachclassinfo),如表3.5所示。
表3.5教学班表单
(6)留言板表单(leavewordinfo),如表3.6所示。
表3.6留言板表单
(7)课程信息表单(courseinfo),如表3.7所示。
表3.7课程信息表单
(8)选课信息表单(selectcourseinfo),如表3.8所示。
表3.8选课信息表单
四、模块详细设计
1、主页面
此教务管理系统的用户有三种身份,即学生、教师和系统管理员,如果是系统管理员,登录后进入的主页面如图4.1所示:
图4.1系统管理员主页面
此界面中包含五个功能模块,即管理教师、管理员管理、课程信息管理、学生学籍管理、留言维护。
系统管理员在此页面中可对教师、管理员及学生等信息进行浏览、修改、删除、添加等操作。
如果是登录用户是学生,登录后进入的主页面如图4.2所示。
图4.2学生主页面
此页面包含六个功能模块,即选课、个人信息查询、个人信息修改、密码修改、历史留言查询、留言,学生可以在此页面中对其个人信息分别进行浏览、修改等操作。
如果是登录用户是教师,登录后进入的主页面如图4.3所示:
图4.3教师管理主页面
此页面包含五个功能模块,即教学实施计划查询、选课信息查询和打分、个人信息查询、个人信息修改、密码修改,教师可在此页面中对相关信息进行浏览、修改等操作。
2、用户登录页面
此页面的主要功能是对使用本系统的用户进行用户名、密码、用户身份的验证,只有合法的用户才能使用本系统。
对于初次使用本系统的用户,首先必须是在此学校有学籍,而且教务人员已经将学生、教师、管理员信息写入数据库之后才能访问登录用户界面,此系统不支持陌生人注册。
在登录界面中设置了身份列表下拉框,方便用户进行身份选择、登录。
用户填写的所有信息通过Flex与Java的远程调用,通过send()方法将获取的text文本提交到Java端,并与数据库中的相应信息进行比较做出判断。
登录界面如图4.4所示。
用户登录界面的主要实现代码如下:
xmlversion="1.0"encoding="utf-8"?
>
Panelxmlns: mx="http: ///2006/mxml"layout="absolute"width="949"height="565"verticalAlign="bottom"horizontalAlign="right"xmlns: ns1="com.education.views.*"> Metadata> [Event(name="loginevent",type="com.education.events.LoginEvent")] [Event(name="studentloginevent",type="com.education.events.StudentLoginEvent")] [Event(name="teacherloginevent",type="com.education.events.TeacherLoginEvent")] Metadata> Script> [CDATA[importmx.automation.codec.KeyCodePropertyCodec;importmx.rpc.events.ResultEvent;importmx.controls.Alert;importmx.validators.Validator;importcom.education.vo.*;importcom.education.events.*;[Bindable]publicvararr: Array=newArray("学生","教师","管理员");privatefunctionuserlogin(): void{}privatefunctionexit(): void//全部验证后flag值为0,只要有一个没验证,flag值会大于0varflag: int=Validator.validateAll(validators).length;if(flag==0){loginLO.login.send();} { varrequest: URLRequest=newURLRequest("javascript: window.close()"); navigateToURL(request,"_self"); } privatefunctionprocessResult(event: ResultEvent): void{ varflag: String=event.resultasString;if(flag=="管理员"){}elseif(flag=="学生"){ } elseif(flag=="教师") { this.parentApplication.vs.selectedIndex=7;varteacher: Teacher=newTeacher();teacher.teach_id=username.text;this.parentApplication.vs.selectedIndex=6;varstudent: Student=newStudent();student.stu_id=username.text;varstudentloginevent: StudentLoginEvent=newthis.parentApplication.vs.selectedIndex=1;varmanager: Manager=newManager();manager.mana_id=username.text;varloginevent: LoginEvent=newLoginEvent(manager);this.dispatchEvent(loginevent);StudentLoginEvent(student);this.dispatchEvent(studentloginevent); }varteacherloginevent: TeacherLoginEvent=newTeacherLoginEvent(teacher);this.dispatchEvent(teacherloginevent); } else{}Alert.show("登陆失败,请检查输入信息! ");privatefunctionprocessFault(event: Event): void{ Alert.show(event.toString()); } ]]> Script> --远程调用方法定义和数据传递--> RemoteObjectid="loginLO"destination="loginRO"> methodname="login"result="processResult(event)" fault="processFault(event)"> arguments> arguments> method> RemoteObject> --登录时,判断用户名和密码框不能为空--> Arrayid="validators"> StringValidatorsource="{username}"property="text"required="true"requiredFieldError="用户名不能为空"/> StringValidatorsource="{password}"property="text"required="true"requiredFieldError="密码不能为空"/> Array> Labeltext="选择用户类型: "/> ComboBoxdataProvider="{arr}"id="types"/> Labeltext="用户名: "/> TextInputid="username"enter="userlogin()"/> Labeltext="密码: "/> TextInputid="password"enter="userlogin()" displayAsPassword="true"/> Buttonlabel="登录"click="userlogin()"/> Buttonlabel="退出"click="exit()"/> Panel> 3、学生功能模块设计 学生功能模块主要包括个人信息查询、修改,在线选课,密码修改,留言、查看留言。 学生选课,修满学时之后,由授课教师打分,然后学生再次查询信息时则可查询到分数。 (1)个人信息查询页面 个人信息查询页面如图4.5所示,当前登录的学生可在此页面中查看自己的基本信息。 图4.5个人信息查询页面 在个人信息查询页面中,通过studetLO.getTheStudent.send()方法来操作数据库,把数据库中的内容用datagrid显示出来。 首先,将进行查询、修改、删除、增加等操作需要与数据库连接的代码单独封装为一个类,具体代码如下所示: packagecom.education; importjava.sql.Connection; importjava.sql.DriverManager; importjava.sql.ResultSet; importjava.sql.SQLException; importjava.sql.Statement; importjavax.sql.rowset.CachedRowSet; importcom.sun.rowset.CachedRowSetImpl; publicclassDBTools{ Stringdriver="com.mysql.jdbc.Driver";Stringurl="jdbc: mysql: //127.0.0.1: 3306/education";Stringuser="root";Stringpassword="123456";Connectioncon=null;ResultSetrs=null;publicDBTools(){try{Class.forName(driver); }con=DriverManager.getConnection(url,user,password);}catch(Exceptione){}e.printStackTrace();publicResultSetselect(Stringsql){}publicintupdate(Stringsql){//此方法int与boolean类型都可以Statementst=null;intvar=0;try{Statementst=null;CachedRowSetcrs=null;try{st=con.createStatement();ResultSetrs=st.executeQuery(sql);crs=newCachedRowSetImpl();crs.populate(rs);}catch(SQLExceptione){e.printStackTrace();}finally{}returncrs;if(con! =null){}try{con.close();}catch(SQLExceptione){}e.printStackTrace(); }}st=con.createStatement();inti=st.executeUpdate(sql);if(i==1){}var=1;}catch(SQLExceptione){e.printStackTrace();}finally{}returnvar;if(con! =null){}try{con.close();}catch(SQLExceptione){}e.printStackTrace(); 其中使用的数据库操作语句为: publicList List student.setAchievement(rs.getString("achievement"));student.setGrade(rs.getString("grade"));student.setName(rs.getString("name"));student.setOvercourse(rs.getString("overcourse"));student.setPassword(rs.getString("password"));student.setSex(rs.getString("sex"));student.setSpeciality(rs.getString("speciality"));student.setStatus(rs.getString("status"));student.setStu_id(rs.getString("stu_id"));list.add(student);}}} (2)个人信息修改页面 个人信息修改页面如图4.6所示,在该页面中学生可对自己的个人信息进行修改。 图4.6个人信息修改页面 每个Text文本框中的信息是通过传递stu_id,通过stu_id在数据库中查询出相应的值,然后显示在此页面上,方便用户对比进行修改,修改信息的主要代码如下所示: publicbooleanmodifystudentinfo(Stringstu_id,Stringname,Stringsex, Stringspeciality,Stringacademe,Stringgrade){ booleanflag=false;Stringsql="updatestuinfosetname='"+name+"',sex='"+sex }+"',speciality='"+speciality+"',academe='"+academe+"',grade='"+grade+"'wherestu_id='"+stu_id+"'";if(sex.equals("男")||sex.equals("女")){}returnflag;DBToolstool=newDBTools();intrs=tool.update(sql);if(rs==1){flag=true;} methodname="modifystudentinfo"result="processinfoResult(event)"fault="processFault(event)"> arguments> arguments> method> (3)在线选课页面 学生在线选课页面如图4.7所示,在此页面中学生可根据教务安排的选修课情况对自己感兴趣的课程进行选择,但是课程一经选定不允许退选。 图4.7在线选课页面 实现该页面的功能代码如下所示: publicList List }}teachplan.setPeriod(rs.getString("period"));list.add(teachplan);}catch(SQLExceptione){e.printStackTrace();}finally{}returnlist;try{rs.close();}catch(SQLExceptione){}e.printStackTrace(); publicbooleanaddcourses(Stringstu_id,Stringovercourse){ booleanflag=false;booleanb=checkcourse(stu_id,overcourse);DBToolstool=newDBTools();if(b){addcoursetoselect(stu_id,overcourse);List }}+"','"+academe+"','"+grade+"','"+overcourse+"','0','"+status+"')";intr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JSP