【软件工程】课程设计库存管理系统


一、课程设计概述

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);
}

猜你喜欢

转载自blog.csdn.net/weixin_48701521/article/details/123591528