当前位置:   article > 正文

基于Python+MySQL+Pyqt5开发的自动贩卖机系统(无人售货机)_无人售货机系统源码

无人售货机系统源码

目录
1 系统背景概述 2
1.1 开发背景简介 2
1.2 组织机构设置 2
1.3 现行系统存在的问题 3
1.4 开发新系统的必要性及可行性分析 4
1.4.1 必要性 4
1.4.2 可行性 5
2 系统需求分析 5
2.1 问题分析及因果分析 5
2.2 业务需求分析 6
2.2.1 现行系统业务流程 6
2.2.2 未来系统业务流程 8
2.3 上下文数据流图 9
2.4 系统需求用例建模 10
3 结构化系统分析 11
3.1 逻辑数据模型(逻辑E-R图) 11
3.2 数据流程模型(DFD) 11
3.2.1 Part1:0层图 11
3.2.2 Part2:1层图 12
3.2.3 Part3:2层图 12
4 结构化系统设计 15
4.1 系统体系结构设计 15
4.2 总体功能模块设计 15
4.3 物理数据库设计(物理E-R图) 18
4.4 数据库的主要代码设计 18
4.5 用户界面设计 19
4.5.1 财务 19
4.5.2 采购 19
4.5.3 配送 22
4.5.4 维护 24
4.5.5 客服 25
4.5.6 顾客 26
5 面向对象的系统分析 28
5.1 系统分析用例模型 28
5.2 活动图与顺序图 33
5.3 系统分析类图 37
6 面向对象的系统设计 39
6.1 设计类图 39
6.2 设计阶段交互图 40
7 系统实施 42
7.1 编程与试运行 42
7.2 输入试验数据和测试 51
8 项目进度表 54
2 系统需求分析
问题分析及因果分析
一.关于部门缺失或分工问题
用户购买后缺少售后部门。现行系统用户遇到问题难以找到有效途径得到解决。我们的系统计划设立售后支持部门,在用户遇到问题时可以直接进入客服界面,由客服为其解决相关问题。
另外,当前系统的维护主要是通过企业遇到问题时再外包维修完成,这可能主要是出于成本的考量。但考虑到货柜主要售卖的产品都属于时效性较强的食品、饮料等,系统故障、购买到过期食品都会对用户体验带来极大的影响。考虑到当前自动售货柜当前所处市场竞争程度较强,企业用户水平对市场占有率、盈利水平影响较大,我们认为需要加强用户服务水平。因此,我们通过维修部门定期检查、客户反馈两个途径降低顾客遇到故障机器的概率,提升客户服务水平。
二.数据使用问题
当前送货策略采取的是在每个货柜缺少的时候进行派送,每个货柜内货品种类基本一致,造成热销品类商品很快就会售空。造成物流成本的提升,企业盈利水平的下降。因此,我们可以通过分析该货柜的销售情况进行合理分析,找到该货柜最常见的顾客群体,进行针对性的个性化的进货、配货方案。
三.技术问题
现行的系统在自助结账时采用的是按照重量进行比较,这种方法对于单重较大的物品较为有效,但对于单重较轻的商品会对重量精度要求较高,进而导致设备的成本以及后期维护成本较高。因此,我们采用的是图像识别技术进行商品识别,进而实现自动扣款。通过建立商品图像数据库,利用CNN卷积神经网络提取商品特征,再通过卷积池化等操作进行商品的识别。降低后期成本,提高系统使用寿命。
同时,现行系统采用的登陆方式是传统的密码登陆模式,安全性不及生物识别技术。存在一定的系统安全性风险。通过人脸识别技术让系统人的每一个用户,集身份验证与认定于一体,提高系统安全性。

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'Main.ui'
#
# Created by: PyQt5 UI code generator 5.13.0
#
# WARNING! All changes made in this file will be lost!


from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 600)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.face_login_btn = QtWidgets.QPushButton(self.centralwidget)
        self.face_login_btn.setGeometry(QtCore.QRect(180, 280, 121, 41))
        font = QtGui.QFont()
        font.setFamily("微软雅黑")
        font.setPointSize(14)
        self.face_login_btn.setFont(font)
        self.face_login_btn.setObjectName("face_login_btn")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(140, 40, 491, 151))
        font = QtGui.QFont()
        font.setFamily("黑体")
        font.setPointSize(48)
        self.label.setFont(font)
        self.label.setObjectName("label")
        self.admin_login_btn = QtWidgets.QPushButton(self.centralwidget)
        self.admin_login_btn.setGeometry(QtCore.QRect(510, 280, 121, 41))
        font = QtGui.QFont()
        font.setFamily("微软雅黑")
        font.setPointSize(14)
        self.admin_login_btn.setFont(font)
        self.admin_login_btn.setObjectName("admin_login_btn")
        self.graphicsView = QtWidgets.QGraphicsView(self.centralwidget)
        self.graphicsView.setGeometry(QtCore.QRect(240, 340, 305, 203))
        self.graphicsView.setObjectName("graphicsView")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 21))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.face_login_btn.setText(_translate("MainWindow", "人脸登录"))
        self.label.setText(_translate("MainWindow", " 欢迎来到能量站"))
        self.admin_login_btn.setText(_translate("MainWindow", "管理员登录"))

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/233480
推荐阅读
相关标签
  

闽ICP备14008679号