用C语言写一个仓库货物管理系统
时间: 2024-09-13 07:13:41 浏览: 41
仓库货物管理系统(C语言)
5星 · 资源好评率100%
在C语言中,创建一个简单的仓库货物管理系统可以涉及到数据结构、文件操作以及基本的用户交互。这里是一个基础版本的例子,我们使用数组来模拟库存,并通过文本文件保存和读取数据:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义货物结构体
typedef struct {
char item[50];
int quantity;
} StockItem;
// 仓库函数原型
void add_item(StockItem *items, int *total_items);
void remove_item(StockItem *items, int total_items, char* item_name);
int check_item(StockItem *items, int total_items, char* item_name);
int main() {
// 初始化
int total_items = 0;
StockItem items[100]; // 假设最多有100件商品
// 打开文件(如果不存在则创建)
FILE* file = fopen("inventory.txt", "a+");
// 添加新物品
char input_item[50], response[3] = { '\0' };
while (response != 'n') {
printf("请输入要添加的物品名(输入'n'退出): ");
fgets(input_item, sizeof(input_item), stdin);
input_item[strcspn(input_item, "\n")] = '\0'; // 移除换行符
if (input_item[0] == 'n')
break;
add_item(items, &total_items);
fprintf(file, "%s %d\n", input_item, items[total_items - 1].quantity); // 写入文件
printf("已添加 '%s' (%d)。继续添加更多吗?\n", input_item, items[total_items - 1].quantity);
scanf("%s", response);
}
// 检查库存和移除物品
printf("\n查看库存或删除物品请输入相应序号:\n");
while (1) {
int choice;
printf("1. 查看所有物品\n2. 删除指定物品\n3. 退出\n");
scanf("%d", &choice);
switch (choice) {
case 1:
for (int i = 0; i < total_items; i++) {
printf("%d. %s (%d)\n", i + 1, items[i].item, items[i].quantity);
}
break;
case 2:
printf("请输入要删除的物品名或序号:");
scanf("%s", input_item);
remove_item(items, total_items, input_item);
break;
case 3:
fclose(file);
return 0;
default:
printf("无效选择,尝试再次。\n");
break;
}
}
}
// 添加物品函数
void add_item(StockItem *items, int *total_items) {
*total_items += 1;
strcpy(items[*total_items].item, "暂无");
items[*total_items].quantity = 0;
}
// 移除物品函数
void remove_item(StockItem *items, int total_items, char* item_name) {
for (int i = 0; i < total_items; i++) {
if (!strcmp(items[i].item, item_name)) {
if (items[i].quantity > 0)
items[i].quantity--;
else
printf("该物品已售罄,无法再移除。\n");
break;
}
}
}
// 检查库存函数
int check_item(StockItem *items, int total_items, char* item_name) {
for (int i = 0; i < total_items; i++) {
if (!strcmp(items[i].item, item_name))
return items[i].quantity;
}
return -1; // 如果未找到,返回-1
}
```
这个程序实现了添加、查看库存和移除库存的功能。注意这只是一个简化的示例,实际应用中可能会更复杂,包括错误处理、数据库操作等。
阅读全文