




已阅读5页,还剩127页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
超市管理系统项目建设单位:福建工程学院专 业 班 级 :软件工程0801指 导 教 师 :滕秀花小 组 编 号 :第 9 组小 组 成 员 : 目录1.1 用户需求分析21.1.1 项目背景21.1.2 用户需求31.2 系统数据流图41.3数据字典71.3.1数据流81.3.2数据元素81.3.3数据存91.3.4储数据加工101.3.5外部项112.1功能分析122.1.1 登录122.1.2 进货管理122.1.3销售管理模块122.1.4 库存管理模块132.1.5 基础数据管理模块132.1.6系统维护模块133.1数据库设计133.1.1 概要设计 各张表结构 进货子系统分E-R图 库存子系统分E-R图销售子系统分E-R图 视图集成173.1.2 逻辑设计183.1.3 物理设计 触发器 存储过程201、预警数量存储过程203.1.4界面模块设计224.1源代码251.1 用户需求分析1.1.1 项目背景国内市场的一些中小型超市,它们在信息化过程中的步伐要落后于大中型超市,随着超市高速的发展,其经营管理也变得愈加复杂,早期的售货员站柜台的形式早已不能满足现有销售也的发展,这样就迫切地需要引入新的管理技术,而对于这些企业的资源管理,信息的存储和处理也显得迫切需要,要适应市场竞争,就需要有高效的处理方式和管理方法,因此加快超市的信息化进程是必可少的。对此我们决定设计一套超市进销存管理系统来完善超市的管理制度,增强企业的竞争力,实现信息化管理。1.1.2 用户需求超市的进销存管理信息系统,首先必须具备的功能是记录仓库存货、销售以及进货情况,通过该系统了解愁啊好似进货渠道、商品单价、数量,库存商品的种类、数量,销售商品种类、价格、数量,以便管理员根据以上信息做出经营管理决策。销售管理:销售是超市的重要功能之一,收银人员记录客户选购商品的数量,条码,以及总金额,打印商品销售报表,以及每日盘点。库存管理:查看某一类别,某一商品的库存信息,拥有供货商的详细信息,当发现某一商品销量不好或快到保质期,管理员可将此商品退回供应商。可以查询退货信息,并具有查询供货商信息,添加供应商信息,修改供应商信息。采购管理:采购部根据库存部提供是信息制定采购计划,提交至超市经理审批。超市经理审批后,如果不通过,驳回计划。审批通过则授权采购部进行商品采购,然后将商品移交给库存部。1.2 系统数据流图 1.3数据字典 上面讨论的数据流图只能给出系统逻辑功能的一个总框架而缺乏详细、具体的内容,因此我们还需要建立数据字典。建立数据字典是为了对数据流程图上各个元素做出详细的定义和说明。数据字典以一种准确的和无二义的方式定义所有被加工引用的数据流和数据存储。数据流程图配以数据字典,就可以从图形和文字两个方面对系统的逻辑模型进行描述,从而形成一个完整的说明。数据字典有助于数据的进一步管理和控制,为设计人员和数据库管理人员在数据库设计、实现和运行阶段控制有关数据提供依据。数据字典描述的主要内容有:数据流、数据元素、数据存储、加工外部项。由于篇幅有限,所以仅各举一个例子来说明。1.3.1数据流数据流是数据结构在系统内传输的路径,是所描述的信息处理功能有关的各类信息的载体,是各加工环节进行处理和输出的数据集合。数据流系统名:超市管理系统 编号: 条目名:采购订单 别名: 来源:采购系统去处:供应商数据流结构:订单=编号日期供应商商品名称型号规格数量交货时间交货地点交货方式运输费用付款方式质量保证单价总价备注简要说明:订单由采购员开出后,传真或Email给供应商确认 修改记录:1.3.2数据元素数据元素是组成数据流的基本成分,是不可再分割的数据单位。数据元素系统名:超市管理系统 编号: 条目名:入库单 别名: 属于数据流:F10存储处:D6D13数据元素值:代码类型: 取值范围 : 意义: 字符型 RK0801001RK0801999 XX XX XX XXX流水编号月份年号入库代码简要说明:给入库单一个编号,以便能唯一识别修改记录:1.3.3数据存数据存储是逻辑意义上的数据存储环节,即系统信息处理功能需要的,不考虑存储物理介质和技术手段的数据存储环节。数据存储系统名:超市管理系统 编号: 条目名:订单执行情况统计表 别名:合同明细列表存储组织:二维表记录数:约1000条数据量:约2 00KB主关键字:订单编号辅关键字:供应商名称记录组成:项 名 近似长度订单编号 10日期 10供应商代码 5材料名称 20规格 20单位 5到货日期 10数量 10单价 6总价 6付款方式 20入库日期 10入库单号 10简要说明:每个采购合同合同一条记录,按合同编号顺利排列修改记录:1.3.4储数据加工数据加工又称处理逻辑,描述系统对信息进行处理的逻辑功能。加工销售管理系统名:超市管理系统 编号:P1 条目名:销售管理 别名: 输入:订单输出:发货单提货单请购台账加工逻辑:1.销售部业务员收到客户订单查询库存,满足数量,通知仓库提货;2.若缺货,则通知采购部进行采购。简要说明: 修改记录:加工采购管理系统名:超市管理系统 编号: 条目名:采购管理 别名: 输入:请购通知到货通知输出: 采购订单入库通知到货通知加工逻辑:1、 采购员接到请购通知,联系供应商进行采购;2、 通知销售部货品到货,并且通知仓库准备入库;简要说明: 修改纪录:编写: 日期: 审核: 日期: 加工库存管理系统名:超市管理系统 编号:P3 条目名:库存管理 别名: 输入:入库单提货通知输出:出库单库存统计分析报表加工逻辑:1、将到货货品进行入库,并根据销售部的提货通知进行出库处理;2、将货品出入库数据记入库存台帐,用于进行统计分析;简要说明: 修改记录:加工基本资料管理系统名:超市管理系统 编号:P4 条目名:基本资料管理 别名: 输入:客户资料 供应商资料仓库资料货品资料输出:客户信息表 供应商信息表仓库信息表货品信息表加工逻辑:1、 根据订单合同等,进行供应商客户资料的录入维护2、 根据库存盘点进行商品仓位的维护更新简要说明:修改记录:1.3.5外部项外部项又称外部实体,它是描述数据流程图种数据来源和去处的各种实体或工作环节。外部项系统名:进销存管理系统 编号: 条目名:供货商 别名: 输入数据流:输出数据流:到货通知主要特征: 供应商编号,名称,地址,邮编,电话,联系人 简要说明:供货商给采购部供应商品,本系统暂未考虑修改纪录:编写: 日期: 审核: 日期: 2.1功能分析2.1.1 登录表1-1 登陆功能的规定编号用例名称描述1登陆输入用户账号密码,读取数据库的用户信息表验证正确后,根据用户类型进入不同界面。账号长度为6位数字。收银用户(以0开头的6位数字,如:(00001-099999)、后台用户(000000)和退货用户(以1开头的6位数字,如:100000-199999)。如果输入有误则给予友好提示2.1.2 进货管理表1-2进货管理模块功能的规定编号用例名称描述2进货管理模块该模块主要负责商品的进货数据录入、退货数据录入、进货分析、进货统计(不含退货)、与供应商往来对账2.1.3销售管理模块表1-3销售管理模块功能的规定编号用例名称描述3销售管理模块该模块主要负责商品的销售数据录入、销售退货数据录入、销售统计(不含退货)、销售统计(销售分析、明细账本)、商品销售排行、往来分析(与代理商对账)、商品销售成本表2.1.4 库存管理模块表1-4库存管理模块功能的规定编号用例名称描述4库存管理模块该模块主要负责库存状况、库存商品数量上限报警、库存商品下限报警、商品进销存变动表、库存盘点(自动盘盈亏)2.1.5 基础数据管理模块表1-5基础数据管理模块功能的规定编号用例名称描述5基础数据管理模块该模块主要负责对系统基本数据录入,相关基础数据为:库存商品、往来单位、内部职员2.1.6系统维护模块表1-6系统维护模块功能的规定编号用例名称描述6系统维护模块本单位信息、操作员设置、操作权限设置、数据备份和数据库恢复、数据清理3.1数据库设计3.1.1 概要设计 各张表结构 进货子系统分E-R图 库存子系统分E-R图销售子系统分E-R图 视图集成3.1.2 逻辑设计库存表(商品名称、库存名称、库存数量、商品单位、预警数量、进货价格、销售价格)员工表(员工号、员工名、员工手机、员工家庭电话、员工登录账号、员工登录密码、员工地址、员工职位、员工性别、员工部门、标记)商品表(商品标识、商品名称、仓库名称)销售表(销售标识、商品标识、操作人员、销售数量、销售时间、销售价格、应付金额、实付金额、备注)供应商表(供应商号、供应商名称、供应商负责人、供应商电话、供应商地址、供应商传真、供应商标记、备注)进货表(进货标识、进货单位、供应商名、货品名称、货品类型、供应商地址、进货时间、进货价格、销售价、备注)3.1.3 物理设计 触发器进货信息表触发器set ANSI_NULLS ONset QUOTED_IDENTIFIER ONGOALTER Trigger dbo.tbJhGoodsInfo on dbo.tb_JhGoodsInfofor insertasdeclare gname nvarchar(50), a int -set b=0select gname =inserted.GoodsNamefrom inserted select a=inserted.GoodsNum from insertedif not exists (select *from tb_KcGoods where tb_KcGoods.KcGoodsName=gname) begin insert into tb_KcGoods (KcDeptName,KcGoodsName,KcNum,KcUnit,KcGoodsPrice,KcSellPrice) select inserted.DepotName,inserted.GoodsName,inserted.GoodsNum,inserted.GoodsUnit,inserted.GoodsJhprice,inserted.GoodsSellPrice FROM Inserted endelse begin update tb_KcGoods set KcNum=KcNum+a where tb_KcGoods.KcGoodsName=gname endif not exists (select *from GoodsInfo where GoodsInfo.GoodsName=gname)begin insert into GoodsInfo(GoodsName,DepotName) select inserted.GoodsName ,inserted.DepotName FROM Insertedend销售信息表触发器set ANSI_NULLS ONset QUOTED_IDENTIFIER ONGOALTER Trigger dbo.SellGoods on dbo.tb_SellGoodsfor insertasdeclare gname nvarchar(50), a int select gname =inserted.GoodsNamefrom insertedselect a=inserted.SellGoodsNum from inserted begin update tb_KcGoods set KcNum=KcNum-a where tb_KcGoods.KcGoodsName=gnameend 存储过程1、预警数量存储过程set ANSI_NULLS ONset QUOTED_IDENTIFIER ONGOALTER proc dbo.KcAlarmNumProcGName varchar(50),SellNum int,outputvalue int outputas-库存足够可添加if exists (select *from tb_KcGoods where (KcNum-KcAlarmNumSellNum) and tb_KcGoods.KcGoodsName=GName) begin set outputvalue=1 return end-库存预警else if exists (select *from tb_KcGoods where (KcNum-KcAlarmNum=0) and tb_KcGoods.KcGoodsName=GName) begin set outputvalue=0 end else-库存不足beginset outputvalue=-1end2、取出库存销售价格存储过程set ANSI_NULLS ONset QUOTED_IDENTIFIER ONGOALTER proc dbo.getPriceGName varchar(50),outputvalue varchar(50) outputas-库存足够可添加if exists (select *from tb_KcGoods where KcGoodsName=GName) begin set outputvalue=(select KcSellPrice from tb_KcGoods where KcGoodsName=Gname) return end3、取出库存价格和库存销售价格存储过程set ANSI_NULLS ONset QUOTED_IDENTIFIER ONGOALTER proc dbo.getPrice1GName varchar(50),outputvalue varchar(50) output,outputvalue1 varchar(50) outputas-库存足够可添加if exists (select *from tb_KcGoods where KcGoodsName=GName) begin set outputvalue=(select KcGoodsPrice from tb_KcGoods where KcGoodsName=Gname) set outputvalue1=(select KcSellPrice from tb_KcGoods where kcGoodsName=Gname)- set outputvalue=outputvalue+(select GoodsSellPrice from tb_JhGoodsInfo where GoodsName=Gname) return end3.1.4界面模块设计商品进货信息商品查询模块商品销售信息模块商品退货模块库存预警库存查询员工基本信息供应商信息数据备份数据库还原4.1源代码1.登录窗口using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using CHEXC.GoodMenhod;namespace CHEXC public partial class frmLogin : Form public frmLogin() InitializeComponent(); private void btnOK_Click(object sender, EventArgs e) tb_EmpInfoMenthod tbEmp = new tb_EmpInfoMenthod(); if (txtID.Text = ) MessageBox.Show(用户名不能为空!); return; if (txtPwd.Text = ) MessageBox.Show(密码不能为空!); return; if (tbEmp.tb_EmpInfoFind(txtID.Text, txtPwd.Text, 2) = 1) frmMain frm = new frmMain(txtID.Text); frm.Show(); this.Hide(); else MessageBox.Show(登录失败!); private void btnCancel_Click(object sender, EventArgs e) Application.Exit(); private void frmLogin_FormClosing(object sender, FormClosingEventArgs e) Application.Exit(); private void txtID_TextChanged(object sender, EventArgs e) private void frmLogin_Load(object sender, EventArgs e) 2.进货窗口2.1商品进货using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using CHEXC.ClassInfo;using CHEXC.GoodMenhod;using System.Data.SqlClient;namespace CHEXC public partial class frmJhGoodsInfo : Form public frmJhGoodsInfo() InitializeComponent(); public frmJhGoodsInfo(int intCdo) InitializeComponent(); tb_JhGoodsInfo jhGood=new tb_JhGoodsInfo(); tb_JhGoodsInfoMenthod jhMenthod=new tb_JhGoodsInfoMenthod(); public static int intFalg = 0; private void ControlStatus() this.toolSave.Enabled = !this.toolSave.Enabled; this.toolAdd.Enabled = !this.toolAdd.Enabled; this.toolCancel.Enabled = !this.toolCancel.Enabled; this.toolAmend.Enabled = !this.toolAmend.Enabled; this.tollDelete.Enabled = !this.tollDelete.Enabled; public void ClearContorl()/清空 txtGoodsNum.Text = ; txtGoodsSellPrice.Text = ; txtJhCompName.Text = ; txtGoodsNeedPrice.Text = ; txtGoodsName.Text = ; txtGoodsJhPrice.Text = ; txtGoodsID.Text = ; cmbDepotName.Text = ; cmbGoodsUnit.Text = ; cmbDepotName.Text = ; txtGoodsNoPrice.Text = ; txtGoodsRemark.Text = ; public int getIntCount()/添加进货记录时的判断 int intReslut = 0; if (intFalg = 1) if (txtGoodsID.Text = ) MessageBox.Show(商品编号不能为空!); return intReslut; if (txtGoodsName.Text = ) MessageBox.Show(商品名称不能为空!); return intReslut; if (txtJhCompName.Text = ) MessageBox.Show(供应商名称不能为空!); return intReslut; if (txtEmpId.Text = ) MessageBox.Show(进货人姓名不能为空!); return intReslut; if (txtGoodsNum.Text = ) MessageBox.Show(数量不能为空!); return intReslut; if (txtGoodsName.Text = ) MessageBox.Show(进货单价不能为空!); return intReslut; if (intFalg = 2) if (txtGoodsID.Text = ) MessageBox.Show(商品编号不能为空!,选择要修改记录,提示); return intReslut; if (intFalg = 3) if (txtGoodsID.Text = ) MessageBox.Show(商品编号不能为空!,选择要删除记录, 提示); return intReslut; jhGood.strGoodsID = txtGoodsID.Text; jhGood.strEmpId = txtEmpId.Text; jhGood.strJhCompName = txtJhCompName.Text; jhGood.strDepotName = cmbDepotName.Text; jhGood.strGoodsNum = Convert.ToInt32(txtGoodsNum.Text); jhGood.strGoodsName = txtGoodsName.Text; jhGood.strGoodsUnit = cmbGoodsUnit.Text; jhGood.deGoodsJhPrice = txtGoodsJhPrice.Text; jhGood.deGoodsNeedPrice = txtGoodsNeedPrice.Text; jhGood.deGoodsNoPrice = txtGoodsNoPrice.Text; jhGood.deGoodsSellPrice = txtGoodsSellPrice.Text; jhGood.strGoodsRemark = txtGoodsRemark.Text; jhGood.DaGoodTime = dateTimePicker1.Value; if (intFalg != 3) jhGood.Falg = 0; else jhGood.Falg = 1; intReslut = 1; return intReslut; private void frmJhGoodsInfo_Load(object sender, EventArgs e) jhMenthod.tb_JhGoodsInfoFind(, 5, dataGridView1); private void FillControls()/在前台显示进货表 try SqlDataReader sqldr = jhMenthod.tb_JhGoodsInfoFind(this.dataGridView10, this.dataGridView1.CurrentCell.RowIndex.Value.ToString(),1); sqldr.Read(); if (sqldr.HasRows) txtEmpId.Text=sqldr1.ToString(); txtGoodsName.Text=sqldr4.ToString(); cmbDepotName.Text = sqldr3.ToString(); txtGoodsNum.Text=sqldr5.ToString(); cmbGoodsUnit.Text=sqldr6.ToString(); txtGoodsJhPrice.Text=sqldr7.ToString(); txtGoodsNeedPrice.Text=sqldr9.ToString(); txtGoodsSellPrice.Text=sqldr8.ToString(); txtJhCompName.Text = sqldr2.ToString(); txtGoodsID.Text = sqldr0.ToString(); txtGoodsID.Enabled = false; catch (Exception ee) MessageBox.Show(ee.ToString(); private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) private void toolAdd_Click(object sender, EventArgs e) ControlStatus(); ClearContorl(); intFalg = 1;/添加标记 txtGoodsID.Text = jhMenthod.JhGoodsID(); txtGoodsID.Enabled = false; private void toolAmend_Click(object sender, EventArgs e) ControlStatus(); ClearContorl(); intFalg = 2;/添加标记 private void toolrefulsh_Click(object sender, EventArgs e) ControlStatus(); ClearContorl(); private void toolExit_Click(object sender, EventArgs e) this.Close(); private void toolCancel_Click(object sender, EventArgs e) ControlStatus(); ClearContorl(); private void toolSave_Click(object sender, EventArgs e) if (getIntCount() = 1) this.txtGoodsRemark.Text = (int.Parse(this.txtGoodsNoPrice.Text) - int.Parse(this.txtGoodsNeedPrice.Text).ToString(); if (intFalg =1 ) if (jhMenthod.tb_JhGo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年成人教育线上学习模式创新成人教育课程设计与开发实践策略分析
- 合肥市土地资源承载力:综合评价与发展策略探究
- 产业园区合作共建协议5篇
- 良好习惯课件
- 2025内蒙古呼伦贝尔根河市事业单位文旅岗位引进人才2人备考及答案详解参考
- 聚焦群众身边腐败问题和不正之风的问题整改措施
- 2025年二级建造师考试建筑工程管理与实务试题与参考答案
- 2025年教师招聘之《小学教师招聘》综合提升试卷附完整答案详解(夺冠)
- 2025年教师招聘之《幼儿教师招聘》考前冲刺测试卷包附答案详解【考试直接用】
- 2025呼伦贝尔农垦集团有限公司社会招聘50人考试备考及1套完整答案详解
- 2025-2026学年浙美版(2024)小学美术二年级上册(全册)教学设计(附目录P168)
- 2025年时政热点考试模拟题库目及解析答案
- DB63-T 1921-2021 交通运输专业空间数据分类与编码规范
- 2025年部编版八年级道德与法治上册全册教案
- 2025年移动式压力容器充装R2作业证考试练习题库含答案
- 北师大版(2024版)三年级上册第七单元第6节《生活中的小数》教学设计
- 2025年中国银行招聘考试试题及答案
- 土石方工程的合作协议书
- 医疗质量安全专项整治行动自查清单8-患者隐私
- 字体设计字体标志与版式设计
- 2025人教版(2024)八年级上册英语教学计划
评论
0/150
提交评论