C语言写 仓库信息删除:具体功能如下 能根据产品编号,入库日期删除该条入库记录 能根据仓库编号删除该仓库下所有产品的出入库信息
时间: 2024-05-31 19:07:36 浏览: 109
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_PRODUCTS 1000 // 最大产品数量
#define MAX_WAREHOUSES 100 // 最大仓库数量
struct product {
char id[20]; // 产品编号
char name[50]; // 产品名称
int count; // 数量
char date[20]; // 入库日期
char warehouse_id[20]; // 仓库编号
};
struct warehouse {
char id[20]; // 仓库编号
char name[50]; // 仓库名称
struct product products[MAX_PRODUCTS]; // 仓库内产品列表
int product_count; // 产品数量
};
struct warehouse warehouses[MAX_WAREHOUSES]; // 所有仓库列表
int warehouse_count = 0; // 仓库数量
// 根据产品编号和入库日期删除该条入库记录
void delete_product(char* product_id, char* date) {
int i, j, k;
for (i = 0; i < warehouse_count; i++) {
for (j = 0; j < warehouses[i].product_count; j++) {
if (strcmp(warehouses[i].products[j].id, product_id) == 0
&& strcmp(warehouses[i].products[j].date, date) == 0) {
// 找到要删除的产品
for (k = j; k < warehouses[i].product_count - 1; k++) {
// 把后面的产品往前移动
warehouses[i].products[k] = warehouses[i].products[k+1];
}
warehouses[i].product_count--; // 产品数量减少
printf("成功删除产品 %s 的入库记录\n", product_id);
return;
}
}
}
printf("未找到产品 %s 的入库记录\n", product_id);
}
// 根据仓库编号删除该仓库下所有产品的出入库信息
void delete_warehouse(char* warehouse_id) {
int i, j;
for (i = 0; i < warehouse_count; i++) {
if (strcmp(warehouses[i].id, warehouse_id) == 0) {
// 找到要删除的仓库
for (j = 0; j < warehouses[i].product_count; j++) {
// 删除所有产品的出入库信息
warehouses[i].products[j].count = 0;
warehouses[i].products[j].date[0] = '\0';
}
printf("成功删除仓库 %s 下所有产品的出入库信息\n", warehouse_id);
return;
}
}
printf("未找到仓库 %s\n", warehouse_id);
}
int main() {
// 初始化仓库列表
strcpy(warehouses[0].id, "001");
strcpy(warehouses[0].name, "北京仓库");
warehouses[0].product_count = 2;
strcpy(warehouses[0].products[0].id, "001");
strcpy(warehouses[0].products[0].name, "商品1");
warehouses[0].products[0].count = 100;
strcpy(warehouses[0].products[0].date, "2021-01-01");
strcpy(warehouses[0].products[1].id, "002");
strcpy(warehouses[0].products[1].name, "商品2");
warehouses[0].products[1].count = 200;
strcpy(warehouses[0].products[1].date, "2021-01-02");
warehouse_count = 1;
delete_product("001", "2021-01-01"); // 删除北京仓库中商品1的入库记录
delete_product("003", "2021-01-01"); // 未找到产品003的入库记录
delete_warehouse("001"); // 删除北京仓库下所有产品的出入库信息
delete_warehouse("002"); // 未找到仓库002
return 0;
}
阅读全文