Bootstrap

商品库存管理系统

1.概述

        该课设为商品库存管理系统,系统分为四大模块:商品出入库模块,商品查询系统模块,商品修改和删除系统模块以及主菜单模块。

要实现以上功能,首先要使程序能够实现出入库功能,然后需要定义结构体,用来记录商品的入库的信息等,接着对于信息的初始化程序,运用指针和文件的读入,更新和修改商品的出入库信息。

为了便于系统的调试测试,系统中的商品信息,等采用文件的形式保存,当运行程序时系统只需要从文件读取数据,就能运行程序。

2.针对商品库存管理系统

         通过运用结构体定义商品的名称,商品数量,商品单价等,如果要求有需要,可以适当的增加商品编码,商品的生产商,以便于商品的信息查询。

3.分析程序

        设计商品库存管理系统,首先我们要明确程序中可能遇到什么问题,怎样解决,而不是求助与人工智能。商品库存管理系统将要用到循环条件下的Switch()函数,结构体,数组,文件指针等,我们需要融汇贯通,才能在未来编写更加复杂的程序。

4.源代码

        仅供产考

#include <stdio.h>

#define MAX_PRODUCTS 100   // 最大商品数

// 商品结构体
typedef struct product {
    char name[20];        // 商品名称
    int quantity;         // 商品数量
    float price;          // 商品单价
} Product;

Product products[MAX_PRODUCTS];    // 商品数组
int num_products = 0;              // 商品数

// 添加商品
void add_product(Product p) {
    if(num_products >= MAX_PRODUCTS) {
        printf("Error: 商品种类已达上限\n");
        return;
    }
    products[num_products++] = p;
    printf("添加成功!\n");
}

// 列出所有商品
void list_products() {
    printf("商品名称\t\t数量\t单价\n");
    for(int i = 0; i < num_products; i++) {
        printf("%-20s\t%d\t%.2f\n", products[i].name, products[i].quantity, products[i].price);
    }
}

// 查询商品
void search_product(char name[]) {
    for(int i = 0; i < num_products; i++) {
        if(strcmp(products[i].name, name) == 0) {
            printf("商品名称\t\t数量\t单价\n");
            printf("%-20s\t%d\t%.2f\n", products[i].name, products[i].quantity, products[i].price);
            return;
        }
    }
    printf("Error: 商品不存在\n");
}

// 更新商品
void update_product(char name[], int quantity) {
    for(int i = 0; i < num_products; i++) {
        if(strcmp(products[i].name, name) == 0) {
            products[i].quantity += quantity;
            printf("更新成功!\n");
            return;
        }
    }
    printf("Error: 商品不存在\n");
}

// 删除商品
void delete_product(char name[]) {
    for(int i = 0; i < num_products; i++) {
        if(strcmp(products[i].name, name) == 0) {
            for(int j = i; j < num_products - 1; j++) {
                products[j] = products[j + 1];
            }
            num_products--;
            printf("删除成功!\n");
            return;
        }
    }
    printf("Error: 商品不存在\n");
}

int main() {
    int choice;
    Product p;
    char name[20];
    int quantity;

    while(1) {
        printf("\n商品库存管理系统\n");
        printf("1. 添加商品\n");
        printf("2. 列出所有商品\n");
        printf("3. 查询商品\n");
        printf("4. 更新商品数量\n");
        printf("5. 删除商品\n");
        printf("6. 退出\n");
        printf("请输入选项(1-6):");
        scanf("%d", &choice);

        switch(choice) {
            case 1:
                printf("请输入商品名称:");
                scanf("%s", p.name);
                printf("请输入商品数量:");
                scanf("%d", &p.quantity);
                printf("请输入商品单价:");
                scanf("%f", &p.price);
                add_product(p);
                break;
            case 2:
                list_products();
                break;
            case 3:
                printf("请输入要查询的商品名称:");
                scanf("%s", name);
                search_product(name);
                break;
            case 4:
                printf("请输入要更新的商品名称:");
                scanf("%s", name);
                printf("请输入要更新的商品数量(正数表示入库,负数表示出库):");
                scanf("%d", &quantity);
                update_product(name, quantity);
                break;
            case 5:
                printf("请输入要删除的商品名称:");
                scanf("%s", name);
                delete_product(name);
                break;
            case 6:
                printf("谢谢使用!\n");
                return 0;
            default:
                printf("Error: 无效选项\n");
                break;
        }
    }

    return 0;
}
 

;