基于PHP的蔬菜价格查询管理系统设计与实现

news/2024/4/29 3:44:31/文章来源:https://blog.csdn.net/sheziqiong/article/details/127383121

目 录
1 引言 1
1.1 课题背景与意义 1
1.2 课题现状与可研究性 1
1.3 本论文研究内容和结构安排 1
2 系统基础概述 2
2.1 软件开发环境 2
2.2 L,Linux操作系统 2
2.3 A,Apache服务器 2
2.4 M,Mysql数据库 3
2.5 P,PHP语言 3
2.5.1 简洁的语法 3
2.5.2 跨平台性强 3
2.5.3 效率高 3
2.5.4 面向对象 3
2.6 ThinkPHP框架 4
2.6.1 基于LAMP 4
2.6.2 实现MVC模式 4
2.6.3 单一入口 5
2.7 本章小结 5
3 菜篮子价格查询系统的设计 6
3.1 系统概述 6
3.2 系统模型 6
3.3 系统概要设计 7
3.3.1 登录模块 7
3.3.2 用户注册模块 8
3.3.3 用户信息管理模块 9
3.3.4 管理后台用户模块 11
3.3.5 地区管理模块 12
3.3.6 商品信息管理模块 13
3.3.7 商品价格管理模块 14
3.3.8 管理员权限管理模块 16
3.3.9 查询商品价格走势模块 17
3.4 系统结构 17
3.4.1 物理结构 18
3.4.2 逻辑结构 18
3.5 系统功能 19
3.5.1 后台功能 19
3.5.2 前台功能 19
3.6 本章小结 19
4 菜篮子价格查询系统的实现 20
4.1 数据库设计 20
4.1.1 前台数据库 20
4.1.2 后台数据库 21
4.2 主要类的详细设计 24
4.2.1 后台类的设计 24
4.2.2 前台类的设计 26
4.3 功能实现模块 26
4.3.1 登录模块 26
4.3.2 地区管理模块 28
4.3.3 商品信息管理模块 31
4.3.4 管理商品价格模块 33
4.3.5 管理员权限管理模块 33
4.4 本章小结 33
5 总结与展望 34
5.1 总结 34
5.2 展望 34
致 谢 35
参 考 文 献 36
英 文 摘 要 37
3菜篮子价格查询系统的设计
3.1系统概述
经过分析,大致了解客户端和服务器的功能模块需求。了解了需求以后就进入了系统设计的阶段,系统主要采用了面向对象的设计模式,使用用例图对系统的行为进行建模,并使用时序图或活动图对各用例加以描述。
面向对象设计中UML图能够清晰地表达一个系统的结构以及内部类的交互。其中用例图用于对系统的功能以及与系统进行交互的外部事物建模。通过找出与系统交互的外部事物,并说明它们如何与系统交互,易于对系统进行探讨和理解。时序图是用于描述每个用例中的用户需求,详细描述对象之间以及对象与参与者之间交互的过程。活动图是描述动作、动作的执行顺序以及动作的输入与输出的图。本论文将通过分析各用例中主要事件流的序列图来对整个系统的结构进行设计[10]。
系统在设计上有两点基本的要求:
(1)严格按照分层思想进行系统设计;分层思想对于一个系统而言是极其重要的。首先,在开发阶段,类与类、包与包之间的关系标识明确,程序员对代码思路就相当清晰了。另一个方面,在完成系统之后,系统的分层思想对维护工作也带来了方便。同时,出于安全性能的考虑,分层思想使内部数据处理逻辑与界面完全隔离,系统的用户不能接触到数据处理的层面,这对于系统的安全性起着至关重要的作用。
(2)按照“低耦合、高内聚”的思想进行设计,注重代码的复用;这已经不是一个新鲜的概念了,“低耦合、高内聚”一方面使系统更为清晰,与此同时,系统运行的效率也会有相当的提高。对于同一种处理逻辑而言,假如输入的变量不相同而采用了不同的函数来处理,开销将是难于估计的。基于这个理由,代码复用的好处就得到充分地体现。采用同一个处理逻辑来尽可能处理同一类的操作,不仅减少多余的代码,对于层与层之间衔接的速度也起着非常重要的作用。
3.2 系统模型
经过分析,已经大致了解用户和管理员的功能模块需求。了解了需求以后就进入了系统设计的阶段,本论文主要采用了面向对象的设计模式,使用用例图对系统的行为进行建模。如图:
在这里插入图片描述

(1)用例图综述
此用例图由3参与者和15用例组成。此用例的目的是为了让客户更好地了解本菜篮子价格查询系统的功能实现,以及各部分之间的关系。
由上图可以看出用户通过登录系统前台,进入系统可以查询商品信息,其中商品信息包括某地区某市场的价格等,可查询商品价格走势,修改用户信息,修改用户密码等。而管理员登录进入系统后台,对系统内容进行管理:可增删查改用户,设置用户权限,增删查改商品信息;超级管理员继承管理员,拥有系统的所有权限,除了管理员的权限外,还拥有设置管理员权限。这就是本项目的大致框架功能。
(2)参与者描述:
参与者包括有:用户、管理员、超级管理员。
用户:即使用系统前台的主要参与者。
管理员:是本系统后台的管理者,管理有权限限制。
超级管理员:继承管理员,拥有管理系统后台的最高权限。
3.3 系统概要设计
系统概要设计主要根据系统的功能模块进行设计
3.3.1登录模块
用例名:登录
前置条件:已获取登录账号
功能简述:输入用户账号、密码及验证码信息,若输入用户账号、密码及验证码信息准确无误,本文转载自http://www.biyezuopin.vip/onews.asp?id=13343则成功登录进入系统;若输入的用户账号、密码及验证码信息中,其中之一有误,则提示输入信息有误,登录失败。

<?php
//$modifyimg_url="Public/upload/img/";
include_once 'Common/common.php';
$upload_url="Runtime/Temp/img/upload/";
$modifyimg_url="Runtime/Temp/img/modify/";if ($_SERVER['REQUEST_METHOD'] == 'POST'){//删除会员以前的头像if(file_exists($MemberFace)) {unlink($MemberFace);}$MemberFace = sliceBanner("",$modifyimg_url);echo json_encode($MemberFace);exit;}function sliceBanner($UserName="",$modifyimg_url="./"){$x = (int)$_POST['x'];$y = (int)$_POST['y'];$w = (int)$_POST['w'];$h = (int)$_POST['h'];$pic = $_POST['src'];//剪切后小图片的名字//$str = explode(".",$pic);//图片的格式//$type = $str[1]; //图片的格式$type=strrchr($pic,'.');//图片的格式$pathinfor=pathinfo($pic);if($UserName===""){$filename=$pathinfor["basename"];$UserName=substr_replace($filename, "", strrpos($filename,'.'));}$filename = $UserName. $type; //重新生成图片的名字$uploadBanner = $pic;if(!file_exists($modifyimg_url)){mkdirs($modifyimg_url);}$sliceBanner = $modifyimg_url.$filename;//剪切后的图片存放的位置//创建图片$src_pic = getImageHander($uploadBanner);$dst_pic = imagecreatetruecolor($w, $h);imagecopyresampled($dst_pic,$src_pic,0,0,$x,$y,$w,$h,$w,$h);switch ($type){case '.gif':imagegif($dst_pic,$sliceBanner);break;case '.jpg':imagejpeg($dst_pic, $sliceBanner);break;case '.png':imagepng($dst_pic, $sliceBanner);break;default:imagepng($dst_pic, $sliceBanner);break;}imagedestroy($src_pic);imagedestroy($dst_pic);//删除已上传未裁切的图片if(file_exists($uploadBanner)) {unlink($uploadBanner);}$picsize=getimagesize($sliceBanner);$width=$picsize[0];$height=$picsize[1];$size=round($width*$height/1024,2);$img=array('name'=>$filename,'pic'=>$sliceBanner,'size'=>$size,'width'=>$width,'height'=>$height);//返回新图片的位置return $img;}//初始化图片function getImageHander ($url) {$size=@getimagesize($url);switch($size['mime']){case 'image/jpeg': $im = imagecreatefromjpeg($url);break;case 'image/gif' : $im = imagecreatefromgif($url);break;case 'image/png' : $im = imagecreatefrompng($url);break;default: $im=false;break;}return $im;}
?>

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_25461.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EXCEL表格-VLOOKUP多对一结果匹配方法(通配符)

❤关注我&#xff0c;不迷路❤ 点击进入EXCEL综合应用场景专栏 在实际使用场景中&#xff0c;通过一个值去匹配另一个值的案例很常见&#xff0c;比如一份学校的信息表&#xff0c;通过姓名查找班级、家长姓名等&#xff0c;均用VLOOKUP函数可以实现&#xff0c;正向查找、逆…

【Coel.学习笔记】莫比乌斯反演

冷知识:百度百科里甚至没有对反演的准确定义……闲话 记得在差不多一年前写扩展欧拉定理的时候我提了一句这周终于把古代猪文搞定了,数论这块的内容就只剩个博弈论了 别提莫比乌斯反演之类的东西,我不想搞甚至刚开始写的时候还笔误把莫反写成了莫队…… 转眼一年过去了,来填…

leetcode 123买卖股票的最佳时机III

买卖股票的最佳时机III 动态规划-分两小组分别计算&#xff08;超时&#xff09; class Solution { public:int partprofit( vector<int>& prices , int start , int end ){if((end-start)<1) return 0;vector<int> dp(end - start , 0);int min prices[s…

视觉检测工作台设计

目 录 摘 要 I Abstract II 第1章 引言 1 1.1研究背景及意义 1 1.2国内外研究现状 2 第2章 总体方案的确定 4 2.1方案拟定 4 2.1.1机械结构 4 2.1. 2控制工艺要求 5 2.1. 3总体方案 5 2.2 设计参数 7 第3章 视觉检测工作台机械系统设计 8 3.1 X-Y数控工作台总体方案的确定 8 3.…

微信公众号查题搜题平台

微信公众号查题搜题平台 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 题库&#xff1a;题库后台&#xff08;点击跳转&#xf…

物联网、区块链、元宇宙和虚拟数字人离普罗大众有多远?

首先&#xff0c;我们最早理解的数字人就是数字虚拟的一个假人&#xff0c;可能看起来很像二次元玩偶的样子。今天我觉得数字人是一种虚拟的数字身份&#xff0c;无所谓你的形象是仿真或是任何形象&#xff0c;包括你在现实中无法实现的形象&#xff0c;你在梦想中所渴望的概念…

【数据结构与算法分析】0基础带你学数据结构与算法分析01--基础数学知识

&#x1f353;个人主页&#xff1a;个人主页 &#x1f4ac;推荐一款模拟面试、刷题神器&#xff0c;从基础到大厂面试题&#xff1a;点击跳转进入网站 &#x1f4e9;如果你想学习算法&#xff0c;以及一些语言基础的知识&#xff0c;那就来这里&#xff1a;​​​​刷题网站 跟…

无公网IP远程黑群晖【内网穿透】

无公网IP远程黑群晖【内网穿透】1. 安装cpolar群晖套件2、打开cpolar套件3. 创建远程访问隧道4. 获取公网地址访问由于黑群晖没办法用QuickConnect&#xff0c;洗白也比较麻烦&#xff0c;所以这里用内网穿透的方法来实现远程。 这里推荐一款免费不限制流量的内网穿透工具cpol…

二维数组(理论)

二维数组的定义和操作 学习目标&#xff1a; 1、理解二维数组及其存储结构。 2、掌握二维数组的初始化、输入输出等基本操作。 引入&#xff1a; 由前面介绍可知&#xff0c;一维数组的元素可以是任何基本数据类型&#xff0c;也可以是结构体。那么&#xff0c;如果一维数组的…

新闻订阅及新闻内容展示系统(Python+Django+scrapy)

目录 摘 要 1 Abstract 2 第一章 引言 3 1.1 项目的背景和意义 3 1.2.1 个性化新闻服务现状 4 1.2.2 网络爬虫研究现状 4 1.2.3 项目的范围和预期结果 4 第二章 技术与原理 5 2.1 技术选型 5 2.2 相关原理介绍 7 第三章 系统需求分析 10 3. 1 新闻订阅系统用例析取 10 3.2 新闻…

干扰管理学习日志4-------信道估计方法 LS(最小二乘)、MMSE(最小均方误差)

目录一、信道估计定义二、LS估计(最小二乘法)1.定义2.系统模型3.损失函数4.模型求解三、MMSE估计(最小均方误差)1.定义2.系统模型3.损失函数4.模型求解5.模型结果一、信道估计定义 信道估计&#xff0c;就是从接收数据中将假定的某个信道模型的模型参数估计出来的过程。如果信…

【每日算法题】合并两个有序数组(简单)

前言 给大家分享一个小技巧✔&#xff0c;当我们刷题的时候&#xff0c;最好就是集中刷某一类型的题目&#xff0c;不要刷一道排序&#xff0c;又一道数组&#xff0c;这种混乱刷题&#xff0c;不利于我们记忆&#xff0c;集中刷题可以保证刷题的效果&#xff0c;保证效率&…

10. IDEA 项目使用 Git 管理

文章目录10.1 需求 1-说明10.2 需求 1-实现步骤10.2.1 界面操作10.2.2 也可以使用命令行完成10.3 需求 2-说明10.4 需求 2-实现步骤10.4.1 界面操作10.4.2 也可以使用命令行完成 (具体参考上文)10.5 如何查看操作记录10.5.1 示意图10.6 需求 3-说明10.6.2 具体演示 -pull10.1 需…

包装类概述

Java中有8中基本数据类型&#xff0c;分别是&#xff1a; 包装类就是这8种数据类型所对应的引用数据类型&#xff0c;分别是&#xff1a; - 可能有同学会问&#xff1a;Java为什么要给基本数据类型提供对应的引用数据呢? - 第一&#xff0c;Java是面向对象的语言&#xff0c…

进入python的世界_day17_python基础——了解模块、如何使用和导入模块、包的原理

一、模块介绍 1.什么是模块 ​ 其实我们前一阵已经接触过了,import xxx 、from xx import xxx ​ 能够有一定功能的集合体就是模块,比如有某些功能的py文件,包含这个文件的文件夹 ​ python之所以流传的这么广有很重要一个因素就是模块非常丰富,社区活跃,干活效率高 2.…

一文快速上手Vue之计算属性和侦听器,过滤器

计算属性和侦听器 1、计算属性&#xff08;computed&#xff09; 某些结果是基于之前数据实时计算出来的&#xff0c;我们可以利用计算属性。来完成 示例&#xff1a; <div id"app"> <ul> <li>西游记&#xff1a;价格{{xyjPrice}}&#xff0c;…

【设计模式】责任链模式,让程序员摆脱乱糟糟的零散的代码

函数式编程是一种思维模式。该使用什么样的方式去解决你的问题?就像你不想去破解一个代码块完整性(内聚),那么你可以加入一个切面,去影响该代码块的执行结果。以函数方式思考。对于一个业务逻辑,如果以函数的角度思考,那么可以抽离出若干的函数进行处理,而非乱糟糟的零…

socket编程—UDP套接字

socket编程—UDP套接字一、UDP套接字socket函数的参数socket&#xff08;&#xff09;函数返回值1、服务端创建套接字绑定端口提供服务2、客户端创建套接字一、UDP套接字 IP是标识互联网当中的唯一一台主机 端口号是标识一台主机内的唯一一个进程 两者相加就是标识互联网当中唯…

245 - 转换流

1、转换流&#xff1a; InputStreamReader , OutputStreamWriter 【1】转换流&#xff1a;作用&#xff1a;将字节流和字符流进行转换。 【2】转换流 属于 字节流还是字符流&#xff1f; 属于字符流 InputStreamReader &#xff1a;字节输入流 —> 字符的输入流 Outp…

Odoo | 页面视图的跳转逻辑

目录前言页面跳转的流程及逻辑点击后进入 call\_botton方法&#xff0c;验证先检查method方法名。内置方法&#xff0c;检查方法名&#xff0c;如果是私有方法&#xff0c;提示错误。方法名合法之后进入call\_kw方法&#xff0c;检查api的值。获取一些系统的上下文&#xff0c;…