【项目实战】仓库信息管理系统(layui+SSM+SpringBoot)

文章目录

前言

此项目为仓库管理系统,是我大二下的实训课作业,虽然是从学期初开始写的,但是实际写项目的日子也就十多天(前面都没怎么动,果然只有临近ddl效率才高)。

到我写这篇博文的时候,实际上项目还有小部分功能未完成,当然如果你不是逐个试过去你是发现不了的(笑哭)。

说实话,我实在不想在未完成前写类似实验报告的文档,而且我也不喜欢写文档。我一直认为写项目根本不需要那么多死板的文档(反正也只是作业)。

有人可能又会奇怪我不喜欢写文档为啥写那么多博文?这个嘛,我写博文的目的也只是想把我彼时彼刻的情感和经验分享出来,我更倾向于那种随性的分享,不想循规蹈矩的写那些死板的文档。

挺不喜欢那些老师每次要做项目都得要我们交各种图,各种功能业务表。那些图对于那些简单的项目还可以,毕竟不复杂,但是对于一个稍微大点的项目,光代码就一大堆,画那些业务图要画到猴年马月去?

有时候,围绕着一个增删改查的小项目大谈架构,这并不是一个明智的选择。

好了,碎碎念了这么多,实在抱歉,下面是正文:

一、项目概述

1.项目需求

实现材料仓库的管理:提供材料出入库管理等实用功能。 材料入库管理:材料检验入库、入库查询、入库类别按月统计;
材料出库管理:材料库存查询、材料出库、出库查询、出库类别按月统计; 辅助管理:仓库系统的人员管理、基础表的管理。

当然啦,以上只是简单的需求,多的我也不展示了。

2.总述

此项目为Javaweb项目,前后端不分离,典型的单体架构,主要功能是对仓库转入转出等业务进行管理,并对数据进行可视化展示,同时有部分权限管理的功能(为什么这么说呢,因为我这部分做的并不严谨,如果后面有时间我会尽可能完善)。

3.技术栈选择

前端:layui、jquery、echarts、thymeleaf模板引擎
后端:mysql、maven、tomcat、mybatis、springMVC、spring、SpringBoot、logback

注意:这里的前端页面我拿了gitee上的开源模板layui-mini,地址

4.环境介绍

数据库:mysql8.0
项目结构:maven
数据库连接池:Druid
前端框架:layui、jquery、echarts、thymeleaf模板引擎
后端框架:SpringBoot、SSM
语言:Java
jdk版本:8
编写的IDE:IDEA

5.效果图展示

为了更直观的展示项目,这里先放几张效果图

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

二、设计思路

在说明自己的设计思路之前,我们先来看看一般意义上的SSM项目的架构图

1.SSM项目(单体架构)示意图

在这里插入图片描述

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
以下是一个简单的仓库信息管理系统的C语言程序示例,包括库存管理和订单管理功能。它使用了结构体来存储物品信息和订单信息,并使用文件保存数据。 ```c #include <stdio.h> #include <string.h> #define MAX_ITEMS 100 #define MAX_ORDERS 100 struct Item { char name[20]; int quantity; float price; }; struct Order { char name[20]; int quantity; float price; char type[10]; }; struct Item items[MAX_ITEMS]; struct Order orders[MAX_ORDERS]; int num_items = 0; int num_orders = 0; void add_item() { printf("请输入物品名:"); scanf("%s", items[num_items].name); printf("请输入物品数量:"); scanf("%d", &items[num_items].quantity); printf("请输入物品价格:"); scanf("%f", &items[num_items].price); num_items++; printf("物品已添加。\n"); } void list_items() { printf("物品列表:\n"); for (int i = 0; i < num_items; i++) { printf("%d. %s\t%d\t%.2f\n", i + 1, items[i].name, items[i].quantity, items[i].price); } } void add_order() { printf("请输入订单物品名:"); scanf("%s", orders[num_orders].name); printf("请输入订单物品数量:"); scanf("%d", &orders[num_orders].quantity); printf("请输入订单物品价格:"); scanf("%f", &orders[num_orders].price); printf("请输入订单类型(入库或出库):"); scanf("%s", orders[num_orders].type); num_orders++; printf("订单已添加。\n"); } void list_orders() { printf("订单列表:\n"); for (int i = 0; i < num_orders; i++) { printf("%d. %s\t%d\t%.2f\t%s\n", i + 1, orders[i].name, orders[i].quantity, orders[i].price, orders[i].type); } } void save_data() { FILE *fp; fp = fopen("data.txt", "w"); if (fp == NULL) { printf("文件打开失败。\n"); return; } fprintf(fp, "%d\n", num_items); for (int i = 0; i < num_items; i++) { fprintf(fp, "%s %d %.2f\n", items[i].name, items[i].quantity, items[i].price); } fprintf(fp, "%d\n", num_orders); for (int i = 0; i < num_orders; i++) { fprintf(fp, "%s %d %.2f %s\n", orders[i].name, orders[i].quantity, orders[i].price, orders[i].type); } fclose(fp); printf("数据已保存。\n"); } void load_data() { FILE *fp; fp = fopen("data.txt", "r"); if (fp == NULL) { printf("文件打开失败。\n"); return; } fscanf(fp, "%d", &num_items); for (int i = 0; i < num_items; i++) { fscanf(fp, "%s %d %f", items[i].name, &items[i].quantity, &items[i].price); } fscanf(fp, "%d", &num_orders); for (int i = 0; i < num_orders; i++) { fscanf(fp, "%s %d %f %s", orders[i].name, &orders[i].quantity, &orders[i].price, orders[i].type); } fclose(fp); printf("数据已加载。\n"); } int main() { int choice; load_data(); while (1) { printf("\n请选择操作:\n"); printf("1. 添加物品\n2. 查看物品\n3. 添加订单\n4. 查看订单\n5. 保存数据\n6. 退出\n"); scanf("%d", &choice); switch (choice) { case 1: add_item(); break; case 2: list_items(); break; case 3: add_order(); break; case 4: list_orders(); break; case 5: save_data(); break; case 6: save_data(); return 0; default: printf("无效的选择。\n"); } } } ``` 该程序使用了一个无限循环,让用户选择不同的操作。它使用了文件来保存数据,以便在程序重新启动时保留数据。用户可以添加物品和订单,并查看它们的列表。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值