资源描述
毕业设计论文设计(论文)题目:设计(论文)题目:基于 Web 的毕业设计选题系统的 设计与实现 下下 达达 日日 期:期: 2012 年年 9 月月 13 日日 开开 始始 日日 期:期: 2012 年年 9 月月 15 日日 完完 成成 日日 期:期: 2012 年年 10 月月 25 日日 指指 导导 教教 师:师: 刘引涛 学学 生生 专专 业:业: 软件技术 班班 级:级: 软件 1001 班 学学 生生 姓姓 名:名: 薛帅 许成 闻增 吴军阳 教教 研室主任:研室主任: 李 俊 信信息息工工程程学学院院2摘 要随着网络技术和办公自动化的高速发展,信息技术已经深入到了社会的每一个角落而手工管理操作也逐渐被自动网络化管理取代,学校又是接受现代化信息的先行者和传播者。因此,学校的课题管理是教学网络管理的一项重要内容。设计本系统的目的是为了方便老师申报毕业设计课题和学生毕业设计选题,满足学生在网上填报志愿和查询志愿以及老师在查看课题和申报课题的要求。学生填报志愿时可以看到课题选择情况以及课题的限制人数和已选人数,避免因为课题人数已满而不能选择自己喜欢的课题,设计该系统的目的也是为了减少了教师的工作量、提高了管理员的工作效率。“毕业设计选题系统”使用当前流行的 JSP 和 html 网络编程技术,通过网上申报课题,网上选题,网上管理,简化以前烦琐的纸张提交和手动操作,使得学生、教师、管理员的工作变得轻松、快捷,也使得对数据库的维护变得更加容易。在管理员这一方面,不仅要对学生志愿、教师课题、用户信息进行管理,更重要的是要对学生选择的志愿进行排列,生成终表。关键字:添加,删除,修改,JAVA,SQL SERVER3ABSTRACTAlong with the network technology and the rapid development of office automation, information technology has penetrated into every corner of the society and the manual operation is gradually being replaced automatic network management, the school is undergoing modernization information forerunner and spreader. Therefore, the school management is the subject of teaching an important part of network management.The purpose of the system design is to facilitate teachers to declare the graduation project design and selection of graduate students, meet the needs of students in online volunteer volunteer teacher in view and query and topics and to declare the subject requirements. Students fill can see the choice of topic and topic limit the number and the selected number, number is avoided because the subject is full and unable to choose their own like task, the system is designed for the purpose to reduce the workload of teachers, improve managers work efficiency. Graduation design system using the popular JSP and HTML network programming technology, through the Internet to declare the subject selection, online, online management, to predigest and manual operation, makes the student, teacher, administrator s job easier, faster, but also makes the database maintenance easier.In the administrator of this respect, not only to the student volunteer teachers, subject, user information management, it is more important for students to choose voluntary arrangement, generates the final table.Keywords: add,delete, modify, JAVA, SQL SERVER4目 录引 言.5第一章 系统开发的意义、目的和技术简介.11.1 系统开发意义及其目的.11.1.1 开发意义 .11.1.2 开发目的 .11.2 系统设计相关原理.11.3 Java 技术简介 .11.4 java 技术实现 .2第二章 需求分析.32.1 可行性分析 .32.2 功能需求分析 .32.3 性能与安全性分析 .32.4 系统需求分析的内容 .42.5 软件设计的目的及背景.42.6 软件设计的思想与目标.42.7 用户简介.52.8 系统功能介绍.5第三章 系统设计.63.1 可行性分析.63.2 功能需求分析 .63.2.1 功能结构图 .73.3 系统建模.73.3.1 UML 语言简介 .73.3.2 角色的确定 .73.3.3 创建用例 .83.3.4 创建角色与用例关系图 .83.4 数据库设计 .93.4.1 数据库设计原则 .93.4.2 系统数据库 E-R 图。 .93.4.3 数据库表清单 .103.5 系统模块设计 .113.5.1 admin 管理模块 .123.5.2 指导教师管理模块 .123.5.3 学生选题模块 .133.5.4 选题流程 .13第四章 系统实现及相关代码.144.1 开发工具 .144.2 主要功能算法实现.144.2.1 学生选题功能实现.144.2.2 老师审核功能实现.1454.2.3 admin 模块功能实现 .154.3 系统主要页面实现.164.3.1 学生个人信息页面 .164.3.2 教师个人信息页面 .194.3.3 课题选择页面 .204.3.4 文件上传页面 .25第五章 结论.29致 谢.306引引 言言无纸化办公的日益普及,信息的自动处理以及网络式的信息交互方式越来越被人们认可和应用。让计算机来管理学生的信息是现在各个高校都在积极进行的工作之一,也是高校教学管理工作的重要内容之一。随着近几年高校的持续扩招,学生人数逐年增加。为了满足广大学生的求学需要,各个高校的师资力量、硬件配置也随之增强。这样一来,日常行政部门的工作也就越来越繁重。传统的管理方式耗费大量的资源,毕业论文网上选题系统比传统的手工选题方式相比不但节约资源,而且更加准确,便于查询和修改信息。同时,学生选题自主权的增加,能够选择自己感兴趣的课题。传统的选题方式已经不适应现代教学管理的改革和发展的需要,迫切需要一种新的选题方式第一章 系统开发的意义、目的和技术简介1.1 系统开发意义及其目的1.1.1 开发意义毕业设计(论文)是高校人才培养方案中的重要组成部分,它是对学生独立分析和解决问题能力的全面检验。由于高校新校区建设,两地办学情况较为普遍,指导老师和学生在时间、空间上往往存在着较大的冲突,成为开展毕业论文相关工作的瓶颈。而且由于毕业论文选题的特殊性,特别是选题繁琐的统计、汇总给各系(院)教务管理部门带来很大工作量,传统的人工选题数据是经多级手工处理后上报教务管理部门的,因此容易出错,导致了效率低、质量低,学生对选题的退选、补选、改选操作非常麻烦,同时教学管理部门无法掌握选题人数的变化和学生分布情况,难以进行动态调整。学生选题、数据统计、名单打印、指导老师编排等工作无法实现科学化、信息化、无纸化。本系统设计利用 java 和 SQL2005 技术实现。随着 Internet 的发展,基于网络的毕业论文选题系统由于能使得学生可以在任意地点、任意时间进行选题,因此,基于网络的选题管理系统的研发工作正引起国内外高效的广泛关注。由于基于网络的毕业论文选题系统的实际应用时间不长,在如何确保选题的公平、公正、合理,以及系统的高效、稳定地运行等方面尚存在诸多不足,为此,本系统以陕西工业职业技术学院为依托,研究并实现一个基于网络的高效毕业论文选题系统。1.1.2 开发目的高校使用本系统可以大大减轻教学管理者的负担,提高工作效率。预计系统将从如下几个方面带来选题的便利:(1)选题工作的透明性:学校管理员具有最高权限,可以对所有用户和选题进行管理以及对全校所有院系的选题情况进行统计;系统设置;通知、文件的下发和管理等功能。(2)指导老师可以添加、修改自己的选题,而不需要写在纸上供学生选择,查询学生信息对学生进行更多的了解,使选择做到真正的双向选择。(3)学生可以在系统开放时间进行选题但无法退选、通知查看、查看选题信息等。解决不在校的学生往返学校之麻烦。1.2 系统设计相关原理本系统采用 SqlServer 数据库,数据库连接使用 ADO 方式,对数据库中数据的增加、删除和修改操作使用到 SQL 语句方式。1.3 Java 技术简介Java 是目前最为流行的程序设计语言。Java 是由 Sun Microsystems 公司于1995 年 5 月推出的 Java 程序设计语言(以下简称 Java 语言)和 Java 平台的总称。由 James Gosling 和同事们共同研发,并在 1995 年正式推出。用 Java 实现2的 HotJava 浏览器(支持 Java applet)显示了 Java 的魅力:跨平台、动态的Web、Internet 计算。从此,Java 被广泛接受并推动了 Web 的迅速发展,Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人 PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java 更具备了显著优势和广阔前景。1.4 java 技术实现Java 是在 myeclipse 开发工具下进行开发,是一种简单方便的开发工具Java 基本语法后,只需要清楚 java 的架构,实现方法,就可以编写出自己的 java 系统。 运行 java 所需的环境如下:jdk7.0Microsoft Internet Information Server version 4.0/5.0 on Windows 7 Professional ServerMicrosoft Personal Web Server on Windows 7与一般的程序不同,Java 程序通过虚拟机进行编译。Java 程序的控制部份,是使用 servlet、JScript 等脚本语言来设计的,当用户提交数据时,数据通过表单把数据传送到 servlet 在 servlet 中通过 requerst 接受数据,进行数据处理。当然,同其他编程语言一样,java 程序的编写也遵循一定的规则,才能完的完成系统。Java 程序其实是以扩展名为.Java 的纯文本形式存在于 WEB 服务器上的,可以用任何文本编辑器打开它,Java 程序中可以包含纯文本、HTML 标记以及脚本命令。只需将.Java 程序放在 Web 服务器下运行后 ,访问 Java 程序了。要学好 Java 程序的设计,必须掌握脚本的编写,那么究竟什么是脚本呢?其实脚本是由一系列的脚本命令所组成的,如同一般的程序,脚本可以将一个值赋给一个变量,可以命令 Web 服务器发送一个值到客户浏览器,还可以将一系列命令定义成一个过程。要编写脚本,你必须要熟悉至少一门脚本语言,如JavaScript。脚本语言是一种介于 HTML 和诸如 JAVA、Visual Basic、C+等编程语言之间的一种特殊的语言,尽管它更接近后者,但它却不具有编程语言复杂、严谨的语法和规则。如前所述 Java 所提供的脚本运行环境可支持多种脚本语言,譬如:JScript、REXX、PERL 等等,这无疑给 Java 程序设计者提供了广泛的发挥余地。Java 的出现使得广大 Web 设计者不必在为客户浏览器是否支持而担心,实际上就算在同一个.Java 文件中使用不同的脚本语言,都无须为此担忧,因为所有的一切都将在服务器端进行,客户浏览器得到的只是一个程序执行的结果,而你也只需在文件中声明使用不同的脚本语言即可。3第二章 需求分析2.1 可行性分析可行性分析(Feasibility Analysis)也称为可行性研究,是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。为了确定开发具有可行性,对本系统主要进行了以下三个方面的分析。(1) 经济可行性:系统所要求的硬件(计算机及相关硬件)和软件环境(java+SQL 2005),市场上都容易购买到或从相关网站下载,系统成本主要集中在开发与维护上,不造成过重的经济负担。而一旦此系统投入使用,不仅可以减少教学管理者的工作强度,提高工作效率,而且极大限度的方便了用户,可以节省大量的人力、财力。(2) 技术可行性:技术上的可行性分析主要是分析技术条件能否顺利完成开发工作,硬、软件能否满足开发者的需要等。在软件方面,本系统采用的是java 进行开发,前台网页设计使用的是 Dreamweaver 8,而数据库系统采用的是Microsoft SqlServer 2005。通过分析,在软、硬件方面现有工具与环境完全可以实现系统的开发,因此具有技术上的可行性。(3) 管理的可行性:主要是管理人员是否支持,现有的管理制度和方法是否科学,规章制度是否齐全,原始数据是否正确等。系统的开发主要就是为了方便选题信息的管理,补充现在传统管理方式的不足,因此具备了管理上的可行性。综上所述,系统开发目标已明确,在技术和经济等方面具备可行性,投入少、见效快,因此系统的开发是完全可行的。2.2 功能需求分析在可行性分析阶段已经简要地分析和研究了本系统的基本需求,也论证了开发平台及软件的可行性,但为了明确系统设计的目标,了解用户的需求,现对用户需求作以调研,从而进一步明确所要实现的各子系统的需求。分析得出:在毕业论文选题工作中分为三种用户,即系统管理员、指导教师、学生。系统管理员审核学生和老师的资格;指导老师发布选题;学生选题等功能。2.3 性能与安全性分析在这次开发中,本系统是本着“实用、够用、好用”的基本原则,系统经久耐用。另外,规范的设计,科学的检测,使系统更加稳定可靠,功能增减灵活自如,维护方便快捷。动态管理的功能,更是系统任期、可靠、稳定运行的4坚强基石。因此,毕业论文选题系统是通过各个管理子系统在浏览器上录入文字和上传文件就可以快速实现用户维护、选题管理等功能。而且不需要在安装任何软件或插件,使用非常方便。此外,系统还要求界面友好、菜单清楚、便于操作,同时做到数据合法性有效无误。2.4 系统需求分析的内容系统需求分析主要就是明确进出选题管理系统所要实现的目标,并给出解决方案。对系统是分析可以从功能需求和数据需求两方面来进行。功能需求分析主要是对系统所要实现的目标进行分解,使之形成既相互独立又相互联系的几部分,然后将每个部分映射为一个或多个功能,这些功能相互之间形成一个有机的整体。数据需求分析就是对系统涉及的数据进行识别,并描述出它们在系统中的关系和流向。如上述所述,通过功能需求分析可以得到系统的主要功能,通过数据需求分析则对数据库设计有所帮助。网上选题管理系统主要实现对选题信息的记录和查询,包括课题的出题,学生身份记录,以及课题的审核和学生对课题的选择进行记录。在选题管理中,应该首先为每个课题进行一个编码,以便于进行统一管理。2.5 软件设计的目的及背景“毕业设计选题管理系统”是办公自动化的具体体现,在信息时代的今天,学校的教学管理已经基本上实现了自动化办公和网上管理,而各种各样的办公软件在市场上也随处可见,毕业设计的课题及志愿管理也应该由一个专门的软件进行管理。每年的毕业设计的选题是一个很麻烦的事情,如果采用手工操作或软件设计不当,将是一件难以想象的麻烦事,他不仅回花费老师很大精力,而且会达不到预想的效果。2.6 软件设计的思想与目标该系统的设计目的主要是方便教师、学生、管理员三种用户,所有操作都在网上完成。基于不同用户对象的应用程序是不一样的,用户对象包括学生、老师和管理层。他们以 WEB 方式访问数据,对系统实现和数据库方面的知识没有什么要求,只需简单的界面操作。下面简单介绍这三个用户对象的功能模块;学生可对有关课题进行查询,采用分类查询方式,把相关的课题列出来,可以方便学生快速选自己感兴趣的课题,了解课题的相关信息(指导老师、课题代码、课题名称等)。教师在网上浏览所有课题,也可以在网上修改课题,同时可以查看有无学生选择自己的课题。管理员对整个选课系统进行管理,他们的工作包括用户管理和课题管理;课题管理包括:录入新添的课题的相关信息,删除课题信息,修改课题信息,查看选题,同样,管理员可以对用户进行管理,包括添加、删除、修改用户信息。5系统的安全性是不可忽略的方面,本系统的合法用户是学生以及老师和管理员。在进入系统前都要进行身份验证。我们的目标是要让该平台来代替以前教务管理人员的工作。把课题申报和选题处理都通过网络来交互实现。该平台实质上是一个基于 Web 的数据库应用系统,由数据库、数据库管理系统、应用系统和用户组成。2.7 用户简介毕业设计选题管理系统主要针对学生及教师用户,当然还需要一个后台管理员,由于现在网络技术和信息技术的飞速发展,学生填报志愿、教师申请课题和管理员管理学生志愿和教师课题如果还是单机版的管理,那工作程序将是相当烦琐的。所以,为了方便学生选题,方便教师对自己课题的查看,方便管理员管理课题和志愿,该系统的设计采用了基于客户机/浏览器(B/S)的操作平台,采用了微软公司推出的 JSP VBSCRIPT 网站开发技术。这样,不同的用户就可以随时随地对自己的信息进行管理了(当然,管理员只能在规定的服务器上对课题及志愿进行管理)2.8 系统功能介绍系统要实现的主要功能有:1) 系统管理员对教师删除、审核;2) 系统管理员对论文的、删除、查询、审核;3) 学生对论文的选择;4) 学生对自己信息的查询、修改;5) 教师对自己信息的查询、修改;6) 教师对论文信息的查询、修改、审核;7) 用户登陆:包括系统管理员登陆、教师登陆、学生登陆;学生注册,老师注册;6第三章 系统设计3.1 可行性分析可行性分析(Feasibility Analysis)也称为可行性研究,是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。为了确定开发具有可行性,对本系统主要进行了以下三个方面的分析。(1) 经济可行性:系统所要求的硬件(计算机及相关硬件)和软件环境(Java+SQL 2005),市场上都容易购买到或从相关网站下载,系统成本主要集中在开发与维护上,不造成过重的经济负担。而一旦此系统投入使用,不仅可以减少教学管理者的工作强度,提高工作效率,而且极大限度的方便了用户,可以节省大量的人力、财力。(2) 技术可行性:技术上的可行性分析主要是分析技术条件能否顺利完成开发工作,硬、软件能否满足开发者的需要等。在软件方面,本系统采用的是Java 进行开发,前台网页设计使用的是 Dreamweaver 8,而数据库系统采用的是 Microsoft SqlServer 2005。通过分析,在软、硬件方面现有工具与环境完全可以实现系统的开发,因此具有技术上的可行性。(3) 管理的可行性:主要是管理人员是否支持,现有的管理制度和方法是否科学,规章制度是否齐全,原始数据是否正确等。系统的开发主要就是为了方便选题信息的管理,补充现在传统管理方式的不足,因此具备了管理上的可行性。综上所述,系统开发目标已明确,在技术和经济等方面具备可行性,投入少、见效快,因此系统的开发是完全可行的。3.2 功能需求分析在可行性分析阶段已经简要地分析和研究了本系统的基本需求,也论证了开发平台及软件的可行性,但为了明确系统设计的目标,了解用户的需求,现对用户需求作以调研,从而进一步明确所要实现的各子系统的需求。分析得出:在毕业论文选题工作中分为三种用户,即系统管理员、指导教师、学生。系统管理员审核指导教师和学生资格;指导老师发布选题;学生选题等功能。要完成一个分工合理、控制严格的毕业论文选题系统,首先要对每个用户需要完成哪些工作了如指掌。系统管理员的任务是系统设置(设置系统标题、本届年度、学生限选个数) ;数据字典维护等。指导教师发布选题(需要审核)和学生的确选;学生浏览和预选本专业选题。73.2.1 功能结构图毕业设计选题系统系统管理员指导老师学生学生管理教师管理选题管理修改资料和密码查看选题发布选题审核选题修改资料和密码查看教师和课题个人选题管理文件文件注册页面教师注册学生注册审核图 3-1 系统功能结构图3.3 系统建模3.3.1 UML 语言简介统一建模语言 UML(Unified Modeling Language)是第三代用来为面向对象开发系统的产品进行说明、可视化和编制文档的标准表示。UML 并非一种可视化的程序设计语言,而是一种可视化的建模语言;它不是工具或知识库的规格说明,而是一种建模语言规格说明,是一种标准的表示;它不是过程,也不是方法,但允许任何一种过程和方法使用它。建立简明准确的表示模型是把握复杂系统的关键。模型是对事物的一种抽象,人们常常在正式建造实物之前,首先建立一个简化的模型,以便更透彻地了解它的本质。使用模型可使人们从全局把握系统的全貌及其相关部件之间的关系,可以防止人们过早的陷入各个模块的细节。因此,建模是毕业论文选题系统数据库设计的重要部分。3.3.2 角色的确定在 UML 中,系统作用者代表位于系统之外和系统进行交互的一类对象。用它可以对软件系统与外界发生的交互进行分析和描述。当软件投入进行时,它必然和外界发生交互,系统作用者是软件系统在和外界发生交互时涉及的具体对象,在 UML 中就是用系统作用者来建模的。在毕业论文选题系统中,可以归纳出的主要问题有:(1)系统管理员审核本院系的学生和老师的资格;(2)老师出题和审核学生选题;(3)学生预选,老师确选。8从上面所归纳的问题可以看出,本系统所涉及的操作主要是:用户的开户和选题的操作流程。因此,在本系统的 UML 建模中,可以创建以下角色:(1)系统管理员(2)指导教师(3)学生3.3.3 创建用例指定了与软件系统交互的系统作用者之后,就需要详细的描述系统作用者和软件系统交互的具体内容。在 UML 中,软件系统的功能和其代表的动态行为是用用例来建模的。用例代表系统为响应系统作用者引发的一个事件而执行的一系列处理,而且这些处理应该为系统作用者产生一种反馈。在本系统的 UML 建模中,可以创建以下用例:(1)指导教师和学生注册;(2)选题记录录入、修改、审核;(3)文件上传、下载;(4)学生选题,老师确选;3.3.4 创建角色与用例关系图(1)系统管理员用例关系图如图 3-2 所示:admin审核学生删除学生审核老师删除老师审核课题删除课题图 3-2 系统管理员的用例关系图(2)指导教师用例关系图如图 3-3 所示: 老师修改信息查询信息发布课题审核课题上传文件图 3-3 指导教师的用例关系图(3)学生用例关系图如图 3-4 所示:9 学生修改信息查询信息选题查询教师上传文件图 3-4 学生的用例关系图3.4 数据库设计3.4.1 数据库设计原则数据库设计是计算机管理信息系统中很重要的部分,设计质量的好坏、数据结构的优劣之间影响到管理数据库的成绩。数据库设计的基本原则是在系统总体信息方案的指导下,各个数据表应当为它所支持的管理目标服务,在设计数据库系统时,应当重点考虑一下几个因素:数据库必须层次分明,布局合理。数据库必须高度结构化,保证数据的结构化、规范化和标准化。这是建立数据库和进行信息交换的基础。数据结构的设计应该遵循国家标准和行业标准,尤其是应重视编码的应用。在设计数据库时,一方面要尽可能的减少冗余度,减少存储空间的占用,降低数据的一致性问题发生的可能性;另一方面,还要考虑适当的冗余,以提高运行速度、降低开发难度。必须维护数据正确的正确性和一致性,在系统中,多个用户共享数据库,由于并行开发操作,可能影响数据的一致性,因此必须用加锁等办法保证数据的一致性。3.4.2 系统数据库 E-R 图。学生选题学号姓名题库录取老师管理Admin老师号姓名11n1m1图 3-5 系统总 E-R 图10学生资格状态电话号码邮箱密码学号名字专业性别毕业设计名称班级图 3-6 学生 E-R 图老师编号状态电话号码职称密码教研室名字图 3-7 老师 E-R 图Admin密码编号名字图 3-8 Admin E-R 图题库编号上传人Url地址资料名称老师编号图 3-9 题库 E-R 图3.4.3 数据库表清单下面将部分重要的数据库表详细清单列出表 3.1:选题表序号序号列名列名数据类型数据类型长度长度小数位小数位标识标识主键主键允许空允许空默认值默认值说明说明1编号varchar500是否选题 id2Zhidaolaoshivarchar500否出题教师3ketivarchar500否选题名称4jiaoyanshivarchar500否教研室5Zongrenshuint200是总人数116Zigeint20否资格7Xueyuanvarchar160否学院8Teacheridvarchar500否老师编号9Miaoshutext1000(0)描述表 3.2:select_true(学生选题表)序号序号列名列名数据类型数据类型长度长度小数位小数位标识标识主主键键允许允许空空默认值默认值说明说明1Sidvarchar500是否学生 id2namevarchar500否学生姓名3passwordvarchar500否密码4sexvarchar500否性别5banjivarchar500否班级6zhuanyevarchar500否专业7Dianhuavarchar500否电话8E_mailvarchar500否邮箱9biyeshengjimingchengvarchar1000否毕业的设计名称10zhuangtaivarchar500否状态11zigevarchar500否资格表 3.3:teacher_inf(教师表)序号序号列名列名数据类型数据类型长度长度小数位小数位标识标识主键主键允许空允许空默认值默认值说明说明1bianhaovarchar200是否老师编码2mimanvarchar200否老师姓名3tnamenvarchar200否教研室 id4zhichangnvarchar200否老师职称5jiaoyanshiint40是限带人数6dianhuanvarchar500是手机7zhuangtainvarchar300是Email表 3.4:admin_table(系统管理员表)序号序号列名列名数据类型数据类型长度长度小数位小数位标识标识主键主键允许空允许空默认值默认值说明说明1sivarchar500是否编号2namevarchar500是用户名3passwordvarchar500是密码3.5 系统模块设计对毕业论文选题系统进行系统分析、数据库设计之后,本章将主要介绍系12统各功能模块的设计及其实现。软件所实现的功能强弱是衡量一个软件的最根本的标准。通过对系统的全面分析并结合调研的情况,确定了本系统的功能模块图。本章先从系统总体结构设计介绍,接着分别对公用模块、客户界面、管理对功能模块加以描述。登录主界面学生登录教师登录Admin登录图 3-10 系统总体结构图根据系统的功能分析可以画出系统的功能结构图,分别从系统管理员、指导老师、学生对功能模块图加以描述。3.5.1 admin 管理模块系统管理员主要负责对系统参数的设置和为系部管理员开户。主要流程为管理员管理:添加、修改、删除管理员信息,并对登录账号的密码和安全保密提示问题的设置。系统设置:在系统设置中可以对系统标题、当前毕业生届、是否向学生开放系统、学生最多预选选题个数进行设置。系院及专业设置:系统管理员可以完成系别和专业的添加、修改、删除操作。教师管理:查看、添加、修改教师信息,可按照系别、教研室、姓名检索教师。学生管理:学生管理分往届学生管理和当前届学生管理,可以添加、修改、删除当前届学生信息。选题管理 本届选题列表:列出本届所有选题,可以按照选题所属专业、选题方向、选题内容、选题关键字进行查看,可以添加、修改、删除选题(修改和删除在没有学生选的情况下可用) 。 学生选题情况:列出当前届每个系部的总选题数、总学生数、选题与学生的百分比、已确选学生数、未选题学生数、完成百分比。文件管理:发布重要文件、对上传的文件进行管理、查看所有登录日志记录。3.5.2 指导教师管理模块指导老师发布选题以及对选择自己选题的学生进行审核确选。个人中心:教师登录后可以更改个人信息,这样可以方便学生在选题时了解教师研究内容和方向以及联系方式;及时更改登录密码及保密安全提示问题和答案以便忘记密码时重设密码。选题管理 本届选题列表:列出该老师所有选题,可以添加、修改、删除选题(修改和删除在没有学生选的情况下可用) 。13 添加选题:输入要添加选题的名称,选择选题难度、方向、限选专业以及选题要求。 我的所有选题:查看所出的所有选题,按毕业届排序显示。 已有选题查询:查询已经存在的选题,避免所出选题跟其他老师的类似。学生选题情况:查看本届所有选该老师选题的学生,考核学生是否合符要求,并对学生的选题确选,可查看所带学生。文件管理:上传文件、下载文件、查看所有登录日志记录。留言管理:阅读留言、发布通知或消息。3.5.3 学生选题模块学生用户所需功能较少,主要功能有:修改个人资料及密码;选题查看及选择、退选。个人中心:学生登录后可以更改个人信息,这样可以方便教师在确定学生时了解学生的专业兴趣及特长。以及修改登录密码及安全保密问题。查看自己已经选过的选题,系统初始化最多可预选多少个,删除不适合自己的选题,老师确选过的选题,则不可以再删除。开始选题:查询可供自己选的所有选题,并选择自己感兴趣的。可以导出所有选题到本地 excel 文件,以便在断网时慢慢考核是否适合自己。学生选题情况:查看本届所有选该老师选题的学生,考核学生是否合符要求,并对学生的选题确选,可查看所带学生。文件管理:上传文件、下载文件、查看所有登录日志记录。留言管理:阅读通知留言、咨询留言。3.5.4 选题流程系统管理员初始化系统参数,如:系统标题、是否向学生开放系统、学生可预选选题个数;维护数据字典。 老师登录系统添加选题。系管理员审核选题,审核完成后通知学生进行选题,并告知教师在此时间确定学生。学生登陆系统开始选题,并与指导老师联系,协商选题。指导老师审核学生的选题。汇总输出报表。14第四章 系统实现及相关代码4.1 开发工具Java 平台: Jsp数据库服务器: MS SQL Server 2005编程语言: JAVA网页制作与修饰: DreamWeaver2008图片美工: Photoshop CS6编程工具: Myeclips4.2 主要功能算法实现4.2.1 学生选题功能实现当学生执行选题操作,程序启动选题程序,并且执行选题程序,执行完成后返回执行结果。选题执行程序算法如图 4-1 所示。开始结束 根据学号查询出可选择的题目学生是否选过题?学生点击选题按钮选题把学生选题状态改为1,选题成功修改数据库数据库修改成功?返回修改成功信息弹出选题失败信息图 4-1 学生选题算法流程图4.2.2 老师审核功能实现当老师查询到有学生选择并且等待录取的题目信息后,老师就可以执行录取操作,当老师点击“审核”按钮后,录取程序启动,并且返回执行结果。录取算法如图 4-2 所示。15老师审核学生选题开始 学生根据学号查询出可选择的题目把学生选题状态改为1,选题成功修改数据库返回修改成功信息结束图 4-2 老师录取算法流程图4.2.3 admin 模块功能实现admin 模块是系统管理模块,进入 admin 模块后通过选择操作功能来进入每个子功能页面来实现其功能。具体的程序流程图如图 4-3 所示。学生信息管理开始系统管理结束题库信息管理老师信息管理图 4-3 admin 模块程序流程图164.3 系统主要页面实现4.3.1 学生个人信息页面在如图所示的页面中,用户可以在该界面中在“个人信息”中可以修改自己的个人信息。代码如下:package com.login;import java.io.IOException;import java.io.PrintWriter;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.db.DBmanage;public class xueshengshow extends HttpServlet /* * The doGet method of the servlet. * * This method is called when a form has its tag value method equals to get. * * param request the request send by the client to the server * param response the response send by the server to the client * throws ServletException if an error occurred17 * throws IOException if an error occurred */public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException response.setContentType(text/html);PrintWriter out = response.getWriter();this.doPost(request, response);out.flush();out.close();/* * The doPost method of the servlet. * * This method is called when a form has its tag value method equals to post. * * param request the request send by the client to the server * param response the response send by the server to the client * throws ServletException if an error occurred * throws IOException if an error occurred */public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException response.setContentType(text/html);PrintWriter out = response.getWriter();String ss=request.getSession().getAttribute(sid)+;response.setContentType(text/html);String z=DBmanage.xueshengshow();/String sid=request.getParameter(sid);Connection conn=null;tryPreparedStatement pdk;try pdk = conn.prepareStatement(z);pdk.setString(1, ss);ResultSet sh=pdk.executeQuery();while(sh.next()System.out.println(fadsfdsfsafsd);out.write( +sh.getString(1)+rn); out.write ( +sh.getString(2)+rn);18out.write( +sh.getString(4)+rn);out.write(rn);out.write( rn);out.write( rn);out.write( rn);out.write( 学号rn);out.write( 姓名rn);out.write( 密码rn);out.write( 性别rn);out.write( 班级rn);out.write( 专业rn);out.write( 电话rn);out.write( e-mailrn);out.write( 毕业设计题目rn);try conn = DBmanage.getconn(); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace();String sss=DBmanage.xueshengshow1();PreparedStatement pdg=conn.prepareStatement(sss);pdg.setString(1, ss);ResultSet ra = pdg.executeQuery();while(ra.next()out.write( rn);out.write( +ra.getString(1)+rn);out.write( +ra.getString(2)+rn);out.write( +ra.getString(3)+rn);out.write( +ra.getString(4)+rn);out.write( +ra.getString(5)+rn);out.write( +ra.getString(6)+rn);out.write( +ra.getString(7)+rn);out.write( +ra.getString(8)+rn);out.write( +ra.getString(9)+rn);out.write( 修改rn);out.write( rn); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();out.flush();out.close();finally4.3.2 教师个人信息页面204.3.3 课题选择页面在如图所示的页面中,用户可以课题选择中查看所有的本学院的毕业设计题目,如对哪个题目感兴趣就可以点击课题名进行课题具体信息的查看,如有感觉自己可以完成则可以点击选中按钮尽心选题,注意选题只能选一次,不得推选。代码如下:package com.login;import java.io.IOException;import java.io.PrintWriter;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.db.DBmanage;public class ketishow2 extends HttpServlet private static String sid=;public String setsid(String sid)this.sid=sid;return sid;public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException this.doPost(request, response);response.setContentType(text/html);PrintWriter out = response.getWriter();21out.flush();out.close(); public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException boolean b=Boolean.getBoolean(request.getSession().getAttribute(islogin)+);if(b)response.sendRedirect(index.jsp);response.setContentType(text/html);response.setCharacterEncoding(GBK);/页面输出地文本格式PrintWriter out = response.getWriter();Connection conn=null;outi.write(rn);out.write( rn);out.write( rn);out.write( rn);out.write( 课题编号rn);out.write( 课题名称rn);out.write( 指导老师rn);out.write( 职称rn);out.write( 教研室rn);out.write( 总人数rn);out.write( 已选人数rn);out.write( 学院rn);System.out.println(aaaaaa000000+this.sid);String si=(String) request.getSession().getAttribute(sid); if(si.substring(0,4).equals(0405)String xueyuan=信息工程学院;try 22conn = DBmanage.getconn();/String xueyuan=信息工程学院;String a=DBmanage.ketishow();PreparedStatement pdf=conn.prepareStatement(a);pdf.setString(1, xueyuan);ResultSet rs = pdf.executeQuery();while(rs.next() out.write( rn);out.write( +rs.getString(1)+rn);out.write( +rs.getString(2)+rn);out.write( +rs.getString(3)+rn);out.write( +rs.getString(4)+rn);out.write( +rs.getString(5)+rn);out.write( +rs.getString(6)+rn);String r=DBmanage.chakanyixuanrenshu();PreparedStatement pds=conn.prepareStatement(r);pds.setString(1, rs.getString(1);ResultSet ww=pds.executeQuery();while(ww.next()out.write( +Integer.parseInt(ww.getString(1)+rn)out.write( +rs.getString(7)+rn);out.write( +选中rn);out.write( rn);String s=DBmanage.quanxian1();PreparedStatement pp=conn.prepareStatement(s);pp.setString(1, sid);ResultSet ss=pp.executeQuery();if(ss.next()out.write( +选中修改srn);out.write( rn);23 catch (Exception e) / TODO Auto-generated catch blockse.printStackTrace(); finally try conn.close(); catch (Exception e) e.printStackTrace();out.flush();out.close();String xueyuan=null;if(si.startsWith(1408)xueyuan=数控工程学院;else if(si.startsWith(0201)xueyuan=机械工程学院;else if(si.startsWith(0305)xueyuan=电气工程学院;else if(si.startsWith(0101)xueyuan=材料工程学院;else if(si.startsWith(0502)xueyuan=工商管理学院;else if(si.startsWith(0804)xueyuan=物流管理学院;else if(si.startsWith(1002)xueyuan=纺织染化学院;else if(si.startsWith(0901)/输出提示对话框xueyuan=服装艺术学院;else if(si.startsWith(0705)/输出提示对话框xueyuan=土木工程学院;elsereturn;try conn = DBmana
展开阅读全文