为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

网上报名系统

2017-08-31 50页 doc 538KB 56阅读

用户头像

is_426115

暂无简介

举报
网上报名系统网上报名系统 西安工业大学北方信息工程学院 题目:基于web的网上报名系统 设计与实现 系 (部): 管理信息系 专 业:信息管理与信息系统 班 级: 50512 学 生: 孙勇生 学 号: 5051212 指导教师: 兰小毅 2009年 06月 基于Web的网上报名系统的分析设计与实现 摘要 现如今是信息化时代,网络的应用也贯穿到各行各业,它给人们的生活、工作带来了巨大的变化。对于学校招生报名的时间和地域等因素的烦恼,网络的使用是可以解决的。 BAUP网上报名系统主要是针对高校毕业生和岗前培训人员...
网上报名系统
网上报名系统 西安工业大学北方信息工程学院 题目:基于web的网上报名系统 设计与实现 系 (部): 管理信息系 专 业:信息管理与信息系统 班 级: 50512 学 生: 孙勇生 学 号: 5051212 指导教师: 兰小毅 2009年 06月 基于Web的网上报名系统的分析设计与实现 摘要 现如今是信息化时代,网络的应用也贯穿到各行各业,它给人们的生活、工作带来了巨大的变化。对于学校招生报名的时间和地域等因素的烦恼,网络的使用是可以解决的。 BAUP网上报名系统主要是针对高校毕业生和岗前人员作为使用对象而开发的,其系统开发任务主要包括数据库的设计与维护、应用程序的开发等两个方面。对于前者要求建立起的数据库具有完整性和一致性,且具有一定的数据安全性如用户需要密码才能使用等,而对于后者则要求程序界面友好、功能完备等特点。经过详细的分析,选用jsp作为前端开发工具,利用其提供的内置对象,尤其可以与数据库和其它程序进行交互,达到对报名管理的目的。首先建立系统应用原型,然后对原型系统进行需求迭代,不断修正和改进,直到形成满意的实际可行系统。 本系统主要讨基于web报名系统实现和设计工具,系统使用java jsp+mysql数据库进行开发,用Tomcat 5.5上进行发布。 关键词:软件工程,网上报名,B/S,jsp,Java I Design and Implement of WEB-based on-line registration system Abstract Today, the most challenging aspects of any skilled personnel’s career is finding job. This largely because that the traditional recruitment model can not meet people’s requirement. the troubles of enrolling for school time and geographical factors, which the networks can be solved. The BAUP on-line registration system is mainly aims at the graduates and pre-job training of persons to develop as the user, its system development mission mainly includes the database the design and the maintenance, the application procedure development and so on two aspects. The database which establishes regarding the former request has the integrity and the uniformity, and has certain data security like user need password to be able to use and so on, but regarding the latter, then the request procedure contact surface is friendly, function complete and so on characteristics. Front end after the detailed analysis, selects jSP to take the development kit, uses built-in object which it provides, especially may carries on with the database and other procedures alternately, achieves to the on-line registration management goal. First establishes the system application prototype, then carries on the demand iteration to the prototype system, revises unceasingly and improves, until forms the satisfied feasible system. This paper mainly discussed the process of design and implement of a WEB-based Recruitment system with the java jsp and mysql technology ,and with Tomcat 5.5 on release. Key words:software engineering, on-line registration system,B/S, jsp,java II 目 录 主要符号表 1 研究背景及意义 ................................................................................................... 1 1.1研究背景 ......................................................................................................... 1 1.2研究意义 ......................................................................................................... 1 2 系统开发的技术 ........................................................................................... 2 JAVA及其特点 ................................................................................................. 2 2.1 2.2 JSP概述 ............................................................................................................ 2 2.2.1 jsp简介 ..................................................................................................... 2 2.2.2 MVC 模式 ................................................................................................ 3 2.2.3 JSP的技术方法简介 ................................................................................. 3 2.2.4 JSP的应用模型 ........................................................................................ 5 2.2.5 jsp与ASP的比较 .................................................................................. 5 2.3 MYSQL数据库 .................................................................................................. 6 2.3.1 mysql数据库简介 ..................................................................................... 6 2.3.2 mysql数据库的技术优势 ......................................................................... 7 2.4 开发工具简介 ................................................................................................. 8 3 网上报名系统分析 ..............................................................................................10 3.1需求分析 ........................................................................................................10 3.1.1可行性分析 ..............................................................................................10 3.1.2 功能性需求分析 ..................................................................................... 11 3.1.3 非功能性需求分析 ..................................................................................13 3.1.4 实用性和先进性 .....................................................................................13 3.1.5 开放性和扩展性 .....................................................................................14 3.1.6 大数据量处理 .........................................................................................14 3.1.7 数据共享性 .............................................................................................14 3.1.8 操作简便 .................................................................................................14 3.1.9 可靠性和稳定性 .....................................................................................14 3.2业务流程分析.................................................................................................15 3.3数据流程分析.................................................................................................15 4网上报名系统设计 ...............................................................................................18 4.1系统体系结构设计 .........................................................................................18 4.2系统功能设计.................................................................................................18 III 4.3数据库设计 ....................................................................................................20 4.3.1概念模型设计 ..........................................................................................20 4.3.2逻辑模型设计 ..........................................................................................21 4.3.3物理模型设计 ..........................................................................................21 5 网上报名系统实现 ..............................................................................................23 5.1前台首页 ........................................................................................................23 5.2学生用户注册.................................................................................................23 5.3信息中心 ........................................................................................................24 5.4学生报名主页.................................................................................................25 5.5查选课程 ........................................................................................................26 5.6查看个人报名.................................................................................................26 5.7管理员操作界面 .............................................................................................27 5.8管理员信息管理 .............................................................................................28 5.9课程信息管理及报名管理 .............................................................................29 6 网上报名系统测试 ..............................................................................................31 6.1测试范围 ........................................................................................................31 6.1.1功能测试 ..................................................................................................31 6.1.2结构信息测试 ..........................................................................................31 6.2测试结果 ........................................................................................................31 6.2.1功能测试结果 ..........................................................................................31 6.2.2结构信息测试结果 ...................................................................................37 7 结论 .....................................................................................................................38 参考文献 .................................................................................................................39 致 谢 .....................................................................................................................40 毕业设计(论文)知识产权声明 ...........................................................................41 毕业设计(论文)独创性声明 ...............................................................................42 附录 部分程序代码 ................................................................................................43 IV 主要符号表 外部实体 处理 数据流 数据存储 业务处理单位 文档 V 1.研究背景及意义 1 研究背景及意义 1.1研究背景 人类的脚步早已迈入21世纪,随着网络这几年的飞速发展,人们也越来越多的感受到网络对生活的影响。当我们静下来仔细的一想的时候,会猛然发现自己其实已经生活在了一个实实在在的与网络密切相关的网络生活中。我们已经算的上是一种新的生活形态人类,或者说是E人类了,而我们正处于的时代也可以 E时代。也许我们能够拒绝网络,但我们不能改变网络对生活的影响。称之为-- 人们可以足不出户便知天下事,学习、工作、娱乐显得更轻松自在。基于Web的应用系统将非常繁重与复杂的记录工作变得十分便捷。 2008年7月24日,中国互联网络信息中心(CNNIC)在京发布《第22次中国互联网络发展状况统计》(以下简称《报告》)。报告显示,截至2008年6月底,我国网民数量达到了2.53亿,首次大幅度超过美国,跃居世界第一位。CNNIC的报告显示,人们的网上行为也开始与实际生活靠近,网络购物、网上银行等实用性应用走俏。CNNIC发布的这一系列数据表明,互联网大国的规模已经显现,网民对于互联网深层次应用的需求和接受程度大幅度提高。中国互联网正在逐渐走向成熟,未来在国际网络社会中的影响力也将更强。 基于Web的应用系统将非常繁重与复杂的记录工作变得十分便捷的可以预见,网上报名以其方便、快捷、低成本的电子通讯方式,不受时间和空间限制等优势,将得到更进一步的发展。 1.2研究意义 通过构建基于web的网上报名系统,可以实现学生环节全程的计算机管理,减轻学校的登记报名修改报名等工作的负担,提高学校工作效率。利用网络的优越性,建立学校和潜在报名学生的有效沟通,给双方都带来了便捷。与传统的报 信息搜集与报名操作等业务操作轻松自如。名流程相似,但其优势显而易见的,使 归根结底,通过架设基于web的网上报名系统,可以使低效与繁重的人工登记工作变得快捷高效,使报名工作有序的一次性完成。 1 2.系统开发的技术方案 2 系统开发的技术方案 2.1 Java及其特点 Java的诞生需追溯到1991年。当时,在Sun公司内,有一个称为Green的项目,这个项目的工程师受命设计一种小型的计算机语言,用于机顶盒、家电控制芯片等消费类设备。但是1993年交互式电视及PDA市场开始滑坡,而Internet开始盛行,Sun公司将市场目标投向Internet。1994年,原来的项目组编写了一个HotJava浏览器,当时正是这个浏览器吸引了全世界的眼球,1995年秋,Netscape决定让其浏览器支持Java,并在1996年年初发布了支持Java的版本。这意味着Java语言开始流行起来。 现今Java联盟成员公司超过了400个,其中包括 Oracle、SAP、Sony、Motorola、Nokia、HP和Philips等。Java联盟的Java开发者超过300万。J2EE下载量超过100万,许可证接收方达35个。J2ME手机超过1500万部,应用达5000多个。 Java语言是一种优秀的编程语言。它最大的优点就是与平台无关,在Windows 2000、Windows XP、Solaris、Linux、Mac OS及其他平台上,都可以使用相同的代码。“一次编写,到处运行”的特点,使得系统的移植、平台的迁移变得十分容易。 2.2 jsp概述 2.2.1 jsp简介 JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似asp技术,它是在传统的网页html文件(*.htm,*.html)中插入java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。 用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。 JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件 2 西安工业大学北方信息工程学院毕业设计(论文) 的设计,使基于Web的应用程序的开发变得迅速和容易。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。 JSP与Java Servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。 JSP的1.0规范的最后版本是1999年9月推出的,12月又推出了1.1规范。目前较新的是JSP1.2规范,JSP2.0规范的征求意见稿也已出台。 JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet 是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。 、Oracle、Bea 自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM公司等,所以JSP迅速成为商业应用的服务器端语言 2.2.2 MVC 模式 为了把表现层presentation从请求处理request processing 和数据存储data storage中分离开来,SUN公司推荐在JSP文件中使用一种模-视图-控件Model-view-controller 模式。规范的SERVLET或者分离的JSP文件用于处理请求。当请求处理完后,控制权交给一个只作为创建输出作用的JSP页。有几种平台都基于服务于网络层的模-视图-控件 模式(比如Struts 和Spring framework)。 2.2.3 JSP的技术方法简介 为了快速方便地进行动态网站的开发,JSP在以下几个方面做了改进,使其成为快速建立跨平台的动态网站的首选方案。 (1)将内容的生成和显示进行分离 用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面,并使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求变化的,例如请求账户信息或者特定的一瓶酒的价格等)。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在脚本中,所有的脚本在服务器端运行。由于核心逻辑被封装在标识和JavaBeans中,所以Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。 在服务器端,JSP引擎解释JSP标识和脚本,生成所请求的内容(例如,通 3 西安工业大学北方信息工程学院毕业设计(论文) 过访问JavaBeans组件,使用JDBC技术访问数据库或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这既有助于作者保护自己的代码,又能保证任何基于HTML的Web浏览器的完全可用性。 (2)可重用组件 绝大多数JSP页面依赖于可重用的、跨平台的组件(JavaBeans或者Enterprise JavaBeans组件)来执行应用程序所要求的复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者和客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。 (3)采用标识 Web页面开发人员不会都是熟悉脚本语言的编程人员。JSP技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。 (4)适应平台 几乎所有平台都支持Java,JSP,JavaBeans几乎可以在所有平台下通行无阻。从一个平台移植到另外一个平台,JSP和JavaBeans甚至不用重新编译,因为Java字节码都是标准的与平台无关的。 (5)数据库连接 Java中连接数据库的技术是JDBC,Java程序通过JDBC驱动程序与数据库 ,ODBC bridge,利相连,执行查询、提取数据等操作。Sun公司还开发了JDBC用此技术Java程序可以访问带有ODBC驱动程序的数据库,目前大多数数据库系统都带有ODBC驱动程序,所以Java程序能访问诸如Oracle、Sybase、MS SQL Server和MS Access等数据库。 此外,通过开发标识库,JSP技术可以进一步扩展。第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来进行工作。 JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且能扩展到支持企业级的分布式应用中。作为采用Java技术家族的一于Web的应用。 由于JSP页面的内置脚本语言是基于Java的,而且所有的JSP页面都被编译成为Java Servlets,所以JSP页面具有Java技术的所有好处,包括健壮的存储管理和安全性。作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。 4 西安工业大学北方信息工程学院毕业设计(论文) 2.2.4 JSP的应用模型 利用JSP技术,动态信息由JSP页面来表现,JSP页面由安装在Web服务器或者使用JSP的应用服务器上的JSP引擎执行。JSP引擎接受客户端对JSP页面的请求,并且生成JSP页面作为对客户端的响应。 JSP页面通常被编译成为Java Servlets,这是一个标准的Java扩展。页面开发人员能够访问全部的Java应用环境,以利用Java技术的扩展性和可移植性。当JSP页面第一次被调用时,如果它还不存在,就会被编译成为一个Java Servlets类,并且存储在服务器的内存中。这就使得在接下来的对该页面的调用中,服务器会有非常快的响应(这避免了CGI,BIN为每个HTTP请求生成一个新的进程的问题)。 JSP页面可以包含在多种不同的应用体系结构或者模型中,可以用于由不同、组件和格式所组成的联合体中。基于JSP的动态信息发布技术是一个开放的、可扩展的建立动态Web页面的标准。不论采用什么创建工具,开发人员都可以使用JSP页面来创建可移植的Web应用,在不同的Web应用服务器上运行。 2.2.5 jsp与ASP的比较 JSP(Java Server Page)与ASP(Active Server Page)两者都是常用的动态网页技术,也都是可以嵌入HTML中的程序,但两者是有着本质的不同,主要从以下几个方面对其进行比较: (1)Web服务器的支持:大多数通用的 Web服务器如:Apache、Netscape和Microsoft IIS都支持JSP页面,只有微软本身的Microsoft IIS和Personal Web Server可以支持ASP。 (2)平台的支持:JSP具有平台独立性,只要是一般的Java程序可以运行的平台,都支持JSP程序。Windows平台可以很好的支持ASP,但ASP对于基于Win32逐渐模型的依赖,使得它难于一直到其它平台上。 (3)组件模型:JSP是建立在可重用的、跨平台的组件(如:JavaBeans、Enterprises JavaBeans 和用户定制的标签库等组件)之上的,而ASP使用的是基于Win32的COM组件模型。 (4)脚本语言:JSP可以使用Java编程语言或JavaScript作为脚本语言,而ASP使用VBScript或Jscript作为脚本语言。 (5)安全性:JSP使用Java安全模型,而ASP使用Windows NT的安全结构。 5 西安工业大学北方信息工程学院毕业设计(论文) (6)与Access数据库的连接:JSP使用JDBC建立与Access数据库的连接,而ASP对Access数据库使用Data Active Objects。 (7)用户定制的标签:JSP可以使用用户定制标签库进行扩充,而ASP中没有用户定制标签库,ASP是不能扩充的。 2.3 mysql数据库 2.3.1 mysql数据库简介 数据库应用系统主要包括数据库(DataBase,简称DB)、数据库管理系统(DataBase Management System,简称DBMS)、数据库应用3大部分。这3部分之间的关系如图2.1所示。 图2.1 实际的数据库可能相当复杂,对数据库的操作就更加复杂。为了更有效地管理和操作数据库,人们研制出数据库管理系统(DataBase Management System,简称DBMS)。DBMS是人们用于操作数据库的软件产品。我们平常说的数据库Oracle、MS SQL Server、MySQL、Sybase、FoxPro、Access等等,都是属于DBMS范畴。虽然这些DBMS产品的功能各有所异,但是基本功能到大同小异差不多。 MySQL 是一个真正的多用户、多线程SQL数据库服务器,它是一个客户机/服务器结构的实现。MySQL是现在流行的关系数据库中其中的一种,相比其它的数据库管理系统(DBMS)来说,MySQL具有小巧、功能齐全、查询迅捷等优点。MySQL 主要目标是快速、健壮和易用。关键的是它是免费的,可以在Internet上免费下载到,并可免费使用。MySQL 对于一般中小型,甚至大型应用都能够胜任。 6 西安工业大学北方信息工程学院毕业设计(论文) 2.3.2 mysql数据库的技术优势 总体来说,MySQL数据库具有以下主要特点: (1)同时访问数据库的用户数量不受限制; (2)可以保存超过50,000,000条记录; (3)是目前市场上现有产品中运行速度最快的数据库系统; (4)用户权限设置简单、有效。 其关键优势如下: 可靠性和性能:MySQL AB向公众提供所有数据库服务器软件的早期版本,利用开发源码进行为期几个月的测试,之后才发布作为生产之用。 易于使用和部署:MySQL的结构体系易于定制,而且速度极快。其独特的多存储引擎结构为企业客户提供了广泛的灵活性,赋予数据库管理系统以卓越的紧致性和稳定性,并且易于部署,同时具有无与匹敌的速度。 平台自由:源代码随时可访问,MySQL策略确保了自由性,以防锁定于某个公司或平台内。 跨平台支持:MySQL可用于20多种不同的平台,包括主要的Linux系统、Mac OS X、Unix和Microsoft Windows。 开发队伍庞大:MySQL是世界上最为流行的开放源码数据库,因此很容易获得高素质和有经验的开发团队。 强大、简单MySQL——MySQL结构体系简单易用,而且运行速度极快,能够处理企业数据库绝大多数的应用需求。 MySQL AB有两种许可证。无论选择哪一种,您都将会享受到MySQL数据库所带来的巨大优势,它能够显著降低您的总成本。 从许可证而言,本公司提供两种不同的产品,在使用和发行上都有所区别,尽管技术上他们具有完全相同的源代码。 许可证选项包括: 商业许可证——允许您向客户提供商业软件许可证,或仅在企业范围内发布基于MySQL的应用程序。如果企业不希望发布应用程序的源代码,即不希望将其作为开放源码/免费软件,或者不愿遵守GNU GPL,需要选择该种许可证方案。 开发源码许可证——对于那些进行开放源码应用程序的开发人员而言,可以将其软件在一个开放源码/免费许可证方案下进行发布,其他人员可以对其进行 7 西安工业大学北方信息工程学院毕业设计(论文) 使用、修改或免费发布。只要您是在重新发布的应用程序中使用MySQL,该种许可证就允许您免费使用软件,在合理条件下,您应用程序的完全源代码必须是可用的,并且允许自由重新发布。 2.4 开发工具简介 本系统开发过程中Eclipse和Tomcat是b/s实现的核心工具。 Eclipse是由包括IBM在内的多家公司和组织成立的Eclipse基金会开发的开放源代码工具。它的发展主要得益于IBM公司的贡献。从1994年的VisualAge for SmallTalk,到1996年VisualAge for Java 再到VisualAge Micro Edition,最后结合IBM和其他公司和组织的IDE开发经验,在2001年开发了Eclipse项目。经过长时间的发展,Eclipse项目在IDE领域已经取得巨大的成功,这些成功从最初的IDE领域慢慢开始向桌面应用、服务器端,甚至WEB领域开始进军。而这些巨大的成功主要得益于Eclipse的开放性。 Eclipse本身只是一个框架和一组服务,它用于通过插件机制来灵活的构建开发环境。Eclipse SDK 中附带了一个标准的插件集,包括Java开发工具。Eclipse主要由4个部分组成,分别是:Eclipse Project、Eclipse Tools Project、Eclipse Technology Project和Eclipse Web Tools Platform Project. Eclipse 平台本身是一个开发的平台,你可以为自己定制最适于自己的开发平台。Eclipse能够做到这一点,主要得益于它的插件机制,的优秀插件机制构成了它的优秀开放性,使得越来越多的开发者愿意贡献自己的插件,也使越来越多的开发者愿意使用Eclipse进行开发。 Eclipse不仅仅能作为Java IDE来使用,它还包括插件开发环境(PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,他们可以构建于Eclipse环境无缝集成的工具。由于Eclipse的每件东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有的工具开发人员都具有同等的发挥场所。 这种平等和一致性不仅限于Java开发工具。尽管Eclipse是使用Java语言开发的,但它的用途并不仅限于Java语言。 尤其值得关注的是,目前基于Eclipse的J2EE开发工具层出不穷,既有开放源代码的(开源),也有商业的。 8 西安工业大学北方信息工程学院毕业设计(论文) Apache Tomcat 服务器是在SUN公司的JSWDK(JavaServer Web DevelopmentKit,是SUN公司推出的小型Servlet/JSP调试工具)的基础上发展起来的一个优秀Servlet/JSP容器,它不但支持运行Servlet和JSP,而且还具备了作为商业Java Web应用容器的特征。 作为一个开源软件,Tomcat得到了开源志愿者的广泛支持,它可以和目前大部分的主流HTTP服务器一起工作,而且运行稳定、可靠、效率高。 Tomcat服务器除了能够运行Servlet和JSP,还提供了做为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。Tomcat已成为目前开发企业Java Web 应用的最佳选择之一。 9 3.网上报名系统分析 3 网上报名系统分析 系统分析阶段的目标,就是明确系统开发的目标和用户的需求,提出系统的逻辑方案。在整个系统开发工程中,系统分析要回答“做什么”的问题,是开发过程中的一个重要阶段。 网上报名系统按照学生报名的业务流程的不同及业务流程把系统分成前台和后台两个大的部分,再划分成不同的模块。每个模块处理一个业务,如对于登录,由前台的用户登录模块处理,对于报名的结果,由后台的管理员的报名管理模块处理,每个模块又都包括一些基本的功能如对信息的添加、修改、删除、信息的查询。 开发过程中遵循软件工程学的策略开发一个管理系统的过程,运用原型法,先构建一个初步的原型系统,然后再在这个原型系统上不断修正改进,逐步完善,直最后形一个用户满意的系统。由于采用B/S设计模式,系统的客户端和服务端耦合性低,客户端只要通过IP地址就可连接到服务器,发送请求,进行数据读取和存储,客户端的改动不影响服务器,服务器的变动不需要客户端做任何修改。 选课系统是一个涉及多因素的复杂的问题,它不仅要求对用户、管理员的基本信息的、用户的报名信息等的管理,还要求能够实现对诸多因素的综合应用。根据调查研究,开发这个系统的架构采用浏览器/服务器(B/S)模式。系统采用集成开发环境Java来开发。服务器端数据库采用Mysql来实现。客户端通过服务器名或IP地址实现与服务器的连接。系统的开发环境选择微软平台,微软平台上的应用无论是在开发上,还是在软件的部署上都非常容易,而且性能优越,一般用户也习惯选择微软操作系统,这样方便用户进行相关操作。 3.1需求分析 3.1.1可行性分析 需求分析是软件设计的第一步,是整个软件成功实现的基础,只有真正做好需求分析,才能真正了解客户需要,以指导好下一步的工作,整个软件的实施是建立在需求所分析出的各项功能上的。对于一个实际的项目,需求可分为功能性需求和非功能性需求两部分。接下来针对网上报名系统的总体需求做一个分析。本系统是报名者使用的报名系统,系统归高校管理员统一管理,本系统主要负责组织考生报名,以及学生报名查询,管理者管理报名,课程信息的添加,以及课 10 西安工业大学北方信息工程学院毕业设计(论文) 程报名的修改。虽然本系统开发之初是为了用于学生选课报名,但考虑到各种学校是报名业务的不同,为了使系统有更为广泛的用途,所以在建模时要更注重系统的可复用性。 (1)技术可行性 高校选课制的实际流程出发,根据现在市场上存在的网络选课系统的开发从 情况,选择合适的开发工具,完全能够实现选课系统的功能与其必须具有的特征。 本系统采用了B/S模式,选择现在流行的Java开发平台,使用主流的Tomcat网络服务器,其中网页设计使用Dreamweaver MX,选择了Msql数据库进行数据管理,采用开源的Eclipse进行设计,实现了网上选课系统的基本功能,同时具备选课系统必有的特征。 开发环境: 操作系统: Microsoft Windows XP sp2 开发工具: Java 2 Software Development Kit v 1.5.0 Dreamweaver MX 2004 Eclipse 5.0GA, MyEclipse插件 Apache-tomcat-5.5.26 (2)经济可行性 实用性强的系统要求开发成本低,对计算机配置的要求不高,使系统工作在一个合适的环境中,同时也能够让用户体验到人性化操作。本选课系统系统正是基于这点开出来的。 本系统采对实行学分制的高校均有使有价值,通过本系统可大大减轻教务工作人员的时间与工作量,也给学生、教师提供了方便快捷的教学资源活动。开发此系统对计算机硬件和软件配置都不需要特别的需要,且开发周期短。另外系统采用的B/S模式能够实现客户端的低负担,同时能够让客户体验到人性化的操作。所以本选课系统具有经济上的可行性。 3.1.2 功能性需求分析 对于登录报名网站的学生,通过网上报名系统的用户界面: (1)学生可以浏览该校的课程相关信息; (2)学生可以通过浏览器进行注册信息及网上报名(填报信息、选择报名等); (3)学生可以在指定时间范围内修改报名信息或取消报名; (4)学生可以找回或重设登录密码。 (5)学生用户可以通过用户ID和电子邮箱找回登陆密码。 对于登录报名网站的系统管理员,通过网上报名系统的管理员界面 (1)可以对网站进行维护(信息的更新,界面的维护等); 11 西安工业大学北方信息工程学院毕业设计(论文) (2)管理员有权限控制,分为超级管理员和普通管理员。 (3)只有超级管理员可以添加修改管理员信息,并可以复权限。 (4)管理员可以对考生报名表进行编辑和维护,清除垃圾数据,得到准确数据。 (5)管理员可以通过自己的登陆该系统浏览报名者的基本信息,并可以取消非 法的报名。 (6)管理员可以添加修改课程信息。 下图是整个流程的UML-用例图: 图 3.1 整个流程的UML-用例图 12 西安工业大学北方信息工程学院毕业设计(论文) 3.1.3 非功能性需求分析 非功能性需求是指对系统的可靠性、可用性、性能、可支持性等方面的要求进行另外补充说明。另外有些功能涉及整个系统的,或对多个用例都有要求的功能性需求也可以放在补充说明中。 功能性,下面这些功能性方面的要求是多个用例中都要求的: 所有的系统错误都要记录在日志中,如果遇到致命错误,系统将自行停机。 系统的错误信息包括错误的文本描述、操作系统错误代码(如果有的话)、哪个模块检测到这个错误等。所有的系统错误要保存到错误日志数据库中。 可用性要求:系统的用户界面要易于使用。 可靠性要求: (1)系统应该每周7天、每天24小时可用,关机时间不超过4%。 (2)系统的平均无故障时间MTBF(Mean time between failures)要大于300小时。 性能要求: (1)中央数据库(central database)在任何时候都能支持最多2000个并发用户的使用。 (2)网络服务器和重要的网络设备要有断电保护。 (3)网络带宽满足通讯要求。 (4)系统要有必要的异常处理 (5)系统提供存取报名库的功能,且存取时间延迟不超过10秒。 (6)系统中80%的事务处理应该在2分钟内完成。 安全性要求: (1)系统必须防止普通用户登录到管理界面修改或毁坏报名信息或成绩信息。 (2)系统必须防止学生报名信息泄露。 3.1.4 实用性和先进性 系统整体技术应适应计算机和网络技术逐步发展的需要,选择通用的、先进的成熟的技术体系作为实现手段,以保证整个系统可靠地运行。 13 西安工业大学北方信息工程学院毕业设计(论文) 3.1.5 开放性和扩展性 为适应职称外语网上报名业务不断发展的需要,整个系统应最大限度地采用符合国际主流标准的计算机网络技术与相关设备,同时要最大限度利用已有的投资和成果,通过合理的近期与远期规划,在充分利用原有软硬件的基础上,通过增加相应软、硬件模块或相应设备等简便方法扩充系统规模,提高系统综合性能。 3.1.6 大数据量处理 要求数据库系统具有对外存储器上的数据的管理能力,包括提供可选的、有效的文件存储结构以及存储数据的有效存储路径,以保证系统有较好的数据处理性能。 3.1.7 数据共享性 这里所说的共享有两层含义。一是多个用户共享同一份数据,不同用户享受不同的机密性。因此,这就要求系统在提供信息共享的同时,还要实施一定的安全性控制。二是多用户同时存取同一个数据,这就要求系统对共享资源的竞争必须加以严格控制,否则将造成极其严重的后果。因此数据库系统应能提供多用户并发存取数据的控制,保证操作结果的合理性。 3.1.8 操作简便 用户界面友好,操作简单方便;应提供方便的检索入口和多种检索方式,保证数据的检全率和检准率;还要便于数据库的维护。 3.1.9 可靠性和稳定性 要求系统具有抗干扰、抗故障能力。能对违背合理性的数据操作请求予以拒绝,能有效防止病毒和黑客的侵袭;具有较强的数据容错能力,不会因某一条记录的错误而导致数据库破坏,不会因用户的误操作而轻易死机;对新建、删除库记录等重要的操作应有必要的确认措施,防止因误操作造成破坏性的影响,保证数据的安全;出现系统的软、硬件故障时能尽快恢复等。为此,应采用性能先进、稳定性好的计算机和网络骨干设备、服务器组及存储设备,从而保障系统长时间持续无故障运行。为保障本系统和数据的安全,采用数据库双机容错机制、数据库定期备份、数据安全日志、软件多级保护等安全措施,以减少系统管理人员的工作量和复杂程度,保障系统安全、可靠、稳定地运行。 14 西安工业大学北方信息工程学院毕业设计(论文) 3.2业务流程分析 通过分析材料了解到,网上报名的业务流程可以用图3.2表示: 图3.2业务流程图 3.3数据流程分析 目前常用的分析方法有面向数据流的结构化分析方法,面向数据结构的Jackson方法,面向对象的分析方法(简称OOA)等。虽然各种方法都有其独特的描述方法,但总的说来,所有的分析方法都有他们的共同原则。 第一,必须能够表达和理解问题的数据域和功能域。 第二,必须按自上向下、逐层分解的的方式对问题进行分解和细化。在需求分析阶段,软件的数据域和功能域都能进一步的分解,可以是横向分解也可以是纵向分解。 第三,要给出系统得逻辑视图和物理视图。软件需求的逻辑视图给出软件要达到的功能和要处理的数据之间的关系,而不是实现细节;而物理视图给出处理 功能和数据结构的实际表示形式 通过几种方法的比较,结合系统的实际情况,本方案决定采用结构化分析方法因为结构化分析方法。 15 西安工业大学北方信息工程学院毕业设计(论文) 系统的数据流分析如下: 系统第0层DFD图如图3.3所示: 图3.3第0层DFD图 管理DFD图如图3.4所示: 报名学生用户报名 图3.4学生用户报名管理DFD图 16 西安工业大学北方信息工程学院毕业设计(论文) 发布报名信息管理DFD图如图3.5: 学校 图3.5学校发布信息管理DFD图 17 4.网上报名系统设计 4网上报名系统设计 系统设计阶段的主要目的是,将系统分析阶段提出的系统逻辑方案转换成可 [9] 以实施的、基于计算机与网络技术的物理(技术)方案。 4.1系统体系结构设计 本系统以浏览器/服务器体系结构作为基本架构,通过jsp 和java sevlets方式实现交互式的动态网站信息系统。即将数据库中的学校课程信息发布到WEB页上,为用户提供信息录入、删除、更新、查询等服务。 整个设计都遵循这个设计架构设计而成。客户端采用浏览器,中间服务器为Web服务器,后台为数据库服务器,当客户端浏览器请求服务器端动态网页JSP主页时,Web服务器响应,同时调用JSP引擎来执行JSP文件,并解释其中的脚本语言(JAVA Script),通过ODBC连接数据库,由数据库访问组件ADO动态数据对象(ActiveX Data Objects),完成数据库操作,最后JSP生成包含有数据查询结果的HTML主页返回客户端显示。在底层,Mysql数据库保存了整个系统的所有信息。 在系统的开发过程中,首先我们要确定选课系统的功能,选课系统要实现的任务。 系统的构架如图4.1所示: 图4.1系统构架图 4.2系统功能设计 通过对数据流的分析,理清了数据的流向,从而设计初网上报名系统的各个模块。 (1)用户注册及登录模块 为确保系统的安全性和信息易搜集性,系统采用进入系统者必先注册。 (2)用户信息维护模块 18 西安工业大学北方信息工程学院毕业设计(论文) 包括输入学生信息完善,修改密码,找回登陆密码。 (3)课程查询模块 使每个用户登陆系统后,可以查询所有的可以报名的课程。 (4)选课报名模块 对于任何学生用户对没有报名过的课程都可以报名选课。 (5)学生用户报名管理模块 学生用户可以查询到自己报过的所有的课程及其信息,并可以取消报名。 (6)学校管理员信息维护模块: 超级管理员登陆系统,有添加管理员、修改管理员信息的权限。 (6)课程信息管理: 任何管理员都有添加、修改及删除课程信息的权限。 (7)超级管理员有查询其他管理员的信息并可以将其删除的权限。 招聘企业可以根据需要,按一定的查询条件搜索所需的人才。 (8)管理员可以自行设置登陆密码。 (9)管理员报名信息管理 管理员可以通过查询课程,来查看该课的报名情况;以及对报名学生的信息 进行过滤,去掉非法的报名学生。 功能结构图如图4.2所示: 图4.2功能结构图 19 西安工业大学北方信息工程学院毕业设计(论文) 4.3数据库设计 数据库的设计分为四个部分,首先对学生选课系统的设计进行需求分析,确定需要在数据库中保存的信息,然后应用E-R图进行组织连接,最后确定每个表的字段属性和主键等数据库信息。 4.3.1概念模型设计 概念模型设计用于信息世界的建模,是现实世界到信息世界的第一层抽象,是对显示世界的抽象和概括。概念模型的表示方法很多,其中最为常用的是P.P.Chen于1976年提出的实体,联系方法(Entity-Relationship Approach)。该方法用E-R图来描述现实世界的概念模型。 经需求分析本系统的E-R图如图4.3所示: 图4.3系统E-R图 20 西安工业大学北方信息工程学院毕业设计(论文) 4.3.2逻辑模型设计 概念模型是独立于任何一种数据模型的信息结构。逻辑模型设计的任务是把概念模型设计阶段设计好的基本E-R图转化为选用DBMS产品所支持的数据模型相符合的逻辑结构。 4.3.3物理模型设计 数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于给定的计算机系统。为一个给定的逻辑数据模型构选取一个最适合应用要求的物物理结构的过程,就是数据库的物理模型设计。 数据库表结构表4.1至表4.4所示: 表4.1申请人表applicatInfo 字段名称 中文含义 数据类型 大小 是否能为空 User_id 用户id Varchar 16 否 (主键) Id_card 身份证号 Varchar 19 否 Real_name 真是姓名 Varchar 15 否 Password 登录密码 Varchar 20 否 Sex 性别 Varchar 4 否 Age 年龄 Int 2 否 Nation 民族 Varchar 4 否 Telephone 联系电话 Varchar 13 是 From_place 户口所在 Varchar 10 是 Email 电子邮箱 Varchar 30 否 Relationadd 联系地址 Varchar 50 是 Introduction 自我说明 Varchar 50 是 表4.2课程表courses 字段名称 中文含义 数据类型 大小 是否能为空 course_id 课程id Int 自动增长列 否 (主键) Course_name 课程名字 Varchar 30 否 introductio课程介绍 Varchar 112 是 n 21 西安工业大学北方信息工程学院毕业设计(论文) 表4.3申请人课程对照表applicant_courses 字段名称 中文含义 数据类型 大小 是否能为空 course_id 课程id Int 自动增长列 否 (主键) id_card 身份证号 Varchar 19 否 (主键) Course_id是courses(course_id)的外键 id_card是applicatInfo(id_card)的外键 表4.4管理员表manager 字段名称 中文含义 数据类型 大小 是否能为空 Manager_id(主管理者id Varchar 8 否 键) Manager_name 管理者姓名 Varchar 30 否 Password 登录密码 Varchar 20 否 Is_all 是否为主管 Varchar 20 否 22 5.网上报名系统的实现 5 网上报名系统实现 5.1前台首页 前台首页是用户登陆信息查询等为一体的。如图5.1所示: 图5.1前台首页 5.2学生用户注册 为了报名成功和搜集学生的信息,登陆系统前要有注册个人信息和登陆信息。如图5.2所示: 23 西安工业大学北方信息工程学院毕业设计(论文) 图5.2 学生注册页面 如果学生用户不慎将密码忘记,他可以通过帐号和电子邮箱找回密码,如图所示: 图5.3找回登陆密码 5.3信息中心 学校的基本信息,以及课程信息都集中在这个模块,此处的信息基本都是从后台添加的,这要对网页制作有一定的了解。如图5.4所示: 24 西安工业大学北方信息工程学院毕业设计(论文) 图5.4信息中心页面 5.4学生报名主页 学生用户登陆后进入主页中心,之后可以进入报名主页,可以查看课程和对自己的报名进行管理。 此页面是操作选择页面,运用了图片以及Flash进行页面设计。 学生报名主页如图5.5所示: 图5.5学生报名主页 25 西安工业大学北方信息工程学院毕业设计(论文) 5.5查选课程 学用户登陆后完善自己的信息,再进入选课报名的页面进行课程浏览和选课报名,如图5.6所示: 图5.6选课报名页面 5.6查看个人报名 学生用户报名后可以对其报名进行查询,如不满意可以取消报名。 查看个人报名页面如图5.7所示: 图5.7查看个人报名页面 26 西安工业大学北方信息工程学院毕业设计(论文) 5.7管理员操作界面 站内的信息是由管理员进行管理维护的,以下是管理员登陆的界面。 如图5.8所示: 图5.8管理员登陆页面 系统经过管理员登陆之后,进入管理员操作主页面。可以选择添加管理员、添加课程信息、修改用户密码、查询管理员、查看课程信息与退出功能。 如图5.9为管理员操作首页面: 图5.9管理员操作首页面 27 西安工业大学北方信息工程学院毕业设计(论文) 5.8管理员信息管理 管理员从操作主页面进入添加管理员页面,进行添加管理员操作,但是只有超级管理员才有这个权限。如图5.10所示: 图5.10添加管理员页面 超级管理员还可以查看修改同级或普通的管理员的信息,这是需要进入参看管理员的页面,如图5.11所示: 图5.11查看管理员页面 28 西安工业大学北方信息工程学院毕业设计(论文) 下图是修改某管理员的信息页面: 图5.12 修改管理员信息 5.9课程信息管理及报名管理 管理员可以发布课程信息供学生进行选择,当要添加新的课程时,选择添加 课程操作页面。如图5.13所示: 图5.13添加课程 29 西安工业大学北方信息工程学院毕业设计(论文) 管理员可以查看所有的课程,进入查看课程的页面。可以对每个课程进行查看信息、修改信息、删除信息和该课的报名信息查询。 如图5.14所示: 图5.14查看课程 每个管理员都可以查看某个课程的报名信息,对其非法的报名信息进行过滤,这就要进行查看报名的操作。如图5.15所示: 图5.15查看课程 30 6 网上报名系统测试 6 网上报名系统测试 6.1测试范围 6.1.1功能测试 系统实现之后主要对以下功能进行了测试: (1)用户注册测试 (2)用户登陆测试 (3)完善注册信息测试 (4)学校管理员发布课程信息测试 (5)学生用户查看课程、显示报名、报名课程查看、取消报名等功能的测试 (6)管理员用户管理用户、查看修改课程、查看课程报名信息、修改登陆密 码等功能的测试 6.1.2结构信息测试 包括系统总体设计审查、系统设计审查和程序编码审查。 6.2测试结果 6.2.1功能测试结果 (1)用户注册测试结果 用户可以正常注册,能通过前台页面javascript验证用户输入的信息,防 止了不符合要求的信息写入数据库。 企业用户注册验证信息页面如图6.1所示: 31 西安工业大学北方信息工程学院毕业设计(论文) 图6.1注册验证页面 下图为验证用户ID 是否可用: 图6.2验证用户ID 当注册成功时就可以登陆了,下图为注册成功跳转页面: 32 西安工业大学北方信息工程学院毕业设计(论文) 图6.3 注册成功跳转页面 (2)用户登陆测试结果 不同的用户有不同的登陆页面,学生用户登陆后跳到本系统的主页面。学生用户登陆成功后重新进入主页中心,如图6.4所示: 图6.4 用户登陆系统 (3)完善注册信息测试结果 能准确读取用户已经输入的信息,并将修改后的信息写入数据库。个人信息修改成功跳转页面如图6.5所示: 33 西安工业大学北方信息工程学院毕业设计(论文) 图6.5个人信息修改成功页面 (4) 学校管理员发布课程信息测试测试结果 能正常对前台信息进行有效的验证,如图6.6所示: 图6.6 验证课程信息页面 添加成功后自动跳回操作主页面。 (5) 学生用户查看课程、显示报名、报名课程查看、取消报名等功能的测 试 结果 学生用户能够产看到该校的所有可以报名的课程,查看课程操作。 显示所有课程结果页面如图6.7所示: 34 西安工业大学北方信息工程学院毕业设计(论文) 图6.7显示所有课程结果页面 报名成功页面如图6.8所示: 图6.8报名成功页面 学生用户可以取消自己的某一个报名。 如图6.9 取消报名成功跳转页面: 35 西安工业大学北方信息工程学院毕业设计(论文) 图6.9取消报名成功跳转页面 (6)管理员用户管理用户、查看修改课程、查看课程报名信息、修改登陆密 码等功能的测试结果 管理员查看所有用户的页面如图6.10所示: 图6.10 查看所有用户页面 修改登陆密码后台验证如图6.11所示: 36 西安工业大学北方信息工程学院毕业设计(论文) 图6.11 修改密码后台验证 查看自己的报名信息,成功查询后可以取消,如图6.12查询自己的报名信息成功页面: 图6.12查询自己的报名信息成功页面 6.2.2结构信息测试结果 测试结果表明,整个系统结构合理,易读易维护,编码正确,达到了设计要求。 37 7 结论 7 结论 本系统使用java、jsp技术实现一个B/S结构的网上报名选课系统,为学校和学生提供了一个良好的网上平台,与传统的报名系统相比,具有信息量大,效率高的,节省空间和时间等特点。主要工作成果如下: (1)查阅大量文献资料分析了国内网上报名流程和发展情况,探讨了“基于Web的网上报名系统”研究目的和意义。 (2)对系统进行了详细的结构化分析与设计。 (3)采用Tomcat网络服务器,Mysql5.5数据库和java、jsp和javascript编程语言搭建基于B/S模式的信息管理系统平台。实现了各个模块的具体功能。 系统的特点如下: (1)本系统采用java和javabeen技术以及MVC的框架来实现数据库的访问,具有编程容易,操作简单,易于扩展的特点。 (2)系统具有较强的人性化操作,用户进入系统很容易找到自己想要的业务处理即进入想进的页面。 (3)系统易于管理,通过后台可以方便地管理各种信息。 (4)具有较为完善的统计功能,可以了解系统运作的详细情况。 对系统进一步发展的展望: (1)增加师生在线沟通的功能,可以通过学生的意见学校给与课程调整和解决学生的学习困难。 (2)增加网上缴费的功能,无需学生到校就可以办好手续,真正实现时空报名的功能。 (3)支持WAP手机检索,手机浏览网页,提供相关的服务。 (4)增强系统安全性,有效防止恶意攻击与破坏。 38 参考文献 参考文献 [1] [美]David Harms著 黄习福、梁桂霞、朱国庆 等译,jsp、sevlets与Mysql 开发指南,北京:电子工业大学出版社,2001 [2] Core Servlets and JavaServer Pages?: Volume 1: Core Technologies, 2nd Edition [3] Java Servlet & JSP Cookbook (OReilly) [4] More Servlets and JavaServer Pages by Marty Hall [5] 许多梁,Eclipse权威开发指南,北京:清华大学出版社,2006 [6] Sun's Java Tutorial [7] 孙卫琴,李洪成,Tomcat与Java Web开发技术详解,北京:电子工业出版 社,2004 [8] 蔡剑,景楠,Java Web应用开发:J2EE与Tomcat,北京:清华大学出版社, 2005 [9] 张洪伟,Java开发利器:Tomcat Web开发与整合应用,北京:清华大学出版 社,2006 [10] 刘中兵,精通Tomcat,北京:清华大学出版社,2007 [11] 荣钦,JSP动态网站开发与实例,北京:清华大学出版社,2006 [12] 李伯华,JSP数据库项目案例导航,北京:清华大学出版社,2006 [13] 张大浩,JSP使用教程,北京:清华大学出版社,2006 [14] 武延军,精通JSP编程技术,北京:清华大学出版社,2006 [15] 王迪华,JSP/Servlet:基于Java的最新网站建设工具,北京:清华大学出版 社,2001 [16] 王国辉,JSP数据库系统开发完全,北京:人民邮电出版社,2006 [17] 张凤林,Java2简明教程,北京:清华大学出版社,2004 [18] 张大浩,精通Eclipse, 北京:清华大学出版社,2006 [19] 吴东伟、张瑞萍、钱伟等,网页设计三剑客标准教程,北京:清华大学出 版社,2004 39 致谢 致 谢 首先,衷心感谢导师兰小毅在论文撰写和系统构建过程中给与我各方面的指导、意见和建议。让我特别感动的是:每次我向兰老师请教问题,兰老师都能很快、认真地给我解答;正是由于兰老师的严谨治学,使我的系统和论文可以顺利完成。 其次,感谢西安工业大学给我提供了这么好的学习环境,并感谢在大学四年里给予我知识的各位老师,是您们充实了我。 同时感谢西安新东方西安锦程学校,在那里我学到很多书本上学不到的软件编程知识,没有在那里的七个多月的培训我是做不出现在的系统的。最后我要感谢我身别的同学的热心帮助,使得我们共同进步。 40 毕业设计(论文)知识产权声明 毕业设计(论文)知识产权声明 本人完全了解西安工业大学北方信息工程学院有关保护知识产权的规定,即:本科学生在校攻读学士学位期间毕业设计(论文)工作的知识产权属于西安工业大学信息工程学院。本人保证毕业离校后,使用毕业设计(论文)工作成果或用毕业设计(论文)工作成果发表论文时署名单位仍然为西安工业大学信息工程学院。学校有权保留送交的毕业设计(论文)的原文或复印件,允许毕业设计(论文)被查阅和借阅;学校可以公布毕业设计(论文)的全部或部分内容,可以采用影印、缩印或其他复制手段保存毕业设计(论文)。 (保密的毕业设计(论文)在解密后应遵守此规定) 毕业设计(论文)作者签名: 指导教师签名: 日期: 41 毕业设计(论文)独创性声明 毕业设计(论文)独创性声明 秉承学校严谨的学风与优良的科学道德,本人声明所呈交的毕业设计(论文)是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,毕业设计(论文)中不包含其他人已经发表或撰写过的成果,不包含他人已申请学位或其他用途使用过的成果。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了致谢。 毕业设计(论文)与资料若有不实之处,本人承担一切相关责任。 毕业设计(论文)作者签名: 指导教师签名: 日期: 42 附录.程序代码 附录 部分程序代码 (1) javabeen模型类中申请人java代码: 此类充当数据库数据模型的角色,是数据库和应用程序的中间媒介。 package com.mov.been; /**申请人对照模型**/ public class ApplicatInfo { private String user_id; private String id_card; private String real_name; private String password; private String sex; private int age; private String nation; private String telephone; private String from_place; private String email; private String Relationadd; private String introduction; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getFrom_place() { return from_place; 43 西安工业大学北方信息工程学院论文附录 } public void setFrom_place(String from_place) { this.from_place = from_place; } public String getId_card() { return id_card; } public void setId_card(String id_card) { this.id_card = id_card; } public String getIntroduction() { return introduction; } public void setIntroduction(String introduction) { this.introduction = introduction; } public String getNation() { return nation; } public void setNation(String nation) { this.nation = nation; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getReal_name() { return real_name; } public void setReal_name(String real_name) { this.real_name = real_name; } 44 西安工业大学北方信息工程学院论文附录 public String getRelationadd() { return Relationadd; } public void setRelationadd(String relationadd) { Relationadd = relationadd; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getTelephone() { return telephone; } public void setTelephone(String telephone) { this.telephone = telephone; } public String getUser_id() { return user_id; } public void setUser_id(String user_id) { this.user_id = user_id; } } (2)实现申请人业务的抽象类java代码: 里面方的是有关此类数据的抽象方法,需要另一个类来实现它,完成业务操作,这样的编程思想可以使系统维护性强,思维流畅。 package com.mov.dao; /**逻辑层**/ import java.util.ArrayList; import com.mov.been.*; public interface ApplicatDao { /**查询用户是否存在**/ 45 西安工业大学北方信息工程学院论文附录 boolean is_extApplicat(ApplicatInfo applicat); /**注册信息**/ boolean add_applicat(ApplicatInfo applicat); /**查询注册信息**/ ApplicatInfo cx_applicat(ApplicatInfo applicat); /**修改注册信息**/ boolean xg_applicat(ApplicatInfo applicat); /***查询用户id是否存在**/ boolean isUsed(String user_id); /**查询密码**/ ApplicatInfo cxpwd(ApplicatInfo applicat); /**修改密码**/ boolean xgpwd(ApplicatInfo applicat); /**得到总共的行数***/ int getTotal(Courses course); /**查询所有课程并分页**/ ArrayList cx_allcourses(int count,int page ,Courses courses); /**删除某个学生报名**/ boolean delonesign(ApplicatInfo applicat,Courses courses); } (3)与数据库进行数据操作,实现申请人业务操作的类java代码: package com.mov.dao; import com.mov.been.ApplicatInfo; import com.mov.been.Courses; import com.mov.been.Sign_Up; import com.mov.db.*; import java.sql.*; import java.util.ArrayList; import javax.swing.text.html.HTMLDocument.HTMLReader.PreAction; public class MysqlApplicatDao implements ApplicatDao { private final String ISUSER="select * from applicatInfo where user_id=?"; private final String SQL_IS_EXT="select * from applicatInfo where 46 西安工业大学北方信息工程学院论文附录 user_id=? and password=?"; private final String SQL_ADD="insert into applicatInfo values(?,?,?,?,?,?,?,?,?,?,?,?)"; private final String CX_APP="select * from applicatInfo where user_id=?"; private final String XG_ENROL="update applicatInfo set id_card=?,real_name=?,age=?,telephone=?,email=?,Relationadd=?,intr oduction=? where user_id=?"; private final String CX_PWD="select password from applicatInfo where user_id=? and email=?"; private final String XG_PED="update applicatInfo set password=? where user_id=? and password=?"; private final String COUNT="select count(*) from applicatInfo where id_card in (select id_card from applicant_courses where course_id=?)"; private final String SQL_SELALL="select * from applicatInfo where id_card in (select id_card from applicant_courses where course_id=?) limit ?,?"; private final String SQL_DELONESIGN="delete from applicant_courses where course_id=? and id_card=(select id_card from applicatInfo where user_id=?)"; public boolean is_extApplicat(ApplicatInfo applicat) { boolean lig=false; Connection conn=null; conn=DBUtil.getInstance().getConn(); try { PreparedStatement stmt=conn.prepareStatement(SQL_IS_EXT); stmt.setString(1, applicat.getUser_id()); stmt.setString(2, applicat.getPassword()); ResultSet rs=stmt.executeQuery(); if(rs.next()) lig=true; } catch (SQLException e) { e.printStackTrace(); 47 西安工业大学北方信息工程学院论文附录 }finally{DBUtil.getInstance().free(conn); } return lig; } public boolean add_applicat(ApplicatInfo applicat) { boolean lig=false; Connection conn=null; conn=DBUtil.getInstance().getConn(); try { PreparedStatement stmt=conn.prepareStatement(SQL_ADD); stmt.setString(1, applicat.getUser_id()); stmt.setString(2, applicat.getId_card()); stmt.setString(3, applicat.getReal_name()); stmt.setString(4, applicat.getPassword()); stmt.setString(5, applicat.getSex()); stmt.setInt(6, applicat.getAge()); stmt.setString(7, applicat.getNation()); stmt.setString(8, applicat.getTelephone()); stmt.setString(9, applicat.getFrom_place()); stmt.setString(10, applicat.getEmail()); stmt.setString(11, applicat.getRelationadd()); stmt.setString(12, applicat.getIntroduction()); int i=stmt.executeUpdate(); if(i==1) {lig=true; } } catch (SQLException e) { e.printStackTrace(); }finally{DBUtil.getInstance().free(conn);} return lig; } public ApplicatInfo cx_applicat(ApplicatInfo applicat) { ApplicatInfo applicat2=new ApplicatInfo(); Connection conn=null; conn=DBUtil.getInstance().getConn(); 48 西安工业大学北方信息工程学院论文附录 try { PreparedStatement stmt=conn.prepareStatement(CX_APP); stmt.setString(1, applicat.getUser_id()); ResultSet rs=stmt.executeQuery(); while(rs.next()) { applicat2.setUser_id(rs.getString(1)); applicat2.setId_card(rs.getString(2)); applicat2.setReal_name(rs.getString(3)); applicat2.setPassword(rs.getString(4)); applicat2.setSex(rs.getString(5)); applicat2.setAge(rs.getInt(6)); applicat2.setNation(rs.getString(7)); applicat2.setTelephone(rs.getString(8)); applicat2.setFrom_place(rs.getString(9)); applicat2.setEmail(rs.getString(10)); applicat2.setRelationadd(rs.getString(11)); applicat2.setIntroduction(rs.getString(12)); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ DBUtil.getInstance().free(conn); } return applicat2; } public boolean xg_applicat(ApplicatInfo applicat) { boolean lig=false; Connection conn=null; conn=DBUtil.getInstance().getConn(); try { PreparedStatement stmt=conn.prepareStatement(XG_ENROL); stmt.setString(1, applicat.getId_card()); stmt.setString(2, applicat.getReal_name()); 49 西安工业大学北方信息工程学院论文附录 stmt.setInt(3, applicat.getAge()); stmt.setString(4, applicat.getTelephone()); stmt.setString(5, applicat.getEmail()); stmt.setString(6, applicat.getRelationadd()); stmt.setString(7, applicat.getIntroduction()); stmt.setString(8, applicat.getUser_id()); int i=stmt.executeUpdate(); if(i==1) { lig=true; } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ DBUtil.getInstance().free(conn); } return lig; } public boolean isUsed(String user_id) { boolean lig=false; Connection conn=null; conn=DBUtil.getInstance().getConn(); try { PreparedStatement stmt=conn.prepareStatement(ISUSER); stmt.setString(1, user_id); ResultSet rs=stmt.executeQuery(); if(rs.next()) lig=true; } catch (SQLException e) { e.printStackTrace(); }finally{DBUtil.getInstance().free(conn); } return lig; } 50 西安工业大学北方信息工程学院论文附录 public ApplicatInfo cxpwd(ApplicatInfo applicat) { ApplicatInfo app=new ApplicatInfo(); Connection conn=null; conn=DBUtil.getInstance().getConn(); try { PreparedStatement stmt=conn.prepareStatement(CX_PWD); stmt.setString(1, applicat.getUser_id()); stmt.setString(2, applicat.getEmail()); ResultSet rs=stmt.executeQuery(); while(rs.next()) {app.setPassword(rs.getString(1)); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ DBUtil.getInstance().free(conn); } return app; } public boolean xgpwd(ApplicatInfo applicat) { boolean lig=false; Connection conn=null; conn=DBUtil.getInstance().getConn(); try { PreparedStatement stmt=conn.prepareStatement(XG_PED); stmt.setString(1, applicat.getPassword()); stmt.setString(2, applicat.getUser_id()); stmt.setString(3, applicat.getIntroduction()); int i=stmt.executeUpdate(); if(i==1) { lig=true; } 51 西安工业大学北方信息工程学院论文附录 } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ DBUtil.getInstance().free(conn); } return lig; } public ArrayList cx_allcourses(int count, int page,Courses courses) { int subcount=getTotal(courses); int pages= subcount%count==0 ? subcount/count : subcount/count+1; if(page>=pages) page=pages; if(page<=1) page=1; if(count<1) count=1; int strat=count*(page-1); ArrayList list=new ArrayList(); Connection conn=DBUtil.getInstance().getConn(); try { PreparedStatement stmt=conn.prepareStatement(SQL_SELALL); stmt.setString(1, courses.getCourse_id()); stmt.setInt(2, strat); stmt.setInt(3, count); ResultSet rs=stmt.executeQuery(); while(rs.next()) { ApplicatInfo applicat=new ApplicatInfo(); applicat.setUser_id(rs.getString(1)); applicat.setId_card(rs.getString(2)); applicat.setReal_name(rs.getString(3)); applicat.setPassword(rs.getString(4)); 52 西安工业大学北方信息工程学院论文附录 applicat.setSex(rs.getString(5)); applicat.setAge(rs.getInt(6)); applicat.setNation(rs.getString(7)); applicat.setTelephone(rs.getString(8)); applicat.setFrom_place(rs.getString(9)); applicat.setEmail(rs.getString(10)); applicat.setRelationadd(rs.getString(11)); applicat.setIntroduction(rs.getString(12)); list.add(applicat); } } catch (SQLException e) { e.printStackTrace(); }finally{ DBUtil.getInstance().free(conn); } return list; } public int getTotal(Courses courses) { int total=-1; Connection conn=DBUtil.getInstance().getConn(); try { PreparedStatement stmt=conn.prepareStatement(COUNT); ResultSet rs=stmt.executeQuery(); rs.next(); total=rs.getInt(1); DBUtil.getInstance().free(conn); } catch (SQLException e) { e.printStackTrace(); }finally{ DBUtil.getInstance().free(conn); } return total; } public boolean delonesign(ApplicatInfo applicat, Courses courses) { 53 西安工业大学北方信息工程学院论文附录 boolean lig=false; Connection conn=null; conn=DBUtil.getInstance().getConn(); try { PreparedStatement stmt=conn.prepareStatement(SQL_DELONESIGN); stmt.setString(1, courses.getCourse_id()); stmt.setString(2, applicat.getUser_id()); int i=0; i=stmt.executeUpdate(); if(i==1) lig=true; } catch (SQLException e) { e.printStackTrace(); }finally{DBUtil.getInstance().free(conn); } return lig; } } (4)连接数据库的连接池 java代码: package com.mov.db; import java.sql.*; import java.io.*; import java.util.*; public class DBUtil { private static DBUtil instance; private String driver; private String url; private String user; private String passworld; private int size;, private ArrayList pool; private DBUtil(){ init(); initPool(); } 54 西安工业大学北方信息工程学院论文附录 public static DBUtil getInstance(){ if(instance==null) { instance=new DBUtil(); } return instance; } public void init() { Properties prop=new Properties(); InputStream is=this.getClass().getClassLoader().getResourceAsStream("db.proper ties"); try { prop.load(is); driver=prop.getProperty("driver"); url=prop.getProperty("url"); user=prop.getProperty("user"); passworld=prop.getProperty("passworld"); size=Integer.parseInt(prop.getProperty("size")); Class.forName(driver); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void initPool() { pool=new ArrayList(); for(int i=0;i
/
本文档为【网上报名系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索