库存管理系统
一、课程设计概述
1.1. 目的
1.2. 任务
1.3. 开发环境:
二、项目的需求分析和可行性分析
2.1.系统可行性分析
2.2.系统需求分析
2.2.1.系统目标设计
2.2.2.系统功能需求分析
2.2.3.系统功能描述
2.2.4系统的数据流图
三、项目概要设计
3.1.系统建模设计
3.1.1.UML简介
3.1.2.系统的用例分析
3.1.3.系统的层次模块图
3.2管理员录入出入库信息
3.3 用户录入出入库信息
3.4 管理员管理用户信息
3.5 管理员录入库存详细信息
3.6 数据文件设计
3.7 接口设计
3.7.1.用户接口
3.7.2.外部接口
3.7.3.内部接口
3.8体系结构设计
四、详细设计
4.1 主要函数算法设计
4.2系统商品入库流程图
4.3系统代码
一、课程设计概述
1.1. 目的
针对具体软件工程项目,全面掌握软件工程管理、软件需求分析、软件初步设计、软件详细设计、软件测试等阶段的方法和技术。通过本课程设计的实践及其前后的准备与总结,复习、领会、巩固和运用软件工程课堂上所学的软件开发方法和知识,进一步理解和掌握软件开发模型、软件生命周期、软件过程等理论在软件项目开发过程中的意义和作用 ,提高软件工程的综合能力,提高软件项目的管理能力,为从事软件开发和设计奠定一个坚实的基础。
1.2. 任务
充分了解库存管理系统,进行系统的需求分析、可行性分析、设计、测试,完成课程设计。充分了解软件工程的整个过程,复习、领会、巩固和运用软件工程课堂上所学的软件开发方法和知识。
1.3. 开发环境:
Microsoft Visual C++、 SQL Server 2019 、 Windows 10、codeblocks
二、项目的需求分析和可行性分析
2.1.系统可行性分析
库存管理系统可以应用到生活的各个方面,比如:超市里的各种商品,图书管理的图书。拿超市里商品来说,商品每天的进货量、出货量也是极其庞大的,不是简单地依靠手工记载就能完成的,那样会及其的混乱。那么此时,一个小小的库存管理系统就可以解决这个问题。不仅入此,还可以分析每天的出货量多少,来判断哪一种商品更受喜爱,多进哪一种商品,少进哪一种商品。
运用现代信息化和智能化的管理模式,解决商品库存信息在日常生活中易于丢失、遗忘,不易保存、管理的问题,从而使各商家能够更全面,更直观的了解到商品的库存信息,做出正确的决定。
库存管理系统,给用户提供友好的界面,方便的操作,满足商家进出货管理的需求。使用户使用更加方便,快捷。
2.2.系统需求分析
2.2.1.系统目标设计
系统开发的总目标是实现仓库管理的系统化、规范化和自动化。
对仓库内的所有商品(包括商品名称、代码、生产商、生产日期、总数量、出库量、入库量、价格)进行统一管理
提供方便的查询方法。如:商品名称、代码、生产商。
提供对商品信息的修改。
提供对商品信息的查询。
提供每天的出库量、入库量的统计以及排序。
提供商品出、入库功能。
2.2.2.系统功能需求分析
(1) 商品管理:商品的名称、代码、生产商、生产日期、总数量、出库量、入库量、价格等。
(2) 系统管理:商品的出入库、查询修改、统计排序等。
满足以上需求的系统主要包含有一下几个子系统
(1)登录子系统:该系统中主要包含了登录功能。
(2)管理子系统:该子系统主要包含管理员对商品的操作。
下图为该库存管理系统的主要功能模块图:
图1:库存管理系统功能模块图
2.2.3.系统功能描述
(1) 商品入库。商品入库后入库量改变,总的数量+=入库量。
(2) 商品出库。商品出库后出库量改变,总的数量+=出库量。
(3) 查询商品。得到查询商品的名称、代码、生产商、生产日期、总数量、出库量、入库量、价格等。
(4) 修改商品。修改商品的名称、代码、生产商、生产日期、总数量、出库量、入库量或价格。可部分修改,可全部修改。按需求改变。
(5) 日盘点。对一天内各种商品的出库量、入库量进行一个总的盘点,以便做出明天的进货决定。
(6) 出入库排序。对商品的出入库进行排序,更加简单直观的发现哪种商品卖的好,那种商品要多进货。
(7) 退出系统。返回到主菜单页面。
2.2.4系统的数据流图
图2:库存管理系统系统的DFD图
三、项目概要设计
3.1.系统建模设计
3.1.1.UML简介
UML是一种功能强大的、面向对象的可视化系统分析的建模语言,它采用一整套成熟的建模技术,广泛地适用于各个应用领域。它的各个模型可以帮助开发人员更好地理解业务流程,建立更可靠、更完善的系统模型。从而使用户和开发人员对问题的描述达到相同的理解,以减少语义差异,保障分析的正确性.
3.1.2.系统的用例分析
该仓库管理系统的E-R图如下:
图3:仓库管理系统的E-R图
从用例图中我们可以看出使用者对本系统所具有的用例。包括:
(1) 商品入库。商品入库后入库量改变,总的数量+=入库量。
(2) 商品出库。商品出库后出库量改变,总的数量+=出库量。
(3) 查询商品。得到查询商品的名称、代码、生产商、生产日期、总数量、出库量、入库量、价格等。
(4) 修改商品。修改商品的名称、代码、生产商、生产日期、总数量、出库量、入库量或价格。可部分修改,可全部修改。按需求改变。
(5) 日盘点。对一天内各种商品的出库量、入库量进行一个总的盘点,以便做出明天的进货决定。
(6) 出入库排序。对商品的出入库进行排序,更加简单直观的发现哪种商品卖的好,那种商品要多进货。
(7) 退出系统。返回到主菜单页面。
3.1.3.系统的层次模块图
图4:库存管理系统层次模块图
3.2管理员录入出入库信息
3.3 用户录入出入库信息
3.4 管理员管理用户信息
3.5 管理员录入库存详细信息
3.6 数据文件设计
c2.c文件:系统主要代码
c2.o文件:对象文件
3.7 接口设计
3.7.1.用户接口
主界面
主菜单
商品入库
商品出库
查询商品
修改商品
日盘点
出库排序
退出系统
3.7.2.外部接口
无
3.7.3.内部接口
用户添加出入库信息接口:input、output(录入用户信息、商品信息、供货商信息、入库信息、出库信息、退货信息、 客户信息等信息)
用户查询商品信息接口:find_1、find_2、find_3、find(系统提供三种查询条件:活物编号、日期、指数)
管理员修改信息接口:change(修改商品信息、供货商信息、用户信息、客户信息等信息)
盘点商品信息接口:display(显示商品信息)
商品排序接口:shun、dao(依据出库顺序排序)
3.8体系结构设计
四、详细设计
库存管理系统是存储商品库存信息的一个平台,整个系统共分为7个模块:商品入库、商品出库、修改商品、查询商品、日盘点、出入库排序以及退出系统,详细的设计方法如下所述。
4.1 主要函数算法设计
Void save(); 创建text.txt,并对其添加内容
Void read(); 读取text.txt内容,将其赋给数组
Void input(); 添加商品入库信息
Void output(); 添加商品出库信息
Void find_1(); 通过名称查询商品信息
Void find_2(); 通过代码查询商品信息
Void find_3(); 通过生产商查询商品信息
Void find(); 查询商品信息
Void change(); 修改商品信息
Void display(); 商品信息的盘点
Void shun(); 商品出库按升序排序
Void dao(); 商品出库按降序排序
Void quit(); 退出系统
4.2系统商品入库流程图
4.3系统代码
只展示部分代码
#include<stdio.h> #include<string.h> #include<stdlib.h> #define N 80//最大容量限定 struct a { char name[10]; int numb; char boss[6]; int date; int count; int price; int chu; int ru; }goods[1]; struct a product[N]={{"ac",1,"AC",1,15,5,0,0},{"bd",2,"BD",2,10,20,0,0}}; int num=2; void read(){ FILE*fp; int i; system("cls"); fp=fopen("text.txt","r+"); if(fp==NULL){ printf("不能打开文件!\n"); exit(0); } i=0; while(!feof(fp)){ if(fread(&product[i],sizeof(struct a),1,fp)==1) i++; } num=i; fclose(fp); } void save(){//保存商品的信息 FILE*fp; int i; if((fp=fopen("text.txt","w"))==NULL){ printf("cannot open file"); return; } for(i=0;i<num;i++){ if(fwrite(&product[i],sizeof(struct a),1,fp)!=1) printf("file write error\n"); } syetem("cls");//清屏 //printf("商品已保存!\n"); //getch(); fclose(fp); }