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; }