项目描述
使用C语言开发的一个超市管理系统,下面使用了一个简单的菜单循环,可以让用户添加、删除、修改和查看商品库存。使用了结构体Item
来表示每个商品的信息,包括名称、价格和数量,并定义了一个数组store
来存储商品信息。
在添加、删除和修改商品时,程序需要从用户输入中获取商品名称、价格和数量。在删除和修改商品时,程序需要在仓库中找到相应的商品并进行相应的操作。在查看库存时,程序会列出所有商品的名称、价格和数量。
实现代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define STORE_SIZE 1000
typedef struct {
char name[50];
float price;
int quantity;
} Item;
int numItems = 0;
Item store[STORE_SIZE];
void menu() {
printf("\n请选择操作:\n");
printf("1. 添加商品\n");
printf("2. 删除商品\n");
printf("3. 修改商品\n");
printf("4. 查看库存\n");
printf("5. 退出\n");
printf("> ");
}
void addItem() {
if (numItems >= STORE_SIZE) {
printf("仓库已满,无法添加商品。\n");
return;
}
Item newItem;
printf("请输入商品名称:");
scanf("%s", newItem.name);
printf("请输入商品价格:");
scanf("%f", &newItem.price);
printf("请输入商品数量:");
scanf("%d", &newItem.quantity);
store[numItems++] = newItem;
}
void deleteItem() {
if (numItems == 0) {
printf("仓库为空,无法删除商品。\n");
return;
}
char name[50];
printf("请输入要删除的商品名称:");
scanf("%s", name);
int found = 0;
for (int i = 0; i < numItems; i++) {
if (strcmp(store[i].name, name) == 0) {
found = 1;
for (int j = i + 1; j < numItems; j++) {
store[j - 1] = store[j];
}
numItems--;
printf("商品 %s 删除成功。\n", name);
break;
}
}
if (!found) {
printf("未找到商品 %s。\n", name);
}
}
void modifyItem() {
if (numItems == 0) {
printf("仓库为空,无法修改商品。\n");
return;
}
char name[50];
printf("请输入要修改的商品名称:");
scanf("%s", name);
int found = 0;
for (int i = 0; i < numItems; i++) {
if (strcmp(store[i].name, name) == 0) {
found = 1;
printf("请输入新的价格:");
scanf("%f", &store[i].price);
printf("请输入新的数量:");
scanf("%d", &store[i].quantity);
printf("商品 %s 修改成功。\n", name);
break;
}
}
if (!found) {
printf("未找到商品 %s。\n", name);
}
}
void viewStock() {
if (numItems == 0) {
printf("仓库为空。\n");
return;
}
printf("\n当前库存:\n");
printf(" %-20s %-10s %-10s\n", "名称", "价格", "数量");
for (int i = 0; i < numItems; i++) {
printf("%d. %-20s %-10.2f %-10d\n", i + 1, store[i].name, store[i].price, store[i].quantity);
}
}
int main() {
int choice;
while (1) {
menu();
scanf("%d", &choice);
switch (choice) {
case 1:
addItem();
break;
case 2:
deleteItem();
break;
case 3:
modifyItem();
break;
case 4:
viewStock();
break;
case 5:
printf("谢谢使用超市管理系统。\n");
exit(0);
default:
printf("无效的操作,请重新选择。\n");
}
}
return 0;
}
运行截图
© 版权声明
本站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!
THE END