版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
./WORD格式整理题目题目:基于Web的成绩管理系统的设计与实现姓姓名:指导教师:专业:.WORD格式整理.摘要.随着信息技术的普及和推广,计算机网络已经成为生活和工作必不可少的有力工具。对于学校而言,实现办公自动化将大大提高学校管理的工作效率。成绩管理系统对于学校实现办公自动化化将起到重要作用。本文的基于Web的成绩管理系统,采用SSH<Struts+Spring+Hibernate>作为网络编程框架,选择MySQL设计数据库,并使用优秀的开发工具MyEclipse,能良好的支持数据库应用。本系统主要实现对学生成绩的管理,包括用户管理、学生成绩的录入、修改、删除、查询和统计等方面。系统开发主要包括建立和维护后台数据库以及前端应用程序两个方面。本文主要介绍成绩管理系统的可行性分析、需求分析、系统设计和系统实现等。关键词:成绩管理,Web,数据库,SSHAbstractAsInformationtechnologyhavebeenusedworldwidely,ComputerNetworkisanpowerfultoolbothforourlifeandwork.Forinstance,officeautomationwillmaximumshool’sworkingefficiency.Scoremanagementsystemisofgreatimportancetotheachievementofofficeautomation.ThistextoftheperformancemanagementsystembasedonWeb,appliesSSHasitsnetworkprogammingframe,selectMySQLasitstoolofdesigningdatabase,MyEclipseasitsdevelopmenttool.Thissystemisinchargeofscoremanagement,includingusermanagement,scoreinput,scoreinquiry,scoreaddingandamending.Systemdevelopmentfallsintotwoaspects:1.establishandmaintainbackenddatabase.2.developfrontendapplicationprograms.Thisdissertationmainlylaysitsemphasisonthefeasibilityanalysis,demandanalysis,systemdesignandsystemrealizationofscoremanagementsystem.Keywords:scoremanagement,Web,database,SSH
目录摘要IAbstractII目录III第一章引言11.1课程背景11.2目的和意义1第二章开发工具简介32.1MVC设计模式32.2SSH架构32.2.1Struts232.2.2Spring42.2.3Hibernate352.3MySQL数据库6第三章系统分析83.1可行性分析8经济可行性83.1.2技术可行性8运行和操作可行性8法律可行性83.2需求分析93.3E-R图9第四章系统设计114.1总体设计114.2功能模块设计114.3数据库设计13第五章系统实现155.1登录模块155.1.1登录界面155.1.2系统首页165.2菜单模块165.3用户信息模块185.3.1公共信息185.3.2课程信息185.3.3教师信息205.3.4学生信息205.3.5班级信息215.4成绩管理模块225.4.1成绩录入225.4.2成绩查询22第六章总结27参考文献28致谢29..1概论1.1课程背景随着多媒体教学的推广,电脑和网络的普及,人民对于电脑的应用已经不再陌生。目前社会上信息管理系统发展飞快,在各级各类的学校中,学生成绩管理一直都是学校工作中的一项重要内容,因为学生工作的很多方面都需要它的支持,比如奖学金的评定、学生就业推荐书的书写、学生档案的建设等等。随着学校办学规模的扩大和招生人数的增加,学生成绩管理成为一项十分繁重的工作。为了解决这一问题,有必要开发一套功能强大,操作简单,具有人性化的成绩管理系统,使计算机在学生成绩处理的领域中发挥高效灵活的功能。因此为了充分利用计算机硬件资源,做好学生成绩管理工作,提高工作效率,实现全面的、相对集中的办公自动化,开发本系统就成了当务之急。Internet和Web的迅猛发展使数据库技术也开始与Web产生了紧密的联系,一种新兴的技术—Web数据库技术出现了,并且开始在数据库的应用中发挥着越来越重要的作用。高校校园网的迅速普及,使成绩管理软件能充分依托校园网,实现教务信息的集中管理、分散操作、信息共享,使传统的教务管理朝数字化、无纸化、智能化、综合化的方向发展。基于Web的成绩管理系统利用JSP技术与Web数据库想结合实现,具有数据输入、查询修改等功能,应用该系统可大大提高工作效率,并为进一步完善计算机教务管理系统和全校信息系统打下良好的基础。1.2目的和意义本系统的研究意义主要是改变以往的成绩管理模式,改人工手动管理为计算机网络化管理。使学校在处理学生成绩的问题上,变得更加方便和快捷。同时可以降低了人工管理的错误率,提高了数据的安全性。随着教育的发展、高校规模的扩大、学生人数的增加,对学生各种信息的汇总、统计、分析等管理工作面临着很多困难。如果高校对学生各种信息的管理通过手工整理等方式来处理完成的,那么在这个工作过程中奖花费大量的人力和时间,而且查询各种信息也不方便不准确,影响了各级领导和学生管理部门对学生信息的及时掌握和分析。运用学生成绩管理系统可以减轻学校教学人员的工作量,加快查询速度,加强管理,还有就是缩小开支,提高工作效率与准确率。学生成绩管理系统的应用也为今天的高校教育在未来市场的竞争力的提高打下坚实的基础。本系统利用网络这个平台,充分利用了网络的快捷性,提高教育的时效性,使学生随时随地查询自己的学习情况,达到促进学生自主管理的目的,提高教师对学生管理工作的效率,让老师及时掌握学生学习上的动态。而且通过本课题的研究,能够充分了解网络数据库的相关知识,培养网络软件开发的能力,提高实践操作和知识的综合运用能力。
2开发工具简介2.1MVC设计模式MVC[1]是Model-View-Controller的简称,即模型-视图-控制器。MVC是目前最流行的Web应用设计模式,它可以灵活、动态地设计开发系统,有利于修改和扩展简化程序,有利于代码重复使用。模型:用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。模型用来封装和显示数据对象。视图:把表示模型数据及逻辑关系和状态的信息及特定形式展示给用户。它从模型获得显示信息,对于相同的信息可以有多个不同的显示形式或视图。 控制器:是处理用户与软件的交互操作的,其职责是控制提供模型中任何变化的传播,确保用户界面于模型间的对应联系;它接受用户的输入,将输入反馈给模型,进而实现对模型的计算控制,是使模型和视图协调工作的部件。通常一个视图具有一个控制器。使用MVC的优点:〔1用户在视图界面上发出请求;〔2可以很容易地用新的实现来替换原有层次的实现;〔3可以降低层与层之间的依赖;〔4有利于标准化;〔5有利于各层逻辑的复用。总的来说,MVC设计可以达到如下目的:分散关注、松散耦合、逻辑复用、标准定义。2.2SSH架构2.2.1Struts2ApacheStruts2是一个优雅的,可扩展的JAVAEEweb框架。它采用MVC模式,能够很好地帮助java开发者利用J2EE开发Web应用。和其他的Java架构一样,Struts[2]也是面向对象设计,将MVC模式"分离显示逻辑和业务逻辑"的能力发挥得淋漓尽致。Web应用都是请求-响应的程序结构。程序是由客户端client发出http请求开始的,客户端请求被ActionServlet拦截。在ActionServlet处,通常有2种情况:要求逻辑控制器处理的请求以及单转发的请求。系统主要以第一种请求为主,即ActionServlet需要调用对应的Action。因此,ActionServlet将请求转发到Action,如果请求还配置了响应的FormBean,则ActionServlet还负责用请求参数填充ActionForm。此时的Action无须从HTTPRequest中获取请求参数,而是从ActionForm中或得请求参数。Action或得请求参数后,调用Model对象由JavaBean处理用户请求。Action处理完用户请求之后,将处理结果包装秤ActionForward,再回送给ActionServlet。Struts2框架的大概处理流程如下:<1>加载类〔FilterDispatcher<2>读取配置〔struts配置文件中的Action<3>派发请求〔客户端发送请求<4>调用Action〔FilterDispatcher从struts配置文件中读取与之相对应的Action<5>启用拦截器〔WebWork拦截器链自动对请求应用通用功能,如验证<6>处理业务〔回调Action的execute<>方法<7>返回响应〔通过execute方法将信息返回到FilterDispatcher<8>查找响应〔FilterDispatcher根据配置查找响应的是什么信息如:SUCCESS、ERROER,将跳转到哪个jsp页面<9>响应用户〔jsp>客户浏览器端显示2.2.2SpringSpring[3]是一个开源框架,由RodJohnson创建。它视为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益.简单来说,Spring是一个轻量级的控制反转〔IoC和面向切面〔AOP的容器框架。轻量-从大小和开销两个方面而言Spring都是轻量的。Spring应用中的对象不依赖于Spring的特定类。控制反转-Spring通过IoC技术促进了松耦合。当应用其的时候,一个对象依赖的其他对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。可以理解成为IoC和JNDI相反。面向切面-Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务进行内聚性的开发。应用对象只实现它们应该做的-完成业务逻辑-仅此而已。它们不负责其他的系统级关注点,例如日志或事务支持。容器-Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器。然而,Spring不应该被混同于传统的重量级EJB容器,它们经常是庞大与笨重的,难以使用。框架-Spring可以将简单的组建配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件中。Spring也提供了很多基础功能〔事务管理、持久化框架集成等,将应用逻辑的开发留给了你。2.2.3Hibernate3Hibernate[4]是一个开放源代码的对象关系映射框架,它对JDBC进行了轻量级的对象封装,使Java程序员可以随心所欲的使用对象编程思维来操纵数据库。它不仅提供了从Java类到数据表之间的映射,也提供了数据查询和恢复机制。相对于使用JDBC和SQL来手工操作数据库,Hibernate可以大大减少操作数据库的工作量。另外Hibernate可以利用代理模式来简化载入类的过程,这将大大减少利用HibernateQL从数据库提取数据的代码的编写量,从而节约开发时间和开发成本Hibernate可以和多种Web服务器或者应用服务器良好集成,如今已经支持几乎所有的流行的数据库服务器。Hibernate技术本质上是一个提供数据库服务的中间件。它的架构如图2.4所示:图2-1Hibernate架构图2-1显示了Hibernate的工作原理,它是利用数据库以及其他一些配置文件如Hibernate.properties,XMLMapping等来为应用程序提供数据持久化服务的。Hibernate具有很大的灵活性,但同时它的体系结构比较复杂,提供了好几种不同的运行方式。在轻型体系中,应用程序提供JDBC连接,并且自行管理事务,这种方式使用了Hibernate的一个最小子集;在全面解决体系中,对于应用程序来说,所有底层的JDBC/JTAAPI都被抽象了,Hibernate会替你照管所有的细节。2.3MySQL数据库MySQL[5]是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司。MySQLAB是一家基于MySQL开发人员的商业公司,它是一家使用了一种成功的商业模式来结合开源价值和方法论的第二代开源公司。MySQL是MySQLAB的注册商标。MySQL的SQL"结构化查询语言"。SQL是用于访问数据库的最常用标准化语言。MySQL软件采用了GPL〔GNU通用公共许可证。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置<mass-deployed>的软件中去。MySQL是一个数据库管理系统数据库是一个结构化的数据集合。如果要对存储在计算机数据库中的大量数据进行添加、访问等处理,你就需要一个像MySQL这样的数据库管理系统。数据库系统在计算机处理中和独立应用程序或其他部分应用程序一样扮演着重要的角色。MySQL是一个关系数据库管理系统关系数据库把数据存放在分立的表格中,这比把所有数据存放在一个大仓库中要好得多,这样做将增加你的速度和灵活性。"MySQL"中的SQL代表"StructuredQueryLanguage"〔结构化查询语言。SQL是用于访问数据库的最通用的标准语言,它是由ANSI/ISO定义的SQL标准。SQL标准发展自1986年以来,已经存在多个版本:SQL-86,SQL-92,SQL:1999,SQL:2003,其中SQL:2003是该标准的当前版本。MySQL是开源的开源意味着任何人都可以使用和修改该软件,任何人都可以从Internet上下载和使用MySQL而不需要支付任何费用。如果你愿意,你可以研究其源代码,并根据你的需要修改它。MySQL使用GPL<GNUGeneralPublicLicense,通用公共许可>,在hpt:///licenses中定义了你在不同的场合对软件可以或不可以做什么。如果你觉得GPL不爽或者想把MySQL的源代码集成到一个商业应用中去,你可以向MySQLAB购买一个商业许可版本。3系统分析3.1可行性分析经济可行性系统的经济可行性是指分析学校的经济状况和投资能力,估算系统建设、运行和维护的费用,估计系统建成后取得的效益。目前,计算机价格已经十分低廉,计算机性能却有了质的飞跃。开发本系统为学校的工作效率带来了长足的进步,为此主要表现有以下几个方面:第一,运行本系统可以方便查询和管理学生信息;第二,运行本系统可以节省人力和物力;第三,运行本系统可以提高学校的工作效率;第四,本系统可以减少信息管理的错误率。所以,本系统的开发在经济上是可行的。技术可行性本系统通过网络和网页实现,校园网的覆盖为实现学生成绩管理系统打下了基础。使用支持动态网页的JSP技术,利用支持多用户的MySQL作为本系统的数据库,它适用于大中规模的数据量需求。使用MyEclipse7.5作为系统开发的开发环境,MyEclipse是Eclipse的插件,也是一款功能强大的JavaEE集成开发环境,支持代码编写、配置、测试以及除错。综上所述,本系统的设计与开发在技术上和硬件设备上的条件都是满足的,因此,它在技术上是可行的。运行和操作可行性本系统是小型的学生信息管理系统,所需要的资源比较小,学校电脑的硬件和网络都能够满足条件,因此,本系统在运行上是可行的。本系统使用方便,界面简洁,直观易懂,无论是学生还是教师都可直接上手,管理员通过简单的培训操作本系统也没有问题。法律可行性开发本系统不会侵犯他人利益,不存在侵权问题,不违反国家法律法规,因此具有法律可行性。综上所述,从经济上、技术上、运行操作上都是可行的,所以该开发该系统是可行的。3.2需求分析在设计系统之前,首先必须确定用户究竟要求软件系统完成什么任务,所以分析阶段的基本任务是了解用户的需求,并将用户的需求用书面形式表达出来。这个阶段还不是确定系统怎样完成它的工作,而仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。系统分析的结果是系统开发的基础,关系到工程的成败和软件产品的质量。在全面客观的系统分析的基础上,根据用户提出的系统功能进行相应的功能设计。在互联网飞速发展的今天,对于21世纪的教学而言,应该与网路息息相关。许多人还停留在以前的手工操作,这大大地阻碍了人类经济的发展。为了适应现代社会人们高度强烈的时间观念,学校信息管理系统软件为学校办公室带来了极大的方便,作为高校教务管理工作的一部分,既方便了学生查看成绩、老师的教学管理、更加方便了学校的教务管理。经过调研与可行性分析,出于对教师和学生需求的考虑,设计了这套系统,成绩管理系统主要包括:〔1用户信息模块:①管理员可以对课程信息、教师信息、学生信息进行录入和修改;②在用户登录方面,对用户身份进行验证,防止非法用户登录,管理员对用户分配初始密码;③在个人管理方面,对用户个人信息进行维护,如修改密码、联系方式。〔2成绩录入:任课教师对本课程成绩进行录入和校验。〔3成绩查询:学生只能对自己的学期各科成绩进行查询;教师能对自己所任课程进行查询;班主任能对本班级各科成绩以及本班中的学生进行全科成绩进行查询;管理员可以对所有学生成绩进行查询。〔4成绩管理:管理员可以对各科成绩包括补考成绩进行添加、修改、删除操作。3.3E-R图根据学生成绩管理系统的分析得到系统的E-R图,如图3-1所示。图3-1成绩管理系统E-R图成绩管理系统中各实体之间的关系如下:〔1学生信息与成绩信息:1∶M;〔2班级信息与学生信息:1∶M;〔3学生信息与课程信息:N∶M;〔4教师信息与班级信息:N∶M;〔5角色信息与学生信息:1∶M;〔6角色信息与教师信息:1∶M;〔7班级信息与班级课程信息:N∶M;〔8课程信息与班级课程信息:N∶M。4系统设计4.1总体设计 根据前面的需求分析,我们将系统划分为如下的三大功能模块。管理员管理模块重点是学生管理、教师管理、课程管理、班级管理。对学生、教师、课程、班级的管理包括添加、修改、查看。教师模块包括对学生成绩的录入和查询,以及对自己联系信息的修改。学生模块主要是学生对自己成绩进行查询,以及对自己的信息进行修改。整个系统的主要结构如图4-1所示。图4-1系统模块结构图4.2功能模块设计学生和教师是本系统的中心对象。根据模块划分和需求分析可知,该系统的流程主要描述的是当教师对自己所教课程的学生打分以后学生可以登录查询到自己该科目的成绩。该系统包括三个基本流程,适用于管理员、教师、学生。图4-2描述的是管理员的操作流程:首先管理员要进行学生、教师、班级、和课程数据的初始化,这样学生和教师就可以登录使用该系统了。在系统使用过程中,管理员再进行管理工作。图4-2管理员的操作流程图4-3描述的是教师的操作流程:教师根据管理员提供的初始密码和教师号登录系统。教师登陆系统后可修改密码、个人信息、公布和查询成绩。图4-3教师的操作流程图4-4描述的是学生操作流程:学生根据学号和初始密码登录系统。学生登录后,可以查询成绩和修改个人信息。图4-4学生的操作流程4.3数据库设计数据库设计是对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能有效地存取数据,满足用户的信息要求和处理要求。好的数据库结构设计会减少数据库的存储量,数据的完整性和一致性比较高,系统具有较快的响应速度,简化基于此数据库的应用程序的实现难度。在数据库系统开始设计开发的时候应该尽量考虑全面,尤其应该仔细考虑用户的各种需求,避免浪费不必要的人力和物力。在这个数据库管理系统中要建立7张数据表:教师信息表:用于存放所有上课教师的基本信息,其中包括班主任和管理员,如表4-1。表4-1教师信息表列名列标识数据类型长度空值主键教师号Idint11noY名字Namevarchar45yesN性别Sexvarchar20yesN专业projectvarchar45yesN电话phonevarchar45yesN学院collegevarchar45yesN角色代码Roleidint11yesN角色信息表:用于存放所有觉得信息,如表4-2。表4-2角色信息表列名列标识数据类型长度空值主键角色代码Idint11noY角色名称roleNamevarchar45yesN学生信息表:用于存放所有学生的基本信息,如表4-3。表4-3学生信息表列名列标识数据类型长度空值主键学号Idint11noY班级代码classNoint11yesN姓名Namevarchar45yesN性别Sexvarchar45yesN专业projectvarchar45yesN电话phonevarchar45yesN学院collegevarchar45yesN角色代码Roleidint11yesN课程信息表:用于存放所有开课课程的基本信息,如表4-4。表4-4课程信息表列名列标识数据类型长度空值主键课程号Idint11noY课程名Namevarchar45yesN学时periodvarchar30yesN学分creditsvarchar30yesN教师号teacheridint11yesN班级信息表:用于存放所有与班级相关的信息,如表4-5。表4-5班级信息表列名列标识数据类型长度空值主键班级号Idint11noY班级名classnamevarchar45yesN班主任teacheridint11yesN成绩信息表:用于存放所有学生成绩的信息,如表4-6。表4-6成绩信息表列名列标识数据类型长度空值主键成绩号Idint11noY学生学号stuNoint11yesN课程号courseIdint11yesN成绩Scorevarchar45yesN分类Typetinyint1yesN学期Termvarchar45yesN班级课程表:用于存放与班级相对应的所有课程信息,如表4-7。表4-7班级课程表列名列标识数据类型长度空值主键班级课程号Idint11noY班级号classIdint11yesN课程号courseIdint11yesN5系统实现5.1登录模块5.1.1登录界面用户通过用户名和密码登录系统,如果数据库中不存在用户名和密码则不能登录。图5-1为登录界面。图5-1登录界面图登录采用的是目前最流行的JS[6]框架jequery[7]的Ajax验证,实现了页面的局部刷新。具体JS代码如下:$.post<"login!checkLogin",{username:$<"#name">.val<>,password:$<"#pwd">.val<>,userType:typeValue},function<data>{if<data=="true">{ document.logfrom.submit<>; }else{ alert<"用户名或者密码错误">; } },'html' >;5.1.2系统首页如果登录成功则进入系统,此时不同角色的用户进入不同的界面。以管理员为例,登录成功之后可以看到如图5-2所示。图5-2管理员系统首页图5.2菜单模块本系统菜单采用的是JS加载方式实现。实现了由JS控制的三级菜单。如图5-3所示:图5-3管理员管理界面图最上一层是第一级菜单〔基本设置,用户管理,成绩管理,报表管理。通过第一级菜单可以通过点击事件触发第二级菜单的生成。如图左边所示〔课程信息,教师信息,学生信息,班级信息。通过第二级菜单可以触发第三级菜单。如图5-3左侧增加课程,查看课程等等。具体JS代码如下:vartest=document.getElementById<"role">.value;varoutlookbar=newoutlook<>;vart;t=outlookbar.addtitle<'个人信息','基本设置',1>;outlookbar.additem<'查看个人资料',t,'login!personalMessage'>;outlookbar.additem<'修改个人资料',t,'login!changeUserMsg'>;outlookbar.additem<'更改登录密码',t,'login!passwordPage'>;if<test=='管理员'>{t=outlookbar.addtitle<'课程信息','用户管理',1>;outlookbar.additem<'增加课程',t,'course!addCourse'>;outlookbar.additem<'查看课程',t,'course!listCourse'>;t=outlookbar.addtitle<'教师信息','用户管理',1>;outlookbar.additem<'增加教师',t,'teacher!addTeacher'>;outlookbar.additem<'查看教师',t,'listTeacher'>;t=outlookbar.addtitle<'学生信息','用户管理',1>;outlookbar.additem<'增加学生',t,'student!addStudent'>;outlookbar.additem<'查看学生',t,'listStudent'>;t=outlookbar.addtitle<'班级信息','用户管理',1>;outlookbar.additem<'增加班级',t,'classmessage!addClass'>;outlookbar.additem<'查看班级',t,'listClass'>;}t=outlookbar.addtitle<'成绩信息','成绩管理',1>;outlookbar.additem<'成绩查询',t,'listScore'>;if<test!='学生'>{outlookbar.additem<'成绩录入',t,'score!addScore'>;}if<test=='管理员'>{t=outlookbar.addtitle<'报表信息','报表管理',1>;outlookbar.additem<'班级信息',t,'manframe.jsp'>;outlookbar.additem<'课程成绩信息',t,'manframe.jsp'>;outlookbar.additem<'补考信息',t,'manframe.jsp'>;}t=outlookbar.addtitle<'退出系统','基本设置',1>;outlookbar.additem<'点击退出登录',t,'login!logout'>;这种菜单的实现风格是采用js对象实例化的形式,加载页面的时候,把js菜单动态加载到页面。5.3用户信息模块5.3.1公共信息这部分为各个角色的公共信息,主要由个人信息和退出系统两个大功能,个人信息包括修改个人信息,查看个人信息,修改密码和联系方式。退出系统直接退出系统,清空登录缓存,以免非法登录。如图5-4所示。图5-4个人信息图其中退出系统时是需要清空session中的对象值的,以免用户非法登录,具体代码如下所示:publicStringlogout<>throwsException{ HttpServletRequestrequest=ServletActionContext.getRequest<>; HttpSessionsession1=request.getSession<>; session1.invalidate<>;return"logout"; }5.3.2课程信息只有管理员用户才可以拥有此功能的操作权限,可以添加,查看并修改课程信息。如图5-5所示。图5-5管理课程图从图5-5中可以看出,查看课程页面做了分页处理,这样是整个页面更加清晰。具体分页代码如下所示:<trclass="left_title_1"align="center"><tdcolspan="6"align="center"><s:iftest="%{#request.page.totalRecord!=0}"> 第${page.currentPage}/${page.totalPage}页|<s:iftest="%{#request.page.currentPage==1}"> 首页|</s:if><s:iftest="%{#request.page.currentPage>1}"><ahref="javascript:topage<1>">首页</a>|</s:if><s:iftest="%{#request.page.currentPage==1}"> 上一页|</s:if><s:iftest="%{#request.page.currentPage>1}"><ahref="javascript:topage<${page.current1}>">上一页</a>|</s:if><s:iftest="%{#request.page.currentPage==#request.page.totalPage}"> 下一页|</s:if><s:iftest="%{#request.page.currentPage<#request.page.totalPage}"><ahref="javascript:topage<${page.currentPage+1}>">下一页</a>|</s:if><s:iftest="%{#request.page.currentPage==#request.page.totalPage}"> 尾页</s:if><s:iftest="%{#request.page.currentPage<#request.page.totalPage}"><ahref="javascript:topage<${page.totalPage}>">尾页</a></s:if> |每页显示:${page.maxPerPage}条</s:if></td></tr>5.3.3教师信息只有管理员用户才可以拥有此功能的操作权限,可以添加,查看并修改教师信息。如图5-6所示。图5-6管理教师图上图5-6为添加教师页面,管理员可以添加教师信息,同时为用户赋角色,可以是教师,班主任,或者管理员,查看页面同样做了分页,通过查看教师可以看到所有教师信息。5.3.4学生信息只有管理员用户才可以拥有此功能的操作权限,可以添加,查看并修改学生信息。添加学生页面如图5-7所示。图5-7学生管理图管理员同样可以增加新的学生信息,通过选择不同班级,为学生分配班级。5.3.5班级信息只有管理员用户才可以拥有此功能的操作权限,可以添加,查看并修改班级信息。添加班级页面如图5-8所示。图5-8班级管理图每个班级都要指定一个任课教师,可以通过下拉列表动态选择。5.4成绩管理模块5.4.1成绩录入此模板为整个项目的核心,主要由任课老师操作,任课老师可以录入自己所任课程学生成绩,管理员虽然拥有成绩录入的权限,但是从效率方面考虑管理员不使用此功能。如果角色为任课老师,则如图5-9所示。图5-9成绩录入图首先用户选择课程,选择课程之后会动态加载学生,此次用到了struts2框架的doubleselect[8]标签——二级下拉列表联动,具体二级下拉列表联动代码如下:<s:doubleselectid="student"name="score.student.id"list="studentList"listKey="id"listValue="name"doubleList="types[top.id]"doubleName="score.course.id"doubleListKey="id"doubleListValue="name"theme="simple"/>成绩可以分为期末成绩和补考成绩,根据类型录入不同的成绩。如果角色为管理员,则可以录入所有课程的信息,页面与上图类似。5.4.2成绩查询此模板也是整个项目的核心,可以由学生,任课老师,班主任和管理员操作。学生可以查看自己所学课程的所有考试成绩,任课老师可以查询自己所任课程学生成绩,管理员可以查看所有课程的学生成绩,班主任可以查看自己所任课程信息,同时也可以查看自己所带班级的学生课程信息以及针对某一门课程的信息。如果角色为任课老师,则如图5-10所示。图5-10任课老师成绩查询图任课老师可以选择自己所任的所有课程,并查看各课程的学生成绩情况。选择课程后如图5-11所示。图5-11任课老师成绩界面图同时,此处用到了Jquery局部刷新,选择课程后,页面不是整体刷新,而只是下拉框以上部分动态刷新。具体局部刷新代码如下:functionchangeCourse<>{ $.ajax<{ type:"POST", url:"score!scoreByCourse",//contentType:"application/x-www-form-urlencoded;charset=utf-8", data:"courseId="+$<"#course">.val<>, success:function<data>{ $<"#courseScore">.empty<>; $<"#courseScore">.html<data>; } }>;}这里也是用的ajax技术实现的。用户可以编辑或者删除成绩。管理员页面与上图类型,只是管理员可以查看的课程比任课老师多,他可以查看到所有课程的学生成绩情况。如果角色是班主任,可以看到如图5-12所示。图5-12班主任成绩查询图如图5-13,班主任可以是任课教师,所有他可以查看自己所任课程信息,同时作为班主任,他可以查看班级成绩情况,可以按班级来查看,也可以按学生来查看。如果按班级查看,点击选择班级,则可以看到如图5-13所示。图5-13班主任查询自己班学生成绩图如图5-13,选择班级之后,可以查看班主任所带某个班级的所有学生的成绩。同样也是ajax局部刷新实现,其后台代码如下所示:HttpServletResponseresponse=ServletActionContext.getResponse<>; response.setHeader<"Cache-Control","no-cache">; response.setContentType<"text/html;charset=UTF-8">; PrintWriterout=response.getWriter<>; Studentse=newStudent<>; se.setId<Integer.parseInt<courseId>>; List<Score>allScore=scoreService.getStudentScore<se>; Stringresult="<tablewidth=\"99%\"border=\"0\"align=\"center\"cellpadding=\"3\"cellspacing=\"1\"class=\"table_style\">"+"<trclass=\"left_title_1\">"+"<tdwidth=\"8%\"align=\"center\"><spanclass=\"left-title\">编号</span></td>"+"<tdwidth=\"10%\"align=\"center\">姓名</td>"+"<tdwidth=\"15%\"align=\"center\">课程</td>"+"<tdwidth=\"12%\"align=\"center\">学分</td>"+"<tdwidth=\"12%\"align=\"center\">学时</td>"+"<tdwidth=\"10%\"align=\"center\">成绩</td>"+"<tdwidth=\"16%\"align=\"center\">类型</td>"+"<tdwidth=\"17%\"align=\"center\">学期</td>"+"</tr>";for<inti=0;i<allScore.size<>;i++>{ Scores=allScore.get<i>; result=result+"<trclass=\"left_title_2\"align=\"center\">"+"<tdalign=\"center\">"+<i+1>+"</td>"+"<tdalign=\"center\">"+s.getStudent<>.getName<>+"</td>"+"<tdalign=\"center\">"+s.getCourse<>.getName<>+"</td>"+"<tdalign=\"center\">"+s.getCourse<>.getCredits<>+"</td>"+"<tdalign=\"center\">"+s.getCourse<>.getPeriod<>+"</td>"+"<tdalign=\"center\">"+s.getScore<>+"</td>";if<s.getType<>.toString<>.equals<"1">>{ result=result+"<tdalign=\"center\">"+"期末成绩"+"</td>"; }else{ result=result+"<tdalign=\"center\">"+"补考成绩"+"</td>"; } result=result+"<tdalign=\"center\">"+s.getTerm<>+"</td></tr>"; } result=result+"</table>"; System.out.println<result>; out.print<result>;如果选择学生,则可以看到班主任所带班级某个学生的所有个人成绩。如图5-14所示。图5-14班主任查询某个学生成绩图如图5-15,可以查看到某学生的所有成绩。如果角色为学生,则可以查看到自己所有课程的成绩,如图所示。图5-15学生成绩查询图具体显示代码如下:<s:iteratorvalue="sList"id="score"status="s"><trclass="left_title_2"align="center"><tdalign="center">${1+s.index}</td><tdalign="center"><s:propertyvalue="%{#score.term}"/></td><tdalign="center"><s:propertyvalue="%{#}"/>
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度技术服务合同:科技公司为医疗机构提供医疗信息化服务的合同
- 饭店合作经营合同范本
- 二零二四年度医疗服务合同标的及服务项目
- 2024年度虚拟现实游戏内容开发与授权合同
- 2024年度版权许可合同:关于某软件版权许可使用具体条款2篇
- 2024年度电影版权保护合同4篇
- 2024年度景观照明设计施工合同
- 挡墙加工合同范本
- 危机管理与应对中的风险转移策略探讨与实践考核试卷
- 新能源在电子与通信领域中的应用与创新考核试卷
- 江苏省南京市五校联盟2024-2025学年高三上学期期中考试化学试题
- 24年追觅在线测评28题及答案
- 《思想道德修养与法律基础》课件-4发扬中国革命道德
- 《陆上风电场工程概算定额》NBT 31010-2019
- 第五章 中国特色社会主义理论体系的形成发展(一)
- 新版中国食物成分表
- 《关于早恋教育》主题班会上课版1
- 河北建新化工股份有限公司新型环保材料水煤浆添加剂建设项目环境影响报告表
- 酒店弱电工程预算清单2ok
- 社区卫生服务中心安全生产应急预案
- 国有企业商业秘密保护实施细则模版
评论
0/150
提交评论