C语言编程题,代码实现了一个简易的库存管理系统,具备添加商品、删除商品、查询商品库存以及显示所有商品库存的功能。代码结构清晰,功能模块化,易于理解和扩展。

1、定义商品

定义了一个Product结构体,用于存储商品的名称和数量。使用一个固定大小的数组来存储所有商品信息。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_ITEMS 100
#define NAME_LENGTH 50

typedef struct {
    int id;
    char name[NAME_LENGTH];
    int quantity;
    double price;
} Product;

2、添加商品

addProduct函数用于向库存中添加新商品。首先检查库存是否已满,然后从用户输入获取商品名称和数量,并将其添加到items数组中。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_ITEMS 100
#define NAME_LENGTH 50

typedef struct {
    int id;
    char name[NAME_LENGTH];
    int quantity;
    double price;
} Product;

void addProduct(Product items[], int *itemCount) {
    if (*itemCount >= MAX_ITEMS) {
        printf("库存已满,无法添加更多商品。\n");
        return;
    }

    Product *item = &items[*itemCount];

    printf("请输入商品ID: ");
    scanf("%d", &item->id);

    printf("请输入商品名称: ");
    scanf("%s", item->name);

    printf("请输入商品数量: ");
    scanf("%d", &item->quantity);

    printf("请输入商品价格: ");
    scanf("%lf", &item->price);

    (*itemCount)++;
    printf("商品已成功添加!\n");
}

int main() {
  printf("Hello, World!");
  return 0;
}

3、删除商品

deleteProduct函数用于从库存中删除指定名称的商品。通过遍历items数组找到匹配的商品,并将其从数组中移除。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_ITEMS 100
#define NAME_LENGTH 50

typedef struct {
    int id;
    char name[NAME_LENGTH];
    int quantity;
    double price;
} Product;

void deleteProduct(Product items[], int *itemCount) {
    int id;
    printf("请输入要删除的商品ID: ");
    scanf("%d", &id);

    for (int i = 0; i < *itemCount; i++) {
        if (items[i].id == id) {
            // 将后续的商品信息向前移动覆盖删除的商品
            for (int j = i; j < *itemCount - 1; j++) {
                items[j] = items[j + 1];
            }
            (*itemCount)--;
            printf("商品已删除。\n");
            return;
        }
    }

    printf("未找到ID为 %d 的商品。\n", id);
}

int main() {
  printf("Hello, World!");
  return 0;
}

4、更新商品

从用户输入获取要更新的商品名称。遍历库存查找该商品,找到后显示其当前数量,并允许用户输入新的数量。如果未找到商品,提示用户。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_ITEMS 100
#define NAME_LENGTH 50

typedef struct {
    int id;
    char name[NAME_LENGTH];
    int quantity;
    double price;
} Product;

void updateProduct(Product items[], int itemCount) {
    int id;
    printf("请输入要更新的商品ID: ");
    scanf("%d", &id);

    for (int i = 0; i < itemCount; i++) {
        if (items[i].id == id) {
            printf("请输入新的商品数量: ");
            scanf("%d", &items[i].quantity);
            printf("请输入新的商品价格: ");
            scanf("%lf", &items[i].price);
            printf("商品信息已更新!\n");
            return;
        }
    }

    printf("未找到ID为 %d 的商品。\n", id);
}


int main() {
  printf("Hello, World!");
  return 0;
}

5、显示所有商品

函数 displayProduct用于显示库存中的所有商品信息。该函数遍历所有商品,并打印出商品的ID、名称、数量和价格。如果库存中没有商品,函数会输出相应的提示信息。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_ITEMS 100
#define NAME_LENGTH 50

typedef struct {
    int id;
    char name[NAME_LENGTH];
    int quantity;
    double price;
} Product;

void displayProduct(Product items[], int itemCount) {
    if (itemCount == 0) {
        printf("库存中没有商品。\n");
        return;
    }

    printf("\n库存中的商品:\n");
    for (int i = 0; i < itemCount; i++) {
        printf("商品ID: %d\n", items[i].id);
        printf("商品名称: %s\n", items[i].name);
        printf("商品数量: %d\n", items[i].quantity);
        printf("商品价格: %.2f\n", items[i].price);
        printf("----------------------------\n");
    }
}

int main() {
  printf("Hello, World!");
  return 0;
}

6、完整代码

一个简易的库存管理系统,可以根据自己的需求进行扩展和完善。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_ITEMS 100
#define NAME_LENGTH 50

typedef struct {
    int id;
    char name[NAME_LENGTH];
    int quantity;
    double price;
} Product;

void addProduct(Product items[], int *itemCount) {
    if (*itemCount >= MAX_ITEMS) {
        printf("库存已满,无法添加更多商品。\n");
        return;
    }

    Product *item = &items[*itemCount];

    printf("请输入商品ID: ");
    scanf("%d", &item->id);

    printf("请输入商品名称: ");
    scanf("%s", item->name);

    printf("请输入商品数量: ");
    scanf("%d", &item->quantity);

    printf("请输入商品价格: ");
    scanf("%lf", &item->price);

    (*itemCount)++;
    printf("商品已成功添加!\n");
}

void updateProduct(Product items[], int itemCount) {
    int id;
    printf("请输入要更新的商品ID: ");
    scanf("%d", &id);

    for (int i = 0; i < itemCount; i++) {
        if (items[i].id == id) {
            printf("请输入新的商品数量: ");
            scanf("%d", &items[i].quantity);
            printf("请输入新的商品价格: ");
            scanf("%lf", &items[i].price);
            printf("商品信息已更新!\n");
            return;
        }
    }

    printf("未找到ID为 %d 的商品。\n", id);
}

void displayProduct(Product items[], int itemCount) {
    if (itemCount == 0) {
        printf("库存中没有商品。\n");
        return;
    }

    printf("\n库存中的商品:\n");
    for (int i = 0; i < itemCount; i++) {
        printf("商品ID: %d\n", items[i].id);
        printf("商品名称: %s\n", items[i].name);
        printf("商品数量: %d\n", items[i].quantity);
        printf("商品价格: %.2f\n", items[i].price);
        printf("----------------------------\n");
    }
}

void deleteProduct(Product items[], int *itemCount) {
    int id;
    printf("请输入要删除的商品ID: ");
    scanf("%d", &id);

    for (int i = 0; i < *itemCount; i++) {
        if (items[i].id == id) {
            // 将后续的商品信息向前移动覆盖删除的商品
            for (int j = i; j < *itemCount - 1; j++) {
                items[j] = items[j + 1];
            }
            (*itemCount)--;
            printf("商品已删除。\n");
            return;
        }
    }

    printf("未找到ID为 %d 的商品。\n", id);
}

int main() {
    Product items[MAX_ITEMS];
    int itemCount = 0;
    int choice;

    while (1) {
        printf("\n库存管理系统菜单:\n");
        printf("1. 添加商品\n");
        printf("2. 更新商品\n");
        printf("3. 查看库存\n");
        printf("4. 删除商品\n");
        printf("5. 退出\n");
        printf("请选择操作: ");
        scanf("%d", &choice);

        switch (choice) {
            case 1:
                addProduct(items, &itemCount);
                break;
            case 2:
                updateProduct(items, itemCount);
                break;
            case 3:
                displayProduct(items, itemCount);
                break;
            case 4:
                deleteProduct(items, &itemCount);
                break;
            case 5:
                printf("退出系统。\n");
                exit(0);
            default:
                printf("无效的选择,请重试。\n");
        }
    }

    return 0;
}

推荐文档

相关文档

大家感兴趣的内容

随机列表