基于JSP的教务管理系统设计_第1页
基于JSP的教务管理系统设计_第2页
基于JSP的教务管理系统设计_第3页
基于JSP的教务管理系统设计_第4页
基于JSP的教务管理系统设计_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第74页基于JSP的教务管理系统设计教务管理系统的设计与实现摘要教务管理是学校的教务工作的主要内容,其信息量大、信息变动频繁历来是各学校的头疼问题,随着人们对用计算机的使用越来越广泛以及互联网络普及,教务管理也已经基本形成了多元的网络化管理,极大的方便了广大师生,也方便了学校对教务工作的管理,大大的提高了教学质量。本系统采用FlexBuilder、MyEclipse结合MySQL数据库进行设计,从管理和使用的角度分为两个部分:学校教务管理端和学生使用端。前者主要有系统管理员及任课教师使用,后者则是主要面对在校学生。本文首先作教务管理系统的功能需求分析,然后对数据库进行需求分析,再在数据库中建立相应的表,并弄清楚数据库中各个表的逻辑关系,接着编写代码,最后调试网站,直到形成用户满意的可以使用的完整系统。关键词:教务管理系统;FlexBuilder;MyEclipse;MySQL

TheDesignandImplementationofEducational

AdministrationSystemAbstractAcademicSenate,theschoolmanagementisthemaincontent,itisinformative,informationhasalwaysbeenthefrequentchangesinschoolsofheadacheproblems,aspeopleusedmoreandmoreextensiveuseofcomputersandthepopularizationoftheInternet,educationaladministrationhasbeenbasicallyformedamulti-networkmanagement,agreatconveniencetoteachersandstudents,butalsoontheSenatetofacilitatetheworkoftheschoolmanagement,greatlyincreasedthequalityofteaching.ThesystemusesaFlexBuilder,MyEclipsecombinationofMySQLdatabasedesign,fromtheperspectiveofmanagementanduseisdividedintotwoparts:SchoolofInthispaper,firstofall,makethefunctionsofeducationalmanagementsystemneedsanalysis,thenthedatabaseneedsanalysis,andtheninthedatabasecorrespondingtable,andeachdatabasetabletoclarifythelogicofrelations,andthenwritecode,debugthefinalsite,untiltheformationofcustomersatisfactionThecompletesystemcanbeused.Keywords:EducationalAdministrationsystem;FlexBuilder;MyEclipse;MySQL

目录1绪论 11.1课题的研究背景与意义 11.1.1课题的研究背景 11.1.2课题的研究意义 11.2系统的定义及内容简介 11.2.1系统的定义 21.2.2系统的内容简介 22系统中主要用到的技术 32.1MySQL数据库 32.2Flex 32.3Java 43教务管理系统的设计与实现 63.1开发和运行环境选择 63.2系统设计 63.2.1系统功能分析 63.2.2系统功能模块设计 73.3数据库设计 73.3.1数据库概念结构设计 73.3.2数据库逻辑结构设计 84模块详细设计 114.1主页面 114.2用户登录页面 134.3学生功能模块设计 174.3.1个人信息查询页面 174.3.2个人信息修改页面 214.3.3在线选课页面 224.3.4密码修改页面 274.3.5历史留言查询页面 274.3.6留言板页面 284.4教师功能模块设计 294.4.1教学实施计划查询页面 294.4.2选课信息查询页面 304.4.3个人信息查询修改页面 304.4.4密码修改页面 304.5管理员功能模块设计 314.5.1教师信息修改、删除页面 314.5.2管理员信息修改、删除页面 324.5.3课程信息添加、修改、删除页面 324.5.4学生学籍查询、修改、删除页面 344.5.5留言查看、删除页面 355用户手册 365.1系统功能简介 365.2系统运行与操作指南 366总结与展望 376.1系统总结及不足之处 376.2设计心得 37致谢 39参考文献 40附录1外文参考文献(译文) 41附录2外文参考文献(原文) 44

1绪论1.1课题的研究背景与意义1.1.1课题的研究背景目前我国各行各业的信息化建设开展得如火如荼,这种信息化的发展已经影响到了各学校。学校在对学生进行管理时,学生学籍的管理一直都是很麻烦的事情,不仅仅管理起来不易修改和更新,而且学生需要了解本人的信息时,也需要去学校教务处找专门人员。由于这些操作的繁琐性,教务管理系统的开发成为各学校必须的事情,特别是各个高校。一个成功的教务管理系统,应该能够有效地辅助教务人员工作,提高学校学生的学籍、成绩等管理能力,并且不断完善系统,以便更好的帮助学生、教师、系统管理人员等管理成绩、课程、学籍等。然而目前许多教务管理系统在使用时,效率低下容易出错,学生、教师资料不易整理,大量丢失,这些无疑都已成为管理学生学籍、教师信息的障碍。这就要求学校能够建立高效的教务管理系统,对学生的选课、查询等操作及流程进行规范化管理,简化业务流程,提高工作效率并防止中间的漏洞;迅速、准确地捕捉用户要求,并加以高效回应。同时需要不断完善系统,增加模块,更好的满足用户需求,简化教务人员的管理工作,尽量做到一切信息化。1.1.2课题的研究意义对于学校教务处而言,最主要的是管理学生的学籍、管理教师的课程教授。如果使用一般的方法来管理,会比较繁琐,管理起来也很有可能出错。为了方便教务人员的管理工作,提高工作效率,同时为了更好地为学生、教师提供服务,有必要开发教务管理系统,使学校的教务管理走上信息化之路,克服人为的种种弊端。教务管理系统的开发不仅可以减少人力、物力和财力资源的浪费,更重要的是有助于提高教务管理的效率。教务管理人员管理学生学籍、管理教师课程教授时是一项复杂的组织工作,这种复杂性不仅仅指学生学籍变更快,变更人数众多,更突出地表现在教务管理主要对象(即学生)的数据量大,管理起来带来不便,所以开发一个实用、高效的教务管理信息系统是很有必要的。1.2系统的定义及内容简介1.2.1系统的定义本系统是方便学校教务人员管理学生学籍、管理教师、方便教师和学生处理日常学籍工作而开发的。现今全国各学校的管理系统正逐步与网络信息技术接轨,对学校的学员信息能够更方便地进行管理,运用教务管理系统实现管理模式的科学化、现代化,大大提高学校教务管理的运行效率和管理水平。因此,在科技、信息和网络技术高速发展的带动下,教务管理系统趋向于集计算机网络技术、科学管理方法等于一体,方便处理教务工作。由于学校教务管理的特殊性,决定了教务服务的综合性较其他服务更为突出和特殊,而学校教务对用于辅助管理的管理系统要求就相对更高。对于学校教务而言,具有实用意义的管理系统,在硬件上应采用互联网、办公自动化等信息技术,在软件上应融入当代各学校最优秀的管理思想,从而更好地辅助教务人员的管理工作。本课题就基于教务管理的理念和信息技术的结合这样一个出发点而提出的需要。我国的各学校教师、学生人数众多,学校需要一个足够完善的教务管理系统来管理学生的学籍、选课和教师的授课安排等,所以本系统提供了对学生的学籍管理、对学生的选课、对教师的信息管理等功能,足够教务人员管理日常的教务工作。1.2.2系统的内容简介教务管理系统为教务管理人员管理日常教务工作提供了方便。学生可以使用此系统查询自己已修完课程的成绩、查看自己的学籍信息、选课等;教师可以使用此系统给学生所选的课程打分、查看自己的信息及课程安排情况等;管理员可以使用此系统添加相关用户信息、备份数据等。因此本系统主要实现学生功能、教师功能、管理员功能。学生功能:个人信息查询、修改;在线选课;密码修改;留言、查看留言等。教师功能:教学实施计划查询;选课信息查询、打分;个人信息查询、修改;密码修改等。管理员功能:教师信息修改、删除;管理员信息修改、删除(有权限之分);课程信息添加、修改、删除;学生学籍信息查询、修改、删除(有权限之分);留言查看、删除(有权限之分)等。

2系统中主要用到的技术2.1MySQL数据库MySQL是一个遵循GPL的开源软件、在Linux平台底下它是LAMP(LAMP代表了Linux平台上的Apache网站服务器;MySQL数据库以及Perl、Python或者PHP编程语言的结合)组合重要组成部分,同时它提供的CAPI可以结合Glade/GTK+,代替Windows平台的VB+ACCESS/MSSQLSERVER组合。MySQL数据库具有以下特性:使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统。为多种编程语言提供了API。这些编程语言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。支持多线程,充分利用CPU资源。采用优化的SQL查询算法可以有效地提高查询速度。既能够作为一个单独的应用程序应用在客户端/服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。提供TCP/IP、ODBC和JDBC等多种数据库连接途径。提供用于管理、检查、优化数据库操作的管理工具。可以处理拥有上千万条记录的大型数据库。2.2FlexAdobeFlex是支持RIA(RichInternetApplications)开发和部署一系列发展中的技术和产品线的概括词,主要包括theFlexFramework,FlexBuilder2,FlexEnterpriseServices2等。FLEX试图通过提供一个程序员们已经熟知的工作流和编程模型,让程序员比从前更快更简单地开发动画及RIA应用。在多层式开发模型中,FLEX应用属于表现层,FLEX的语言和文件结构也试图把应用程序的逻辑从设计中分离出来。AdobeFlex所包含的产品和相关软件如下所述:FlexFramework包括MXML,类库,组件,容器和效果(effects)等,它不需另外的服务器或IDE就可以生成和美化FLEX应用程序。FlexBuilder2是在Eclipse基础上创建的全新RIAIDE,是生成FLEX应用的最简单最强大的方式,实现了集成编译器、代码缩进、调试、设计视图、源代码控制系统集成等许多功能。它可以当作标准的独立应用软件,也可以当作Eclipse的插件使用。FlexEnterpriseServices2是Flex1.5server的下一代,拥有众多新功能,比如自动测试,企业通信支持(提供一种发布/订阅的通信架构),数据服务(使本地处理的数据和服务器端同步)等。FlexCharting2提供平滑的数据可视能力,可看作是FlexFramework的扩展。Flex编译器,被包含于FlexBuilder2和FlexEnterpriseServices,但可以在命令行方式下单独使用。ActionScript3是FlexFramework的核心,更加面向对象化和类型化,全面兼容ECMAScript标准(JavaScript2.0的基础标准)。FlashPlayer,从8.5版本就开始加入AS3虚拟机,作为FLEX2应用的运行时。FLEX最初是作为一个J2EE(Java2Platform,EnterpriseEdition)应用,或者可以说是JSP(JavaServerPages)标签库而发布的。它可以把运行中的MXML(FLEX标记语言)和ActionScript编译成FLASH应用程序(即二进制的SWF文件)。相对于基于HTML的应用(如PHP,ASP,JSP等)在每个请求时都需要执行服务器端的模板,由于客户端只需要载入一次,FLEX应用程序的工作流被大大改善。新版的FlexBuilder2基于EclipseIDE,对于需要诸如datapush和自动测试等高级功能的用户来说,企业级的服务仍然有效。Flex2引入了新版本的语言ActionScript3的使用,这需要FlashPlayer9以上版本作为运行时(runtime)。2.3JavaJava是由Sun公司于1995年5月推出的程序设计语言(以下简称Java语言)和Java平台的总称。用Java实现的HotJava浏览器显示了Java的魅力,可实现跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持JavaApplet;另一方面,Java技术也不断更新。Java语言是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。而Java平台由Java虚拟机(JavaVirtualMachine)和Java应用编程接口(ApplicationProgrammingInterface,简称API)构成。Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。现在Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。

3教务管理系统的设计与实现3.1开发和运行环境选择教务管理系统主要用于学校内部资源管理(如学生在线选课、成绩查看、学籍查看等),充分利用现代高度信息化手段来接受学生信息的咨询和反馈,形成目前学校内部受欢迎的教务产品,同时也方便了教务管理人员的管理工作,也方便了学生对自己个人信息的实时了解。1、开发工具的选择用Tomcat作Web服务器,利用MyEclipse设计代码,使用MySQL建立数据库。2、运行环境要求中央处理器:InterPentium42.67GHz或更高性能的CPU(推荐使用P43.0GHz以上)。操作系统:MicrosoftWindowsXP/Vista,或Windows2003(或更高)。物理内存:512MB(推荐使用1G以上)。硬盘空间:至少需要2G硬盘空间。光驱。VGA监视器。鼠标或其他定位装置。网络支持:任何与Windows98/NT/2000/Me兼容的网络。系统设计3.2.1系统功能分析教务管理系统主要具有以下功能要求:学生功能:个人信息查询、修改;在线选课,密码修改;留言、查看留言等。教师功能:教学实施计划查询;选课信息查询、打分;个人信息查询、修改;密码修改等。管理员功能:教师信息修改、删除;管理员信息修改、删除(有权限之分);课程信息添加、修改、删除;学生学籍查询、修改、删除(有权限之分);留言查看、删除(有权限之分)等。3.2.2系统功能模块设计根据系统功能要求分析,可以将系统分解成以下几个功能模块来设计,如图3.1所示。教务管理系统教务管理系统学生管理员个人信息查询、修改教师在线选课密码修改留言、留言查看教学实施计划查询选课信息查询、打分个人信息查询、修改密码修改教师信息修改、删除管理员信息修改、删除课程信息添加课程信息修改删除学生学籍修改、删除留言查看、删除图3.1系统功能模块图3.3数据库设计数据库是信息管理系统的基础,数据库的结构直接关系到各种功能的实现和程序运行的效率。3.3.1数据库概念结构设计数据库概要结构设计图如图3.2所示。图3.2数据库结构设计图3.3.2数据库逻辑结构设计根据数据库结构设计图,可知在数据库中需建立8张表。本系统创建的数据库为education,该数据库由学生信息表单(stuinfo)、教师信息表单(teachinfo)、管理员表单(manainfo)、教学实施计划表单(teachingplan)、教学班表单(teachclassinfo)、留言板表单(leavewordinfo)、课程信息表单(courseinfo)、选课信息表单(selectcourseinfo)组成,在设计中所用到的关系表及其结构分别如下所示。1、学生信息表单(stuinfo),如表3.1所示。表3.1学生信息表单列值数据类型数据长度可否为空描述主键stu_idvarchar30否学号namevarchar10否姓名passwordvarchar30否密码sexvarchar2否性别specialityvarchar30否专业academevarchar30否学院gradevarchar30否年级overcoursevarchar30否已学课程achievementvarchar30否成绩statusvarchar30否学籍状态2、教师信息表单(teachinfo),如表3.2所示。表3.2教师信息表单列值数据类型数据长度可否为空描述主键teach_idvarchar30否教师工号namevarchar30否姓名passwordvarchar30否密码specialityvarchar30否所在专业postvarchar30否职称teachcoursevarchar30否所授课程3、管理员表单(manainfo),如表3.3所示。表3.3管理员表单列值数据类型数据长度可否为空描述主键mana_idvarchar30否编号usernamevarchar30否管理员名passwordvarchar30否密码popedomvarchar30否权限4、教学实施计划表单(teachingplan),如表3.4所示。表3.4教学实施计划表单列值数据类型数据长度可否为空描述主键idint11否编号是course_namevarchar30否课程名course_kindvarchar30否课程性质begin_termvarchar30否开课学期begin_specialityvarchar30否开课专业periodvarchar30否学时5、教学班表单(teachclassinfo),如表3.5所示。表3.5教学班表单列值数据类型数据长度可否为空描述主键idint11否编号是specilityvarchar30否专业gradevarchar30否年级stu_numvarchar30否学生人数course_namevarchar30否课程名6、留言板表单(leavewordinfo),如表3.6所示。表3.6留言板表单列值数据类型数据长度可否为空描述主键leave_idint11否留言编号是leave_datedate0否留言日期leave_namevarchar30否留言人姓名leave_contentvarchar2000否留言内容7、课程信息表单(courseinfo),如表3.7所示。表3.7课程信息表单列值数据类型数据长度可否为空描述主键course_idvarchar30否课程编号是course_namevarchar30否课程名称8、选课信息表单(selectcourseinfo),如表3.8所示。表3.8选课信息表单列值数据类型数据长度可否为空描述主键course_idvarchar30否课程号stu_idvarchar30否选修学生学号teachervarchar30否授课教师achievementvarchar30否成绩

4模块详细设计4.1主页面此教务管理系统的用户有三种身份,即学生、教师和系统管理员,如果是系统管理员,登录后进入的主页面如图4.1所示:图4.1系统管理员主页面此界面中包含五个功能模块,即管理教师、管理员管理、课程信息管理、学生学籍管理、留言维护。系统管理员在此页面中可对教师、管理员及学生等信息进行浏览、修改、删除、添加等操作。如果是登录用户是学生,登录后进入的主页面如图4.2所示。图4.2学生主页面此页面包含六个功能模块,即选课、个人信息查询、个人信息修改、密码修改、历史留言查询、留言,学生可以在此页面中对其个人信息分别进行浏览、修改等操作。如果是登录用户是教师,登录后进入的主页面如图4.3所示:图4.3教师管理主页面此页面包含五个功能模块,即教学实施计划查询、选课信息查询和打分、个人信息查询、个人信息修改、密码修改,教师可在此页面中对相关信息进行浏览、修改等操作。4.2用户登录页面此页面的主要功能是对使用本系统的用户进行用户名、密码、用户身份的验证,只有合法的用户才能使用本系统。对于初次使用本系统的用户,首先必须是在此学校有学籍,而且教务人员已经将学生、教师、管理员信息写入数据库之后才能访问登录用户界面,此系统不支持陌生人注册。在登录界面中设置了身份列表下拉框,方便用户进行身份选择、登录。用户填写的所有信息通过Flex与Java的远程调用,通过send()方法将获取的text文本提交到Java端,并与数据库中的相应信息进行比较做出判断。登录界面如图4.4所示。图4.4用户登录界面用户登录界面的主要实现代码如下:<?xmlversion="1.0"encoding="utf-8"?><mx:Panelxmlns:mx="/2006/mxml"layout="absolute"width="949"height="565"verticalAlign="bottom"horizontalAlign="right"xmlns:ns1="cation.views.*"><mx:Metadata>[Event(name="loginevent",type="cation.events.LoginEvent")][Event(name="studentloginevent",type="cation.events.StudentLoginEvent")][Event(name="teacherloginevent",type="cation.events.TeacherLoginEvent")]</mx:Metadata> <mx:Script> <![CDATA[ importmx.automation.codec.KeyCodePropertyCodec; importmx.rpc.events.ResultEvent; importmx.controls.Alert; importmx.validators.Validator; importcation.vo.*; importcation.events.*; [Bindable] publicvararr:Array=newArray("学生","教师","管理员"); privatefunctionuserlogin():void { //全部验证后flag值为0,只要有一个没验证,flag值会大于0 varflag:int=Validator.validateAll(validators).length; if(flag==0) { loginLO.login.send(); } } privatefunctionexit():void {varrequest:URLRequest=newURLRequest("javascript:window.close()");navigateToURL(request,"_self");} privatefunctionprocessResult(event:ResultEvent):void{ varflag:String=event.resultasString; if(flag=="管理员") { this.parentApplication.vs.selectedIndex=1; varmanager:Manager=newManager(); manager.mana_id=username.text; varloginevent:LoginEvent=newLoginEvent(manager); this.dispatchEvent(loginevent); } elseif(flag=="学生") { this.parentApplication.vs.selectedIndex=6; varstudent:Student=newStudent(); student.stu_id=username.text; varstudentloginevent:StudentLoginEvent=new StudentLoginEvent(student); this.dispatchEvent(studentloginevent); } elseif(flag=="教师") { this.parentApplication.vs.selectedIndex=7; varteacher:Teacher=newTeacher(); teacher.teach_id=username.text; varteacherloginevent:TeacherLoginEvent=new TeacherLoginEvent(teacher); this.dispatchEvent(teacherloginevent); } else { Alert.show("登陆失败,请检查输入信息!"); }} privatefunctionprocessFault(event:Event):void{ Alert.show(event.toString());} ]]> </mx:Script> <!--远程调用方法定义和数据传递--><mx:RemoteObjectid="loginLO"destination="loginRO"> <mx:methodname="login"result="processResult(event)" fault="processFault(event)"> <mx:arguments> <username> {username.text} </username> <password> {password.text} </password> <type> {types.text} </type> </mx:arguments> </mx:method> </mx:RemoteObject> <!--登录时,判断用户名和密码框不能为空--> <mx:Arrayid="validators"> <mx:StringValidatorsource="{username}"property="text"required="true"requiredFieldError="用户名不能为空"/> <mx:StringValidatorsource="{password}"property="text"required="true"requiredFieldError="密码不能为空"/> </mx:Array> <mx:Labeltext="选择用户类型:"/> <mx:ComboBoxdataProvider="{arr}"id="types"/> <mx:Labeltext="用户名:"/> <mx:TextInputid="username"enter="userlogin()"/> <mx:Labeltext="密码:"/> <mx:TextInputid="password"enter="userlogin()"displayAsPassword="true"/> <mx:Buttonlabel="登录"click="userlogin()"/> <mx:Buttonlabel="退出"click="exit()"/></mx:Panel>4.3学生功能模块设计学生功能模块主要包括个人信息查询、修改,在线选课,密码修改,留言、查看留言。学生选课,修满学时之后,由授课教师打分,然后学生再次查询信息时则可查询到分数。4.3.1个人信息查询页面个人信息查询页面如图4.5所示,当前登录的学生可在此页面中查看自己的基本信息。图4.5个人信息查询页面在个人信息查询页面中,通过studetLO.getTheStudent.send()方法来操作数据库,把数据库中的内容用datagrid显示出来。首先,将进行查询、修改、删除、增加等操作需要与数据库连接的代码单独封装为一个类,具体代码如下所示:packagecation;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://: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){ Statementst=null; CachedRowSetcrs=null; try{ st=con.createStatement(); ResultSetrs=st.executeQuery(sql); crs=newCachedRowSetImpl(); crs.populate(rs); }catch(SQLExceptione){ e.printStackTrace(); }finally{ if(con!=null){ try{ con.close(); }catch(SQLExceptione){ e.printStackTrace(); } } } returncrs; } publicintupdate(Stringsql){//此方法int与boolean类型都可以 Statementst=null; intvar=0; try{ st=con.createStatement(); inti=st.executeUpdate(sql); if(i==1){ var=1; } }catch(SQLExceptione){ e.printStackTrace(); }finally{ if(con!=null){ try{ con.close(); }catch(SQLExceptione){ e.printStackTrace(); } } } returnvar; }}其中使用的数据库操作语句为:publicList<Student>getTheStudent(Stringstu_id){ List<Student>list=newArrayList<Student>(); DBToolsdb=newDBTools(); Stringsql="select*fromstuinfowherestu_id='"+stu_id+"'"; ResultSetrs=db.select(sql); Studentstudent=null; try{ while(rs.next()){ student=newStudent(); student.setAcademe(rs.getString("academe")); 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);}}}4.3.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("女")){ DBToolstool=newDBTools(); intrs=tool.update(sql); if(rs==1){ flag=true;} } returnflag;}<mx:methodname="modifystudentinfo"result="processinfoResult(event)"fault="processFault(event)"> <mx:arguments> <stu_id> {stu_id.text} </stu_id> <studentname> {studentname.text} </studentname> <sex> {sex.text} </sex> <speciality> {speciality.text} </speciality> <academe> {academe.text} </academe> <grade> {grade.text} </grade> </mx:arguments> </mx:method>4.3.3在线选课页面学生在线选课页面如图4.7所示,在此页面中学生可根据教务安排的选修课情况对自己感兴趣的课程进行选择,但是课程一经选定不允许退选。图4.7在线选课页面实现该页面的功能代码如下所示:publicList<TeachPlan>SelectCourse(){ List<TeachPlan>list=newArrayList<TeachPlan>(); DBToolsdb=newDBTools(); Stringsql="select*fromteachingplanwherecourse_kind=2"; ResultSetrs=db.select(sql); TeachPlanteachplan=null; try{ while(rs.next()){ teachplan=newTeachPlan(); teachplan.setId(rs.getInt("id")); teachplan.setCourse_name(rs.getString("course_name")); teachplan.setCourse_kind(rs.getString("course_kind")); teachplan.setBegin_term(rs.getString("begin_term")); teachplan.setBegin_speciality(rs.getString("begin_speciality")); teachplan.setPeriod(rs.getString("period")); list.add(teachplan); } }catch(SQLExceptione){ e.printStackTrace(); }finally{ try{ rs.close(); }catch(SQLExceptione){ e.printStackTrace(); } } returnlist;}publicbooleanaddcourses(Stringstu_id,Stringovercourse){ booleanflag=false; booleanb=checkcourse(stu_id,overcourse); DBToolstool=newDBTools(); if(b){ addcoursetoselect(stu_id,overcourse); List<Student>list=getTheStudent(stu_id); Stringname=list.get(0).getName(); Stringpassword=list.get(0).getPassword(); Stringsex=list.get(0).getSex(); Stringspeciality=list.get(0).getSpeciality(); Stringacademe=list.get(0).getAcademe(); Stringgrade=list.get(0).getGrade(); Stringstatus=list.get(0).getStatus(); Stringsql="insertintostuinfovalues('"+stu_id+"','"+name +"','"+password+"','"+sex+"','"+speciality +"','"+academe+"','"+grade+"','"+overcourse +"','0','"+status+"')"; intrs=tool.update(sql); if(rs==1){ flag=true; } } returnflag;}publicbooleancheckcourse(Stringstu_id,Stringovercourse){ booleanflag=false; Stringsql="selectovercoursefromeducation.stuinfowherestu_id='"+stu_id+"'"; DBToolsdb=newDBTools(); ResultSetrs=db.select(sql); try{ outer:while(rs.next()){ Stringstr=rs.getString("overcourse"); if(str.equals(overcourse)){ flag=false; breakouter; }else{flag=true;} } }catch(SQLExceptione){ e.printStackTrace(); } returnflag;}publicbooleanaddcoursetoselect(Stringstu_id,Stringcourse_name){ booleanflag=false; DBToolsdb=newDBTools(); Stringstr2=ads(stu_id,course_name); System.out.println(str2); Stringsql="insertintoselectcourseinfovalues('"+course_name+"','"+stu_id+"','"+str2+"','0')"; intrs=db.update(sql); if(rs==1){ flag=true; } returnflag;}publicStringads(Stringstu_id,Stringteachcourse){ Stringstr=null; Stringsql1="selectteach_idfromteachinfowhereteachcourse='"+teachcourse+"'"; DBToolsdb=newDBTools(); ResultSetrs=db.select(sql1); try{ while(rs.next()){ str=rs.getString("teach_id"); } }catch(SQLExceptione){ e.printStackTrace(); } returnstr;}<mx:methodname="addcourses"result="processcoursesResult(event)"fault="processFault(event)"><mx:arguments><stu_id>{user_name} </stu_id><courses>{selectdg.selectedItem.course_name} </courses> </mx:arguments></mx:method>4.3.4密码修改页面学生密码修改页面如图4.8所示,在此页面中已经登录系统的学生用户可以对自己的登录密码进行修改。图4.8密码修改页面4.3.5历史留言查询页面历史留言查询页面如图4.9所示,在此页面中当前登录学生用户可查看其已经发表过的历史留言。图4.9历史留言查询页面该页面的实现代码如下所示:privatefunctionwordOperator(event:MouseEvent):void{ if(event.targetisButton) { if(event.target.label=="查看") { varlook_words:look_word=look_word(PopUpManager.createPopUp(this,look_word,true)); pointer1.x=0; pointer1.y=0; pointer1=check.localToGlobal(pointer1); look_words.x=pointer1.x+25; look_words.y=pointer1.y+25; varword:Word=newWord(); word.leave_id=worddg.selectedItem.leave_id; word.leave_date=worddg.selectedItem.leave_date; word.leave_name=worddg.selectedItem.leave_name; word.leave_content=worddg.selectedItem.leave_content; varlook_wordevent:Look_WordEvent=newLook_WordEvent(word); this.dispatchEvent(look_wordevent); }}}4.3.6留言板页面留言板页面如图4.10所示,已登录用户可通过此页面在管理系统系统中发表留言。图4.10留言页面学生进入此页面后,可以对教学或者系统完善性提出意见或者指出错误。管理员通过登录,可以查看到学生的留言,针对学生的意见可以对系统进行维护。4.4教师功能模块设计教师功能模块主要包括教学实施计划查询,选课信息查询、打分,个人信息查询、修改,密码修改。4.4.1教学实施计划查询页面教学实施计划查询页面如图4.11所示,教师进入此页面后,可以查看到各课程的教学安排情况。教师通过按要求查询,可以查询到与自己教学有关的相关教学信息。图4.11教学实施计划查询页面4.4.2选课信息查询页面选课信息查询页面如图4.12所示。教师进入此页面之后,可以查看到已经选修了自己所授课程的学生,点击“打分”按钮,可以对选了此课程的学生的成绩进行修改或者打分。图4.12选课信息页面4.4.3个人信息查询修改页面个人信息修改查询页面如图4.13所示,教师进入此页面后,可以查看到自己的基本信息(包括教师工号、姓名、职称等)。还可以对其中一些信息进行修改。图4.13个人信息查询修改页面4.4.4密码修改页面密码修改页面如图4.14所示,教师进入此页面后,可以输入新密码,更改登录时使用的密码。图4.14密码修改页面4.5管理员功能模块设计管理员功能模块包括教师信息修改、删除,管理员信息修改、删除(有权限之分),课程信息添加、修改、删除,学生学籍查询、修改、删除(有权限之分),留言查看、删除(有权限之分)。4.5.1教师信息修改、删除页面教师信息修改、删除页面如图4.15所示:图4.15教师信息修改、删除页面进入此页面后,管理员可以查看或者修改现有教师的基本信息。当点击“删除”时,如果此管理员权限为1,则不能进行删除,显示权限不够,如图4.16所示。图4.16删除时权限不够页面4.5.2管理员信息修改、删除页面管理员信息修改、删除页面如图4.17所示,管理员可在此页面中查看或者修改现有系统管理员的基本信息。当点击“删除”时,如果此管理员权限为1,则不能进行删除,显示权限不够。图4.17管理员信息修改、删除页面4.5.3课程信息添加、修改、删除页面课程信息添加、修改、删除页面如图4.18所示,系统管理员可在此页面中添加新的课程信息,或者修改和删除已存在的课程信息。图4.18课程信息添加、修改、删除页面基本实现代码如下所示:<mx:methodname="selectcourse"result="processResult(event)"fault="processFault(event)"><mx:arguments><check>{check.text}</check><combo1>{combo1.text}</combo1></mx:arguments></mx:method><mx:methodname="deleteteacher"result="processdtResult(event)"fault="processFault(event)"><mx:arguments><usernames>{teachdg.selectedItem.teach_id}</usernames><user_name>{user_name}</user_name></mx:arguments></mx:method><mx:methodname="deletestudent"result="processdtResult(event)"fault="processFault(event)"><mx:arguments><usernames>{studg.selectedItem.stu_id}</usernames><user_name>{user_name}</user_name></mx:arguments></mx:method>4.5.4学生学籍查询、修改、删除页面学生学籍查询、修改、删除页面如图4.19所示,系统管理员可以在此页面中查看或者修改现有在校学生的基本信息。当点击“删除”时,如果此管理员权限为1,则不能进行删除,显示权限不够。图4.19学生学籍查询、修改、删除页面4.5.5留言查看、删除页面留言查看、删除页面如图4.20所示,管理员进入此页面后,可以查看所有学生的留言信息,但是在做删除操作时有权限限制,只有当管理员权限为1时才能对学生发表的留言进行删除,否则显示权限不够。图4.20留言查看、删除页面

5用户手册5.1系统功能简介此教务管理系统主要由学生功能、教师功能、管理员功能三大模块组成。1、学生功能:本模块具有五项功能:主要用户学生查询自己的学籍信息,也可以在线选课,可以修改个人的部分信息,修改登录时的密码等。2、教师功能:本模块具有四项功能:通过学生选课,学生修完学时之后,老师就应该给学生所选课程打分,所以在此,添加了“选课信息”模块,用于老师给学生打分;除了教师给学生打分外,教师可以修改个人部分信息,修改登录时密码,可以查询教学实施计划等。3、管理员功能:本模块具有五项功能:管理员有权限之分,权限为0的管理员为超级管理员,对系统的所有操作都可以实现,而权限为1的管理员,除了删除信息及修改管理员的权限不能实现外,其他操作都可以实现;管理员可以管理学生学籍、管理教师、管理课程、管理留言等。5.2系统运行与操作指南本系统可直接是基于B/S模式的,所以直接通过IE浏览器就可以运行。不同用户在登录本系统时需要选择用户类型、输入用户名和密码,若通过了系统数据库的验证,便可以进入符合身份的用户界面进行用户操作。本系统有三种用户类型即学生、教师和系统管理员。根据不同的身份,他们所能执行的操作都有所不同。如果是学生,登录后可以进入学生主页面进行选课,个人信息查询等操作。如果是教师,登录后可以进入教师主页面进行课程打分,个人信息查询等操作。如果是系统管理员,登录后则可以进入系统完整的页面,可以对学生学籍、教师信息、留言信息、课程等进行添加、修改、删除等操作。

6总结与展望6.1系统总结及不足之处本系统具有以下优点:1、由于系统采用Flex这一先进平台作为开发平台,使得界面绚丽度和功能可操作性提高到了前所未有的高度,使本系统的构建思想更为可行。整个系统基于先进的Flex环境和Java环境而开发,使应用程序的发布更为容易,使系统具有更好的移植性,为日后系统升级奠定了良好的基础。2、本系统可以运行在多种操作系统平台上(WindowsNT/Windows2000/WindowsXP/WindowsVista),数据库管理系统采用MySQL,功能强大的Flex配合可移植性好的Java开发环境。3、系统将用户权限进行划分,分为学生、教师和系统管理员,权限为0的管理员使用系统的全部功能,可以进行信息更改、维护等操作,他是最高层系统管理员;权限为1的管理员只能使用系统的部分功能,可以进行信息的更改;学生和教师只能进行基本信息的浏览和基本操作。这样既方便了用户,又保证了系统的安全性。4、整个系统运行后,显示在浏览器上的部分,除了文本框文字可以复制、修改等操作以外,其他区域一律不能对文字进行复制等操作。整个程序在编译之后,显示在浏览器上的部分全部是后缀名为swf的文件,安全性高;而且整个系统在运行时,只会在地址栏看到一个页面名:index.html。5、系统界面简单易操作,输入信息方便,方面人们使用。但是也存在以下不足之处:1、界面跳转复杂,不能对界面进行刷新,这一点有待改进。2、功能比较简单,部分选课过程等没有进一步改善、加强,不能更好的为用户服务。3、数据库设计有冗余,需要进一步优化。6.2设计心得毕业设计的选题是在指导老师的建议下于上学期末确立的,选题确定后就找过这方面的资料开始学习,一开始对这方面可以说是不熟悉,虽然原来学过JSP技术,但由于当时不认真,了解的东西还是很少,在校学习过程中只能说对于JSP的运行原理和机制已经有了一个整体的认识。后来通过培训,学习了更多的知识,学习到了最新的Flex技术。学习过程中,Flex的界面绚丽度和操作的简单、方便让我下定决心选用Flex技术完成毕业设计。由于Flex需要远程调用数据库,所以又选择可一致性好的Java语言来配合开发。本次毕业设计已经基本顺利结束,在整个设计过程中,劳动与汗水凝结了这次设计。解决设计的一个问题,就会有新的感受和新的收获。学习是一个长期的过程,在设计系统过程中,遇到了许多问题,后来通过自己的努力,解决了大部分问题,也学到了许多知识。通过这次毕业设计,我学到了很多,从最初的Java语言,后来到Web开发,再后来在培训过程中学到的ssh,再后来学到Flex,最后到将软件功能的思想融合与整个设计过程中,将平时所学的知识运用于实际开发实践中。在这个系统的实现过程中也经常遇到一些困难,毕竟对于Flex这一新技术掌握的不熟练,有很多控件不能真正了解他们的含义,还有一些对象调用的方法,也都不是很了解,界面的美化也处理不够好。所以开始设计时,真的遇到了很多困难,不过通过同学和老师的帮助以及上网学习,解决了设计上的不少问题,也使我对Flex技术有了一定的掌握,同时巩固了以前所学的知识。实现了质的跨越,从纯粹的理论学习到后来的实践再到毕业设计的完成,是理论联系到实践,是认识的第二次飞跃。总而言之,这次毕业设计使我学到了很多在大学课堂上学不到东西,不光是专业知识有所提高,还锻炼了我的意志,使我更加坚强。要走软件开发这条路,就必须要不断学习新知识,不断增强自己与别人竞争的实力,还需要有不怕吃苦的精神,因为软件开发这条路对开发人员的身体来说,是一个考验。

致谢通过这次毕业设计,我获益匪浅。首先,需要感谢大学四年来,一直帮助我的各位老师,因为他们对我的信任和帮助,我才能学到那么多的软件开发语言和环境。在这次毕业设计过程中,得到了周凤丽老师和其他老师的精心指导,在此表示衷心的感谢!要特别感谢指导我毕业设计的周凤丽老师,在我有特殊情况时能及时帮助我,使我的毕业设计和论文得以顺利完成。

参考文献1.杨博,杜昱宏译.AdobeFlex3:TrainingfromtheSource.人民邮电出版社,2009年3月2.郝刚.Flex3.0入门指南.北京电子工业出版社,20093.HYPERLINK"javascript:open_window(%22:80/F/6NKI5HS17CTXBAHXYPTNPN25QH9BQ33JI

温馨提示

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

评论

0/150

提交评论