大学生“考证”已经成为大学生的一门必修课,越来越多的大学生加入考证的行列,他们认为毕业找工作的时候,证书是多多益善。大学生“考证热”应该引起学生,学校、以及社会用人单位等多方面的高度重视。大学生考证热潮的形成,主要是由于学校、用人单位、社会培训机构和学生个人这几方面的因素影响。
论文针对在高校学生考证信息各种数据规模大,管理人员需要对考证相关的一些信息进行管理的需求,设计了高校学生考证资源共享小程序的框架,给出了高校学生考证资源共享小程序的总体设计,并对高校学生考证资源共享小程序的架构及关键模块的实现过程进行了详细论述。采用PHP技术和MySQL数据库技术,基于B/S模式实现了一个完整系统的设计,为大高校学生提供了良好的考证资源共享平台。
关键词:考证资源共享;PHP;MySQL;B/S模式
College students' "certificate examination" has become a compulsory course for college students. More and more college students join in the examination. They think that when they graduate and find a job, the more certificates are the better. The "certificate fever" of college students should be highly valued by students, schools and social employers. The formation of the upsurge of college students' certification is mainly due to the factors of schools, employers, social training institutions and students themselves.
In view of the large scale of the various data of the college student examination information and the need of the management personnel to manage some information related to the examination, the paper designs the framework of the college student examination resource sharing applet, gives the overall design of the college student examination resource sharing applet, and discusses in detail the architecture of the college student examination resource sharing applet and the implementation process of the key modules. Using PHP technology and MySQL database technology, a complete system design based on B/S mode has been implemented, providing a good platform for college students to share the examination resources.
Keywords: Sharing of examination resources; PHP; MySQL; B/S mode
摘要
Abstract
第 1 章 引 言
1.1 选题背景
1.2 课题研究意义
1.3 论文结构安排
1.4 开发技术说明
第 2 章 高校学生考证资源共享小程序的需求分析
2.1 系统可行性分析
2.1.1 技术可行性分析
2.1.2 经济可行性分析
2.2 系统需求分析
2.2.1 功能需求分析
2.2.2 非功能性需求分析
2.3 系统用例分析
第 3 章 高校学生考证资源共享小程序总体设计
3.1 系统功能模块设计
3.2 数据库设计
3.2.1 数据库概念结构设计
3.2.2 数据库逻辑结构设计
第 4 章 关键模块的设计与实现
4.1 用户模块
4.2 管理人员角色模块
第 5 章 系统实验与结果分析
5.1 测试目的
5.2 系统部分测试
5.3 系统测试结果
第 6 章 结论
参考文献
致谢
因长期受传统高等教育观念和计划经济体制的影响,我国高校人才培养模式和质量存在较明显的不足,培养的人才满足不了社会和用人单位的要求,大学生不得不通过考证来改善和提升知识结构,专业知识技能和实践能力,从而增强自身的就业竞争力,跟上时展的步伐。
据有关调查显示,用人单位在招聘高校应届毕业生时,很难准确地评估应聘者的专业知识和实际能力,这个时候含金量较高,社会认可度较高的相关职业资格证书定能起到雪中送炭的作用,尤其是一些行业必须具备强制性的上岗证书,此时用人单位无疑会优先录用具有从业资格证书的大学生。
-
- 课题研究意义
因社会就业岗位供求的错位,就业渠道不畅通等原因,大学生就业形势日趋严峻,为了能在求职过程中找到一个相对满意的工作,相当多的大学生在完成正常学习的前提下,一般均会主观上选择考取社会上几个比较热门的证书,以增加就业的砝码,增强就业自信心。
正确引导大学生考证,是高等教育中必须面对的一个课题。对高等学校来说,逐步实行多元化,素质化教育,增强学生实际动手能力,尽可能早地让学生的就业和企业对接,使学生就业的方向瞄得更精准,减少盲目“考证”。通过大学生考证平台,高校应该和企业,社会培训机构进行联合,按照学生就业方向和兴趣,输送学生到企业或社会培训机构,在实战中提高,在实战中锻炼,实现学校、企业和学生多赢的局面。
论文将分层次经行编排,除去论文摘要致谢文献参考部分,正文部分还会对网站需求做出分析,以及阐述大体的设计和实现的功能,最后罗列部分调测记录,论文主要架构如下:
第1章 交代项目的背景和现状。
第2章 对系统的需求展开分析。
第3章 阐述了网站的总体设计。
第4章 阐明了高校学生考证资源共享小程序详细功能的实现,主要根据技术性的功能模块功能实现。
第5章 罗列了部分系统调试与测试的记录。
第6章 介绍了高校学生考证资源共享小程序的结论。
-
- 开发技术说明
本系统前端部分基于MVVM模式进行开发,采用B/S模式,后端部分基于php的Thinkphp框架进行开发。
前端部分:前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router和Vuex实现动态路由和全局状态管理,Ajax实现前后端通信,Element UI组件库使页面快速成型。
后端部分:采用Thinkphp作为开发框架,同时集成Redis等相关技术。
-
-
- Thinkphp框架介绍
-
ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。最早诞生于2006年初,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进。 [1]
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能够解决应用开发中的大多数需要,因为其自身包含了底层架构、兼容处理、基类库、数据库访问层、模板引擎、缓存机制、插件机制、角色认证、表单处理等常用的组件,并且对于跨版本、跨平台和跨数据库移植都比较方便。并且每个组件都是精心设计和完善的,应用开发过程仅仅需要关注您的业务逻辑。
-
-
- 小程序框架以及目录结构介绍
-
整个小程序框架系统分为两部分:逻辑层和视图层。小程序开发框架的目标是通过尽可能简单、高效的方式让开发者可以在微信中开发具有原生 小程序 体验的服务。小程序在视图层与逻辑层间提供了数据传输和事件系统,提供了自己的视图层以及逻辑层框架,让开发者能够专注于数据与逻辑。框架的核心是一个响应的数据绑定系统,可以让数据与视图非常简单地保持同步。在逻辑层做数据修改,在视图层就会做相应的更新。框架提供了一套基础的组件,这些组件自带微信风格的样式以及特殊的逻辑,开发者可以通过组合基础组件,创建出强大的微信小程序 。
高校学生考证资源共享小程序存储所使用的mysql数据库以及开发中所使用的PHP、Thinkphp、Element UI这些开发工具的使用,能够给我们的编写工作带来许多的便利。系统使用B/S模式进行开发,使系统的可扩展性和维护性更佳,减少系统配置代码,简化编程代码,目前B/S模式是目前最受欢迎的一种模式。
在开发高校学生考证资源共享小程序中所使用的开发软件像PHP、Thinkphp、Element UI开发工具、Apache服务器、MySQL5.7数据库、HTML 、Photoshop图片处理软件等,这些都是开源免费的,并且高校学生考证资源共享小程序是自己设计并编码实现的,数据库是使用流行mysql进行数据的存储,开源的mysql等技术的使用,减少系统开发费用。
高校学生考证资源共享小程序的设计与实现是为了让广大高校学生更加方便的进行考证资料查询,更多了解考证分类信息等,能够使得使用者查找某一信息时能节省大量的时间和精力,有效减少不必要的查找时间。
研究高校学生考证资源共享小程序的设计与实现,是为了能够拥有界面简洁友好、操作简单以及运行稳定的智能化的一站式考证资源分享平台。系统的需求主要来自高校学生。
高校学生考证资源共享小程序选择PHP结合Thinkphp、Element UI等技术来进行开发,使用了mysql数据库来存储数据,划分为学生用户和管理员端两大部分。
前台用户端:
(1)系统信息:当用户进入本高校学生考证资源共享小程序的前台的时候,首先展示在眼前的是导航栏、轮播图、公告栏等信息,用户可以根据自己个人的需求进行查看;
(2)注册登录:在系统的右上角有登录+注册+搜索查看按钮,如果用户想要登录到系统当中,可以点击“登录”按钮,然后填写号用户名+密码,点击“登录”按钮,系统会对你的用户名密码进行核对,正确的话就会登录成功了,如果没有账号的话,可以点击右上角的“注册”按钮,然后根据提示输入好用户信息,就可以得到账号和密码了;
(3)考证资讯:当用户登录到系统中以后,点击“考证资讯”这一菜单,系统弹跳出资讯标题、内容信息等,点击查看;
(4)练习题库:当用户点击“练习题库”这个按钮,会出现题库列表以及题目信息,可以在线进行练习题练习操作;
(5)考证资料推荐:当用户点击“考证资料推荐”这个按钮,会出现资料名称、资料类型、考证名称、资源下载等内容,用户可以自行查看以及下载相关资料;
(6)考证交流:当用户点击“考证交流”这个按钮,可以进行交流信息提交;
(7)我的收藏:用户对资料进行收藏操作,可以在个人收藏信息中查看自己的收藏详情;
管理人员端:
高校学生考证资源共享小程序包括了管理员,用户两部分,其中管理员拥有最高的权限,可以对用户信息、系统信息进行管控。
(1)用户管理:管理员在后台都可以查看到用户的信息,但是只有管理员可以对用户进行增删改查操作;
(2)轮播图:管理员可以对系统轮播图进行增删改查操作;
(3)网站公告管理:管理员在后台可以对网站公告信息进行增删改查操作;
(4)考证资讯管理:管理员点击“考证资讯”这一按钮后会弹跳出资讯列表、可以对资讯信息进行增删改查操作;
(5)练习题库管理:点击“练习题库”这一按钮后会显示出所有的题库信息,并且可以进行添加、编辑、删除和查询操作;
(6)考证交流管理:点击“考证交流”这一按钮后会显示出所有的交流信息,并且可以进行添加、编辑、删除和查询操作;
(7)资料分类管理:点击“资料分类”这一按钮后可以对资料进行分类管理;
(8)考证分类管理:点击“考证分类”这一按钮后可以对考证信息进行分类;
(9)考证资料管理:点击“考证资料”这一按钮后可以对考证资料进行发布管理。
高校学生考证资源共享小程序的非功能性需求比如高校学生考证资源共享小程序的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下3-1表格中:
安全性 | 主要指高校学生考证资源共享小程序数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 | 可靠性是指高校学生考证资源共享小程序能够安装用户的指示进行操作,经过测试,可靠性90%以上。 |
性能 | 性能是影响高校学生考证资源共享小程序占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 | 用户只要跟着高校学生考证资源共享小程序的页面展示内容进行操作,就可以了。 |
可维护性 | 高校学生考证资源共享小程序开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
高校学生考证资源共享小程序中用户角色用例图如图2.1所示:
图2.1 用户角色用例图
高校学生考证资源共享小程序中管理员角色用例图如图2.2所示:
图2.2管理员角色用例图
在上一章节中分析了高校学生考证资源共享小程序的功能性需求,并且根据需求分析了高校学生考证资源共享小程序中的用例。那么接下来就要开始对高校学生考证资源共享小程序架构、主要功能和数据库开始进行设计。
系统的整体架构确定以后,再来看高校学生考证资源共享小程序的主要功能模块图。整体的功能模块包括管理员+用户两个模块,实现的模块主要有用户管理、考证资讯管理、资讯分类管理、考证交流管理、练习题库管理、考证分类管理、考证资料管理等。
图3.1 高校学生考证资源共享小程序功能模块图
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有E-R模型和逻辑结构设计两部分。
下面是整个高校学生考证资源共享小程序中主要的数据库表总E-R实体关系图。
图3.2 高校学生考证资源共享小程序总E-R关系图
下面根据高校学生考证资源共享小程序的数据库总E-R关系图可以得出高校学生考证资源共享小程序需要很多E-R图,在此罗列出来一些主要的数据库E-R模型图。
图3.3 考证交流E-R关系图
图3.4 考证资料E-R关系图
图3.5 练习题库E-R关系图
通过前面E-R关系图一共需要创建很多个数据表。在此罗列这几个主要数据库表的关系模型如下:
(1)registered_users表:
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
registered_users_id | int | 11 | 是 | 是 | 注册用户ID |
full_name | varchar | 64 | 否 | 否 | 姓名 |
gender | varchar | 64 | 否 | 否 | 性别 |
examine_state | varchar | 16 | 是 | 否 | 审核状态 |
recommend | int | 11 | 是 | 否 | 智能推荐 |
user_id | int | 11 | 是 | 否 | 用户ID |
create_time | datetime | 0 | 是 | 否 | 创建时间 |
update_time | timestamp | 0 | 是 | 否 | 更新时间 |
(2)data_classification表:
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
data_classification_id | int | 11 | 是 | 是 | 资料分类ID |
data_type | varchar | 64 | 否 | 否 | 资料类型 |
recommend | int | 11 | 是 | 否 | 智能推荐 |
create_time | datetime | 0 | 是 | 否 | 创建时间 |
update_time | timestamp | 0 | 是 | 否 | 更新时间 |
(3)exam_question表
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
exam_question_id | mediumint | 8 | 是 | 是 | 练习题库 |
type | varchar | 20 | 否 | 否 | 类型 |
title | varchar | 255 | 否 | 否 | 题目 |
question_item | varchar | 500 | 否 | 否 | 选项 |
answer | varchar | 500 | 否 | 否 | 参考答案 |
score | double | 8 | 否 | 否 | 总分 |
question_order | int | 11 | 否 | 否 | 排序 |
exam_id | mediumint | 8 | 否 | 否 | 所属试卷 |
create_time | timestamp | 0 | 是 | 否 | 创建时间: |
update_time | timestamp | 0 | 是 | 否 | 更新时间: |
(4)exam表:
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
exam_id | mediumint | 8 | 是 | 是 | 考试id |
name | varchar | 32 | 是 | 否 | 考试名称:[2,32] |
duration | int | 11 | 否 | 否 | 答题时长 |
score | double | 8 | 否 | 否 | 总分 |
status | varchar | 10 | 否 | 否 | 状态:启用、禁用 |
create_time | timestamp | 0 | 是 | 否 | 创建时间: |
update_time | timestamp | 0 | 是 | 否 | 更新时间: |
(5)notice表:
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
notice_id | mediumint | 8 | 是 | 是 | 公告id: |
title | varchar | 125 | 是 | 否 | 标题: |
content | longtext | 0 | 否 | 否 | 正文: |
create_time | timestamp | 0 | 是 | 否 | 创建时间: |
update_time | timestamp | 0 | 是 | 否 | 更新时间: |
(6)textual_research_classificationn表:
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
textual_research_classification_id | int | 11 | 是 | 是 | 考证分类ID |
name | varchar | 64 | 否 | 否 | 考证名称 |
recommend | int | 11 | 是 | 否 | 智能推荐 |
create_time | datetime | 0 | 是 | 否 | 创建时间 |
update_time | timestamp | 0 | 是 | 否 | 更新时间 |
(7)textual_research_materials表:
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
textual_research_materials_id | int | 11 | 是 | 是 | 考证资料ID |
data_name | varchar | 64 | 否 | 否 | 资料名称 |
data_type | varchar | 64 | 否 | 否 | 资料类别 |
name | varchar | 64 | 否 | 否 | 考证名称 |
cover | varchar | 255 | 否 | 否 | 封面 |
data | varchar | 255 | 否 | 否 | 资料 |
data_introduction | text | 0 | 否 | 否 | 资料介绍 |
hits | int | 11 | 是 | 否 | 点击数 |
praise_len | int | 11 | 是 | 否 | 点赞数 |
recommend | int | 11 | 是 | 否 | 智能推荐 |
create_time | datetime | 0 | 是 | 否 | 创建时间 |
update_time | timestamp | 0 | 是 | 否 | 更新时间 |
(8)upload表:
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
upload_id | int | 11 | 是 | 是 | 上传ID |
name | varchar | 64 | 否 | 否 | 文件名 |
path | varchar | 255 | 否 | 否 | 访问路径 |
file | varchar | 255 | 否 | 否 | 文件路径 |
display | varchar | 255 | 否 | 否 | 显示顺序 |
father_id | int | 11 | 否 | 否 | 父级ID |
dir | varchar | 255 | 否 | 否 | 文件夹 |
type | varchar | 32 | 否 | 否 | 文件类型 |
praise_len | int | 11 | 是 | 否 | 点赞数 |
高校学生考证资源共享小程序的详细设计与实现主要是根据前面的高校学生考证资源共享小程序的需求分析和高校学生考证资源共享小程序的总体设计来设计页面并实现业务逻辑。主要从高校学生考证资源共享小程序界面实现、业务逻辑实现这两部分进行介绍。
当进入高校学生考证资源共享小程序的时候,首先映入眼帘的是系统的导航栏,在左上角能够看到导航栏,其主界面展示如下图4.1所示。
图4.1 首页界面图
高校学生考证资源共享小程序中的前台上注册后的用户是可以通过自己的username和password进行登录的,当会员输入完整的自己的username和password信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的username和password在数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到高校学生考证资源共享小程序的首页中;否则将会提示相应错误信息,用户登录界面如下图4.2所示。
图4.2 用户登录界面图
用户登录的关键代码如下。
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' => '登录失败,账号不存在']];
}
}
当用户点击高校学生考证资源共享小程序中导航栏上的“考证资讯”后将会进入到该“资讯”列表的界面,然后选择想要看的资讯信息,点击进入到详细界面,考证资讯界面如下图4.3 所示。
图4.3考证资讯界面图
考证资讯的关键代码如下。
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
@Transactional
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
当访用户击高校学生考证资源共享小程序中导航栏上的“考证交流”后将会进入到该考证交流列表,可以搜索查看某个交流信息,考证交流面如下图4.4所示。
图4.4考证交流界面图
考证交流的关键代码如下。
public function avg_group()
{
$request = Request::param();
if (isset($request['groupby']) && isset($request['field'])) {
if (!empty($request['groupby']) && !empty($request['field'])) {
$result = $this->model->avg_group($request, $this->table, $this->table_id);
$data = $result;
} else {
$data['error']['code'] = 30000;
$data['error']['message'] = "groupby或者field的值不能为空!";
}
} else {
$data['error']['code'] = 30000;
$data['error']['message'] = "groupby或者field的值不能为空!";
}
return json_encode($data);
}
当用户点击右上角“练习题库信息”这个按钮,会出现练习题库信息,用户可以进行在线答题操作等,此界面如下图4.5所示。
图4.5练习题库界面图
当用户点击右上角“我的收藏”这个按钮,会出现个人收藏信息,我的收藏界面如下图4.6所示。
图4.6我的收藏界面图
当用户在后台点击 “基本信息”这个按钮,会出现自己个人信息,支持在线修改,基本信息界面如下图4.7所示。
图4.7基本信息界面图
基本信息关键代码:
public function avg()
{
$request = Request::param();
if (isset($request['field'])) {
if (!empty($request['field'])) {
$result = $this->model->avg_field($request, $this->table, $this->table_id);
$data = $result;
} else {
$data['error']['code'] = 30000;
$data['error']['message'] = "field的值不能为空!";
}
} else {
$data['error']['code'] = 30000;
$data['error']['message'] = "field的值不能为空!";
}
return json_encode($data);
}
高校学生考证资源共享小程序的管理员人员包括了管理员,用户两部分,其中管理员拥有最高的权限,可以对用户信息、系统信息进行管控。
管理员在登录界面输入账号+密码,点击“登录”按钮,系统在用户数据库表中会对管理员的账号进行匹配,账号+密码正确的话,就会登录到系统中各个用户的主管理界面,否则提示对应的信息,返回到登录的界面,如果管理人员忘记密码的话,点击“忘记密码”根据提示可以找回密码,然后再进行登录其主界面展示如下图4.8所示。
图4.8登录界面图
用户管理模块包含了管理员、用户两个部分,管理员在后台都可以查看到用户的信息,可以对用户进行增删改查操作;这里以用户用户为例,界面如下图4.9所示。
图4.9用户管理界面图
用户管理关键代码:
$obj = $this->where($where)->field($field)->find();
$result = self::allowField(true)->save($request);
$result = $this->where($where)->update($request);
$result = $this->where($where)->delete();
管理员点击“考证资料”这一按钮后会显示出考证资料列表,任选一条信息,点击“编辑”这一按钮后,会对考证资料状态进行设置;考证资料界面如下图4.10所示。
图4.10考证资料管理界面图
考证资料管理关键代码
public function add($request=[],$table_name = '',$table_id = ''){
$result = self::allowField(true)->save($request);
if ($result) {
return ['result' => 1];
} else {
return ['error' => ['code' => 3000, 'message' => '数据添加失败']];
}
}
点击“考证资讯”这一按钮后会显示出所有的考证资讯,在考证资讯界面可以添加新的考证资讯,可以对考证资讯进行修改、删除,考证资讯管理界面如下图4.11所示。
图4.11考证资讯管理界面图
考证资讯管理关键代码
public function upload()
{
//上传文件目录获取
$month = date('Ym', time());
$data = 'file';//文件域
$path = 'upload/file/' . $month . "/";//上传文件保存位置
$allow_ext = explode(",", "jpg,jpeg,png,jfif,bmp,gif,ico,xls,xlsx,AVI,mov,rmvb,rm,FLV,mp4,3GP");
if ($_FILES) {
$file = $_FILES[$data];
$rst = [];
if (!empty($file['name'])) {
$file_type = explode('.', $file['name']);
$ext = end($file_type); //获取文件的格式
$ext = strtolower($ext);
if (!in_array($ext, $allow_ext)) {
$rst['error']['code'] = 30000;
$rst['message'] = '只能上传jpg,jpeg,png,jfif,bmp,gif,ico,xls,xlsx,AVI,mov,rmvb,rm,FLV,mp4,3GP类型文件';
} else {
if (!is_dir($path))//判断目录是否存在
{
mkdir($path, 0777, true);//如果目录不存在则创建目录
};
$name = date('YmdHis') . '_' . rand(10000, 99999) . '.' . $ext;
$save_rst = move_uploaded_file($file['tmp_name'], $path . $name);
if ($save_rst !== false) {
// $rst['code'] = 1;
$rst['result']['url'] = 'http://'.$_SERVER['HTTP_HOST'].'/'.$path . $name;
// $rst['ext'] = $ext;
} else {
$rst['error']['code'] = 30000;
$rst['error']['message'] = '文件上传失败';
}
}
} else {
$rst['error']['code'] = 30000;
$rst['error']['message'] = '未选择文件';
}
} else {
$rst['error']['code'] = 30000;
$rst['error']['message'] = '未获取到文件';
}
return json_encode($rst);
}
点击“练习题库管理”这一按钮后会显示出所有的练习题库,在练习题库界面可以添加新的练习题库,可以对练习题库进行修改、删除,练习题库管理界面如下图4.12所示。
图4.12 练习题库管理界面图
练习题库管理关键代码
public function avg()
{
$request = Request::param();
if (isset($request['field'])) {
if (!empty($request['field'])) {
$result = $this->model->avg_field($request, $this->table, $this->table_id);
$data = $result;
} else {
$data['error']['code'] = 30000;
$data['error']['message'] = "field的值不能为空!";
}
} else {
$data['error']['code'] = 30000;
$data['error']['message'] = "field的值不能为空!";
}
return json_encode($data);
}
点击“资料分类管理”这一按钮后会显示出所有的资料分类信息,在资料分类信息界面可以添加新的资料分类信息,可以对其进行修改、删除,资料分类管理界面如下图4.13所示。
图4.13资料分类管理界面图
系统的前台、后台、数据库完成以后,这个系统才算是完成了一半,我们在这之后要对系统进行最后的一个阶段,那就是测试了,测试对一个系统来说是非常重要的,有的时候开发完一个系统,如果测试不合格的话,这个系统是没有办法进行投入使用的,所有我们要用测试对系统的功能进行检验,把不完善的功能尽量完善,把出现的bug解决掉,然后给用户呈现出一个完美的系统。通过对系统最后一步的测试,使得开发人员对自己的系统更加有信心,更加积极的为后期的系统版本的更新提供支持。
用户登录功能测试:
表5.1 用户登录功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
用户登录模块测试 | 用户登录成功的情况 | 点击前台首页左上角“登录”链接后账号和密码分别输入yonghu1和123456后点击“登录”按钮。 | 登录成功并调整到用户界面 | 正确 |
资讯信息添加功能测试:
表5.2 资讯信息添加功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
资讯添加模块测试 | 资讯添加成功的情况 | 在资讯信息的页面中将点击添加,选择标题+标签+内容,输入正确的信息后然后点击“提交”按钮。 | 提示添加成功 | 正确 |
资讯添加模块测试 | 资讯添加失败的情况 | 在资讯建安页面中不填写的用户,其他信息正常输入“提交”按钮。 | 提示“添加失败,用户不能为空” | 正确 |
查询用户信息功能模块测试:
表5.3 查询用户信息功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
查询用户信息功能测试 | 查询成功的情况 | 菜单栏中点击用户管理菜单下的子菜单用户用户,输入入用户名或者姓名对用户用户进行查询 | 查询成功 | 正确 |
查询考证资料信息功能模块测试:
表5.4 查询考证资料信息功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
查询考证资料信息功能测试 | 查询成功的情况 | 在系统的首页点击菜单栏中考证资料这个按钮,查看考证资料列表,对考证资料进行查询 | 查询成功 | 正确 |
通过对高校学生考证资源共享小程序的调试,能够检测高校学生考证资源共享小程序的稳定性,为高校学生考证资源共享小程序正式运行、稳定运行提供了可预测性的维护备案。能够帮助使用者熟悉整个高校学生考证资源共享小程序,并对高校学生考证资源共享小程序可能出现的错误有所了解。本章节提供了部分调试用例及调试日志,可以帮助使用者解决简单的错误问题,也加深了开发者对于此框架下的高校学生考证资源共享小程序编写的了解度,为后期开发者顺利完成高校学生考证资源共享小程序、发布高校学生考证资源共享小程序提供了非常大的帮助。
本次高校学生考证资源共享小程序的开发中我学会了例如良好的编程思想和完善的规划思想。在着手编程之前需要罗列出程序框架的大概,脑海中构建出程序的主题框架。做好这一步我们才能胸有成竹的经行开发项目。当设计框架了熟于心之后,需要思考本次编程所需的主要知识点和技术点,并充分学习。如此一来项目的开发才能循序渐进、如丝般顺滑,长久以往就能养成良好的开发习惯。一个程序好不好还要看出的bug多不多,如果在项目完成前做好bug的查验与预防可能发生的事故才能保证程序的稳定长久性运行。如果项目在完工后出现各种问题自己,那么在进入社会后,不仅会给公司团队带来麻烦和增加不必要的工作,还会导致客户流失,公司对自己的评价下降。
在本次项目中我也暴露了诸多问题。对于PHP相关的编程知识有所欠缺,环境配置和算法上出现诸多问题,时常导致项目运行出错,或者目标的实现有问题。或者实现想法时算法未优化,使得代码冗长,程序运行不顺畅。
[1]张黎平.“互联网+”背景下PHP动态网站开发技术研究[J].无线互联科技,2022,19(16):154-156.
[2]赵婉彤.基于PHP与MySQL的动态网站设计与实现[J].电脑编程技巧与维护,2022(08):103-105+109.
[3]张俊.MySQL数据库在PHP网页中的动态应用[J].集成电路应用,2022,39(06):112-113.
[4]林美美.1+X证书制度下高职学生考证意愿及影响因素[J].九江职业技术学院学报,2021(03):31-35.
[5]陈海琼,邹起霞,何曼莹,赵觅.基于PHP的题库练习系统的设计与实现[J].电声技术,2021,45(09):64-67.
[6]张为东,滕兆梅.就业严峻形势下民办独立院校学生“考证热”现状分析[J].就业与保障,2020(06):37-38.
[7]张强,秦亚东,赵宝林.高校学生“考证热”现象分析[J].太原城市职业技术学院学报,2019(06):94-97.
[8]梁连旺.Sqlite实现学生考证练习软件[J].电子技术与软件工程,2019(03):50.
[9]付洋,陈静娴,由裕韫,杨瑞.基于Android系统考证APP设计与开发[J].软件工程,2018,21(10):27-30.
[10]许乐清.考证类辅导信息化系统的系统分析与设计[J].电脑迷,2018(06):31.
[11]吴培研.在线考试系统在电子商务考证课程中的应用研究[J].职业,2018(01):112-113.
[12]蒋荣军,林芝怡. 职业考证网络报名系统分析与设计[C]//.2016智能城市与信息化建设国际学术交流研讨会论文集I.,2018:362.
[13]陈土丽. 广东科技学院职业资格考证管理系统研究与分析[D].云南大学,2018.
[14]傅双榕.数据挖掘在高职院校学生技能考证系统中的应用[J].科技信息,2018(10):244.
致谢
至此论文结束,感谢您的阅读。在此我要感谢我的导师,虽然我在实习期间很忙,论文撰写总是停停改改,但是导师依然十分负责,时不时的询问我的任务进展情况,跟进我的论文进度。虽然我在实习期间很忙,以至于很晚才开始进行论文撰写和编写程序的工作,但是在指导老师的帮助下,我逐步完成了自己的论文和程序,从导师身上也学习到很多知识,和经验,这些知识和经验令我受益匪浅。也从导师身上看到了自己的不足,不论是在即使层面上还是在对待工作的态度上,倒数如同明镜一般照出了我的缺点我的不足。此外,我还要感谢在我实习期间在论文和程序上帮助过我的同学和社会人士,此前我对于PHP方面的一些知识还不了解,是他们在我编写程序过程中给了我很多的启发和感想,也帮助了我对于程序的调试和检测。没有他们我是不能顺利完成本次毕业设计的。至此,我的毕业设计就花上了一个圆满的句号了。
关注&点赞&收藏&私信博主,免费领取项目源码