1、定义商品
定义了一个Product
结构体,用于存储商品的名称和数量。使用一个固定大小的数组来存储所有商品信息。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_ITEMS 100
#define NAME_LENGTH 50
typedef struct {
int id;
char name[NAME_LENGTH];
int quantity;
double price;
} Product;
2、添加商品
addProduct
函数用于向库存中添加新商品。首先检查库存是否已满,然后从用户输入获取商品名称和数量,并将其添加到items
数组中。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_ITEMS 100
#define NAME_LENGTH 50
typedef struct {
int id;
char name[NAME_LENGTH];
int quantity;
double price;
} Product;
void addProduct(Product items[], int *itemCount) {
if (*itemCount >= MAX_ITEMS) {
printf("库存已满,无法添加更多商品。\n");
return;
}
Product *item = &items[*itemCount];
printf("请输入商品ID: ");
scanf("%d", &item->id);
printf("请输入商品名称: ");
scanf("%s", item->name);
printf("请输入商品数量: ");
scanf("%d", &item->quantity);
printf("请输入商品价格: ");
scanf("%lf", &item->price);
(*itemCount)++;
printf("商品已成功添加!\n");
}
int main() {
printf("Hello, World!");
return 0;
}
3、删除商品
deleteProduct
函数用于从库存中删除指定名称的商品。通过遍历items
数组找到匹配的商品,并将其从数组中移除。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_ITEMS 100
#define NAME_LENGTH 50
typedef struct {
int id;
char name[NAME_LENGTH];
int quantity;
double price;
} Product;
void deleteProduct(Product items[], int *itemCount) {
int id;
printf("请输入要删除的商品ID: ");
scanf("%d", &id);
for (int i = 0; i < *itemCount; i++) {
if (items[i].id == id) {
// 将后续的商品信息向前移动覆盖删除的商品
for (int j = i; j < *itemCount - 1; j++) {
items[j] = items[j + 1];
}
(*itemCount)--;
printf("商品已删除。\n");
return;
}
}
printf("未找到ID为 %d 的商品。\n", id);
}
int main() {
printf("Hello, World!");
return 0;
}
4、更新商品
从用户输入获取要更新的商品名称。遍历库存查找该商品,找到后显示其当前数量,并允许用户输入新的数量。如果未找到商品,提示用户。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_ITEMS 100
#define NAME_LENGTH 50
typedef struct {
int id;
char name[NAME_LENGTH];
int quantity;
double price;
} Product;
void updateProduct(Product items[], int itemCount) {
int id;
printf("请输入要更新的商品ID: ");
scanf("%d", &id);
for (int i = 0; i < itemCount; i++) {
if (items[i].id == id) {
printf("请输入新的商品数量: ");
scanf("%d", &items[i].quantity);
printf("请输入新的商品价格: ");
scanf("%lf", &items[i].price);
printf("商品信息已更新!\n");
return;
}
}
printf("未找到ID为 %d 的商品。\n", id);
}
int main() {
printf("Hello, World!");
return 0;
}
5、显示所有商品
函数 displayProduct
用于显示库存中的所有商品信息。该函数遍历所有商品,并打印出商品的ID、名称、数量和价格。如果库存中没有商品,函数会输出相应的提示信息。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_ITEMS 100
#define NAME_LENGTH 50
typedef struct {
int id;
char name[NAME_LENGTH];
int quantity;
double price;
} Product;
void displayProduct(Product items[], int itemCount) {
if (itemCount == 0) {
printf("库存中没有商品。\n");
return;
}
printf("\n库存中的商品:\n");
for (int i = 0; i < itemCount; i++) {
printf("商品ID: %d\n", items[i].id);
printf("商品名称: %s\n", items[i].name);
printf("商品数量: %d\n", items[i].quantity);
printf("商品价格: %.2f\n", items[i].price);
printf("----------------------------\n");
}
}
int main() {
printf("Hello, World!");
return 0;
}
6、完整代码
一个简易的库存管理系统,可以根据自己的需求进行扩展和完善。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_ITEMS 100
#define NAME_LENGTH 50
typedef struct {
int id;
char name[NAME_LENGTH];
int quantity;
double price;
} Product;
void addProduct(Product items[], int *itemCount) {
if (*itemCount >= MAX_ITEMS) {
printf("库存已满,无法添加更多商品。\n");
return;
}
Product *item = &items[*itemCount];
printf("请输入商品ID: ");
scanf("%d", &item->id);
printf("请输入商品名称: ");
scanf("%s", item->name);
printf("请输入商品数量: ");
scanf("%d", &item->quantity);
printf("请输入商品价格: ");
scanf("%lf", &item->price);
(*itemCount)++;
printf("商品已成功添加!\n");
}
void updateProduct(Product items[], int itemCount) {
int id;
printf("请输入要更新的商品ID: ");
scanf("%d", &id);
for (int i = 0; i < itemCount; i++) {
if (items[i].id == id) {
printf("请输入新的商品数量: ");
scanf("%d", &items[i].quantity);
printf("请输入新的商品价格: ");
scanf("%lf", &items[i].price);
printf("商品信息已更新!\n");
return;
}
}
printf("未找到ID为 %d 的商品。\n", id);
}
void displayProduct(Product items[], int itemCount) {
if (itemCount == 0) {
printf("库存中没有商品。\n");
return;
}
printf("\n库存中的商品:\n");
for (int i = 0; i < itemCount; i++) {
printf("商品ID: %d\n", items[i].id);
printf("商品名称: %s\n", items[i].name);
printf("商品数量: %d\n", items[i].quantity);
printf("商品价格: %.2f\n", items[i].price);
printf("----------------------------\n");
}
}
void deleteProduct(Product items[], int *itemCount) {
int id;
printf("请输入要删除的商品ID: ");
scanf("%d", &id);
for (int i = 0; i < *itemCount; i++) {
if (items[i].id == id) {
// 将后续的商品信息向前移动覆盖删除的商品
for (int j = i; j < *itemCount - 1; j++) {
items[j] = items[j + 1];
}
(*itemCount)--;
printf("商品已删除。\n");
return;
}
}
printf("未找到ID为 %d 的商品。\n", id);
}
int main() {
Product items[MAX_ITEMS];
int itemCount = 0;
int choice;
while (1) {
printf("\n库存管理系统菜单:\n");
printf("1. 添加商品\n");
printf("2. 更新商品\n");
printf("3. 查看库存\n");
printf("4. 删除商品\n");
printf("5. 退出\n");
printf("请选择操作: ");
scanf("%d", &choice);
switch (choice) {
case 1:
addProduct(items, &itemCount);
break;
case 2:
updateProduct(items, itemCount);
break;
case 3:
displayProduct(items, itemCount);
break;
case 4:
deleteProduct(items, &itemCount);
break;
case 5:
printf("退出系统。\n");
exit(0);
default:
printf("无效的选择,请重试。\n");
}
}
return 0;
}