仓库管理系统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辅助函数来在内部查找物品索引。我们还实现了一个简单的文本菜单,允许用户通过选择编号来执行不同的操作