毕业设计( 信息)管理系统_第1页
毕业设计( 信息)管理系统_第2页
毕业设计( 信息)管理系统_第3页
毕业设计( 信息)管理系统_第4页
毕业设计( 信息)管理系统_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

分类号:TP3学校代码:11460学号:05413206南京晓庄学院本科生毕业论文

毕业设计(论文)信息管理系统InformationManagementSystemofGraduationDesign(Thesis)所在院(系):信息技术学院学生: 沙亚金指导教师:谢静研究起止日期:二○○八年十二月至二○○九年五月二○○九年五月

学位论文独创性声明本人郑重声明:坚持以“求实、创新”的科学精神从事研究工作。本论文是我个人在导师指导下进行的研究工作和取得的研究成果。本论文中除引文外,所有实验、数据和有关材料均是真实的。本论文中除引文和致谢的内容外,不包含其他人或其它机构已经发表或撰写过的研究成果。其他同志对本研究所做的贡献均已在论文中作了声明并表示了谢意。作者签名:日期:年月

摘要21世纪是信息技术的社会,特别是计算机网络技术。多媒体技术和信息高速公路的空前发展,已对社会的经济、文化、教育等产生深远影响。当前,各学校从提高学校办学效率和增强学生信息获取与处理能力的培养方面考虑加大校园网络建设,随后基于校园网的应用和管理系统的开发也开始蓬勃发展,并发挥着巨大的作用,校园数字化的软件设施也越来越完善。毕业设计(论文)作为高校教育工作的重要组成部分,在网络化、数字化方面却进展的非常缓慢,甚至有许多院校至今还延用着以班级为单位来报送选题信息的选题方式。毕业设计(论文)选题工作的网络化有着非常重要的意义,它不仅实现了时间和人力上的节省,同时也是校园数字化的重要阶段,选题系统网络化的意义旨在给老师、学生提供一个无时间、无地域限制的虚拟空间,并且将之前靠手工操作完成的任务无缝的转移到网络平台上完成。关键词:毕业设计(论文)信息管理系统;校园数字化;在线选题系统

AbstractAtpresent,collegesanduniversitiesareconsideringstrengtheningtheconstructionofcampusnetworksoastoimprovetheefficiencyofrunningschoolsandintensifyinformationacquisitionandhandlingability.Withtheapplicationofcampusnetworkandthedevelopmentofmanagementsystem,thesoftwareinfrastructureforcampusdigitalizationwillbeimprovingbetterandbetter.Thecampusnetworkwillplayagreatrolewithboomingdevelopment.GraduationDesign(Thesis),animportantpartofuniversityeducation,isratherunprogressiveinnetworkinganddigitalization.Somecollegesanduniversitiesstillmaintaintheprimarywayoftitleselectionbysubmittingtopicsinclasses.ItisofvitalimportancetoimplementnetworkinthetitleselectionofGraduationDesign(Thesis),aimingtoofferteachersandstudentsavirtualspacewithouttimeanddistrictlimitsothattheycanfulfilltheirtasksonthenetworkeasilyandconveniently.Itwillbeasignificantpartintheprocessofcampusdigitalizationwiththeeffectofsavingtimeandmanpower.Keywords:InformationManagementSystemofGraduationDesign(Thesis);campusdigitalization;Onlineselectionsystem

目录第一章绪论 11.1研究背景 11.2论文所做的工作 21.2.1前期工作 21.2.2学生模块分析 21.2.3教师模块分析 21.2.4管理模块分析 31.3本文的组织结构 3第二章系统开发环境介绍 42.1Apache简介 42.2MySQL简介 42.3PHP简介 52.4系统运行环境安装 72.4.1安装ApacheHTTPServer服务 72.4.2安装MySQL数据库 72.4.3安装libxml环境 82.4.4安装PHP开发环境 92.4.5XDebug环境安装 92.5Apache服务配置 10第三章系统分析与设计 123.1需求分析 123.2总体设计 123.2.1学生模块 133.2.2教师模块 133.2.3管理员模块 143.3系统流程图 153.4数据库设计 163.4.1数据安全性说明 163.4.2系统实体-关系图(E-R图) 173.4.3数据库及数据表设计 17第四章系统功能的具体实现 224.1系统界面设计 224.2程序编码 264.2.1系统的公共文件(global.php) 264.2.2数据库操作类(class/db.php) 274.2.3分页显示类(class/page.php) 274.2.4用户登录时的AJAX技术 284.2.5输入提示功能的实现 294.2.6伪静态页面的实现 294.2.7管理员数据导入的实现 304.3系统调试与排错 314.3.1系统显示乱码问题 314.3.2并发访问控制问题 32第五章总结与展望 33致谢 34参考文献 35南京晓庄学院2009届本科毕业论文 -PAGE35- 南京晓庄学院2009届本科毕业论文-PAGE1-第一章绪论1.1研究背景Internet的普及和应用使人们的现代生活方式发生了深刻的变化,学校总是处于接受新知识的最前沿地带。全国各院校也加快了信息化建设步伐,并且建立了自己的校园网,这为校园数字化的发展提供了必要的物质基础。于是针对校园网的应用和管理系统的开发也开始了蓬勃发展,并发挥着巨大的作用,校园数字化的软件设施也在一步步的完善中。在需求和技术的推动下,毕业生以班级为单位的原始手工报送选题的方式,暴露出了很多缺点和不足:出现不公平现象(因为每个论文题目的人数都会有所限制),这样以班级为单位的手工选课方式就会出现一些选题速度快的班级把某些题目选满了,导致其它班级不能对其进行选题;消耗时间较长,管理者需要等待所有班级将选题报送上来后才能进行统计;管理工作更复杂,管理者在收到班级保送上来的选题报名后必须逐条的进行筛选,然后将不符合选题条件的学生安排进行再第二次选题。近年来出现的网上毕业设计课题系统是以院(系)为单位,在网上进行选题,学生选题主要是以时间先后为依据,虽然改变了以往以班级为单位的原始手工选课的方式,采用网上选题方式,便捷了学生和指导老师,提高了工作效率,但是还是存在如下不足:(1)学生抢选现象,有些选题比较简单,则会发生很多人不约而同的选这一个选题,导致的结果就是真正想研究该课题的学生没选上;(2)指导教师对选题结果不满意,因为在选题过程中教师无法控制选题结果,很有可能学生的专业特长与自己的研究方向不一致;(3)突发数据访问量很大,选题管理者为了能让学生同时选题,可能规定某一时间开启选题系统,那么开启系统的瞬间,会有大量的数据访问请求涌入服务器,当数据量到一定的程度的时候很有可能成为网络中很难防范的分布式拒绝服务攻击(DDoS),这样就必然造成了安全隐患;前两种选题方式最大的缺点就是存在不公平现象,当然这个不公平不仅是发生在学生方面,教师方面也很可能因为该选题的学生的专业特长与自己的研究方式不一致而造成论文指导方面的困难。所以我们需要一种新的选题方式,解决前两中选题方式的弊端。教师-学生双向选择型的毕业设计(论文)信息管理系统延续了第二代选题系统的B/S架构。在选题的流程上分成了两个阶段,第一阶段是根据管理者安排的时间及选题配额限制来进行学生选择有意向的课题及指导老师的操作;第二个阶段是教师在学生选题的基础上来选择最符合自己课题要求的学生来完成该选题。1.2论文所做的工作为了了解毕业设计(论文)信息管理系统的功能需求以及寻找较为完善的系统操作流程,在系统设计之前为系统的设计做了许多的资料收集和功能需求调研工作。1.2.1前期工作为了能够将系统的功能做的更完善,在系统设计的前期阶段先从一些资深的毕业设计(论文)管理老师那详细的了解选题的发展里程以及毕业选题的整个流程,也从参考文献中收集了一些毕业设计(论文)的发展趋势。从各方面的需求来分析毕业(设计)信息管理系统走向网络化已经是可行的,并且大家更渴望的是一个简单、易管理、易操作的在线选题系统。毕业设计(论文)信息管理系统需要结合常规的C/S的功能以及B/S的功能,从技术角度分析该系统完全具备可行性。从经济角度分析,该系统的运行成本以及维护成本几乎为0,而传统的毕业(论文)信息管理,不仅在人力资源上造成浪费,而且很容易发生不公平选题的情况。而且网络化的信息管理系统更加的节约了大家的时间。1.2.2学生模块分析毕业设计(论文)信息管理系统中的三个基本实体之一就是学生,学生在本系统中担任的角色不单单是进行选题,更需要将自己的专业特长,通过个人简历的方式展现出来给老师看。所以系统在设计的过程中不仅要考虑学生的选题信息,更重要的是如何做好学生的个人简历展示。以及如何给学生提供一个想老师展示自己的通道。学生模块的设计还应当考虑自己的选题信息无何准确无误的提交到让老师看到,并且如何同老师进行在线的交流。1.2.3教师模块分析教师是本系统的另一个主要实体,教师应当可以在本地提交选题的题目,并在线填写论文审批表的内容然后生成WORD文档供学生下载。并且可以随时查看选题的进展情况,系统能够根据选题的状态准确的给出相应的导航信息。既然是双向选择的毕业设计(论文)信息管理系统,那么老师也必然得提供自己的相关研究方向供学生做参考。1.2.4管理模块分析管理员充当着整个系统的调度员,拥有对整个系统的配置,控制,管理的权限。首先需要掌握系统当前的运行状态以及相关的设置信息,并且能够方便的来控制系统的选题开始时间和结束时间,并且能够根据服务器的配置修改系统的参数。其次需要及时的将学生的基本信息以及教师的基本信息还有论文审批表信息导入数据库,并且能够进行管理操作。在任意时间,管理员可以将系统中当前的学生信息,教师信息或者选题进展信息根据自己的需要来导出并进行审核。为了防范数据的丢失或者错误,管理者应该可以对数据库的数据或者单个表的数据进行备份,恢复操作。1.3本文的组织结构第一章绪论部分介绍了系统的研究背景,对高校毕业设计选题操作过程的发展做了阐述,对传统的人工选题,以及第一阶段的网上选题系统进行了分析,并指出不足。引出开发双向选择型的毕业论文选题系统的必要性,这也是当前我校实现数字化校园的一个部分。第二章介绍系统开发的环境介绍,前三节分别分析了Apache服务器,

MySQL数据库,PHP语言在当代B/S系统应用中的优势,第四节详细描述了如何在Linux环境下搭建Apache+MySQL+PHP+XDebug环境,第五节分析了Apache服务器环境中的一些常用配置,以及系统需要使用的一些环境配置。第三章系统分析与设计,首先对系统进行需求分析,将系统前期工作中收集的功能需求进行整理,并分析功能的可行行以及可实现性。然后按教师,学生,管理员三个模块进行整合,分离出其中的公用部分,然后进行模块的设计。确定系统使用的字符编码,并进行数据库构架,第四章系统具体功能的实现,在第三章的基础上进行页面布局以及程序编写,先将系统的完整性检查文件,以及公用的文件完成,然后再将数据库操作和分页操作进行抽象化,进行类的编写。最后再进行各个模块进行程序设计。第五章总结与展望,阐述了系统开发过程中自身的收获,不仅是在专业技能方面的收获,也包在对开发思想上的提高,然后描述了该系统可以改进以及完善的地方。

第二章系统开发环境介绍2.1Apache简介Apache是世界排名第一的web服务器,根据netcraft(sraft.co.uk)所作的调查,截止到08年6月全球使用Apache服务器已经达到172338726个.1995年4月,最早的Apache(0.6.2版)由Apachegroup公布发行.Apachegroup是一个完全通过Internet进行运作的非盈利机构,由该机构来决定Apacheweb服务器的标准发行版中应该包含哪些内容.准许任何人修改隐错,提供新的特征和将它移植到新的平台上,以及其它的工作.当新的代码被提交给Apachegroup时,该团体审核它的具体内容,进行测试,如果认为满意,该代码就会被集成到Apache的主要发行版中.Apache的特性:1)几乎可以运行在所有的计算机平台上.2)支持最新的http/1.1协议3)简单而且强有力的基于文件的配置(httpd.conf).4)支持通用网关接口(CGI)5)支持虚拟主机.6)支持http认证.7)集成perl.8)集成的代理服务器9)可以通过web浏览器监视服务器的状态,可以自定义日志.10)支持服务器端包含命令(ssi).11)支持安全socket层(ssl).12)具有用户会话过程的跟踪能力.13)支持fastcgi14)支持javaservlets.2.2MySQL简介数据库在信息在信息系统的一直起着非常重要的作用,也是一个非常重要的研究对象。然而,随着WorldWideWeb(WWW)及Internet技术的迅速发展,数据库技术成为最热门技术之一。Internet技术提供了一种向用户发布数据库内容的标准化的访问方法。这些技术没有脱离经典数据库技术的要求,它们只是加重了数据库技术的重要性。MySQL是一个备受欢迎的高性能、多用户、多线程SQL数据库服务器,它是一个客户机/服务器结构的实现,由一个服务器守护程序MySQL和多种不同的客户程序及库组成。它由MySQLAB开发、发布和支持。MySQLAB是一家基于MySQL开发人员的商业公司,它是一家使用了一种成功的商业模式结合开源价值和方法论的第二代开源公司,MySQL是MySQLAB的注册商标。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass-deployed)的软件中去。MySQL网站()提供了关于MySQL和MySQLAB的最新的消息。MySQL主要特征:(1)多线程,MySQL的核心程序采用完全的多线程编程。线程是轻量级的进程,它可以灵活地为用户提供服务,而不过多的消耗系统资源。用多线程和C语言实现的MySQL能很容易充分利用CPU,可以采用多CPU体系结构。(2)开放源代码,MySQL是自由的开放源代码产品,可以在GPL下畅通使用。(3)多操作系统支持,MySQL可以支持WindowsNT/200/XP及UNIX、Linux和SUNOS等多种操作系统平台。这意味着在一个操作系统中实现的应用可以很方便地移植到其他的操作系统下。(4)性能高效稳定,MySQL拥有一个非常快速而且稳定的基于线程的内存分配系统,可以持续使用而不必担心其稳定性。(5)多用户支持,MySQL可有效地满足50~1000个并发用户的访问,并且在超过600个用户限度的情况下,MySQL的性能没有明显的下降。(6)应用程序支持,有C、C++,JAVA、Perl、PHP和Python等多种客户工具和API的支持。(7)支持事务处理、行锁定、子查询、外键和全文检索等功能。(8)MySQL支持大型的数据库处理,可以方便地支持上万条记录的数据库。作为一个开放源代码的数据库,MySQL可以针对不同的应用进行相应的修改。(9)MySQL有一个非常灵活而且安全的权限和口令系统。当客户与MySQL服务器连接时,他们之间所有的口令传送被加密,而且MySQL支持主机认证。2.3PHP简介PHP是一种可以运行在多种硬件和操作系统环境下的动态网页设计语言,它与Linux、Apache服务器以及MySQL的组合是目前最流行的Web应用平台。PHP源于名为PHP/FI的工程。PHP/FI是由RasmusLerdorf在1995年创建的,最初只是一套简单的Perl脚本,取名为“PersonalHomePageTools”,用来跟踪访问其主页的用户信息。随着功能需求的增加,Rasmus用C语言实现了新版本。它可以访问数据库,可以让用户开发简单的动态Web程序。Rasmus公开了PHP/FI的源代码,同时允许其他人修正bug并改进源代码。1997年,C语言实现的第2版PHP/FI2.0在全世界已经有几千个用户和大约50000个域名安装,大约是因特网所有域名的1%。在经历了数个beta版本之后,1997年11月发布了PHP/FI2.0官方正式版本。AndiGutmans和ZeevSuraski在开发电子商务程序时发现PHP/FI2.0功能明显不足,于是他们重写了代码,这就是PHP3.0。经过Andi、Rasmus和Zeev的努力,考虑到PHP/FI已存在的用户群,他们决定联合发布PHP3.0作为PHP/FI2.0的官方后继版本。PHP3.0是类似于当今PHP语法结构的第一个版本。它的最大特点是可扩展性——除了给最终用户提供数据库、协议和API的基础结构之外,还吸引了大量的开发人员提供新模块。1998年底,PHP的用户接近10000,有大约100000个网站使用了PHP。在PHP3.0最流行的时候,因特网上有10%的Web服务器上都安装了PHP。约9个月的公开测试后,于1998年6月正式发布了PHP3.0。2000年5月22日,PHP4.0发布。该版本对PHP的体系结构做了一些基本修改,包括将语言和Web服务器之间的层次抽象化、加入了线程安全机制、加入了更先进的两阶段解析与执行标签解析系统。这个新的解析程序是由ZeevSuraski和AndiGutmans编写的,命名为Zend引擎。2004年7月13日,PHP5.0发布。该版本使用Zend引擎Ⅱ,并且加入了一些新功能,如PHPDataObjects(PDO)。PHP最强大最显著的特性是支持多种数据库。目前,PHP支持的数据库如表2-1所示。表2-1

PHP支持的数据库AdabasDIngresOracledBaseInterBaseOvrimosEmpressFrontBasePostgreSQLFilePro(只读)mSQLSolidHyperwaveDirectMS-SQLSybaseIBMDB2MySQLVelocisInformixODBCUNIXdbmPHP与ASP,JSP的比较

1)运行环境:ASP只能在Windows环境和IIS服务器中使用,而PHP和JSP都支持多种操作系统和Web服务器。

2)执行效率:JSP优于PHP和ASP。

3)稳定性:PHP和JSP比ASP更稳定。

4)函数支持:PHP提供了更多的函数。

5)系统安全:PHP和JSP的安全性比ASP高。

6)使用的广泛度:使用PHP的站点多于使用ASP和JSP的站点。

7)学习的难易度:PHP和ASP比JSP更容易学习。2.4系统运行环境安装2.4.1安装ApacheHTTPServer服务Apache的作用基本等同于Windows下的IIS,相对较容易安装。首先在Apache的官方网站上下载一个版本。下载地址:/同时官方网站上也提供了在线文档,一般情况下这样的在线问档可以为解决安装配置过程中遇到的问题,并且有利于优化系统的配置。在线文档地址:/docs/2.0/(1)解压缩#gunziphttpd-2.2.4.tar.gz#tar-xvfhttpd-2.2.4.tar(2)配置、安装进入httpd-2.2.4文件夹下,输入#./configure--prefix=/usr/local/apache2--enable-module=so//配置Apache的安装路径(3)等配置结束后,进行编译,安装。#make;makeinstall(4)启动安装完成后就可以尝试启动Apache。/usr/local/apache2/bin/apachectlstart//Apache启动/usr/local/apache2/bin/apachectlrestart //Apache重启/usr/local/apache2/bin/apachectlstop //Apache停止2.4.2安装MySQL数据库安装MySQL时,如果用已经编译过的安装包,在安装后会出现不能连接数据库的情况,所以在安装时应当选择未编译过的安装包。地址:/LAMP/(1)解压缩#gunzipmysql.tar.gz#tar-xvfmysql.tar(2)配置、安装进入mysql文件夹下,输入#./configure--prefix=/usr/local/mysql //配置MySQL的安装路径等配置结束后,进行编译,安装。#make;makeinstall(3)启动先把基本数据库装好,进入/usr/local/mysql,输入#./bin/mysql_install_db#groupaddmysql#useradd-gmysqlmysql#chown-Rroot/usr/local/mysql#chgrp-Rmysql/usr/local/mysql#chown-Rmysql/usr/local/mysql#chown-Rmysql/usr/local/mysql/var#chown-Rmysql/usr/local/mysql/var/mysql/.然后启动MySQL服务/etc/init.d/mysqldstart2.4.3安装libxml环境因为安装的是Apache2,所以要安装libxml环境一、安装libxml(1)解压缩#gunziplibxml2-2.6.26.tar.gz#tar-xvflibxml2-2.6.26.tar(2)配置、安装进入libxml2-2.6.26文件夹下,输入#./configure--prefix=/usr/local/libxml2等配置结束后,进行编译,安装。#make;makeinstall2.4.4安装PHP开发环境PHP源代码包下载地址:/downloads.php(1)解压缩#gunzipphp-5.2.1.tar.gz#tar-xvfphp-5.2.1.tar(2)配置、安装进入php-5.2.1文件夹下,输入#./configure--prefix=/usr/local/php\--with-apxs2=/usr/local/apache2/bin/apxs\--with-mysql=/usr/local/mysql\--with-libxml-dir=/usr/local/libxml2配置结束后,进行编译,安装。#make;makeinstall2.4.5XDebug环境安装PHP的Xdebug扩展可以帮助在程序出错或失败时剖析应用程序以查找原因。我们可以使用Xdebug跟踪调用堆栈、分析内存使用情况并查看参数和变量。安装xdebug的过程相对简单,具体过程如下:wget/link.php?url=xdebug203tar-xvzfxdebug-2.0.3.tgzcdxdebug-2.0.3/usr/local/php/bin/phpize./configure--with-php-config=/usr/local/php/bin/php-configmakemakeinstallvi/usr/local/php/lib/php.ini其中在php.ini中添加:extension="xdebug.so"xdebug.default_enable=Onxdebug.show_exception_trace=Onxdebug.show_local_vars=1xdebug.max_nesting_level=50xdebug.var_display_max_depth=6xdebug.dump_once=Onxdebug.dump_globals=Onxdebug.dump_undefined=Onxdebug.dump.REQUEST=*xdebug.dump.SERVER=REQUEST_METHOD,REQUEST_URI,HTTP_USER_AGENT然后查看phpinfo.php如果看到图2-2则表示XDebug安装成功。图2-2XDebug信息2.5Apache服务配置在前面四步的操作基础上来配置Apache的文件。#vi/usr/local/apache2/conf/httpd.confServerRoot“/usr/local/apache2/”服务文件所在目录Timeout300连接超时时间Listen80服务器监听端口DocumentRoot“/var/www/html”设置网页根文档路径DirectoryIndexindex.htmlindex.php默认首页文件配置并且加载本系统中需要使用的重写模块,并在系统的目录权限中加入文件信息。重新启动Apache。在它默认的放置网页文件的文件夹/var/www/html下建立一个php文件起名info.php编辑一下【viinfo.php】,输入:<?phpphpinfo();?>然后在浏览器中输入http://localhost/phpinfo.php。phpinfo信息如图2-3图2-3phpinfo从phpinfo的信息中我们可以了解到该服务器配置的具体信息,也是管理员判断服务器运行状态的主要依据。

第三章系统分析与设计3.1需求分析 毕业设计(论文)信息管理系统是校园数字化的重要部分,但是至今都没有一套功能成熟、可移植性强的系统能够满足我们的需求。本系统完成后主要有如下功能: 后台管理功能:选题时间预设定:系统可以定时开启和关闭。系统状态设定:可以修改系统的运行状态。教师、学生信息的导入,生成。选题公告、新闻的添加、删除修改。数据库的备份恢复。论文审批表的审核管理。教师模块的功能: 1、教师在线添加选题信息,并通过表单提交要求然后在线生成WORD文档。 2、教师可以查看每个选题的进度信息。 3、教师个人资料的修改。 4、教师与自己指导的学生的消息沟通。学生模块的功能: 1、学生可以查看选题信息,并下载论文审批表,任务书等文档。 2、学生个人资料的修改。 3、在选题时间内进行先选择老师,并有数量限制。 4、学生与指导老师的消息沟通。3.2总体设计本系统实际是学生和教师相互选择的平台,为了使学生和教师能够更简单,更方便的来使用系统,本系统在功能设计以及界面设计上更多的考虑的用户使用体验度。并且为了方便管理员管理,以及其他开发人员在本系统的基础上做二次开发,一方面在后台管理功能上建立了更多的便于操作的功能,以及防错设置。另一方面在系统开发的时候使用的结构化以及面向对象的编程方式,能够让其他开发人员很快的了解系统的程序设计思想。3.2.1学生模块学生作为系统的重要实体之一,其主要功能有:1、选题:在学生没有完成选题的情况下,登录后进入该页面,显示已经选择的题目,以及剩余可选题数目。2、我的选题:这个是学生版块最主要的功能,显示了该选题的进度,以及各阶段需要的操作比如说填写开题报告,生成开题报告等。3、我的信息:本次选题是双向选择的,学生需要填写自己的信息供出题老师来参考,可将自己的专业特长,个人特长,联系方式等写入“我的信息”栏木中,这将会是让出题教师选择你的一个主要依据(双方不太了解的情况下)。4、站内消息:可以发送信息给你的指导教师,以及阅读指导师发送给你的消息。在完成选题的过程中如果遇到困难可以在此发送信息。学生模块的结构图如图3-1图3-1学生模块的结构图3.2.2教师模块教师模块主要功能说明:1、我的选题:显示所有已经添加的选题(未通过审核,已通过审核),以及对选题的论文审批表,任务书的填写,生成,下载预览连接,还有已选题人数等。如图12、进度管理:管理所有已经完成的选题的进度,保持与学生端的进度一致。显示一些主要的信息,目前包括论文审批表,任务书,开题报告等。如图23、我的信息:本次选题是双向选择的,老师需要填写自己的信息供选题学生来参考,可将自己的研究方向,联系方式等写入“我的信息”栏木中,学生到时可以根据你提供的信息来决定是否选择改题(当学生不了解您的研究方向的时候)。如图24、站内消息:可以发送信息给你的指导教师,以及阅读系统,教师发送给你的消息。在完成选题的过程中如果遇到困难可以在此发送信息。教师模块的结构如图3-2图3-2教师模块结构图3.2.3管理员模块管理员的主要功能有:1、学生信息,教师信息管理:可以添加、删除、修改学生的个人信息,可以导入这些用户信息。2、论文审批表导入:可以从后台直接将论文审批表按给定的格式从XLS中导人。3、公告、新闻的管理:可以管理选题公告以及新闻4、系统状态管理:可以管理系统的开启,停止,以及选题开放时间和关闭时间,并根据服务器的设置来决定是否开启登录时使用验证码功能。5、数据的备份和恢复:用于备份数据(可以整个数据库备份或者单个表备份)6、信息导出:将选题的结果信息以及选题的进度信息按筛选条件进行导出管理模块结构如图3-3图3-3管理模块结构图3.3系统流程图在结构上已经将教师,学生,管理员等用户信息分的比较清晰,所以用户操作流程比较方便。具体系统流程如图3-4图3-4系统操作流程3.4数据库设计3.4.1数据安全性说明由于系统涉及到多用户同时操作,所以系统在安全性上面必须遵守严格的要求。1、系统不存在注入漏洞。2、系统不存在并发访问时数据库访问漏洞,避免造成数据错乱。3、系统中各级权限分明包括:(1)学生权限,可以修改学生对应的资料,在选题开始后选择课题,并提交相应资料,查看教师的简历等信息。(2)教师权限,可以修改教师对应的资料供学生参考;添加选题并生成相应表格,下载学生提交的开题报告。(3)数据查看权限,这部分权限主要提供给院系相关负责老师,在选题过程中拥有这些权限的老师可以查看选题的进度,以及相应的数据。(4)管理员权限,管理员有权利设置网站的运行状态,并可以设置选题的开始和结束时间,可以发布选题相关公告,并且随时可以将进度信息按要求生成为EXCEL格式,便于数据统计及分析。管理员还可以直接导入学生及教师信息。3.4.2 系统中的实体和关系如图3-5图3-5实体-关系图在本系统中的实体与实体的关系并不能做单一的划分。在选题结过程中,学生和选题的关系应当是多对多的关系,在选题结束后学生和选题的关系则对应为一对一。3.4.3数据库及数据表设计数据库的作用在整个系统中占的位置已经不言而喻,一个符合规范的数据库设计不仅可以在设计的时候让程序设计员的逻辑更为清晰,也可以让后来分析程序的人更容易理清数据间的关系,本系统中工使用到13张数据表,具体表结构如下:表3-1管理员表字段属性长度注释说明IDINT、11ID号UsernameVarchar16用户名PasswordVarchar16密码作用:存放管理员的用户名及密码表3-2公告表字段属性长度注释说明IDINT11ID号IDTextText公告内容HTML代码作用:存放公告信息。表3-3常用资料下载字段属性长度注释说明IDInt11ID号TitleVarchar200名称PathVarchar200下载路径passedChar1是否通过1:通过0:待审核作用:存放常用的以下文档下载信息,以及文件在服务器的存储位置。表3-4开题报告表字段属性长度注释说明IdInt11ID号SnoChar8学号KtyjxzText课题研究现状KtyjmdText课题研究目的KtyjnrText课题研究内容KtyjjhText课题研究计划ZyckwxText主要参考文献TimeDatetime填写时间作用:存储课题的开题信息,只有在教师选择了学生,然后学生才能填写开题报告信息,改表中,SNO是唯一的。表3-5新闻表字段属性长度注释说明IdInt11ID号TitleVarchar200新闻标题Title_colorVarchar7标题颜色News_picvarchar100新闻图片Keywordstext关键词PassedChar1是否通过1:通过0:待审核CommendChar1是否推荐TextText新闻内容Timedatetime发表时间作用:存储选题新闻内容,并且根据情况设置新闻是否显示。表3-6任务书表字段属性长度注释说明IdInt11ID号Xt_idInt11选题ID号SnoChar8学号CommentText内容ReqText要求Production_requireText成果要求Doc_requireText文档要求RefeText参考文献progressText工作进度timeDatetime时间作用:存放选题的任务书信息表3-7站内信息表字段属性长度注释说明IdInt11ID号SenderVarchar16发送者ReceiverReceiver11接收者TitleText标题TimeDatetime时间TextText内容BackChar1是否回复Is_readchar1阅读标记作用:存储学生及老师之间相互发送的站内消息表3-8学生信息表字段属性长度注释说明Idint11ID号SnoChar8学号NameVarchar16姓名ClassVarchar48班级PhoneChar11手机TelvarChar13电话MailVarchar100邮箱otherText其他信息XthInt11选题号PasswordVarchar16密码SkillText专业技能及其他说明Limit_3Int11剩余可选题数目FlagChar1完成选题标记specifyvarchar100专业作用:存储学生的个人资料信息,教师在选择学生的时候,可以查看该学生的个人简历,并以及平时的了解以及个人简历资料作出抉择。表3-9系统设置表格字段属性长度注释说明IdInt11ID号Sys_onChar1系统是否开启Sys_off_contentText系统关闭原因描述Time_onDatetime选题开始时间Time_offDatatime选题关闭时间Login_gdchar1登录是否显示验证码作用:存储系统的一些配置信息。表3-10选题表字段属性长度注释说明IdInt11ID号Titlevarchar200选题标题TidInt11表示编号TimeDatetime时间SpecifyVarchar40专业PassedChar1是否审核通过lwspbVarchar100论文审批表地址RwsVarchar200任务书地址ExplText选题说明YxrsInt11已选人数Flagchar1完成标志1:结束0:未结束作用:存储教师添加的课题信息,以及是否通过后台管理员审核等信息,该表在选题结束前起非常重要的作用,选题过程中可以通过验证该表和临时选题表以及最终选题表的数据来判断系统是否在运行过程中出现并发错误,所以对这三张表的操作尤其重要。表3-11教师信息表字段属性长度注释说明IdInt11ID号NameVarchar16姓名PasswordVarchar16密码ZcZc16职称LoginipInt11登录IPLoginnumInt4登录次数LogintimeDatetime登录时间PhoneChar11手机号码TelVarchar14电话MailVarchar100邮箱OtherText其他SkillText研究方向xlvarchar20学历作用:同学生表一样,存储了教师的个人资料,可用于显示教师的个人简历,用于作为学生在选择课题时对教师的研究方向有一个了解。表3-12选题最终结果表字段属性长度注释说明IdInt11ID号TitleVarchar200标题TidInt11教师编号SnoChar8学号TimeDatetimeLwspbVarchar200论文审批表位置RwsVarchar200任务书位置Ktbgvarchar200开题报告位置作用:存放了最终的选题信息,并且在选题结束后该表同学生信息表,教师表信息表,学生信息表,构成系统的最基本表。表3-13临时选题结果存储表字段属性长度注释说明IdInt11ID号Snochar8学号参照学生表Xt_idInt11选题IDTidInt11教师编号timedatetime选题时间选题时间作用:存储双向选择的过程信息。

第四章系统功能的具体实现4.1系统界面设计系统在界面设计时力求简洁美观,由于是BS系统,要求系统能够做到最大程度的浏览器兼容性。这就要求在设计制作的时候了解包括FireFox,IE,Maxton,Safari等浏览器内核对各种属性的兼容性。本系统界面在设计完成后已经通过各种浏览器的兼容性测试。(1)系统首页,具体效果如图4-1所示图4-1首页效果图页面功能说明:该页面使用的SmartTemplate类,支持模板替换,作为教师,学生,管理员的跳转页面,该页会显示常用下载,以及系统新闻。天气栏目的内容是通过JS获取。(2)教师,学生登录页,效果如图4-2所示图4-2用户登录页面页面功能说明:用户根据管理员提供的用户名以及密码登录系统,登录时使用了AJAX技术,能够很人性化的提示输入的用户名是否正确。底部显示了服务器响应页面请求所花费的执行时间。本系统为了防止学生注册中会发生的一些问题,直接有后台管理员将学生的基本信息,以及教师基本信息导入数据库,用户登录后进入我的信息栏目来修改,完善自己的个人信息。(3)教师操作页面,具体效果如图4-3所示导航栏修改,删除,详细信息添加一个选题任务书填写导航栏修改,删除,详细信息添加一个选题任务书填写图4-3教师选题管理页面页面功能说明:教师登录后直接进入该页面,该页显示了该教师的所有选题信息。主要功能如下1、添加选题2、查看选题的状态3、填写审批表,任务书等4、生成论文审批表,任务书等(4)教师选题进度管理,如图4-4图4-4进度管理页面页面功能说明:该页面是显示每个选题的进度,在选题结束前是显示的选题的具体信息,包括选了该题的学生的具体信息,并且可以做出选择学生的操作。当确定了学生后即显示该选题的进度信息,是否已经完成了任务书的填写及生成,学生是否已经提交了开题报告等。(5)学生选题页面具体效果如图4-5所示图4-5学生选题页面页面功能说明:学生登录系统后可以根据自己当前的状态进入选题页面,该页显示所有通过了后台审核通过的选题以及对应的指导教师等,选题按钮根据选题是否可选变化。学生可以按教师姓名来筛选选题信息。(6)个人信息页面如图4-6所示图4-6个人信息页面页面功能说明:教师或者学生在登录系统后可以首先完善自己的个人简历内容,供选题的双方作为参考。专业技能为多媒体格式编辑筐,可以个性化的展示自己的专业技能或者研究方向。(7)后台管理页面如图4-7图4-7后台管理界面页面功能说明:后台管理使用的框架结构,管理员登录后台管理界面后,左边为导航功能栏,右侧为对应的功能界面。进入后台首先显示的系统的运行状态信息,包括服务器系统以及各组件的版本信息,管理员可以依照这个来对系统或者服务器做出对应的修改。4.2程序编码4.2.1系统的公共文件(global.php)为了提高系统的执行效率以及系统的安全性,系统的每个页面引用了一个公共文件,该文件的作用就是判断系统是否完整,以及数据库是否可以正常连接,当发生错误的时候立即停止执行,并给出错误提示。 session_start(); ob_start(); error_reporting(0); include_once"files/function.php";//引用功能函数 if(!file_exists('files/config.php'))//判断是否存在配置文件,该文件会在安装后生成。 { bad('未找到系统的配置文件files/config.php'); exit(); } include_once"files/config.php";//引用配置文件 include_once"class/db.php";//引用数据库类 $page_start_time=microtime(); $db=newdb;//定义对象 $db->mysql($dbhost,$dbuser,$password,$dbname); $db->createcon();//创建连接 if(!mysql_connect($db->dbhost,$db->dbuser,$db->password))//判断数据库是否可以正常连接 { bad('数据库连接失败'); exit(); } $sys_on=getdbvalue('sys_on','sys'); if(empty($sys_on)) { $sys_off_content=getdbvalue('sys_off_content','sys'); echo'<divstyle="BORDER:#9db3c51pxsolid;width:98%;FLOAT:left;line-height:186px;text-align:center">'.$sys_off_content.'</div>'; exit(); }4.2.2数据库操作类(class/db.php)为了提高系统的执行效率,程序引入了面向对象编程,系统中的数据库操作都通过定义一个数据库对象来完成,在公共文件中定义该对象,并建立链接include_once"class/db.php";//引用数据库类 $db=newdb;//定义对象$db->mysql($dbhost,$dbuser,$password,$dbname);$db->createcon();//创建连接当有需要将MySQL数据库转化为MSSQL数据库的时候,只需要修改DB类即可完成数据库类型的转换。4.2.3分页显示类(class/page.php)系统中很多地方都需要使用分页显示,而常规的分页方法不仅会造成代码冗余,而且当数据库结构发生变动的时候修改起来非常的繁琐。在尝试了多种方法后,根据MySQL以及PHP的特性,将分页显示写成了一个类,在需要使用分页的地方只需要调用这个分页类,然后定义一个对象,设置简单的调用参数,即可完成以前复杂的分页显示操作。include'class/page.php';$sql="select*fromtab_xtwherepassed='1'";$page=newPage($sql);//定义分页显示对象$sql=$>StartPage("tid",false,true,"down");$result=$db->query($sql);然后只需要将$result内的内容按条显示。在需要分页导航的地方加入如下代码:$ButtonArray=array("首页","上一页","下一页","末页");echo"<divclass=exp>".$>EndPage($ButtonArray,'text',true)."</div>";即可实现分页显示的功能。4.2.4用户登录时的AJAX技术在用户登录时使用AJAX判断用户名是否正确,这样对用户体验来说更为友好,用户能够在不刷新页面的同时验证输入数据的正确性。AJAX主要使用xmlHTTP对象,并且通过open(),onreadystatechange(),send()等方法实现同服务器之间的异步传输。<scriptlanguage="javascript"type="text/javascript">varxmlHttp=false;try{xmlHttp=newActiveXObject("Msxml2.XMLHTTP");}catch(e){try{xmlHttp=newActiveXObject("Microsoft.XMLHTTP");}catch(e2){xmlHttp=false;}}if(!xmlHttp&&typeofXMLHttpRequest!='undefined'){xmlHttp=newXMLHttpRequest();}functioncallServer(){varsno=document.getElementById("sno").value;if((sno==null)||(sno==""))return;varurl="check_sno.php?sno="+escape(sno);xmlHttp.open("GET",url,true);xmlHttp.onreadystatechange=updatePage;xmlHttp.send(null);}functionupdatePage(){if(xmlHttp.readyState<4){ textout.innerHTML="验证学号……";}if(xmlHttp.readyState==4){varresponse=xmlHttp.responseText; textout.innerHTML=response;}}</script>通过xmlHTTP.open(“GET”,url,true)来打开一个异步通信,并且通过JS将输入表单的数据以GET方式提交到服务器处理,然后xmlhttp对象等待并判断状态,当xmlHttp.readyState==4时即为服务器处理完页面并且有返回,然后通过innerHTML方法将返回的数据输出到预先设置的地方。4.2.5输入提示功能的实现教师在输入课题的同时会出现下拉列表,并且详细的列出了课题名称,命题教师等信息,可防止老师在命题时出现重复,虽然该功能同AJAX的用户信息严整类似,但是该方式实现却比AJAX用户信息验证复杂很多。该方法需要在输入框字符发生变化的时候即刻将数据提交到服务器处理,并响应。<inputtype="text"name="title"onMouseOver="returnname1()"onMouseOut="returnname2()"style="border:#2F589C4.2.6伪静态页面的实现通常情况下页面之间传递参数的方法不外乎GET方式和POST方式,在传递少量信息的时候常用的是GET方式,但是GET方式一个很大的缺点就是很容易暴露程序调用的参数信息,当程序安全性不够高时,某些人能够利用该参数进行注入攻击。所以为了避免这种情况,使用了伪静态来隐藏传递的参数,这样一方面满足了安全性,另一方面也提高了用户对URL地址的体验度。伪静态的实现需要服务器支持重写,并且Apache需要加载了重写模块:mod_rewrite.so然后在虚拟主机的配置文件中加入一行:AllowOverrideOptionsFileInfo然后在网站根目录放一个.htaccess文件,文件内的内容为:#将RewriteEngine模式打开RewriteEngineOn#Rewrite系统规则请勿修改RewriteRule^list-([a-z]+)-([0-9]+)\.html$list.php?act=$1&xt_id=$2RewriteRule^case-([a-z]+)-([0-9]+)\.html$case.php?act=$1&xt_id=$2 RewriteRule^select-([a-z]+)-([0-9]+)\.html$select.php?act=$1&xt_id=$2 RewriteRule^news-([a-z]+)-([0-9]+)\.html$news.php?act=$1&id=$2.htaccess内的内容实际为一批正则表达式,APACHE通过正则匹配,将提交的URL同重写规则进行逐条匹配,当找到匹配项时就将对应参数还原成本来的URL格式,然后再进行处理。比如:URL=/jsjxt/news-news-9.html实际匹配了最后一条规则,服务器正式处理的URL则为news.php?act=news&id=94.2.7管理员数据导入的实现为了简化管理员的操作,后台管理中加入了很多的数据导入功能,比如学生信息导入,教师信息导入,论文审批表信息导入。导入的数据格式根据随原代码中的数据样式文件填写。导入文件的格式为XLS,数据量没有限制,在数据导入的时候会进行数据的准确性验证。include_once"../class/Excel/excel.php";//包含XLS类$data=newSpreadsheet_Excel_Reader();//定义对象$data->setOutputEncoding('utf-8');//格式化输出的字符编码$data->read("./upload_files/$filename");//设置读曲的XLS文件位置error_reporting(E_ALL^E_NOTICE);$j=0;for($i=1;$i<=$data->sheets[0]['numRows'];$i++)//遍历XLS中的所有记录{ $sno=$data->sheets[0]['cells'][$i][1]; $name=$data->sheets[0]['cells'][$i][2]; $class=$data->sheets[0]['cells'][$i][3]; $phone=$data->sheets[0]['cells'][$i][4]; $tel=$data->sheets[0]['cells'][$i][5]; $email=$data->sheets[0]['cells'][$i][6]; $other=$data->sheets[0]['cells'][$i][7]; $xth=$data->sheets[0]['cells'][$i][8]; $password=$data->sheets[0]['cells'][$i][9]; $skill=$data->sheets[0]['cells'][$i][10]; $limit_3=$data->sheets[0]['cells'][$i][11]; $flag=$data->sheets[0]['cells'][$i][12]; $specify=$data->sheets[0]['cells'][$i][13]; if(eregi($ereg_sno,$sno)anderegi($ereg_pwd,$password)) { $row=$db->num_rows($db->query("selectidfromstudentwheresno='$sno'"));//判断数据是否已经存在 if($row) { echo'<tr><td>学号为'.$sno.'这条记录已经存在,没有插入,请你核对。<br></td></tr>'; } else { $j++; $db->query("insertintostudentvalues('','$sno','$name','$class','$phone','$tel','$email','$other','','$password','$skill','$limit_3','$flag','$specify')"); } } else echo'<tr><td>学号为'.$sno.'这条记录不合法,没有插入<br></td></tr>';//提示信息}$i=$i-1;echo"<tr><td><fontcolor=red>共".$i."条记录,其中插入成功$j条</td></tr>";unlink('upload_files/'.$filename);4.2.8按教师筛选显示:1、先判断页面是否需要进行筛选,如果有筛选需求则将教师ID用SESSION保存在服务器端,if($_GET['act']=='fiter'){ if(is_numeric($_POST['tid'])) $_SESSION['fiterid']=$_POST['tid']; else unset($_SESSION['fiterid']);}2、在数据显示部分,判断是否存在$_SESSION[‘fiter’]变量,如果有则表示显示时需要进行筛选,没有则显示全部数据:$sql=isset($_SESSION['fiterid'])?"select*fromtab_xtwherepassed='1'andtid=$_SESSION[fiterid]":"select*fromtab_xtwherepassed='1'";4.3系统调试与排错由于系统的运行环境已经配置了X-Debug,该模块会给出运行过

温馨提示

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

最新文档

评论

0/150

提交评论