生成上述c语言代码
时间: 2023-08-01 19:10:26 浏览: 84
c语言代码!
以下是一个简单的C语言代码示例,实现了清除库存信息和修改物资库存信息的功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_ITEMS 100
struct item {
char name[50];
int quantity;
char purchaser[50];
};
struct item items[MAX_ITEMS];
int num_items = 0;
void clear_stock(char *item_name) {
int i;
for(i = 0; i < num_items; i++) {
if(strcmp(items[i].name, item_name) == 0) {
if(items[i].quantity == 0) {
// Remove item from stock
int j;
for(j = i; j < num_items-1; j++) {
items[j] = items[j+1];
}
num_items--;
printf("%s has been removed from stock.\n", item_name);
return;
}
else {
printf("%s still has stock.\n", item_name);
return;
}
}
}
printf("%s is not in stock.\n", item_name);
}
void update_stock(char *item_name, int quantity, char *purchaser) {
int i;
for(i = 0; i < num_items; i++) {
if(strcmp(items[i].name, item_name) == 0) {
if(strcmp(items[i].purchaser, purchaser) == 0) {
// Add quantity to existing stock
items[i].quantity += quantity;
printf("%d %s has been added to %s's stock.\n", quantity, item_name, purchaser);
return;
}
}
}
// Add new item to stock
struct item new_item;
strcpy(new_item.name, item_name);
new_item.quantity = quantity;
strcpy(new_item.purchaser, purchaser);
items[num_items] = new_item;
num_items++;
printf("%d %s has been added to stock for %s.\n", quantity, item_name, purchaser);
}
int main() {
// Example usage
update_stock("pen", 10, "John");
update_stock("pen", 5, "Mary");
update_stock("pencil", 3, "John");
clear_stock("pencil");
clear_stock("pen");
clear_stock("eraser");
return 0;
}
```
上述代码中,使用了一个结构体`item`来保存物资信息,包括名称、数量和采购人。使用数组`items`保存所有物资的信息,其中`num_items`表示当前库存中的物资数量。`clear_stock`函数实现了清除库存信息的功能,接受一个物资名称为参数,遍历`items`数组查找该物资,如果找到,就判断其数量是否为0,如果是,则从`items`数组中删除该物资;否则,提示该物资还有库存。`update_stock`函数实现了修改物资库存信息的功能,接受物资名称、数量和采购人为参数,遍历`items`数组查找该物资,如果找到,就判断采购人是否相同,如果是,则将数量加上给定的值;否则,添加一条新的物资信息到`items`数组中。在`main`函数中,演示了如何使用这两个函数来管理物资库存信息。
阅读全文