商品库存管理系统(c语言)

您所在的位置:网站首页 商品入库的基本要求 商品库存管理系统(c语言)

商品库存管理系统(c语言)

2024-07-14 01:41| 来源: 网络整理| 查看: 265

c语言商品库存管理系统 一、项目背景二、设计目的三、项目功能需求1、商品入库2、商品出库3、删除商品信息4、修改商品信息5、查询商品信息 四、系统的功能结构图五、功能模块介绍1、商品入库模块2、商品出库模块3、删除商品模块4、修改商品模块5、查询商品模块6、显示商品模块 六、详细设计1、主函数2、商品入库模块3、商品出库模块4、删除商品模块5、修改商品模块6、查询商品模块7、显示商品模块 七、代码

一、项目背景

​ 为了解决商品库存信息在日常生活中易于丢失、遗忘,不易保存和管理的问题,我们设计商品库存管理系统,来帮助商家方便地对商品信息进行增加、删除、修改等日常维护,并且能进行商品信息的查询,从而能更全面直观地了解到商品库存信息。

二、设计目的 如何实现菜单的显示、选择和响应等功能如何将信息保存到指定的磁盘文件中,并通过操作文件指针和调用文件相关函数来实现对文件的读写操作如何使用结构体封装商品属性信息如何利用结构体数组记录多个商品信息如何通过C语言实现基本的增、删、改、查等信息管理功能 三、项目功能需求 1、商品入库

能够录入商品编号、名称、数量、价格、生产日期、供货商等信息,并支持连续输入多个商品信息

2、商品出库

根据用户输入要进行出库操作的商品编号,如果存在该商品,则可以输入要出库的商品数量,实现出库操作

3、删除商品信息

根据用户输入要进行删除的商品编号,如果找到该商品,则将该编号所对应的商品名称等各项信息均删除

4、修改商品信息

根据用户输入的商品编号找到该商品,若该商品存在,则可以修改商品的各项信息

5、查询商品信息

可以显示所有商品的信息,也可以输入商品编号,查询某一个商品的信息

四、系统的功能结构图

在这里插入图片描述

五、功能模块介绍 1、商品入库模块 自动显示系统中已有的商品信息,如果还没有商品,显示没有记录。提示用户是否需要入库用户输入需要入库的商品编号,系统自动判断该商品是否已经存在,若存在则无法入库;若不存在,则提示用户输入商品的相关信息一条商品的所有信息均输入完成之后,系统还会询问是否继续进行其他商品的入库操作 2、商品出库模块 自动显示系统中已有的商品信息,并提示用户输入需要出库的商品编号系统自动判断该商品是否已经存在,若存在则提示用户输入出库的数量;若不存在,则提示用户找不到该商品,无法进行出库操作 3、删除商品模块 自动显示系统中已有的商品信息,并提示用户输入需要删除的商品编号系统自动判断该商品是否已经存在,若存在则提示用户是否删除该商品;若不存在则提示无法找到该商品 4、修改商品模块 自动显示系统中已有的商品信息,并提示用户输入需要修改的商品编号系统自动判断该商品是否已经存在,若存在则提示用户输入新的商品信息;若不存在则提示无法找到该商品 5、查询商品模块 通过用户输入的商品编号来查找商品,若存在则提示用户是否显示商品所有信息,若不存在则提示无法找到该商品 6、显示商品模块 负责将所有商品的信息列表显示出来 六、详细设计 1、主函数

主函数运行后,首先调用菜单响应函数ShowMenu实现菜单的显示。

程序流程图如下所示。

在这里插入图片描述

2、商品入库模块

函数功能设计

在主菜单的界面中输入“1”,即可进入商品入库模块。首先展示系统中的商品信息,并提示用户是否录入,用户输入字符y或者字符Y,则可以进行数据录入。首先录入商品编号,如果输入的商品编号已经存在,系统会提示用户该商品已经存在;若商品是第一次入库,用户则需陆续输入商品的名称、生产商、生产日期、价格和数量信息。 3、商品出库模块

函数功能设计

在主菜单的界面中输入“2”,即可进入商品出库模块。首先也展示系统中所有商品信息,并提示用户输入要出库的商品编号。一旦商品编号确实是系统中已有的商品编号,则可以对该商品的数量进行修改。用户可以输入要出库的商品数量,如果用户输入的数量比商品的实际库存还要大,则自动将商品库存变成0。最后显示出库操作后所有商品的信息列表。 4、删除商品模块

函数功能设计

在主菜单的界面中输入“3”,即可进入删除商品模块。同样先显示所有商品信息,若文件不存在或者没有记录,则不能进行删除操作。程序提示用户输入要删除的商品编号,系统会自动将该编号对应的商品条目彻底从文件中删除,最后会显示删除后的商品信息列表。 5、修改商品模块

函数功能设计

在主菜单的界面中输入“4”,即可进入修改商品模块。和商品出库模块的不同之处在于,商品出库仅修改商品库存量,而修改商品模块可以修改商品信息的各个字段的数据。程序提示用户输入要修改的商品编号,如果此编号的商品存在,系统会自动提示用户输入要修改的各项商品信息。最后显示修改后的所有商品信息。 6、查询商品模块

函数功能设计

在主菜单的界面中输入“5”,即可进入查询商品模块。查询时根据用户输入的商品编号进行查询,若查询的商品存在,则会提示用户找到该商品,是否查看详细信息显示。用户选择是,则显示商品的各种信息。如果查不到该商品,则提示用户找不到商品信息。 7、显示商品模块

函数功能设计

在主菜单的界面中输入“6”,即可显示所有商品信息。通过列表的方式,显示商品的各个属性,以及每一条商品记录。 七、代码 /*商品库存管理系统*/ #include #include /*getch()函数用到的头文件*/ #include /*system(cls)函数用到的头文件*/ #define PRODUCT_LEN sizeof(struct Product) #define FORMAT "%-8d%-15s%-15s%-15s%-12.1lf%-8d\n" #define DATA astPro[i].iId,astPro[i].acName,astPro[i].acProducer,astPro[i].acDate,astPro[i].dPrice,astPro[i].iAmount struct Product /*定义商品结构体*/ { int iId; /*商品代码*/ char acName[15]; /*商品名称*/ char acProducer[15]; /*商品生产商*/ char acDate[15]; /*商品生产日期*/ double dPrice; /*商品价格*/ int iAmount; /*商品数量*/ }; struct Product astPro[100]; /*定义结构体数组*/ /*******************************************************************************/ void ShowMenu(); /*显示主菜单*/ void InputProduct(); /*商品入库*/ void OutputProduct(); /*商品出库*/ void DeleteProduct(); /*删除商品*/ void ModifyProduct(); /*修改商品*/ void SearchProduct(); /*商品查询*/ int ShowProduct(); /*显示商品*/ /*******************************************************************************/ void main() /*主函数*/ { int iItem; ShowMenu(); scanf("%d", &iItem); /*输入菜单项*/ while (iItem) { switch (iItem) { case 1:InputProduct(); break; /*商品入库*/ case 2:OutputProduct(); break; /*商品出库*/ case 3:DeleteProduct(); break; /*删除商品*/ case 4:ModifyProduct(); break; /*修改商品*/ case 5:SearchProduct(); break; /*搜索商品*/ case 6:ShowProduct(); break; /*显示商品*/ default:printf("input wrong number"); /*错误输入*/ } getch(); /*读取键盘输入的任意字符*/ ShowMenu(); /*执行完功能再次显示菜单功能*/ scanf("%d", &iItem); /*输入菜单项*/ } } /*******************************************************************************/ void ShowMenu() /*自定义函数实现菜单功能*/ { system("cls"); printf("\n\n\n\n\n"); printf("\t\t|---------------------PRODUCT-------------------|\n"); printf("\t\t|\t 1. input record |\n"); printf("\t\t|\t 2. output record |\n"); printf("\t\t|\t 3. delete record |\n"); printf("\t\t|\t 4. modify record |\n"); printf("\t\t|\t 5. search record |\n"); printf("\t\t|\t 6. show record |\n"); printf("\t\t|\t 0. exit |\n"); printf("\t\t|-----------------------------------------------|\n\n"); printf("\t\t\tchoose(0-6):"); } /*******************************************************************************/ void InputProduct() /*商品入库函数*/ { int i, iMax = 0; /*iMax记录文件中的商品记录条数*/ char cDecide; /*存储用户输入的是否入库的判断字符*/ FILE *fp; /*定义文件指针*/ iMax = ShowProduct(); if ((fp = fopen("product.txt", "ab")) == NULL) /*追加方式打开一个二进制文件*/ { printf("can not open file\n"); /*提示无法打开文件*/ return; } printf("press y/Y to input:"); getchar(); /*把选择1之后输入的回车符取走*/ cDecide = getchar(); /*读一个字符*/ while (cDecide == 'y' || cDecide == 'Y') /*判断是否要录入新信息*/ { printf("Id:"); /*输入商品编号*/ scanf("%d", &astPro[iMax].iId); for (i = 0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3