超市进销存管理信息系统



超市进销存管理信息系统计算机系统开发实习报告center850009088120 1000000 年级:xxxxxx专业:xxxx目录 TOC \o "1-3" \h \z \u HYPERLINK \l _Toc7335 一、系统需求分析 PAGEREF _Toc7335 3 HYPERLINK \l _Toc12932 1、可行性分析 PAGEREF _Toc12932 4 HYPERLINK \l _Toc11217 2、需求收集及描述 PAGEREF _Toc11217 4 HYPERLINK \l _Toc623 1.1发掘业务过程用活动图描述 PAGEREF _Toc623 4 HYPERLINK \l _Toc7538 1.2.领域分析(确定候选类) PAGEREF _Toc7538 6 HYPERLINK \l _Toc31877 1.3系统USE CASE模型 PAGEREF _Toc31877 7 HYPERLINK \l _Toc26851 系统逻辑结构设计 PAGEREF _Toc26851 8 HYPERLINK \l _Toc31029 事件流过程(主要事件流脚本) PAGEREF _Toc31029 8 HYPERLINK \l _Toc12652 时序图 PAGEREF _Toc12652 8 HYPERLINK \l _Toc20721 系统整体的类的组织结构 PAGEREF _Toc20721 14 HYPERLINK \l _Toc20185 四、软件展示 PAGEREF _Toc20185 15 HYPERLINK \l _Toc24812 1. 软件说明 PAGEREF _Toc24812 15 HYPERLINK \l _Toc25534 2. 软件运行效果截图 PAGEREF _Toc25534 16 HYPERLINK \l _Toc23256 欢迎页面 PAGEREF _Toc23256 16 HYPERLINK \l _Toc14028 进货子系统效果 PAGEREF _Toc14028 17 HYPERLINK \l _Toc24408 产生进货传票后 PAGEREF _Toc24408 17 HYPERLINK \l _Toc28649 打印进货船票 PAGEREF _Toc28649 18 HYPERLINK \l _Toc8519 继续进货效果 PAGEREF _Toc8519 18 HYPERLINK \l _Toc7911 库存数据库 PAGEREF _Toc7911 19 HYPERLINK \l _Toc10 销售子系统 PAGEREF _Toc10 19 HYPERLINK \l _Toc24843 库存报警系统 PAGEREF _Toc24843 19 HYPERLINK \l _Toc14714 购买无此商品报警系统 PAGEREF _Toc14714 20 HYPERLINK \l _Toc25545 销售传票产生 PAGEREF _Toc25545 20 HYPERLINK \l _Toc6196 管理员申请修改商品价格及经理审批 PAGEREF _Toc6196 21 HYPERLINK \l _Toc13918 审批结果 PAGEREF _Toc13918 21 HYPERLINK \l _Toc26958 一、 数据库设计 PAGEREF _Toc26958 21 HYPERLINK \l _Toc10538 进货子系统 PAGEREF _Toc10538 21 HYPERLINK \l _Toc7356 库存子系统 PAGEREF _Toc7356 22 HYPERLINK \l _Toc12545 销售子系统 PAGEREF _Toc12545 22 HYPERLINK \l _Toc19957 类图 PAGEREF _Toc19957 23 HYPERLINK \l _Toc13762 候选类 PAGEREF _Toc13762 23 HYPERLINK \l _Toc7823 8张数据表截图 PAGEREF _Toc7823 24 HYPERLINK \l _Toc12027 二、 环境搭建 PAGEREF _Toc12027 27 HYPERLINK \l _Toc23277 开发环境 PAGEREF _Toc23277 27 HYPERLINK \l _Toc18022 实现技术 PAGEREF _Toc18022 28 HYPERLINK \l _Toc24888 三、 附录(开发代码) PAGEREF _Toc24888 30 HYPERLINK \l _Toc14205 前端部分 PAGEREF _Toc14205 30 HYPERLINK \l _Toc17715 后端部分: PAGEREF _Toc17715 42一、系统需求分析设计超市进销存管理信息系统的进货、库存、销售三个组成部分。进货子系统有药品验收处理1 产生进货传票(进货传票编码、商品编码、品名、规格、厂商、有效期、进价、进货数量)。2进货传票将被打印给供货商作为收货凭证。一次进货可有多项商品,由进货传票编码唯一标识;一种商品由商品编码唯一标识。系统设有一个商品目录(商品编码、品名、规格、厂商、有效期、销售价格)。3当进货的商品是新产品时,进货子系统自动把新产品写入商品目录。库存子系统有1进货入库2销售出库处理维护库存帐(商品编码、品名、规格、厂商、有效期、进货量、进价、出库量、销售价、库存数量、库存下限量、库存上限量),库存帐不能做修改操作,当进货入库时,根据进货传票产生一条新记录,库存数量加上进货量;当销售出库时,根据销售传票产生一条新记录,库存数量减去出库量;商品编码是各商品的唯一标识字。 库存子系统设库存自动报警,当库存数量大于库存上限量或者小于库存下限量时,给出警告信息。销售子系统有定价处理和销售处理。定价处理有一个商品价格表(商品编码、品名、规格、厂商、有效期、建议价格、销售价格、批准责任人)首先由销售管理员定建议价格,经过经理批准后确定销售价,并自动更新商品目录的销售价;销售处理在公司的销售窗口,售货员根据顾客要求查找商品目录和库存帐,如果有货(库存数量满足顾客要求),一项销售成立,产生销售传票的一条记录,一次销售可有多项记录,由销售传票唯一标识。销售传票的数据结构是(销售传票编码、商品编码、品名、规格、厂商、有效期、销售价、销售数量)。销售传票是库存子系统记录库存帐的依据。销售传票将被打印给顾客作为提货凭证。1、可行性分析我们分析了需求。可行性研究包括:经济可行性、技术可行性、法律可行性、操作可行性等。?(1)?经济可行性分析?本次开发需求较少,且投资成本较低,开发人员需求较少,因此可行性较高。(2)?技术可行性分析?就目前使用的开发技术来说,系统的功能目标能够达到;利用现有的技术在规定的期限内开发工作基本能够完成。?(3)?法律可行性分析?本系统任何侵犯、妨碍和责任问题(4)?操作可行性分析?操作可行性主要是指用户使用的舒适性,因此界面设计时要充分考虑管理人员的习惯,使得操作简单便宜:数据录入迅速、规范、可靠;统计准确,制表灵活,适应力强,容易扩充。具有易用性、灵活性、开放性与可视性等,这些基本都可以实现。?由以上经济、技术、法律、操作四方面的分析可以看出、本系统的开发时机成熟、从多种角度考虑,都是可行的,采用本系统,能够使整个系统内部所有的信息工作简化、提高工作效益。由于采用统一的数据信息,使相关资料能够?查询所需要的数据、资料及其它信息的,使信息快速高效运行。??2、需求收集及描述1.1发掘业务过程用活动图描述1.进货子系统:商品验收处理:2.库存子系统:销售子系统:数据流图如下:1.2.领域分析(确定候选类)候选类如下所示:进货传票(进货传票编码、商品编码、品名、规格、厂商、有效期、进价、进货数量)。商品目录(商品编码、品名、规格、厂商、有效期、销售价格)。库存帐(商品编码、品名、规格、厂商、有效期、进货量、进价、出库量、销售价、库存数量、库存下限量、库存上限量)商品价格表(商品编码、品名、规格、厂商、有效期、建议价格、销售价格、批准责任人)销售传票(销售传票编码、商品编码、品名、规格、厂商、有效期、销售价、销售数量)分为俩个人物:管理员和经理需求:有进货,销售,查看库存账单等等选项1.3系统USE CASE模型分析:有俩个人:管理员和经理:有进货,销售,查看库存账单等等选项角色定义:分为管理员和经理工作描述:管理员可以控制进货与销售清单,而经理可以有管理员一切功能,并且会批准定价。用例图如下所示:系统逻辑结构设计进货系统(描述涉及概念、映射对象、涉及角色)事件流过程(主要事件流脚本)1.管理员进货后,产生进货传票,2.随后库存账和商品目录随后更改。3..打印后交给供货商。4.并根据库存上下限给与警告。1.管理员销售后,产生销售传票,2.随后库存账随后更改。打印后交给顾客。1.管理员修改价格后2.需要经理人同意后才修改价格。时序图进货:销售处理:定价处理:状态图(主要类的状态图)销售系统(SaleSystem)事件流过程(主要事件流脚本)1.产生销售船票2.销售人员查看是否有存货3.报警系统查看是否有上下限时序图状态图(主要类的状态图)库存系统(ValueManager)(主要事件流脚本)事件流过程1.管理员进货后,产生进货传票,2.随后库存账和商品目录随后更改。3..打印后交给供货商。4.并根据库存上下限给与警告。时序图状态图(主要类的状态图)系统整体的类的组织结构系统设计设计完成系统详细类图(系统静态结构,应该包含类及之间的详细信息)进货传票(进货传票编码、商品编码、品名、规格、厂商、有效期、进价、进货数量)。商品目录(商品编码、品名、规格、厂商、有效期、销售价格)。库存帐(商品编码、品名、规格、厂商、有效期、进货量、进价、出库量、销售价、库存数量、库存下限量、库存上限量)商品价格表(商品编码、品名、规格、厂商、有效期、建议价格、销售价格、批准责任人)销售传票(销售传票编码、商品编码、品名、规格、厂商、有效期、销售价、销售数量)类图如下所示:四、软件展示软件说明本软件是一个基于NodeJS,NPM,Boot Strap,MySQL数据库开发的用来管理超市进货销货的Web系统。本系统共使用8张数据表,12个JavaScript文件及若干CSS html文件编成。软件运行效果截图欢迎页面进货子系统效果产生进货传票后打印进货船票继续进货效果库存数据库销售子系统库存报警系统购买无此商品报警系统销售传票产生管理员申请修改商品价格及经理审批审批结果数据库设计在数据库设计中我们首先做了一下需求分析,总结出以下需求:设计超市进销存管理信息系统的进货、库存、销售三个组成部分。进货子系统药品验收处理1 产生进货传票(进货传票编码、商品编码、品名、规格、厂商、有效期、进价、进货数量)。2进货传票将被打印给供货商作为收货凭证。一次进货可有多项商品,由进货传票编码唯一标识;一种商品由商品编码唯一标识。系统设有一个商品目录(商品编码、品名、规格、厂商、有效期、销售价格)。3当进货的商品是新产品时,进货子系统自动把新产品写入商品目录。库存子系统1进货入库2销售出库处理维护库存帐(商品编码、品名、规格、厂商、有效期、进货量、进价、出库量、销售价、库存数量、库存下限量、库存上限量),库存帐不能做修改操作,当进货入库时,根据进货传票产生一条新记录,库存数量加上进货量;当销售出库时,根据销售传票产生一条新记录,库存数量减去出库量;商品编码是各商品的唯一标识字。 库存子系统设库存自动报警,当库存数量大于库存上限量或者小于库存下限量时,给出警告信息。销售子系统定价处理和销售处理。定价处理有一个商品价格表(商品编码、品名、规格、厂商、有效期、建议价格、销售价格、批准责任人)首先由销售管理员定建议价格,经过经理批准后确定销售价,并自动更新商品目录的销售价;销售处理在公司的销售窗口,售货员根据顾客要求查找商品目录和库存帐,如果有货(库存数量满足顾客要求),一项销售成立,产生销售传票的一条记录,一次销售可有多项记录,由销售传票唯一标识。销售传票的数据结构是(销售传票编码、商品编码、品名、规格、厂商、有效期、销售价、销售数量)。销售传票是库存子系统记录库存帐的依据。销售传票将被打印给顾客作为提货凭证。类图我们画出类图及关系图如下所示:候选类候选类如下所示:进货传票(进货传票编码、商品编码、品名、规格、厂商、有效期、进价、进货数量)。商品目录(商品编码、品名、规格、厂商、有效期、销售价格)。库存帐(商品编码、品名、规格、厂商、有效期、进货量、进价、出库量、销售价、库存数量、库存下限量、库存上限量)商品价格表(商品编码、品名、规格、厂商、有效期、建议价格、销售价格、批准责任人)销售传票(销售传票编码、商品编码、品名、规格、厂商、有效期、销售价、销售数量)分为俩个人物:管理员和经理需求:有进货,销售,查看库存账单等等选项8张数据表截图共八张数据表如下所示环境搭建开发环境我们开发是在Windows 环境下开发,软件使用的是VSCODE 软件开发时截图如下:实现技术我们使用了NODEJS作为启动容器,将我们的程序与数据库连接,对数据库进行增删改查。其连接代码部分我如图所示:在框架上我们使用了EXPRESS 框架,代码如图所示:在开发上我们前端使用了Html5 + BOOTSTRAP + JQUERY + canvas 进行实现的,部分代码如图所示:附录(开发代码)后端部分:-- MySQL dump 10.13 Distrib 5.7.30, for Win64 (x86_64)---- Host: localhost Database: dbas-- -------------------------------------------------------- Server version5.7.30/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;/*!40101 SET NAMES utf8 */;/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;/*!40103 SET TIME_ZONE='+00:00' */;/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;---- Table structure for table `cpbm`--DROP TABLE IF EXISTS `cpbm`;/*!40101 SET @saved_cs_client = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `cpbm` ( `id` text, `bm` text, `spm` text, `gg` text, `cs` text, `yxq` text, `jj` text, `jhsl` text) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*!40101 SET character_set_client = @saved_cs_client */;---- Dumping data for table `cpbm`--LOCK TABLES `cpbm` WRITE;/*!40000 ALTER TABLE `cpbm` DISABLE KEYS */;/*!40000 ALTER TABLE `cpbm` ENABLE KEYS */;UNLOCK TABLES;---- Table structure for table `cpbm_k`--DROP TABLE IF EXISTS `cpbm_k`;/*!40101 SET @saved_cs_client = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `cpbm_k` ( `id` text, `cid` text, `kid` text) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*!40101 SET character_set_client = @saved_cs_client */;---- Dumping data for table `cpbm_k`--LOCK TABLES `cpbm_k` WRITE;/*!40000 ALTER TABLE `cpbm_k` DISABLE KEYS */;/*!40000 ALTER TABLE `cpbm_k` ENABLE KEYS */;UNLOCK TABLES;---- Table structure for table `html`--DROP TABLE IF EXISTS `html`;/*!40101 SET @saved_cs_client = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `html` ( `id` text, `value` text) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*!40101 SET character_set_client = @saved_cs_client */;---- Dumping data for table `html`--LOCK TABLES `html` WRITE;/*!40000 ALTER TABLE `html` DISABLE KEYS */;/*!40000 ALTER TABLE `html` ENABLE KEYS */;UNLOCK TABLES;---- Table structure for table `kczxt`--DROP TABLE IF EXISTS `kczxt`;/*!40101 SET @saved_cs_client = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `kczxt` ( `id` text, `spm` text, `gg` text, `cs` text, `yxq` text, `jhl` text, `chl` text, `xsjg` text, `kcsl` text, `kcxxl` text, `kcssl` text) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*!40101 SET character_set_client = @saved_cs_client */;---- Dumping data for table `kczxt`--LOCK TABLES `kczxt` WRITE;/*!40000 ALTER TABLE `kczxt` DISABLE KEYS */;/*!40000 ALTER TABLE `kczxt` ENABLE KEYS */;UNLOCK TABLES;---- Table structure for table `kczxt_s`--DROP TABLE IF EXISTS `kczxt_s`;/*!40101 SET @saved_cs_client = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `kczxt_s` ( `id` text, `kid` text, `sid` text) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*!40101 SET character_set_client = @saved_cs_client */;---- Dumping data for table `kczxt_s`--LOCK TABLES `kczxt_s` WRITE;/*!40000 ALTER TABLE `kczxt_s` DISABLE KEYS */;/*!40000 ALTER TABLE `kczxt_s` ENABLE KEYS */;UNLOCK TABLES;---- Table structure for table `log`--DROP TABLE IF EXISTS `log`;/*!40101 SET @saved_cs_client = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `log` ( `id` text, `time` text) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*!40101 SET character_set_client = @saved_cs_client */;---- Dumping data for table `log`--LOCK TABLES `log` WRITE;/*!40000 ALTER TABLE `log` DISABLE KEYS */;/*!40000 ALTER TABLE `log` ENABLE KEYS */;UNLOCK TABLES;---- Table structure for table `spml`--DROP TABLE IF EXISTS `spml`;/*!40101 SET @saved_cs_client = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `spml` ( `id` text, `spm` text, `gg` text, `cs` text, `yxq` text, `jj` text, `jhsl` text) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*!40101 SET character_set_client = @saved_cs_client */;---- Dumping data for table `spml`--LOCK TABLES `spml` WRITE;/*!40000 ALTER TABLE `spml` DISABLE KEYS */;/*!40000 ALTER TABLE `spml` ENABLE KEYS */;UNLOCK TABLES;---- Table structure for table `user`--DROP TABLE IF EXISTS `user`;/*!40101 SET @saved_cs_client = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `user` ( `id` text, `username` text, `password` text) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*!40101 SET character_set_client = @saved_cs_client */;---- Dumping data for table `user`--LOCK TABLES `user` WRITE;/*!40000 ALTER TABLE `user` DISABLE KEYS */;/*!40000 ALTER TABLE `user` ENABLE KEYS */;UNLOCK TABLES;/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;-- Dump completed on 2020-06-09 18:23:28var mysql = require('mysql');var connection = mysql.createConnection({ host : 'localhost', user : 'root', password : '123456', database : 'test'}); connection.connect(); connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) { if (error) throw error; console.log('The solution is: ', results[0].solution);});connection.query('SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons INNER JOIN Orders ON Persons.Id_P = Orders.Id_P ORDER BY Persons.LastName', function (error, results, fields) { if (error) throw error; console.log('The solution is: ', results[0].solution); }); connection.query('SELECT TOP number|percent column_name(s) FROM table_name;', function (error, results, fields) { if (error) throw error; console.log('The solution is: ', results[0].solution); }); connection.query('SELECT column_name(s) FROM table_name LIMIT number;', function (error, results, fields) { if (error) throw error; console.log('The solution is: ', results[0].solution); });var express = require('express');var app = express();var fs = require("fs"); var bodyParser = require('body-parser');var multer = require('multer'); app.use('/public', express.static('public'));app.use(bodyParser.urlencoded({ extended: false }));app.use(multer({ dest: '/tmp/'}).array('image')); app.get('/index.html', function (req, res) { res.sendFile( __dirname + "/" + "index.html" );}) app.post('/file_upload', function (req, res) { console.log(req.files[0]); // 上传的文件信息 var des_file = __dirname + "/" + req.files[0].originalname; fs.readFile( req.files[0].path, function (err, data) { fs.writeFile(des_file, data, function (err) { if( err ){ console.log( err ); }else{ response = { message:'File uploaded successfully', filename:req.files[0].originalname }; } console.log( response ); res.end( JSON.stringify( response ) ); }); });}) var server = app.listen(8081, function () { var host = server.address().address var port = server.address().port console.log("应用实例,访问地址为 ;, host, port) }) ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download

To fulfill the demand for quickly locating and searching documents.

It is intelligent file search solution for home and business.

Literature Lottery

Related searches