工厂物料管理系统(数据库课设)

 1.课设要求描述 

●实现物料的分类管理;

●实现部门和员工信息管理;

●实现物料的入库和领用管理;

●实现物料的转仓管理;

●创建触发器,实现物料入库和领用时相应物料库存的自动更新;

●创建触发器,实现转仓时转入仓库物料增加、转出仓库物料减少;

●创建存储过程统计各仓库各种物料的现存数量;

●创建存储过程统计指定时间段内各种物料的入库数量和领用数量;

●建立数据库相关表之间的参照完整性约束;

2.制作思路及基础讲解

此项目主要是用于完成大二下半学期的数据库课设,随手记录。技术面大二下之前只学过Java,MySQL/SQLServer。所以此项目没有前端界面,只通过命令行的形式来操作该系统,制作思路:首先是数据库作为存储数据的地方,编写根据课设要求编写好对应的建表语句和存储过程,视图,触发器等。然后编写好对应系统的Java代码,最后通过JDBC将Java代码与数据库连接起来。

  部分学生可能学的比较浅,不理解mysql,sqlserver,java,c等一堆名词之间的含义。之前有同学找我做过这类似的课设。问的问题都比较抽象,例如用mysql做一个系统之类的。在此简单说一下我对于这些的理解,mysql,sqlserver都是数据库的一种,只不过是外国的所以都是用英文表示,大部分上课不听的同学看到这一堆英文都会比较懵,其实只需简单把数据库(mysql,SQLServer)理解成存储数据的地方,而java,c等语言是用来编写系统逻辑功能的代码。当然在数据库中的存储过程或者触发器什么的,这些功能也能在代码编程语言中通过特定的逻辑实现类似的功能,只不过我们在数据库中写好的话,免去了Java中代码的编写量,并且查询时速度会更快。

3.使用工具及语言详解

不同的学校要求不同,有的是sqlserver,有的是mysql,但其实这两者的区别在我看来区别不大,大部分的语句格式都是一样的,所以我选择了我熟悉的一种,mysql来进行编写。在语言方面,我大一的时候学过c,但是当时没有认真听,后来也慢慢都忘了,大二时学了Java,并且之后又系统性的学了一遍,所以选择来用Java语言编写。对于编译器我使用的是IDEA,版本随意,这个不影响,但需要注意IDEA不是免费的,可以去试用30天,也可以自行网上找方法安装破解版。数据库可视化工具使用的是Navicat,这个工具同样也不是免费的,但提供14天试用期,有长期需求也需要各位自行找破解版。

PS:这里又提到两个新名词,IDEA和Navicat,这不是编程语言,而是工具的名字,大家需要慢慢熟悉这些名词,简单来说就是他能让你的编程之路变得更顺畅,提供了可视化的界面,不需要一直在黑窗口中输入代码

4.数据库建表代码(完整数据库文件请到主页资源处下载)

-- 创建数据库
CREATE DATABASE IF NOT EXISTS MaterialManagement;
USE MaterialManagement;

-- 创建物料分类表
CREATE TABLE MaterialCategories (
    CategoryID INT AUTO_INCREMENT PRIMARY KEY,
    CategoryName VARCHAR(255) NOT NULL,
    Description TEXT
);

-- 创建部门表
CREATE TABLE Departments (
    DepartmentID INT AUTO_INCREMENT PRIMARY KEY,
    DepartmentName VARCHAR(255) NOT NULL,
    Location VARCHAR(255)
);

-- 创建员工表
CREATE TABLE Employees (
    EmployeeID INT AUTO_INCREMENT PRIMARY KEY,
    EmployeeName VARCHAR(255) NOT NULL,
    DepartmentID INT,
    FOREIGN KEY (DepartmentID) REFERENCES Departments(DepartmentID)
);







-- 创建触发器,物料领用时自动更新库存

DELIMITER //

CREATE TRIGGER AfterMaterialIssue
AFTER INSERT ON MaterialIssue
FOR EACH ROW
BEGIN
    -- 声明变量以存储MaterialStock表中对应记录的ID
    DECLARE stock_id INT;
    
    -- 通过MaterialID查找对应的MaterialStock记录的ID
    SELECT StockID INTO stock_id FROM MaterialStock
    WHERE MaterialID = NEW.MaterialID
    LIMIT 1;
    
    -- 使用找到的ID来更新MaterialStock表的Quantity字段
    UPDATE MaterialStock
    SET Quantity = Quantity - NEW.Quantity
    WHERE StockID = stock_id;
END; //

DELIMITER ;




-- 创建触发器,物料转仓时自动更新库存
DELIMITER //
CREATE TRIGGER AfterMaterialTransfer
AFTER INSERT ON MaterialTransfer
FOR EACH ROW
BEGIN
    UPDATE MaterialStock
    SET Quantity = Quantity - NEW.Quantity
    WHERE MaterialID = NEW.MaterialID AND WarehouseID = NEW.FromWarehouseID;
    
    UPDATE MaterialStock
    SET Quantity = Quantity + NEW.Quantity
    WHERE MaterialID = NEW.MaterialID AND WarehouseID = NEW.ToWarehouseID;
END; //
DELIMITER ;

-- 创建存储过程统计各仓库各种物料的现存数量
DELIMITER //
CREATE PROCEDURE GetMaterialStockSummary()
BEGIN
    SELECT MaterialID, MaterialName, WarehouseID, SUM(Quantity) AS TotalStock
    FROM MaterialStock
    JOIN Materials ON MaterialStock.MaterialID = Materials.MaterialID
    GROUP BY MaterialID, WarehouseID;
END; //
DELIMITER ;

5.Java代码思路及结构

此处只放部分代码截图

6.效果运行实例 

 

 附带说明书,任务书,sql文件及源码,需要后台私信  

  • 21
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
由于数据流程图只是对数据处理及彼此之间的联系进行说明,未对数据的详细内容及数据的加工过程进行说明,而这正是数据字典所要表达的。数据字典是关于数据信息的集合,也就是对数据流程图中包含的所有元素的定义的集合。它能将数据流程图中全部数据流及其组成部分的数据元素、数据存储、数据加工等描述清楚,便于后续工作—系统设计的进行。 数据字典是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。数据字典通常包括数据项、数据结构、数据流、数据存诸和处理过程5个部分。其中数据项是最小组成单位,若干数据项组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流、数据存储和逻辑内容。 针对一般食堂管理信息系统的需求,通过对食堂管理工作过程的内容和数据流程分析,设计如下所示的数据项和数据结构: 数据结构名称:职工用餐卡信息 含义说明:这里指的是职工用来使用付款的工具卡的一系列信息,它记录了包括它本身以及持卡者的一些信息 包括的数据项有: 1)卡号 (消费者使用的用来付款的卡的编号,与消费者办卡的先后顺序有关 别名Card_number 字符型 长度6) 2)余额(今日剩余用餐量) (消费者卡中所剩的金钱数量,别名Balance 字符型 长度 6) 3)办卡日期 (消费者办卡的日期,别名Card_date 日期型 长度 8) 4)持卡者姓名 (拥有信息卡的消费者的名称,别名 Person_name 字符型 长度 10) 5)花费(用餐次数统计) (消费者所消费的金钱数量 别名 Consume 字符型 长度 20) 数据结构名称:员工信息 含义说明:消费者群体之一,可以自由选择消费方式,办过卡用卡交易或者用现金交易 包括的数据项有: 1)工号 (职工在公司所编的号码 别名 S_number 字符型 长度 6) 2)部门 (职工所在的部门的名称 别名 S_system 字符型 长度 16) 3)职位 (职工所担任的职位 别名 S_class 字符型 长度 20) 4)姓名 (职工的姓名 别名 S_name 字符型 长度 10) 5)性别 (职工的性别 别名 S_sex 字符型 长度 4) 6)地址 (职工的所在地址 别名 S_adress 字符型 长度 20) 7)联系方式 (职工的手机号码 别名 S_tel 字符型 长度 20) 由于数据流程图只是对数据处理及彼此之间的联系进行说明,未对数据的详细内容及数据的加工过程进行说明,而这正是数据字典所要表达的。数据字典是关于数据信息的集合,也就是对数据流程图中包含的所有元素的定义的集合。它能将数据流程图中全部数据流及其组成部分的数据元素、数据存储、数据加工等描述清楚,便于后续工作—系统设计的进行。 数据字典是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。数据字典通常包括数据项、数据结构、数据流、数据存诸和处理过程5个部分。其中数据项是最小组成单位,若干数据项组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流、数据存储和逻辑内容。 针对一般食堂管理信息系统的需求,通过对食堂管理工作过程的内容和数据流程分析,设计如下所示的数据项和数据结构: 数据结构名称:职工用餐卡信息 含义说明:这里指的是职工用来使用付款的工具卡的一系列信息,它记录了包括它本身以及持卡者的一些信息 包括的数据项有: 1)卡号 (消费者使用的用来付款的卡的编号,与消费者办卡的先后顺序有关 别名Card_number 字符型 长度6) 2)余额(今日剩余用餐量) (消费者卡中所剩的金钱数量,别名Balance 字符型 长度 6) 3)办卡日期 (消费者办卡的日期,别名Card_date 日期型 长度 8) 4)持卡者姓名 (拥有信息卡的消费者的名称,别名 Person_name 字符型 长度 10) 5)花费(用餐次数统计) (消费者所消费的金钱数量 别名 Consume 字符型 长度 20) 数据结构名称:员工信息 含义说明:消费者群体之一,可以自由选择消费方式,办过卡用卡交易或者用现金交易 包括的数据项有: 1)工号 (职工在公司所编的号码 别名 S_number 字符型 长度 6) 2)部门 (职工所在的部门的名称 别名 S_system 字符型 长度 16) 3)职位 (职工所担任的职位 别名 S_class 字符型 长度 20) 4)姓名 (职工的姓名
餐饮管理系统使用说明书配置源程序附加数据库SQL Server 2000(1)将TM\\06\\MrCy\\MrCy\\DataBase文件夹中的扩展名为db_MrCy.mdfF和db_MrCy.ldf的两个文件拷贝到SQL Server安装路径下的Data文件夹中。(2)打开SQL Server 2000中的“企业管理器”,然后展开本地服务器,在“数据库”数据项上单击鼠标右键,在弹出的快捷菜单中选择“所有任务”/“附加数据库”菜单项。(3)将弹出“附加数据库”对话框,在该对话框中单击【 】按钮,选择所要附加数据库的db_MrCy.mdf文件,单击【确定】按钮,即可完成数据库的附加操作。使用说明系统介绍本系统属于小型的餐饮管理系统,可以有效地对中小型餐厅消费进行管理,本系统应达到以下目标: 系统采用人机交互的方式,界面美观友好,信息查询灵活、方便,数据存储安全可靠。 实现对餐厅顾客开台、点菜/加菜、账目查询和结账等操作。 对用户输入的数据,进行严格的数据检验,尽可能的避免人为错误。 实现对消费账目自动结算。 实现对消费的历史记录进行查询,支持模糊查询。 系统应最大限度地实现易维护性和易操作性。操作注意事项(1)本系统管理员用户名为:Tsoft,密码为:111。(2)实例执行文件位置:TM\\06\\MrCy\\MrCy\\bin\\Debug\\ MrCy.exe(3)本系统共分为三种操作权限,分别为超级管理员、经理、一般用户: 一般用户: 一般用户只可以对辅助工具菜单、系统设置菜单、窗口布局菜单及帮助菜单进行使用操作。。 经理:经理除系统设置菜单不能使用以外,其它菜单都可以使用并管理操作。 超级管理员:超级管理员可以对所有菜单进行管理操作。(4)单击鼠标右键,可进行开台、取消开台、点菜、消费查询及结账操作。(5)锁定系统解锁密码为:111。(6)如果添加菜品类别,需要在数据库中添加。操作流程(1)用户输入用户名及密码进入超级管理员操作界面,如图1.1所示。 图1.1 超级管理员(2)单击“基础信息”/“台桌信息”菜单项,对台桌信息进行添加、修改、查询及删除操作,如图1.2所示。 图1.2 台桌信息(3)单击“基础信息”/“职员信息”菜单项,对职员信息进行添加、修改、查询及删除操作,如图1.3所示。 图1.3 职员信息(4)单击界面上的任一台桌,进行开台、取消开台、点菜、消费查询及结账操作,如图1.4所示。 图1.4 台桌操作(5)通过“辅助工具”菜单,可直接调用日历、记事本和计算器的快捷方式。(6)通过“系统维护”菜单,可对数据库进行备份、恢复及权限设置操作。(7)通过“系统设置”菜单,可对当前用户进行密码修改及锁定系统操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值