仓库管理系统c语言代码
以下是一个简单的仓库管理系统的C语言代码示例。此示例仅包含基本的添加、查找和删除物品的功能,你可以根据需要进行扩展。
注意:这只是一个非常基础的例子,实际的仓库管理系统可能需要考虑更多因素,比如错误处理、并发控制、数据持久化等。
c复制代码#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_ITEMS 100 typedef struct { char name[50]; int quantity; } Item; Item inventory[MAX_ITEMS]; int itemCount = 0; void addItem(char *name, int quantity) { if (itemCount >= MAX_ITEMS) { printf("仓库已满,无法添加新物品。\n"); return; } strcpy(inventory[itemCount].name, name); inventory[itemCount].quantity = quantity; itemCount++; printf("物品 %s 已添加,数量:%d\n", name, quantity); } void removeItem(char *name) { int i; for (i = 0; i < itemCount; i++) { if (strcmp(inventory[i].name, name) == 0) { inventory[i].quantity = 0; printf("物品 %s 已移除。\n", name); return; } } printf("未找到物品 %s。\n", name); } void findItem(char *name) { int i; for (i = 0; i < itemCount; i++) { if (strcmp(inventory[i].name, name) == 0) { printf("找到物品 %s,数量:%d\n", name, inventory[i].quantity); return; } } printf("未找到物品 %s。\n", name); } int main() { addItem("苹果", 10); addItem("香蕉", 5); findItem("苹果"); removeItem("香蕉"); findItem("香蕉"); return 0; }
在这个示例中,我们定义了一个Item结构体来存储物品的名称和数量。我们使用一个Item类型的数组inventory来存储仓库中的所有物品,并使用itemCount变量来跟踪当前仓库中物品的数量。
addItem函数用于向仓库中添加新物品,removeItem函数用于从仓库中删除物品,findItem函数用于查找仓库中的物品。在main函数中,我们演示了如何使用这些函数来管理仓库。
为了完善仓库管理系统,我们可以添加更多功能,比如显示所有物品、更新物品数量以及一个简单的菜单来让用户选择操作。下面是一个更完整的仓库管理系统C语言代码示例:
c复制代码#include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdbool.h> #define MAX_ITEMS 100 typedef struct { char name[50]; int quantity; } Item; Item inventory[MAX_ITEMS]; int itemCount = 0; void addItem(char *name, int quantity) { if (itemCount >= MAX_ITEMS) { printf("仓库已满,无法添加新物品。\n"); return; } strcpy(inventory[itemCount].name, name); inventory[itemCount].quantity = quantity; itemCount++; printf("物品 %s 已添加,数量:%d\n", name, quantity); } void removeItem(char *name) { for (int i = 0; i < itemCount; i++) { if (strcmp(inventory[i].name, name) == 0) { inventory[i].quantity = 0; printf("物品 %s 已移除。\n", name); return; } } printf("未找到物品 %s。\n", name); } void updateItemQuantity(char *name, int quantity) { for (int i = 0; i < itemCount; i++) { if (strcmp(inventory[i].name, name) == 0) { inventory[i].quantity = quantity; printf("物品 %s 的数量已更新为:%d\n", name, quantity); return; } } printf("未找到物品 %s。\n", name); } void showAllItems() { if (itemCount == 0) { printf("仓库为空。\n"); return; } printf("仓库中的物品:\n"); for (int i = 0; i < itemCount; i++) { printf("%s - 数量:%d\n", inventory[i].name, inventory[i].quantity); } } int findItemIndex(char *name) { for (int i = 0; i < itemCount; i++) { if (strcmp(inventory[i].name, name) == 0) { return i; } } return -1; } void displayMenu() { printf("\n仓库管理系统菜单\n"); printf("1. 添加物品\n"); printf("2. 移除物品\n"); printf("3. 更新物品数量\n"); printf("4. 显示所有物品\n"); printf("5. 退出\n"); printf("请选择操作:"); } int main() { int choice; char itemName[50]; int itemQuantity; do { displayMenu(); scanf("%d", &choice); switch (choice) { case 1: printf("请输入物品名称:"); scanf("%s", itemName); printf("请输入物品数量:"); scanf("%d", &itemQuantity); addItem(itemName, itemQuantity); break; case 2: printf("请输入要移除的物品名称:"); scanf("%s", itemName); removeItem(itemName); break; case 3: printf("请输入要更新的物品名称:"); scanf("%s", itemName); printf("请输入新的数量:"); scanf("%d", &itemQuantity); updateItemQuantity(itemName, itemQuantity); break; case 4: showAllItems(); break; case 5: printf("退出仓库管理系统。\n"); break; default: printf("无效的选择,请重新选择。\n"); } } while (choice != 5); return 0; }
在这个扩展后的示例中,我们添加了updateItemQuantity函数来更新物品的数量,showAllItems函数来显示所有物品,以及一个findItemIndex辅助函数来在内部查找物品索引。我们还实现了一个简单的文本菜单,允许用户通过选择编号来执行不同的操作