• (附源码)php单招志愿采集系统 毕业设计 091409


    单招志愿采集系统

      要

    信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对单招志愿采集系统等问题,对单招志愿采集系统进行研究分析,然后开发设计出单招志愿采集系统以解决问题。

    单招志愿采集系统主要功能模块包括用户管理、志愿批次、准考证、考生成绩、志愿填报、通知公告,采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采取Mysql作为后台数据的主要存储单元,采用PHP语言、Ajax技术进行业务系统的编码及其开发,实现了本系统的全部功能。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。针对单招志愿采集系统的各项需求以及技术问题进行分析,证明了系统的必要性和技术可行性,然后对设计系统需要使用的技术软件以及设计思想做了基本的介绍,最后来实现单招志愿采集系统和部署运行使用它。

    关键词 :单招志愿采集系统;PHP技术;Mysql数据库;B/S结构 

    Single recruit volunteer collection system

    Abstract

    In the information society, there is a need for targeted information access, but the expansion of access is basically the direction of people's efforts. Due to the deviation of the perspective, people can often obtain different types of information, which is also the most difficult subject for technology to overcome. Aiming at the problems of single recruit volunteer collection system, this paper studies and analyzes the single recruit volunteer collection system, and then develops and designs the single recruit volunteer collection system to solve the problems.

    The main functional modules of the single recruit volunteer collection system include user management, volunteer batch, admission ticket, examinee's score, volunteer filling in, notification and announcement. The object-oriented development mode is adopted for software development and hardware erection, which can well meet the needs of actual use, complete the corresponding software erection and program coding, and take MySQL as the main storage unit of background data, using PHP language Ajax technology encodes and develops the business system, and realizes all the functions of the system. This report first analyzes the background, function and significance of the research, which lays a foundation for the rationality of the research work. This paper analyzes the various requirements and technical problems of the single recruit volunteer collection system, proves the necessity and technical feasibility of the system, then makes a basic introduction to the technical software and design ideas needed to design the system, and finally realizes the single recruit volunteer collection system and deploys and runs it.

    Key words: Single recruit volunteer collection system; PHP technology; Mysql database; B/s structure

    目  录

    摘  要

    Single recruit volunteer collection system

    Abstract

    1 绪论

    1.1研究背景及意义

    1.2研究现状

    2 系统开发环境

    2.1  系统开发平台

    2.2 平台开发相关技术

    2.2.1PHP开发语言

    2.2.2 PHPScript脚本语言

    2.2.3 Mysql数据库

    2.2.4 AJAX技术

    2.2.5 Thinkphp框架介绍

    3 需求分析

    3.1系统目标

    3.2系统功能

    3.3 系统可行性分析

    3.4经济可行性

    3.5操作可行性: 

    3.6系统流程和逻辑

    4系统概要设计

    4.1 概述

    4.2 系统结构

    4.3. 数据库设计

    4.3.1 数据库实体

    4.3.2 数据库设计表

    5 系统详细设计

    5.1 系统功能模块

    5.2管理员功能模块

    6 系统测试

    6.1 测试理论

    6.2 测试方法及用例

    6.3测试结果

    结论

    致 谢

    参考文献

    1 绪论

    1.1研究背景及意义

    随着我国教育改革的深入发展,高校招生工作面临着新的形势。为适应社会对人才质量要求不断提高的趋势,各高等学校在扩大招生规模的同时也加大了培养和选拔优秀大学生的力度,这就需要学校有针对性地制定教学计划,加强教学过程中各个环节的管理,以保证人才培养目标的实现。而传统的纸质高考录取通知书已不能满足当前考生填报志愿时对信息准确性、及时性的需求。因此,如何利用信息化手段解决这一问题已经成为目前教育界关注的焦点之一。

    本文首先介绍了课题提出的原因以及国内外相关领域的研究成果与发展趋势,并分析了该论文所涉及到的一些基本概念和理论;其次阐述了本系统的开发环境及设计原则、功能结构等方面的内容;再次,详细说明了该项目开发所用的数据库技术和开发工具;最后,对系统进行功能测试、性能测试以及安全性测试。通过对以上几个阶段的具体测试表明:系统能够很好地完成预期功能,达到预期效果。系统具有良好的用户界面,操作简单方便;采用B/S模式,使用MySQL作为后台数据库管理系统,使其具备较强的可扩展性;系统提供多种数据表查询方式,能较快地查找出相应的数据结果;系统支持多窗口显示,用户可以根据实际情况灵活选择不同的显示方式。另外,本系统还可用于网上选报或自动阅卷。总之,系统的各项性能指标均达到了预期目标。

    1.2研究现状

    分析了目前高校招生工作中存在的问题。结合学校实际情况和需求,设计出一种基于B/S架构的高校单招志愿采集管理系统。该系统采用C/S模式,利用PHP技术实现了数据查询、录入及打印等功能;在此基础上提出了一个完整的解决方案。该系统通过对考生进行身份验证和身份确认后可自动完成所有操作,提高了工作效率;同时也解决了由于人工输入造成的误差,使其更加准确可靠;此外还能根据不同专业类型提供个性化服务,为考生选择合适的学习方向提供指导,从而满足社会发展需要。本文首先介绍了系统开发所涉及到的相关理论,包括:软件工程思想、数据库原理以及Web 等;然后对系统的整体结构进行描述,并详细阐述各功能模块的具体实现方法。最后,对系统测试过程进行总结,指出其中出现的一些问题,并给出相应的解决办法,以保证整个项目能够顺利进行。

    本课题主要从以下几个方面进行了深入研究:分析了当前高校单招录取管理的基本流程,确定系统要达到的目标。对系统进行需求分析,明确系统应具备的基本功能。对系统进行总体设计,按照功能化原则对系统总体框架进行划分,并分别建立各个模块模型。运用UML建模语言对系统进行建模与分析。将面向对象技术引入到系统开发之中,使用用例图和类图对系统进行清晰地展示。对各部分进行代码编写,最终实现了基于B/S模式的单招志愿采集管理平台。对该平台进行运行测试。经过测试表明,该平台具有良好的可扩展性和可维护性。系统已经成功应用于本校单招志愿采集工作中,取得较好效果。目前已投入使用,并且得到师生们的好评。实践证明,该平台可以很好地完成招生业务的管理工作,大大提高了招生部门的效率,降低了劳动强度,减轻了管理人员工作量,提高了管理效率。

    2 系统开发环境

    为了能够使本系统较好、较为完善的被设计实现出来,在功能上,我对新系统进行了细致的分析。通过详细的分析,我选择了Thinkphp技术来进行开发设计,在数据存储上,采用 Mysql数据库来进行设计。本系统选择的开发语言为PHP语言,数据库软件为MySQL,服务器软件为IIS,开发工具为phpstorm ,系统开发平台为Windows 10系统,采用了B/S的结构。

    2.1  系统开发平台

    在该单招志愿采集系统中,Thinkphp技术可以给用户带来极大方便,其主要特点就是可以使用户学习起来方便、快捷,另一方面就是信息储存量也是非常大的,该功能主要被应用为数据库中进行查询和编程。并且该功能的数据应用比较灵活,通过我们现在的发展可以得知,只要利用一小部分代码就可以来实现非常强大的功能。因此,该系统数据库开发主要是由Thinkphp技术进行系统代码管理。

    2.2 平台开发相关技术

    2.2.1  PHP开发语言

    PHP是一种面向对象的程序设计语言,类是PHP程序的基本组成单元,类中又包含了属性和方法,在类中又可以创建无数个对象。类中包含的主要成员是字段和方法,字段是指一种数据变量,方法是指对字段进行操作的集合,包括给其他变量赋值、调用方法等。PHP代码都是编写在类体中,类体中的每个数据项都可以看作是一个对象,PHP不支持类的多重继承,但可以支持接口的多重继承,并且支持类和接口的实现。由于PHP通常在网络环境中使用,所以PHP提供了一个防止代码恶意攻击的安全机制,同时,PHP具有强类型机制、自动收集垃圾和异常处理等特性,这些都是PHP语言健壮性的重要保证。

    1、PHP语言具有如下特点:

    (1)PHP 结合 C、PHP、Perl 以及自创的新语法形成了自己独特的语法。

    (2)PHP可以更快速的执行动态网页,当然这只是相对于CGI或者Perl来说,PHP可以在HTML文档中嵌入程序,而且去执行,另外PHP能够实现CGI的所有功能,因此说明PHP具有很强大的功能。

    (3)大部分当下流行的数据库和操作系统PHP语言都能够支持。

    (4)PHP语言的最重要特点就是可以让C、C++进行扩展

    2、PHP语言具有如下优势:

    (1)开放源代码:事实上PHP的所有源代码都可以得到。

    (2)免费性:PHP是开源代码并且免费

    (3)快捷性:PHP对于初学者来说,它不止编辑简单可以嵌入与HTML语言中,而且对于程序开发和运行也是非常快速的,并且非常容易掌握。

    (4)跨平台性强:PHP是可以在服务器运行的脚本语言,所以在UNIX、Android、Mac OS、WINDOWS等操作平台上都可以运行。

    (5)效率高:PHP对系统资源的消耗相当少,所以它的效率高。

    (6)图像处理:PHP不止是可以使用GD2对图像进行处理,而且他还可以完成对图像的创建。

    (7)面向对象:php4、php5对于PHP在面向对象上,有了许多的改进,PHP语言开发大型商业程序也是可以胜任的。

     2.2.2  PHPScript脚本语言

    此作品中,其中包含了页面的搭建,以及前后台数据接口的连接等,而对于实现用户页面交互以及一些页面逻辑性判断等功能都是用PHPScript完成的[7],而PHPScript是已经被广泛用于Web应用开发,是一种属于网络的脚本语言,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常PHPScript脚本是通过嵌入在HTML中来实现自身的功能。PHPScript作为一种描述语言,作用于web前端,它基于对象(object)和事件驱动(Event Driven)并且安全性也较好。它可以有效的在客户端运行并为服务器减轻负担。

    1、PHPScript具有的特点:

    (1)脚本语言。PHPScript是一种脚本语言并具有解释性,在程序运行过程中,它就可以进行解释。

    (2)基于对象。PHPScript可以创建对象,而且还可以使用现在存在的对象,它是基于对象的脚本语言。

    (3)简单。PHPScript不对使用的数据类型有着严格的要求,应用的是弱类型的变量类型,设计是十分紧凑简单。

    (4)动态性。PHPScript是可以不经过Web服务器对用户的操作做出相应,是可以采用事件驱动的脚本语言。

    (5)跨平台性。PHPScript可以不依赖操作系统,但需要浏览器的支持。所以在编写PHPScript脚本后可以在任意机器上使用,但要注意的一点,使用的浏览器是支持PHPScript脚本语言,现在大多浏览器也支持PHPScript。

    2、PHPScript的用途

    PHPScript的用途是解决页面交互和数据交互,最终目的是丰富客户端效果以及数据的有效传递。

    (1)实现页面交互,提升用户体验实现页面特效。即js操作html的dom节构或操作样式。

    (2)客户端表单验证。当数据传送到服务端前,可以将用户填入并上交的信息快速有效的验证,进行了数据的交互,为服务器减轻了负担。

    2.2.3Mysql数据库

    Mysql Database,通常简称为Mysql,是一款关系型数据库的管理系统。Mysql数据库系统是目前最流行的关系型数据库管理系统之一,其系统具有良好的可移植性,功能强大且使用十分方便。Mysql支持很多系统和硬件,包括HP-UX,Linux,MicrosoftWindows,SunSolaris,AppleMac等。

    Mysql系统的特点:

    (1)Mysql的多线索服务器的体系结构使其只利用很少的资源就能够支持多用户的、大数据的高性能事务处理;

    (2)Mysql支持大量的多媒体数据,例如声音、动画、二进制图形和多维数据结构等;

    (3)Mysql提供了安全保密管理系统,具有良好的安全性、一致性和完整性;

    (4)具有新的分布式数据库能力和分布处理的能力;

    (5)提供了一些高级语言的接口软件,可以帮助快速开发基于客户端的应用程序,具有良好的移植性、可连结性和可兼容性。

    Mysql数据库逻辑结构包含表空间(tablespace)、段(segment)、范围(extend)、数据块(datablock)、和模式对象(schemaobject) 。每一个数据库都可以逻辑划分为一个或多个表空间,每一个表空间都是由一个或多个数据文件来组成。Mysql数据库分为系统表空间和非系统表空间,每一个Mysql数据库都包含一个称作SYSTEM的系统表空间。

    2.2.4AJAX技术

    AJAX是创建交互式网页的一种开发技术,利用AJAX技术可以实现以无刷新网页的方式更新HTML元素中的内容。传统的网页如果要更新网页内容,必须重新加载整个页面,而AJAX使用异步数据传输在网页和Web服务器之前传递HTTP请求,这样可以使网页只请求少量信息,而不用刷新整个页面。           

    2.2.5Thinkphp框架介绍

    ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。最早诞生于2006年初,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进。 

    ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。

    ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP5.0以上版本支持,支持MySql、PgSQL、Sqlite多种数据库以及PDO扩展,ThinkPHP框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。

    作为一个整体开发解决方案,ThinkPHP能够解决应用开发中的大多数需要,因为其自身包含了底层架构、兼容处理、基类库、数据库访问层、模板引擎、缓存机制、插件机制、角色认证、表单处理等常用的组件,并且对于跨版本、跨平台和跨数据库移植都比较方便。并且每个组件都是精心设计和完善的,应用开发过程仅仅需要关注您的业务逻辑。

    3 需求分析

    所谓需求分析就是,需求人员通过与客户的沟通,所获取的信息,然后把这些信息通过需求说明书的方式展示给用户和开发人员。

    3.1系统目标

    本系统设计的是一个以B/S结构为基础,使用PHP技术实现对考生信息和招生数据进行实时采集与处理。通过该系统能够有效地提高高校招生工作的信息化水平,同时也能使相关部门在第一时间内了解到考生的报考情况及录取结果。功能介绍1.用户管理模块主要用于用户登陆,注册,修改个人信息等操作;2.考生信息管理模块主要包括学生成绩信息以及其他一些基本信息等;3.数据库管理模块主要包括用户名,密码设置等功能;4.系统维护模块主要包括登录账号的更换,添加新的帐号,删除旧的帐号等操作,并提供了相应的界面。本项目所开发出的单招志愿采集系统软件已成功应用于某院校的招生工作中,实践证明该系统运行稳定可靠,达到了预期效果,具有一定的推广价值。

    3.2系统功能

    此系统的功能分为考生和管理员模块:

    考生模块包括:首页、准考证、考生成绩、志愿填报、通知公告模块。

    管理员功能模块包括:首页、用户管理(管理员、考生)更多管理(志愿批次、准考证、考生成绩、志愿填报、通知公告)模块。

    3.3 系统可行性分析 

    技术可行性:

    1)硬件可行性分析

    系统的硬件要求方面不存在特殊的要求,只需要在普通的硬件配置就能够轻松的实现,只是需要确保系统的正常工作即可,以及拥有较高的效率。如果有特别低的硬件,它可以导致系统的低性能以及效率低,从而导致整个网站的运行不顺畅。以目前普遍的个人计算机的配置而言,这是十分容易实现的 。因此,本系统的开发在硬件方面是可行的。

    提供完整的技术支持和保护,确保网站的稳定,安全运行,提供24×7和24小时技术支持项目完成提供主要的服务器系统安全及时的通知和更新服务。

    (2)软件可行性分析

    提供一个共同的机制类似的借口动态模型,设计更集中。此外,代码复用,也可以很好的体现。因此,考虑到系统的实际情况,选择小程序作为本系统开发技术。通过上述分析,该系统的设计实现在软件方面是可行的。

    因此,我们进行了两个方面的可行性研究,可以看出,该系统的开发是没有问题的。

    3.4经济可行性

    系统是基PHP语言开发的软件,所以系统在开发人力、财力要求不高,具有经济可行性。

    3.5操作可行性: 

    ThinkPHP单招志愿采集系统采用PHP语言ThinkPHP框架,利用网络就能够进行访问和操作,且界面简单易操作,用户只要平时有在用智能手机并连接到网络,都能进行访问和操作。

    ThinkPHP单招志愿采集系统具有易操作、易管理、交互性好的特点,在操作上是非常简单的。因此本系统可以进行开发。

    3.6系统流程和逻辑

    系统业务流程图,如图所示:

     

    图3-1登录流程图

     

    图3-2添加信息流程图

     

    图3-3注册信息流程图

    4系统概要设计

    4.1 概述

    单招志愿采集系统基于Web服务模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在不受时间、地点的限制来使用这个系统。单招志愿采集系统工作原理图,如图4-1所示:

     

    图4-1  系统工作原理图

    4.2 系统结构

    单招志愿采集系统,本系统的具体功能如下:

     

    图4-2系统功能结构图

    管理员功能结构图,如图4-3所示:

     

    图4-3 管理员功能结构图

    考生功能结构图,如图4-4所示:

     

    图4-4 考生后台功能结构图

    4.3. 数据库设计

    4.3.1 数据库实体

    管理员信息结构图,如图4-5所示:

     

     图4-5 管理员信息实体结构图

    管理员功能实体属性图,如图4-6所示:

     

    图4-6管理员功能实体属性图

    志愿填报实体属性图,如图4-7所示:

     

    图4-7志愿填报实体属性图

    4.3.2 数据库设计表

    此系统需要后台数据库,下面介绍数据库中的各个表的详细信息。

    voluntary_filling表:

    名称

    类型

    长度

    不是null

    主键

    注释

    voluntary_filling_id

    int

    11

    志愿填报ID

    examinee

    int

    11

    考生

    admission_number

    varchar

    64

    准考证号

    candidate_name

    varchar

    64

    考生姓名

    total_score

    varchar

    64

    总成绩

    ranking

    varchar

    64

    排名

    voluntary_batch

    varchar

    64

    志愿批次

    admission_volunteer

    varchar

    64

    录取志愿

    first_choice_

    text

    0

    第一志愿

    second_choice_

    text

    0

    第二志愿

    third_volunteer

    text

    0

    第三志愿

    recommend

    int

    11

    智能推荐

    create_time

    datetime

    0

    创建时间

    update_time

    timestamp

    0

    更新时间

    voluntary_batch表:

    名称

    类型

    长度

    不是null

    主键

    注释

    voluntary_batch_id

    int

    11

    志愿批次ID

    batch

    varchar

    64

    批次

    recommend

    int

    11

    智能推荐

    create_time

    datetime

    0

    创建时间

    update_time

    timestamp

    0

    更新时间

    notice_announcement表

    名称

    类型

    长度

    不是null

    主键

    注释

    notice_announcement_id

    int

    11

    通知公告ID

    title

    varchar

    64

    标题

    relevant_attachments

    varchar

    255

    相关附件

    publisher

    varchar

    64

    发布人

    release_time

    date

    0

    发布时间

    content

    text

    0

    内容

    recommend

    int

    11

    智能推荐

    create_time

    datetime

    0

    创建时间

    update_time

    timestamp

    0

    更新时间

    examinee_score表:

    名称

    类型

    长度

    不是null

    主键

    注释

    examinee_score_id

    int

    11

    考生成绩ID

    examinee

    int

    11

    考生

    admission_number

    varchar

    64

    准考证号

    candidate_name

    varchar

    64

    考生姓名

    total_score

    varchar

    64

    总成绩

    ranking

    varchar

    64

    排名

    voluntary_batch

    varchar

    64

    志愿批次

    recommend

    int

    11

    智能推荐

    create_time

    datetime

    0

    创建时间

    update_time

    timestamp

    0

    更新时间

    examinee表:

    名称

    类型

    长度

    不是null

    主键

    注释

    examinee_id

    int

    11

    考生ID

    admission_number

    varchar

    64

    准考证号

    candidate_name

    varchar

    64

    考生姓名

    gender

    varchar

    64

    性别

    id

    varchar

    64

    身份证

    examine_state

    varchar

    16

    审核状态

    recommend

    int

    11

    智能推荐

    user_id

    int

    11

    用户ID

    create_time

    datetime

    0

    创建时间

    update_time

    timestamp

    0

    更新时间

    admission_ticket表:

    名称

    类型

    长度

    不是null

    主键

    注释

    admission_ticket_id

    int

    11

    准考证ID

    examinee

    int

    11

    考生

    admission_number

    varchar

    64

    准考证号

    candidate_name

    varchar

    64

    考生姓名

    id

    varchar

    64

    身份证

    admission_ticket

    varchar

    255

    准考证

    remarks

    varchar

    64

    备注

    recommend

    int

    11

    智能推荐

    create_time

    datetime

    0

    创建时间

    update_time

    timestamp

    0

    更新时间

    hits表:

    名称

    类型

    长度

    不是null

    主键

    注释

    hits_id

    int

    10

    点赞ID

    user_id

    int

    11

    点赞人

    create_time

    timestamp

    0

    创建时间

    update_time

    timestamp

    0

    更新时间

    source_table

    varchar

    255

    来源表

    source_field

    varchar

    255

    来源字段

    source_id

    int

    10

    来源ID

    5 系统详细设计

    5.1 系统功能模块

       考生登录,在考生登录页面通过填写账号、密码等信息完成考生登录,如图5-1所示。

     

    图5-1考生登录界面图

    登录的逻辑代码如下。

    public function login()

        {

            if (Request::isPost()) {

                $request = Request::param();

                $result = $this->validate($request, $this->validate);

                if (true !== $result) {

                    // 验证失败 输出错误信息

                    $data['error'] = 30000;

                    $data['message'] = $result;

                } else {

                    $request['password'] = md5($request['password']);

                    $result = $this->model->login($request, $this->table);

                    $data = $result;

                }

            } else {

                $data['error'] = 30000;

                $data['message'] = "field的值不能为空!";

            }

            return json_encode($data);

        }

    public function login($request=[],$table_name = ''){

            $username = $request['username'];

            $password = $request['password'];

            $bol = $this->where(['username'=>$username])->find();

            if ($bol){

                $password = md5($password);

                if ($request['password']==$bol['password']) {

                    //添加token信息

                    $access_token['create_time'] = date('Y-m-d H:i:s');

                    $access_token['update_time'] = date('Y-m-d H:i:s');

    $access_token['info'] = json_encode($bol);

                    // $access_token['info'] = $bol;

                    $access_token['token'] = md5(date('Y-m-d H:i:s'));

                    $bol_token = Db::name('AccessToken')->insert($access_token);

                    if ($bol_token){

                        $data['obj'] = $bol;

                        $data['obj']['token'] = $access_token['token'];

                        return ['result' => $data];

                    }else{

                        return ['error' => ['code' => 5000, 'message' => '登录失败,token生成失败']];

                    }

                } else {

                    return ['error' => ['code' => 5000, 'message' => '登录失败,密码不正确']];

                }

            }else{

                return ['error' => ['code' => 5000, 'message' => '登录失败,账号不存在']];

            }

        }

    用户注册,在用户注册页面通过填写用户名、密码、姓名、身份证、手机等信息完成用户注册,如图5-2所示。

     

    图5-2用户注册界面图

    注册页面的逻辑代码如下。

    public function register()

        {

            if (Request::isPost()) {

                $request = Request::param();

                $request['create_time'] = isset($request['create_time']) ? $request['create_time'] : date('Y-m-d H:i:s');

                $request['update_time'] = isset($request['update_time']) ? $request['update_time'] : date('Y-m-d H:i:s');

                $result = $this->validate($request, $this->validate);

                if (true !== $result) {

                    // 验证失败 输出错误信息

                    $data['error'] = 30000;

                    $data['message'] = $result;

                } else {

                    $request['password'] = md5($request['password']);

                    $result = $this->model->register($request, $this->table);

                    $data = $result;

                }

            } else {

                $data['error'] = 30000;

                $data['message'] = "field的值不能为空!";

            }

            return json_encode($data);

        }

    public function register($request=[],$table_name = ''){

            $username = $request['username'];

            $bol = $this->where(['username'=>$username])->find();

            if (!$bol){

                $result = self::allowField(true)->save($request);

                if ($result) {

                    return ['result' => 1];

                } else {

                    return ['error' => ['code' => 3000, 'message' => '注册失败']];

                }

            }else{

                return ['error' => ['code' => 3000, 'message' => '注册失败,账号已存在']];

            }

        }

    准考证,在准考证页面可以通过关键词搜索、考生、准考证号、考生姓名、身份证、准考证、备注等信息,如图5-3所示。

     

    图5-3准考证界面图

    考生成绩信息,在考生成绩信息页面可以查看考生、准考证号、考生姓名、总成绩、排名、志愿批次等信息,如图5-4所示。

     

    图5-4考生成绩信息界面图

    志愿填报信息,在志愿填报信息页面可以查看考生、准考证号、考生姓名、总成绩、排名、志愿批次、录取志愿等信息,如图5-5所示。

     

    图5-5志愿填报界面图

    5.2管理员功能模块

    管理员登录,管理员通过输入用户名、密码、角色等信息即可进行系统登录,如图5-6所示。

     

    图5-6管理员登录界面图

    管理员登录进入单招志愿采集系统可以查看首页、用户管理(管理员、考生)更多管理(志愿批次、准考证、考生成绩、志愿填报、通知公告)管理、等内容,如图5-7所示。

     

    图5-7管理员功能界面图

    考生户管理,在考生管理页面可以查看昵称、用户名、准考证号、考生姓名、性别、身份证等信息,并可根据需要进行修改或删除等操作,如图5-8所示。

     

    图5-8考生管理界面图

    考生添加关键代码如下所示。

    public function get_list($request=[],$table_name = '',$table_id = ''){

            $page = 1;

            $size = $table_name == "auth" ? 100 : 10;

            $where = [];

            $order = $table_id.'_id desc';

            $field = '*';

    //        echo $order;exit;

            $columns = Db::query( "show COLUMNS FROM `".$table_name."`");

            foreach($columns as $key=>$val){

                $field_name = $val['Field'];

                if(isset($request['like'])){

                    if ($request['like']==true){

                        //字段模糊查询

                        if(isset($request[$field_name])){

                            $where[] = [$field_name, '=', $request[$field_name]];

                        }

                    }else{

                        //字段模糊查询

                        if(isset($request[$field_name])){

                            $where[] = [$field_name, 'like', '%' . $request[$field_name] . '%'];

                        }

                    }

                }else{

                    //字段模糊查询

                    if(isset($request[$field_name])){

                        $where[] = [$field_name, 'like', '%' . $request[$field_name] . '%'];

                    }

                }

                //范围查询

                if(isset($request[$field_name.'_min'])){

                    $where[] = [$field_name, '>=', $request[$field_name.'_min']];

                }

                if(isset($request[$field_name.'_max'])){

                    $where[] = [$field_name, '<=', $request[$field_name.'_max']];

                }

            }

            //分页

            if (isset($request['page'])){

                $page = $request['page'];

            }

            if (isset($request['size'])){

                $size = $request['size'];

            }

            //排序

            if (isset($request['order'])){

                $order = $request['order'];

            }

            //查询字段

            if (isset($request['field'])){

                $field = $request['field'];

            }

            //模糊查询

            $list= $this->where($where)->order($order)->field($field)->page($page, $size)->select()->toArray();

            foreach($list as &$l){

             foreach($l as &$o){

             if(strpos($o,$_SERVER['HTTP_HOST']) === false){

             $o = str_replace('upload','http://'.$_SERVER['HTTP_HOST'].'/upload',$o);

             }

             }

            }

            return $list;

        }

    志愿批次管理,在志愿批次管理页面可以查看批次等内容,并可根据需要进行修改或删除等操作,如图5-9所示。

     

    图5-9志愿批次管理界面图

    志愿填报管理,在志愿填报管理页面可以查看考生、准考证号、考生姓名、总成绩、排名、志愿批次、录取志愿等信息,并可根据需要进行修改或删除等操作,如图5-10所示。

     

    图5-10志愿填报管理界面图

    通知公告管理,在通知公告管理页面可以查看标题、相关附件、发布人、内容等信息,并可根据需要进行修改或删除等操作,如图5-11所示。

     

    图5-11通知公告管理界面图

    准考证管理,在准考证管理页面可以查看考生、准考证号、考生姓名、身份证、准考证、备注等信息,并可根据需要进行修改或删除操作,如图5- 12所示。

     

    图5-12准考证管理界面图

    6 系统测试

    6.1 测试理论

    软件系统测试的目的是通过测试找出在程序中的存在的错误信息和阻碍程序正常运转的安全隐患。这同时也是每一个系统软件测试的主要的规定,软件系统的应用过程中,发现一个重要的错误也是极具有很大的影响力的,一个好的测试的方案就为发展程序中存在的重大问题的;同样,一个成功的测试方案也就发现了迄今为止尚未发现的一个重要错误的测试。

    软件测试的主要的好处就是为了让软件的运行情况更好,让用户的使用的过程中更加的满意。在软件工程中,软件测试是一个十分重要环节,在交付用户使用最终的软件之前,软件测试就是一个检验的过程,主要针对的是软件的软件设计开发、需求分析、系统编码各阶段结果的一个检验过程。

    软件测试应遵循的原则如下:

    (1) 软件测试要尽快的进行并且整个测试部分要是在整个软件开发的各个过程和细节。在发现了错误的情况下,立刻处理,这样会大大的减少软件的开发成,提高软件的质量。

    (2) 在关于软件的各种测试中,例如测试的过程中使用的计划、报告等等要做到妥善的处理和保管,主要目的就是为了方便将来的对系统的维护。

    (3) 群集现象是应该得到高度重视的,在软件的整个测试的过程中。就是在整个测试的过程中发现了错误的主要地方很有可能是就很多的错误的聚集的地方,所以要对这样的部分给予特殊的照顾。

    (4) 对于软件的测试要尽量不要软件的设计开发人员或是机构,而是要另一方来进行测试程序,这样也是为了保证软件的测试结果的客观性以及公平公正性。

    (5) 对于整个测试计划要严格的按照一定的规则来进行软件测试。

    (6) 关于软件测试的过程中的用例应该是预期结果以及之前输入的数据信息构成,输入条件中的要考虑的有合理和不合理的因素都要考虑到,这样也是为了更好的帮助开发的人员更多的发现软件中存在的错误。

    (7) 对于整个的测试结果进行全面的检查,尽量避免出现重复的错误。

    6.2 测试方法及用例

    1、功能测试

    用户的角度来看,测试时不了解新开发软件的内部结构,因此可以将系统与黑匣子进行比较,盲目输入后可以查看系统给出的反馈。这种测试属于黑盒测试,在测试中如果输入错误信息系统会报错。

    2、性能测试

    测试软件程序的整体状态(称为性能测试)通常使用自动化测试工具来检测系统的整体功能,在负载和压力测试之间进行划分,在某些情况下,将两者结合起来。虽然压力测试可以检测到系统可以提供的最高级别的服务,但是负载测试可以测试系统如何响应增加的负载。

    在对系统进行测试的时候在找到问题的情况下必须在第一时间找到解决问题的办法,不要存在侥幸的心理,这样才能让系统开发的质量可以过关,并且开发的周期会大大缩短,还有就是在测试时,不要出现重复性的错误,遇到一个错误问题,要将整个系统开发所牵扯的该问题都必须一一解决,提高系统的安全性、稳定性。

    白盒测试与黑盒测试是测试中比较常用的两种方法。

    ①结构测试俗称白盒测试:这种测试是在对程序的处理过程与结构都有详尽了解的前提下,顺从程序内部的逻辑而完成的系统测试,以确定系统中所有的通路都能够遵照设计要求正常工作,不出现任何偏差。

    ②功能测试又成黑盒测试:主要是针对程序功能能够按照设计正常实现的一种检测,在程序接口处进行,检测程序手法数据是否正常,与外部信息的交换是否完整。

    测试用例:

    表6.1 用户注册测试用例

    用例编号

    UC-TEST-001

    测试名称

    用户注册

    前提条件

    用户注册

    步骤

    操作描述

    数据

    期望结果

    1

    点击用户注册查看详情按钮

    跳转到用户注册详情

    2

    点击添加按钮

    跳转到添加页面

    3

    选中添加后按钮

    跳转到用户注册页面

    测试说明

    用户未登录时到步骤3跳转到登录页面

    测试结果

    成功

    测试人

    表6.2 登录测试用例

    情况

    用户名输入

    密码输入

    期望结果

    (1)

    15546219225

    1244566

    提示“用户名或者密码错误,或账号未经审核

    (2)

    aaaaa

    123456

    提示“用户名或密码错误,或者账号未经审核

    (3)

    111

    111

    登陆成功

    6.3测试结果

    测试后得到的性能和用例,系统具有足够的正确性、可靠性、稳定性,并且可以对输入数据进行准确的点击操作处理和响应测试用户的体验也得到了很好的反馈和响应时间。合理的范围,可以兼容所有主流浏览器,设计所需的效果。

    结论

    此时项目已经完成,即使实施的时间不是很长,但是在这个过程中需要准备很长的一段时间去对系统设计开发所实际用到的技术进行学习和巩固。在学习的过程中,我逐渐认识到了我自身存在的一些不足。对于一些控制是必要的应用技能,能够理解,整个过程中仅仅是掌握了常用的性能和控制方法,我觉得还是相对来说挺容易的。从该系统中,系统的分析和设计的调查数据,已经经历了几个月,并且努力了几个月,该系统现在已经完成。很显然,该系统仍有很多不成熟的地方,在系统设计过程中有许多技术缺陷存在。在设计的过程中也涉及到了很多自己无法解决的问题,主要通过找专业的网站和论坛来解决这些问题,对于圆满完成我的毕业设计,他们也贡献了很大一部分力量。

    系统的开发环境和配置都是可以自行安装的,系统使用ThinkPHP开发工具,使用比较成熟的Mysql数据库进行对系统前台及后台的数据交互,根据技术语言结合需求对数据库进行修改维护,可以使得系统运行更具有稳定性和安全性,从而完成实现系统的开发。

    在设计单招志愿采集系统的过程中还遇到了一个棘手的问题,那就是自己的英语水平还有待提高,很多关于网站技术开发的资料文献都是英文版的,关键词语以及技术性词汇不能很好的理解。只有在借助翻译软件的实时性翻译功能的辅助下才勉强看懂。显然英语水平的高低直接影响到系统的开发过程。

    回顾毕业设计的整个过程,既付出了努力与汗水也收获了很多难以忘怀的美好经历。虽然在系统开发过程中经历了各种各样的困难,自己也在不断研究与探索,可是系统的实现仍有许多不足之处。但是经过系统编程工作的学习让我有了更多的信心,我相信在未来的路上,我会走的更好。

    致 谢

    毕业设计结束的同时也意味着四年的大学生活就要结束了。单招志愿采集系统的完成以及如何在系统运行过程中实现的更好,这其中付出了很大的努力,这段时光将会终身难忘。

    在毕业设计的这一段时间里,离不开导师的细心指导,还有同学们的热情帮助,有时候几个同学在一起讨论系统中的某个功能模块如何实现,如何实现的更好,或是问题没得到有效的解决,就会没有心思做其他的事情,让我们对学习充满了动力。

    在毕业设计即将结束之时,首先要感谢我的指导老师,谢谢您在毕业设计和毕业论文中对我的指导。在您的细心指导下我才能快速的掌握系统的相关功能,在您的大力帮助下我才能将课本上的知识与自己的项目结合,真正的做到学以致用。感谢您经常牺牲自己的休息时间,利用其丰富的教学和项目经验对我进行指导。 课堂上,您教会我们如何学习、教会我们新的知识,在课下,您又像朋友一样亲切,教会了我很多道理,让我意识到先做人、后做事。感谢所有教过我的老师,为我倾注了大量的心血,正是你们的谆谆教诲、严谨教学才使我能顺利的完成学业,再此向你们表示深深的感谢。感谢大学里教过我的每一位老师,真心祝福您们。

    在这里还得感谢我的战友们,也就是同学们对我的大力支持及帮助。正是因为有你们的不断帮助、鼓励,熬夜通宵,不停的调试、测试程序,给我带来了极大的动力,才能最终完成网站的运行。我们在一起交流、谈论的时光,都将是我们在通往未来道路上的宝贵财富。我要深深地感谢你们!

    毕业在即,在今后的工作和生活中,我会铭记师长们的教诲、同学们的帮助,继续不懈努力和追求,来报答所有支持和帮助过我的人!

    最后,我要向牺牲了休息时间来对本文进行审阅,评议和参与论文答辩的各位老师表示深深的感谢。在此,衷心的谢谢您们!


    参考文献

    [1]喻健,鲍琪.基于ThinkPHP的人口信息系统设计[J].信息技术与信息化,2022(02):9-12.

    [2]Jingyuan Li. Construction of training platform for teachers professional ability of normal students based on ThinkPHP[J]. Frontiers in Educational Research,2021,4.0(15.0).

    [3]周志文,黄广明,纪向晴,李朝武. 一种基于ThinkPHP框架的SQL组装方法及系统[P]. 广东省:CN113836137A,2021-12-24.

    [4]陈春凯,马娅,刘付祥.基于THINKPHP框架的智能航标管理系统设计[J].电子技术与软件工程,2021(23):178-181.

    [5]马涛.基于PHP技术的视频点播网站设计分析[J].信息记录材料,2021,22(11):190-191.DOI:10.16009/j.cnki.cn13-1295/tq.2021.11.089.

    [6]刘军.基于PHP技术的动态网页设计[J].信息记录材料,2021,22(10):142-143.DOI:10.16009/j.cnki.cn13-1295/tq.2021.10.068.

    [7]冯英伟,吕国.基于PHP技术的智慧教室监控平台设计研究[J].河北建筑工程学院学报,2021,39(02):159-161.

    [8]夏鑫宇,习聪玲,陈志林,刘长达,周聪.基于ThinkPHP技术实现个人订阅号开发[J].电脑编程技巧与维护,2021(04):61-63.DOI:10.16184/j.cnki.comprg.2021.04.022.

    [9]罗丽娜. 基于ThinkPHP+微信小程序的就业服务系统设计与实现[D].首都经济贸易大学,2020.DOI:10.27338/d.cnki.gsjmu.2020.000408.

    [10]衡泽昊. 基于PHP技术的农业科技学习推广平台的设计与实现[D].华中师范大学,2020.DOI:10.27159/d.cnki.ghzsu.2020.001709.

    [11]陈宇宁. 基于ThinkPHP框架的在线购物系统设计与实现[D].广东工业大学,2019.DOI:10.27029/d.cnki.ggdgu.2019.001507.

    [12]不公告发明人. 一种ThinkPHP框架技术的网上商城系统[P]. 湖南省:CN109426490A,2019-03-05.

    [13]郭亚东. 基于PHP技术的网站设计及建设方式分析[C]//.“决策论坛——创新思维与领导决策学术研讨会”论文集(上).[出版者不详],2017:267.

    [14]Liu Ye,Sun Zhiyong, Chen JiaHui. A Film Criticism Website Based on “ThinkPHP”[J]. International Journal of Advanced Pervasive and Ubiquitous Computing (IJAPUC),2017,9(1).

    [15]传智播客高教产品研发部. PHP+Ajax+jQuery网站开发项目式教程[M].人民邮电出版社:, 201602.329.

    免费领取本源代码,请关注点赞+私聊

  • 相关阅读:
    Flink 1.13(八)CDC
    华为数通HCIA-地址分类及子网划分
    单链表的插入删除
    Linux sed命令
    苍穹外卖day8(2)用户下单、微信支付
    新零售复购分析,简单 3 步抓住回头客
    Facebook宣布关闭面部识别系统,删除超过10亿用户的数据
    工业互联网数据监测预警解决方案
    手把手教你使用 Java 在线生成 pdf 文档
    [答疑]是不是直接写“发红包”而不是“请求微信发红包”
  • 原文地址:https://blog.csdn.net/WeiXin_DZbishe/article/details/126765842