基于|PHP+uniapp微信小程序的高校习题通的设计与实现

技术栈和环境说明

Laravel以其优雅的语法和快速开发能力著称,简化了许多常见任务
ThinkPHP是一个简单易用且功能强大的轻量级PHP开发框架,具有简洁的代码结构和丰富的文档,它是为满足快速开发需求而设计的
开发语言:php 一种常用于动态性交互网站的后端编程的解释型语言,是一门开源且免费的编程语言
后端框架:Thinkphp/Laravel
前端框架:vue.js
服务器:apache
数据库:mysql
运行环境:phpstudy/wamp/xammp等

项目介绍

后台网站管理部分:
(1)用户信息管理界面:显示用户的基本信息,提供查看用户收藏和错题的功能。
(2)题目管理界面:显示所有题目,提供增加题目、修改题目、删除题目、查看评论以及分类查询题目的功能。
(3)评论管理界面:显示所有用户的评论。
(4)课程信息界面:显示所有课程,提供增加课程、修改课程、删除课程以及查看课程题目的功能。

(1)选择题库和刷题方式:用户在小程序首页点击按钮选择课程,然后选择刷题方式。
(2)小程序前台向后台传递获取题库请求:小程序前台将课程名和刷题方式带参传递到后台。
(3)后台返回题目列表:后台根据小程序前台传过来的参数,调用获取题目列表的方法,返回题目列表。
(4)小程序前台向后台传递获取评论请求:小程序前台根据后台返回的题目列表,向后台传递获取题目评论的请求。
(5)后台传回评论列表:小程序后台根据前台传过来的题目ID的参数,调用获取评论列表的方法,返回评论列表。
(6)小程序前台向后台传递获取收藏请求:小程序前台根据后台返回的题目列表,向后台传递获取用户收藏情况的请求。
(7)后台返回收藏情况列表:小程序后台根据前台传过来的题目ID和用户ID的参数,调用获取收藏情况列表的方法,返回收藏情况的列表。
(8)小程序前台显示题目列表:小程序前台在界面上显示获取到的题目列表。
(9)用户提交答案。
(10)小程序前台核对答案:小程序前台核对用户的答案与题目的正确答案。
(11)小程序前台显示答题结果:小程序前台显示用户答案和题目的正确答案,并显示题目的评论。
(12)小程序前台向后台传递添加收藏和错题请求:小程序根据用户的收藏和答题情况,向后台传递添加收藏和错题的请求。
(13)结束刷题并返回首页。
前端部分:
(1)题库界面:显示刷题小程序提供的刷题题库,并提供相关功能的触发按钮。题库选择概论五门课程;刷题方式选择包含智能练习和顺序练习两种方式。
(2)我的界面:显示个人信息,提供相关功能的触发按钮(如我的评论、我的错题等),实现从我的界面到其他界面的跳转。
(3)顺序做题界面:显示该所选科目题库的所有题目,提供主要刷题的功能。刷题过程中产生的错题,小程序应添加到用户的错题库;用户的收藏也应添加到用户的收藏库。同时,小程序后台应保存用户刷题的记录,使得用户下一次刷题时自动跳转到上一次做到的题。此外,用户完成题目时应显示该题目的评论,并给用户提供为让题目添加评论的功能。
(4)智能练习界面:随机显示所选科目题库的十五条题目,提供主要刷题的功能,提供收藏题目的功能。此外,用户完成练习后应给出用户的得分情况和做题时间。
(5)答题卡界面:显示用户的做题情况,提供用户点击题号跳转的功能。
(6)我的错题界面:显示用户在所选科目的已做过的题目中所产生的错题,提供给用户再次做题的功能。
(7)我的收藏界面:显示用户在所选科目做题的过程中自行添加收藏的题目,提供给用户再次做题的功能。
(8)我的评论界面:显示用户在做题过程中给题目添加的评论,并提供用户删除评论的功能按钮。
(9)查找题目界面:显示搜索框,给用户提供按照关键词搜索题目的功能

具体实现截图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

文件解析

pages 主要页面, 其中pages文件夹中 index文件中可布局底部的tab页面,通过v-if判断显示不同的tab页
colorui 使用了color-ui样式,个人认为样式非常好看,非常感谢!
static目录: 存放静态文件
App.vue: 页面入口文件
main.js: 项目入口文件
manifest.json: 存放App信息
pages.json: 页面信息
uni.scss: 全局样式

微信开发者工具

微信开发者工具是由腾讯官方专门为微信小程序量身打造的开发者工具,它不仅轻巧、方便,主要是的对于电脑要求不是很高,所以在一般的电脑上都可以完成相应的开发,在系统调试测试过程中,也不要下载第三方插件,就可以完成系统测试环节,通过制定好的debug调试器就可以完成。
如今微信小程序有以下发展优势
(1) 无须下载,无须注册
(2) 触手可及,用完即走
(3) 功能丰富,使用难度低
(4) 流量之王,用户群体大

HBuilderX+uniapp

HBuilder 是基于HTML、js、css的等H5语法的开发技术,使得开发者很容易上手学习,里面涉及的数据绑定基于Vue语法涉及,在开发效率上也比传统的jquery快,当然HBuilder 也保留了对jquery的支持,两种语法可以结合项目的需要,可以混合开发。该开发工具本身是由java编写完成,所以对原生项目的插件也有很好的兼容性。

开发技术简介

该系统是以PHP为主要开发语言,集合MySQL数据库技术构建基于Web的以信息为目标的,动态的交互平台
PHP,是英文超文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛地运用。
MySQL是一种关系型数据库,关系型数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL的SQL语言是用于访问数据库的最常用标准化语言。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。
Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件。

#设计思路
由于先前未学习过PHP开发,为了按时保效地完成该课题的研究和开发工作,特制定以下设计思路:
(1)学习PHP语言,熟悉JPHP开发并进行实例训练,掌握一定的PHP基础;
(2)查阅PHP相关文档资料,观看学习PHP开发视频,了解开发流程,掌握PHP开发的基础知识,实践一些较为简单的实例,进而对要实现的微记软件进行设计,按模块逐渐实现其功能;
(3)在进度把握上,每周末进行小结与下一周工作计划,确保开发进度。

性能/安全/负载方面

在设计系统时,充分考虑到当前系统可能存在的最高并发数量,并由此选择对应的硬件服务器和对应的宽带容量,上传下载的速率等问题。对于系统的查询速度已经控制在两秒之内。同时考虑当遇到高并发时是否会影响查询时间。
安全性需求,对于所有的管理系统来说,数据安全都是非常重要的,要严格控制其数据的安全性,防止外泄和被不法分子盗取。所以,系统应该设置不同的操作权限,并加强数据库的加密管理和访问控制,并定期对数据进行维护,及时进行数据备份。

数据访问方式

用户通过Web客户端浏览器请求某个功能页面。Web服务器接受这个请求,根据系统的逻辑设计,将这个请求对应的PHP文件读出,并交给PHP处理程序。PHP处理程序解释这个文件,执行相应的处理过程,如数据库的访问与操作等。

PHP核心代码部分展示

define('SYS_ROOT', str_replace("\\", '/', dirname(__FILE__)));
define('IMG_ROOT', SYS_ROOT."/upload/");
define('File_ROOT', SYS_ROOT."/upload/");
$db = mysql_connect('localhost', 'root', '') or 
die("无法连接到数据库。");//连接数据库 
mysql_select_db('bt_ ',$db); //选择数据库 
mysql_query("set names 'GBK'");//输出中文 
//上传图片
function upload_image($inputname, $image=null, $type='upimages', $width=440) {
	$year = date('Y'); $day = date('md'); $n = time().rand(1000,9999).'.jpg';
	$z = $_FILES[$inputname];
	if ($z && strpos($z['type'], 'image')===0 && $z['error']==0) {
		if (!$image) {
			RecursiveMkdir( IMG_ROOT . '/' . "{$type}/" );
			$image = "{$type}/{$n}";
			$path = IMG_ROOT . '/' . $image;

		} else {
			RecursiveMkdir( dirname(IMG_ROOT .'/' .$image) );
			$path = IMG_ROOT . '/' .$image;
		}
//echo $path ;


			move_uploaded_file($z['tmp_name'], $path);

		//echo $image;exit;
		return $image;
	}
	return $image;
}

代码目录结构解析

|-application 应用目录 是整个网站的核心
|—|—index 前台目录
|—|-----|—controller 控制器
|—|-----|—model 数据模型
|—|-----|—view 页面
|—|—admin 后台目录
|-extend 扩展类库目录
|-public 静态资源和入口文件
|—|—static 存放静态资源 css、js、img
|—|—index.php 入口文件
|-runtime 网站运行临时目录
|-tests 测试目录
|-thinkphp TP框架的核心文件
|—|—lang 语言包
|—|—library TP核心文件里面的核心文件
|—|—tpl 模板页面
|-vendor 第三方扩展目录。

系统测试

事实上,对于软件来讲,不论采用什么技术和什么方法,软件中仍然会有错。采用新的语言、先进的开发方式、完善的开发过程,可以减少错误的引入,但是不可能完全杜绝软件中的错误,这些引入的错误需要测试来找出,软件中的错误密度也需要测试来进行估计。测试是所有工程学科的基本组成单元,是软件开发的重要部分。自有程序设计的那天起测试就一直伴随着。统计表明,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40%以上。而在软件开发的总成本中,用在测试上的开销要占30%到50%。如果把维护阶段也考虑在内,讨论整个软件生存期时,测试的成本比例也许会有所降低,但实际上维护工作相当于二次开发,乃至多次开发,其中必定还包含有许多测试工作。

详细视频演示

请联系我获取更详细的演示视频

源码获取

需要成品,加我们的时候,记得把本页面标题截图发下我,方便查找相应的源代码。可以的话 顺便点赞!
文章最下方名片联系我即可~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值