




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学生信息管理系统摘要随着学校规模的不断扩大,学生数量急剧增加,有关学生的各种信息也成倍增长。面对如此庞大的信息量,开发学生信息管理系统来提高学生管理工作的效率就成为必然。通过该系统,可以做到信息的规范管理、科学统计和快速查询,从而减少管理方面的工作量。本系统是采用B/S模式进行开发的,系统的用户权限有两种:学生和教师,不同权限用户登入到不同的操作界面。该系统主要由学生信息管理、选课信息管理、留言板管理等功能模块组成,本文具体介绍了各功能模块所包含的小模块的功能,学生信息管理模块主要是对学生的基本信息进行查询、班级信息查询、学生信息修改、成绩查询;选课信息管理模块包括课表查询、课程信息查询、教师信息查询、选课、退选等功能。关键字:学生信息管理、B/S、JSP、Script、MYSQLStudentInformationManagementSystemAbstractWiththeexpansionofschools,asharpincreaseinthenumberofstudents,thestudentsofavarietyofinformationisalsodoubled.Facedwithsuchalargeamountofinformation,studentsdevelopinformationmanagementsystemstoimprovetheefficiencyofthemanagementofstudentsontheinevitable.Throughthesystem,theinformationcanbestandardizedmanagement,scientificstatisticsandfastquery,therebyreducingtheworkloadofmanagement.
ThesystemisB/Smodeldeveloped,thesystemhastwotypesofuserrights:studentsandteachers,differentpermissionstodifferentuserlogininterface.Mainlybystudentsofthesysteminformationmanagement,informationmanagementcourse,managementfeaturessuchasmessageboardmodules,thisarticledetailsthevariousfunctionalmodulesincludedinthefunctionofsmallmodules,studentinformationmanagementmoduleisthebasicinformationforstudentstoconductinquiries,classinformation,studentinformationchangesscoreinquiries;coursecurriculuminformationmanagementmodule,includinginformation,curriculuminformation,teacherinformationquery,coursequery,withdrawfromtheelectionandotherfunctions.KeyWords:studentinformationmanagement、B/S、JSP、Script、MYSQL目录摘要 3前言 8第1章绪论 9第1.1节选题的背景和意义 9第1.2节国内外研究现状及发展趋势 9第1.3节本课题研究内容 10第1.4节本课题研究的目标及主要特色 10第2章系统设计使用技术介绍 11第节JSP(JavaServerPages)和JavaBean技术介绍 11、JSP技术在多个方面加速了动态Web页面的开发: 11 B/S体系结构介绍 13 JavaScrit技术介绍 14、JavaScript技术的特点 14第2.4节数据库介绍 15、MYSQL数据库 16、ODBC数据访问接口 16第3章系统概要设计 18第节需求分析 18第节运行环境 18、服务器 18、客户机 18第节系统结构图 183.3.1HIPO图 183.3.2E-R图 193.4逻辑模型的描述 20第4章数据库设计 214.1总体表设计 214.2数据库表的结构 214.3数据库连接代码 23第5章系统详细设计 255.1系统流程图 255.2登陆模块 25系统主界面-登陆界面 255.2.2登陆流程图 265.2.3功能介绍 265.2.4登陆成功界面 275.2.5用户登录的主要代码实现 275.3学生信息管理模块 295.3.1学生信息管理主界面 295.3.2班级信息查询 295.3.3学生详细信息查询 315.3.4学生信息修改 315.3.5密码修改 325.3.6成绩查询 345.4选课信息管理模块 365.4.1选课信息管理主界面 365.4.2查看课表 375.4.3查看课程列表 375.4.4查看教师信息 385.4.5选课 385.4.6退选 395.5留言板模块 395.5.1留言板主界面 395.5.2浏览留言板信息 405.5.3留言主题评分 405.5.4主题评论 41添加留言版信息 415.6新闻模块 425.6.1新闻主页 425.6.2查看新闻 43结论 44参考文献 45前言学生信息管理系统(SMIS)是大学信息管理系统建设的重要组成部分,是提高教学管理的质量和效益乃至建设知名高水平大学的关键环节。学生信息处理的电脑化、网络化,也是实现学校管理现代化和信息化的重要内容。学生信息管理系统的内容对于学校的决策者和管理者来说都至关重要,所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生信息进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生档案管理的效率,也是进行科学化、正规化管理,与世界接轨的重要条件。因此,开发一套采用B/S结构的学生信息管理系统就成为必要的事情。本系统正是采用B/S结构开发的,该系统主要由学生信息管理、选课管理、留言板等功能模块组成,实现学生基本信息管理、学生选修课程管理以及留言板管理等。本文将在后面一一加以详细阐述.第1章绪论选题的背景和意义目前国家的教育体制也正处在不断改革、创新的阶段,我国教育部门充分吸取国外优秀的教学模式,结合国内多年的办学经验,逐步探索出适合中国特色的教学形式,因此国家教育部面向各级各类学校开展了全面学分制改革。因此,各院校迫切学要对自己的现有学生管理系统进行改进和提高,根据国内大学的现在管理模式,结合国际新的思想观念,在校园网络环境下建设先进的、与国际水平接轨的信息化管理平台。提高学校管理工作的现代化水平,使之成为学校公共信息服务体系的重要组成部分。因此,学生信息管理系统应充分依托校园网,实现学生信息的集中管理、分散操作、信息共享,使传统的学生管理朝数字化、无纸化、智能化、综合化的方向发展,并为进一步实现完善的计算机学生管理系统和全校信息系统打下良好的基础。在这样的大环境下,我们选择了“学生信息管理系统”这个设计题目,符合实际需求。《学生信息管理系统》系统是高校教学、学生管理系统网站。熟悉学生管理工作的全部过程,从学生工作的实际出发,解决工作中关键性的难点问题,并充分利用计算机网络功能,实现学生工作全过程的计算机管理,帮助具体管理人员从复杂烦琐工作中解放出来。使得教务管理走向无纸化办公和规范化、现代化管理,使传统的由人工事务性管理模式转化为借助现代化技术和手段实现的科学化管理模式,不仅节省人力和物力,而且提高办公效率。国内外研究现状及发展趋势大学学生管理是大学的主要日常管理工作之一,涉及到学生的诸多方面,随着教学体制的不断改革,尤其是学分制、选课制的展开和深入,学生日常管理工作日趋繁重、复杂。迫切需要研制开发一个基于INTERNET网的综合网上教育管理软件。国外高校一般具有较大规模的稳定的技术队伍来提供服务与技术支持。国内高校信息化建设相对起步较晚。在数字校园理论逐步应用的过程中,各高校一方面不断投资购建各种硬件、系统软件和网络,另一方面也不断开发实施了各类教学、科研、办公管理等应用系统,形成了一定规模的信息化建设体系。但是,由于整体信息化程度相对落后,经费短缺,理论体系不健全等原因,国内高校学生管理系统在机构设置、服务范围、服务质量及人员要求上与国外高校相比都有一定的差距。本课题研究内容本系统是一款资源型管理软件,适用于普通高等教育学生的管理工作,具有丰富,完整,规范的内容和比较完善的功能.是一个适用于高等院校或各类专科学校学生工作管理部门的计算机辅助管理系统,它具备高校学生工作部门的学生管理的日常事务性工作及各类数据的自动化处理功能.从学生的入学档案,学籍档案,在线选课,学习成绩综合测评,到学生毕业信息管理的全部业务功能.本系统初步计划使用java和jsp技术,使用mysql数据库,使用服务器搭建,突破点在于如何合理设计数据库和系统框架。系统具有用户界面友好,简单,操作方便,功能强大,使学生信息管理的各个方面得以充分的体现,真正便于学校的教学管理。本课题研究的目标及主要特色本系统采用j2ee平台,开发成网站式在线学生信息管理平台,使管理工作随时随地只要联接互联网救可以展开,系统使用j2ee技术结合tomcat服务器和mysql数据库,重点在于研究数据库设计和程序模块结构。结合以前的项目实践,我认为此系统是可行的。在对现流行的Web开发技术研究的基础上进行筛选和比较之后,选择J2EE架构作为系统的整体架构,系统采用MVC模式进行开发,做到了视图、控制、模型三部分的分离,使软件的开发与维护更加方便。第2章系统设计使用技术介绍第2.1节JSP(JavaServerPages)和JavaBean技术介绍JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准,其网址为。该技术为创建显示动态生成内容的Web页面提供了一个简捷而快速的方法。JSP技术的设计目的是使得构造基于Web的应用程序更加容易和快捷,而这些应用程序能够与各种Web服务器,应用服务器,浏览器和开发工具共同工作。JSP规范是Web服务器、应用服务器、交易系统、以及开发工具供应商间广泛合作的结果。在传统的网页HTML文件(*htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp)。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送email等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无Plugin,无ActiveX,无JavaApplet,甚至无Frame。2.2.1、JSP技术在多个方面加速了动态Web页面的开发:(1)将内容的生成和显示进行分离使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求来变化的,例如请求帐户信息或者特定的一瓶酒的价格)。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和Beans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBCTM技术访问数据库,或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。(2)强调可重用的组件绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者EnterpriseJavaBeansTM组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。(3)采用标识简化页面开发Web页面开发人员不会都是熟悉脚本语言的编程人员。JavaServerPage技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。通过开发定制化标识库,JSP技术是可以扩展的。今后,第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。作为采用Java技术家族的一部分,以及Java2(企业版体系结构)的一个组成部分,JSP技术能够支持高度复杂的基于Web的应用。由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成为JavaServlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。随着越来越多的供应商将JSP支持添加到他们的产品中,您可以使用自己所选择的服务器和工具,更改工具或服务器并不影响当前的应用。当与Java2平台,企业版(J2EE)和EnterpriseJavaBean技术整合时,JSP页面将提供企业级的扩展性和性能,这对于在虚拟企业中部署基于Web的应用是必需的。(4)技术分析Microsoft公司的ASP技术也是动态网页开发技术。JSP和ASP从形式上非常相似,ASP程序员一眼就能认出<%%>以及<%=%>。但是深入探究下去会发现它们很多的差别,其中最主要的有以下三点:JSP的效率和安全性更高ASP以源码形式存放,以解释方式运行,每次ASP网页调用都需要对源码进行解释,运行效率不高。JSP在执行以前先被编译成字节码(bytecode),字节码由Java虚拟机(JavaVirtualMachine)解释执行,比源码解释的效率高;服务器上还有字节码的Cache机制,能提高字节码的访问效率。第一次调用JSP网页可能稍慢,因为它被编译成Cache,以后就快得多了。同时,JSP源程序不大可能被下载,特别是JavaBean程序完全可以放到不对外的目录中。JSP的组件(Component)方式更方便ASP通过COM来扩充复杂的功能,如文件上载、发送email以及将业务处理或者复杂计算分离出来成为独立可重复利用的模块。JSP通过JavaBean实现了同样的功能扩充。在开发方面,COM的开发远比JavaBean复杂和繁琐,学会ASP不难,但学会开发COM可不简单。在维护方面,COM必须在服务器上注册,如果修改了COM程序,就必须重新注册,甚至必须关机和重新启动。JavaBean则不需要注册,放在CLASSPATH包含的目录中就行了。如果JavaBean进行了修改,则JSWDK和Tomcat现在还需要关闭和重新运行(但不是关机),但开发者已经许诺将在以后的版本中做到不需要关闭服务器。另外JavaBean是完全的OOP,可以针对不同的业务处理功能方便地建立一整套可重复利用的对象库,例如用户权限控制、email自动回复等等。JSP的适应平台更广JavaBean是一种基于Java的软件组件。JSP对于在Web应用中集成JavaBean组件提供了完善的支持。这种支持不仅能缩短开发时间(可以直接利用经测试和可信任的已有组件,避免了重复开发),也为JSP应用带来了更多的可伸缩性。JavaBean组件可以用来执行复杂的计算任务,或负责与数据库的交互以及数据提取等。如果我们有三个JavaBean,它们分别具有显示新闻、股票价格、天气情况的功能,则创建包含所有这三种功能的Web页面只需要实例化这三个Bean,使用HTML表格将它们依次定位就可以了。B/S体系结构介绍B/S结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。JavaScrit技术介绍2.3.1、JavaScript技术的特点JavaScript是一种基于对象(Object)和事件驱动(EventDriven)并具有安全性能的脚本语言。使用它的目的是与HTML超文本标记语言、Java脚本语言(Java小程序)一起实现在一个Web页面中链接多个对象,与Web客户交互作用。从而可以开发客户端的应用程序等。它是通过嵌入或调入在标准的HTML语言中实现的。它的出现弥补了HTML语言的缺陷,它是Java与HTML折衷的选择,具有以下几个基本特点:(1)是一种脚本编写语言JavaScript是一种脚本语言,它采用小程序段的方式实现编程。像其它脚本语言一样,JavaScript同样已是一种解释性语言,它提供了一个易的开发过程。它的基本结构形式与C、C++、VB、Delphi十分类似。但它不像这些语言一样,需要先编译,而是在程序运行过程中被逐行地解释。它与HTML标识结合在一起,从而方便用户的使用操作。(2)基于对象的语言JavaScript是一种基于对象的语言,同时以可以看作一种面向对象的。这意味着它能运用自己已经创建的对象。因此,许多功能可以来自于脚本环境中对象的方法与脚本的相互作用。(3)简单性JavaScript的简单性主要体现在:首先它是一种基于Java基本语句和控制流之上的简单而紧凑的设计,从而对于学习Java是一种非常好的过渡。其次它的变量类型是采用弱类型,并未使用严格的数据类型。(5)安全性JavaScript是一种安全性语言,它不允许访问本地的硬盘,并不能将数据存入到服务器上,不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互。从而有效地防止数据的丢失。(6)动态性JavaScript是动态的,它可以直接对用户或客户输入做出响应,无须经过Web服务程序。它对用户的反映响应,是采用以事件驱动的方式进行的。所谓事件驱动,就是指在主页(HomePage)中执行了某种操作所产生的动作,就称为“事件”(Event)。比如按下鼠标、移动窗口、选择菜单等都可以视为事件。当事件发生后,可能会引起相应的事件响应。(7)跨平台性JavaScript是依赖于浏览器本身,与操作环境无关,只要能运行浏览器的计算机,并支持JavaScript的浏览器就可正确执行。从而实现了“编写一次,走遍天下”的梦想。实际上JavaScript最杰出之处在于可以用很小的程序做大量的事。无须有高性能的电脑,软件仅需一个字处理软件及一浏览器,无须WEB服务器通道,通过自己的电脑即可完成所有的事情。综合所述JavaScript是一种新的描述语言,它可以被箝入到HTML的文件之中。JavaScript语言可以做到回应使用者的需求事件(如:form的输入),而不用任何的网路来回传输资料,所以当一位使用者输入一项资料时,它不用经过传给伺服端(server)处理,再传回来的过程,而直接可以被客户端(client)的应用程式所处理。JavaScript和Java很类似,但到底并不一样。Java是一种比JavaScript更复杂许多的程式语言,而JavaScript则是相当容易了解的语言。数据库介绍数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合。这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改和检索由统一软件进行管理和控制。从发展的历史看,数据库是数据管理的高级阶段,它是由文件管理系统发展起来的。、MYSQL数据库MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。2.4.2、ODBC数据访问接口ODBC(OpenDatabaseConnectivity,开放数据库互连)是微软公司开放服务结构(WOSA,WindowsOpenServicesArchitecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access,MYSQL还是Oracle数据库,均可用ODBCAPI进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。应用程序要访问一个数据库,首先必须用ODBC管理器注册一个数据源,管理器根据数据源提供的数据库位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与具体数据库的联系。这样,只要应用程序将数据源名提供给ODBC,ODBC就能建立起与相应数据库的连接。在ODBC中,ODBCAPI不能直接访问数据库,必须通过驱动程序管理器与数据库交换信息。驱动程序管理器负责将应用程序对ODBCAPI的调用传递给正确的驱动程序,而驱动程序在执行完相应的操作后,将结果通过驱动程序管理器返回给应用程序。2.4.3JDBC数据访问接口JDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯JavaAPI编写数据库应用程序,同时,JDBC也是个商标名。有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBCAPI,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBCAPI写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法。JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。Java具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言。所需要的只是Java应用程序与各种不同数据库之间进行对话的方法。而JDBC正是作为此种用途的机制。JDBC扩展了Java的功能。例如,用Java和JDBCAPI可以发布含有applet的网页,而该applet使用的信息可能来自远程数据库企业也可以用JDBC通过Internet将所有职员连到一个或多个内部数据库中(即使这些职员所用的计算机有Windows、Macintosh和UNIX等各种不同的操作系统)。随着越来越多的程序员开始使用Java编程语言,对从Java中便捷地访问数据库的要求也在日益增加。第3章系统概要设计第3.1节需求分析学生信息管理系统是对学生的基本信息和成绩信息进行管理,主要包括添加、修改和删除学生的基本信息,录入、修改和删除学生的成绩信息,对基本信息、成绩信息进行查询、排序等操作,以及留言板,重要信息通知等功能,从而实现学生信息管理的自动化与计算机化。第3.2节运行环境3.2.1、服务器CPU:P42.0G以上内存:512M硬盘:60G以上网络:100M/1000MEthenet3.2.2、客户机CPU:500Mz内存:64M以上硬盘:1G以上网络:10MEthenet系统结构图3.3.1HIPO图HIPO如图3·1所示学生信息管理系统学生信息管理系统学生信息管理学生选课管理班级学生信息查询学生详细信息查询学生信息修改密码修改查看课表查看课程列表查看教师信息选课退课成绩查询图3·1HIPO图3.3.2E-R图E-R如图3·2所示:图3·2E-R图3.4逻辑模型的描述系统可实现学生信息管理和选课信息管理,其中学生信息管理可以实现对学生信息的查看,班级信息的查看,学生信息的修改,密码的修改和成绩的查询;选课信息管理可以实现选课,课表查询,课程查询,老师查询,退选等功能。第4章数据库设计4.1总体表设计根据需求,本系统要有学生信息表,教师信息表,授课信息表,选课信息表;其中,学生属于班级,选课表用到学生信息表,教师信息表,课程信息表,成绩表。4.2数据库表的结构学生信息表如表4·1所示:表4·1学生信息表表名Student_info主键字段Stu_id,class_id中文表名(功能描述)用户信息表字段字段名称字段类型长度主外键关联允许空备注StuId学号Varchar8主键否NAME用户名Varchar20否Sex性别Char1否Class_id班号Varchar8主键否Come_from来自Varchar20College_id学院Varchar20主键否Email邮箱Varchar20Adress地址Varchar20Specialty专业Varchar20Age年龄Int4PASSWORD密码varchar45否教师表如表4·2所示:表4·2教师表表名teach_info主键字段id中文表名(功能描述)教师表字段字段名称字段类型长度主外键关联允许空备注id教师号Varchar8主键否name姓名varchar20否College学院Varchar8否Sex性别Char1否Title职称Varchar20Description简介Text课程信息表如表4·3所示:表4·3课程信息表表名course_info主键字段course_id中文表名(功能描述)课程信息表字段字段名称字段类型长度主外键关联允许空备注course_id课程编号Varchar8主键否course_name课程名varchar45否teach_id授课老师varchar45否period学期Int1否begintime开始时间Int2否endtime结束时间Int2否classroom教室Varchar10否week课时Int1否remark简介varchar45选课表如表4·4所示:表4·4选课表表名selective_course_scheme主键字段id中文表名(功能描述)用户信息表字段字段名称字段类型长度主外键关联允许空备注id编号Int8否stu_id学生编号varchar8主键否course_id课程编号Varchar8主键否remark备注varchar100成绩表如表4·5所示:表4·5成绩表表名stu_score主键字段stu_id中文表名(功能描述)用户信息表字段字段名称字段类型长度主外键关联允许空备注score成绩FLOAT否stu_id学生编号varchar8主键否course_id课程编号Varchar8主键否remark备注varchar504.3数据库连接代码publicvoidgetConnection(){try{if(this.debug){Class.forName(this.driverName);this.conn=DriverManager.getConnection(dbUrlStr);this.stmt=this.conn.createStatement();//System.out.println("数据库连接建立!");}else{ng.Contextctx=newjavax.naming.InitialContext();javax.sql.DataSourceds=(javax.sql.DataSource)ctx.lookup("java:comp/env/jdbc/smsdb");this.conn=ds.getConnection();this.stmt=this.conn.createStatement();//System.out.println("数据库连接建立(连接池)!");}}catch(NamingExceptionex1){System.out.println("请检查数据库连接池配置是否正确!");ex1.printStackTrace();}catch(SQLExceptionex2){System.out.println("请检查数据库是否启动!");ex2.printStackTrace();}catch(ClassNotFoundExceptionex3){System.out.println("请检查数据库驱动程序是否正确!");ex3.printStackTrace();}}/***通过连接池建立连接*@paramdataSourceDataSource*/publicvoidgetConnection(DataSourcedataSource){try{conn=dataSource.getConnection();stmt=conn.createStatement();}catch(SQLExceptionex){System.out.println("请检查数据库是否启动!");ex.printStackTrace();}}第5章系统详细设计5.1系统流程图流程图如图5·1所示:开始开始用户登录用户验证退出系统进入系统主界面失败退出否重试成功选择功能模块新闻动态学生信息管理选课系统留言板系统图5·1系统流程图5.2登陆模块登陆界面如图5·2图5·2登陆界面可以选择学生或者老师进行登陆。5.2.2登陆流程图如图5·3所示:输入用户名,密码输入用户名,密码验证登陆失败登陆成功系统登陆界面图5·3登陆流程图5.2.3功能介绍用户选择登陆类别,输入用户名,密码,进行登陆验证。登陆类别有学生和老师,用户输入的用户名和密码被提交给数据库进行验证,验证通过即可进入登陆成功后的功能主界面,否则提示错误信息,返回登陆页面。登陆成功后的功能包括新闻动态,学生信息管理,学生选课管理(仅限学生)、留言板管理。5.2.4登陆成功界面登陆成功后的界面如图5·4:图5·4学生信息管理功能界面5.2.5用户登录的主要代码实现(1)Jsp客户端 StringcommitFlag=(String)request.getParameter("submintButton");//得到按钮事件 UserBeanuserbean=null;//定义一个userbean作为用户登陆信息的存放 StringId=request.getParameter("studentId");//获得用户ID Stringpwd=request.getParameter("pwd");//获得用户密码 if(commitFlag!=null){//如果单击了确定按钮 Stringusertype2=(String)request.getParameter("UserType");//获得用户类型 Integerusertype3=Integer.valueOf(usertype2);//转换用户类型为整型 intusertype=Value(); if(usertype==1){ StudentBeanstudentBean2=newStudentBean(); studentBean=studentBean2.queryStuInfo(Id,pwd);//查询是否存在该学生信息 if(studentBean!=null){//如果存在该学生信息 session.setAttribute("userbean",studentBean);//将代表该学生信息的Bean保存在session中 RequestDispatcherdispatcher=request .getRequestDispatcher("/index1.jsp"); dispatcher.forward(request,response); }else{//调用脚本语言提示%><scriptlanguage="javascript"type="">alert('请检查用户名,密码是否正确!');</script><% }(2)后台连接数据库DBAccessdba=newDBAccess();//创建一个数据库连接Stringsql="selectstu_id,name,password,class_id,college_id,"+ "enroll_timefromstudent_info"+ "wherestu_id='"+stuId+"'andpassword='"+password+"'";//查询指定用户名、密码是否正确dba.getConnection();//获取连接ResultSetrs=dba.query(sql);//执行查询语句if(rs!=null&&rs.next()){//给用户对象赋值stuBean=newStudentBean();stuBean.setStudentId(rs.getString("stu_id"));stuBean.setName(rs.getString("name"));stuBean.setPassword(rs.getString("password"));stuBean.setClassId(rs.getString("class_id"));stuBean.setCollegeId(rs.getString("college_id"));returnstuBean;//返回这个用户对象}else{returnnull;}5.3学生信息管理模块学生信息管理主界面学生信息管理包括班级学生信息查询,学生详细信息查询,学生信息修改,密码修改,成绩查询五个功能。学生信息管理主界面如图5.5所示:图5·5学生信息管理主界面5.3.2班级信息查询(1)功能介绍用户点击班级信息查询,显示班级信息查询界面,输入要查询的班级号,单击查询按钮,连接数据库进行查询,显示查询出的该班学生列表。数据库验证是否存在此班级,班级号必须为数字且不能为空。(2)查询示例图如图5·6所示:图5·6班级学生信息查询(3)班级信息查询代码DBAccessdba=newDBAccess();//创建一个数据库连接Stringsql="selecta.stu_id,,a.password,a.class_id,a.college_id,ae_from,a.sex,a.age,collegenamefromstudent_infoa,college_infobwherea.college_id=b.college_idanda.class_id="+classId;//对指定班级查询的sql语句ArrayListarrayList=newArrayList();//创建一个链表存放查询到的学生try{dba.getConnection();ResultSetrs=dba.query(sql);//执行查询while(rs.next()){//对每个学生的各项信息进行赋值StudentBeanstuBean=newStudentBean();stuBean.setClassId(rs.getString("class_id"));stuBean.setCollegeId("college_id");stuBean.setComeFrom(rs.getString("come_from"));stuBean.setName(rs.getString("name"));stuBean.setStudentId(rs.getString("stu_id"));stuBean.setSex(rs.getString("sex"));stuBean.setCollegeName(rs.getString("collegename"));stuBean.setAge(rs.getString("age"));arrayList.add(stuBean);}returnarrayList;//返回存放好班级信息的链表}catch(SQLExceptionex){ex.printStackTrace();returnnull;}finally{dba.closeConnection();//关闭数据库链接}5.3.3学生详细信息查询(1)功能介绍用户点击学生详细信息查询按钮,显示学生详细信息查询页面,输入要查询的学生学号,单击查询按钮,链接数据库进行查询,如果输入正确就显示查询出的学生的各项信息。学生信息包括学号,姓名,性别,籍贯,学院,年龄等。(2)学生详细信息查询示例图见下图5·7:图5·7学生详细信息查询5.3.4学生信息修改(1)功能介绍用户点击学生信息修改,输入要修改的学生号,点击提交,如果输入正确则显示出该学生的各项信息,此时输入密码和要修改的各项信息,输入完毕后点击修改按钮,提示修改成功或者密码不正确。此修改仅限本人修改,同时只能修改系统规定的可编辑项目,不可修改的项目设置为不可编辑模式。(2)学生信息修改示例图如下图5·8:图5·8学生信息修改图5.3.5密码修改(1)功能介绍用户点击密码修改,输入要学生号,原密码,新密码,确认新密码,点击提交,连接数据库进行原密码和用户名验证,验证正确则提示修改成功,并且把数据库中的密码更新。如果两次输入不正确则提示错误信息:两次输入密码不一致,如果用户名或原密码错误则提示用户名或密码错误。(2)学生修改密码示例图如下图:图5·9学生密码修改(3)密码修改部分代码publicintmodifyPassword(StringstudentId,StringoldPassword,StringnewPassword){DBAccessdba=newDBAccess();Stringsql="selectpasswordfromstudent_infowherestu_id="+studentId;//查询指定用户名的密码的sql语句Stringsql2="updatestudent_infosetpassword="+newPassword+"wherestu_id="+studentId;//修改指定用户密码的sql语句try{dba.getConnection();ResultSetrs=dba.query(sql);//将查询到的用户放在一个结果集中if(rs!=null&&rs.next()){if(!oldPassword.equals(rs.getString("password"))){return0;//如果用户提供的旧密码不正确,则返回0;}inti=dba.exceutesql(sql2);if(i>0){return1;}else{//更改密码失败return-1;}}else{//没有此用户则返回-2return-2;}}catch(Exceptionex){return-1;}finally{dba.closeConnection();//关闭链接}}5.3.6成绩查询 (1)功能介绍用户点击成绩查询按钮,选择要查询的学期、输入课程号、学号、密码,点击查询链接数据库进行查询,如果输入的信息正确则显示出查询到的成绩信息,包括课程名称,任课老师,所在学期,得分等。如果输入有误提示相应错误,如学号或密码错误,密码两次输入不一致。(2)成绩查询示例图如下图5·10:图5·10成绩查询(3)成绩查询部分关键代码如下所示:publicArrayListqueryCourseScore(StringcourseId,StringstudentId,Stringterm){//传递查询参数到函数中Stringsql="selecta.stu_id,a.course_id,a.score,a.remark,b.course_name,b.term,b.type,teachnamefromstu_scorea,course_infob,teach_infocwherea.course_id=b.course_idandb.teach_id=c.idanda.stu_id="+studentId;//查询指定学期课程成绩的sql语句if(term!=null&&term.length()>0){//判断学期是否为空sql+="andb.term='"+term+"'";}if(courseId!=null&&courseId.length()>0){//判断课程号是否为空sql+="anda.course_id="+courseId;}DBAccessdba=newDBAccess();ArrayListaList=newArrayList();try{dba.getConnection();ResultSetrs=null;rs=dba.query(sql);//将查询到的信息存放在结果集中while(rs!=null&&rs.next()){ScoreBeanscoreBean=newScoreBean();scoreBean.setCourseId(rs.getString("course_id"));scoreBean.setStudentId(rs.getString("stu_id"));scoreBean.setCourseName(rs.getString("course_name"));scoreBean.setScore(rs.getString("score"));scoreBean.setCourseType(rs.getString("type"));scoreBean.setTeachName(rs.getString("teachname"));scoreBean.setTerm(rs.getString("term"));aList.add(scoreBean);//在链表中添加每个课程信息}}catch(SQLExceptionex){returnnull;}finally{dba.closeConnection();}returnaList;}5.4选课信息管理模块5.4.1选课信息管理主界面选课信息管理包括查看课表,查看课程列表,查看教师信息,选课,退选,打印课表六个功能。选课信息管理界面如图5·11:图5·11选课信息管理界面5.4.2查看课表(1)功能介绍用户点击查看课表按钮,选择要查询的学期,单击查询按钮,显示查询到的课表信息。连接数据库查询,并且验证用户是否登陆。(2)查看课表示例图如下图5·12:图5·12查看课表5.4.3查看课程列表(1)功能介绍 单击查看课程列表按钮,选择学期,课程类型(可选),课程信息(可选),点击查询。此处可实现课程号、课程名精确查询和课程名模糊查询三种查询方式,连接数据库进行查询,显示查询到的课程信息,显示课程号、课程名、主讲老师、课程类型、上课时间、上课地点、所在学期。点击主讲老师可以查看该老师的详细信息。(2)查看课程列表示例图如下图5·13所示:图5·13查看课程列表5.4.4查看教师信息 (1)功能介绍 用户点击查看教师信息按钮,选择要查询的学院、教师ID(可选),连接数据库查询,显示查询到的教师信息,或者提示没有该教师信息。学院可以选择计算机学院、信息学院、材料学院、外语学院和所有学院,默认情况下是所有学院。查询到的教师信息有:ID、姓名、性别、职称、学院和描述。(2)查看教师信息示例图如下图5·14所示:图5·14查看教师信息5.4.5选课 (1)功能介绍用户点击选课按钮,选择要选课的学期、星期、上课时间(可选),单击查询按钮,连接数据库显示查询到的可选课程信息(或者提示不存在课程信息,重新查询),选中要选择的课程,点击选课,提示选课成功,或已经选择该课程。不可以重复选课。(2)选课示例图如下图5·15:图5·15选课退选 (1)功能介绍用户点击退选功能键,选择要退选课程所在的学期,单击查询按钮,显示查询到的已选课程信息,选择要退选的课程,点击退选,提示退选成功。与数据库链接,检测用户登陆,查询数据库中用户的选课信息,删除退选的选课信息。(2)退选示例图如下图5·16:图5·16退选5.5留言板模块5.5.1留言板主界面留言板模块包括浏览新闻留言板信息、留言板主题评分、主题评论、添加留言板信息四个功能。还具有依据主题信息进行查找的功能,支持主题模糊查询。主界面如图5·17:图5·17留言板主界面5.5.2浏览留言板信息 (1)功能介绍用户点击浏览留言板信息按钮,选择要浏览的类别,点击相应主题进行浏览。可选类别有校办专栏、后勤管理专栏、教务处专栏、计算机中心专栏、招生就业专栏和其他。可以通过主题界面的“主题查找”功能进行模糊查询主题。(2)浏览留言板信息示例图如图5·18: 图5·18浏览留言板信息5.5.3留言主题评分用户点击浏览留言板信息按钮,选择要浏览的类别点击相应主题进入浏览主题界面,在主题下选择要评分的分数,点击评分按钮。系统自动从数据库中提取所有评分人的评分求平均。可选分数有1-10分,10分为最好。评分示例见图5·19。5.5.4主题评论用户点击浏览留言板信息按钮,选择要浏览的类别点击相应主题进入浏览界面,在相应主题下的评论框中书写评论内容和作者姓名,点击添加按钮,提示添加成功,同时数据库将该条评论加入相应主题的评论中,显示在页面上。示例见图5·19:图5·19添加主题评论(1)功能介绍用户点击添加留言板信息按钮,进入添加留言板信息界面,在表格中添加各项信息(标题、作者、选择栏目类型、输入内容),点击添加按钮,提示添加成功或错误提示,错误提示如:请输入标题和作者等。(2)添加留言板信息示例图如下图5·20:图5·20添加留言板信息
5.6新闻模块5.6.1新闻主页新闻模块有新闻查看功能,新闻主页如图5·21:图5·21新闻主页将界面5.6.2查看新闻点击新闻动态进入新闻板块,点击相应分类进行浏览。数据库根据用户选中的新闻标题,提取改标题所在记录的内容,显示在页面上。关键代码如下:publicNewsBeanqueryDetail(StringnewsId){//接受传入的新闻IDStringsql="select*fromnews_infowhere1=1";sql+="andid='"+newsId+"'orderbyiddesc";//查询已知ID的新闻信息DBAccessdba=newDBAccess();try{dba.getConnection();ResultSetrs=null;rs=dba.query(sql);//将查询到的新闻信息放入结果集中NewsBeannewsBean=null;if(rs!=null&&rs.next()){//遍历结果集,给新闻对象赋值newsBean=newNewsBean();newsBean.setId(rs.getString("id"));newsBean.setTitle(rs.getString("title"));newsBean.setAddTime(rs.getString("add_time"));newsBean.setAuthor(rs.getString("author"));newsBean.setContent(rs.getString("content"));newsBean.setQuarry(rs.getString("quarry"));newsBean.setTypeId(rs.getString("type"));}returnnewsBean;//放回新闻对象}catch(SQLExceptionex){returnnull;}finally{dba.closeConnection();}
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年农业新型经营主体培育与农业绿色发展策略研究
- 2025年农业生物技术在种业创新中的基因驱动技术与应用前景报告
- 实现教育卓越政策的智慧与实践
- 企业办公区如何通过智能交通优化出行体验
- 中南大学《老年医学中医儿科学》2023-2024学年第二学期期末试卷
- 河北对外经贸职业学院《艺术思潮与流派》2023-2024学年第二学期期末试卷
- 张家口学院《比较思想政治教育学》2023-2024学年第二学期期末试卷
- 漯河医学高等专科学校《应急救护》2023-2024学年第二学期期末试卷
- 浙江长征职业技术学院《设计实验》2023-2024学年第二学期期末试卷
- 福建商学院《中国传统音乐概论》2023-2024学年第二学期期末试卷
- 海洋石油安全管理细则-25号令(新修改)
- 糖尿病外周血管病变和糖尿病足培训课件
- 2022年N2观光车和观光列车司机考试技巧及N2观光车和观光列车司机考试试题
- 使市场在资源配置中起决定性作用 课件【新教材备课精讲精研】高中政治统编版必修二经济与社会
- SB/T 10279-2017熏煮香肠
- GB/T 6185.2-20162型全金属六角锁紧螺母细牙
- GA/T 1394-2017信息安全技术运维安全管理产品安全技术要求
- IB教育中的PYP介绍专题培训课件
- 2022年桂林市卫生学校教师招聘笔试题库及答案解析
- 栏杆安装单元工程施工质量验收评定表完整
- 外墙清洗服务工程项目进度保障计划
评论
0/150
提交评论