在我国的传统节日中秋节,月饼作为节日的象征,销量激增。因此,对于月饼生产商和销售商来说,一个高效的库存管理系统至关重要。本文将为您详细解析如何使用C语言轻松实现一个简单的月饼库存管理系统。
1. 系统需求分析
在开始编写代码之前,我们需要明确系统的需求。一个基本的月饼库存管理系统应具备以下功能:
- 数据录入:录入月饼的名称、规格、数量、价格等信息。
- 数据查询:根据不同的条件查询库存信息。
- 数据修改:修改库存信息,如更新数量、价格等。
- 数据删除:删除过期的或不再销售的月饼信息。
- 数据统计:统计库存总量、销售额等。
2. 数据结构设计
为了存储月饼信息,我们可以定义一个结构体Mooncake,包含以下字段:
typedef struct {
char name[50]; // 月饼名称
char specification[50]; // 月饼规格
int quantity; // 库存数量
float price; // 单价
} Mooncake;
3. 功能模块实现
3.1 数据录入
void inputMooncake(Mooncake *mooncake) {
printf("请输入月饼名称:");
scanf("%s", mooncake->name);
printf("请输入月饼规格:");
scanf("%s", mooncake->specification);
printf("请输入库存数量:");
scanf("%d", &mooncake->quantity);
printf("请输入单价:");
scanf("%f", &mooncake->price);
}
3.2 数据查询
void queryMooncake(Mooncake *mooncake, int size) {
char name[50];
printf("请输入要查询的月饼名称:");
scanf("%s", name);
for (int i = 0; i < size; i++) {
if (strcmp(mooncake[i].name, name) == 0) {
printf("月饼名称:%s\n", mooncake[i].name);
printf("月饼规格:%s\n", mooncake[i].specification);
printf("库存数量:%d\n", mooncake[i].quantity);
printf("单价:%f\n", mooncake[i].price);
return;
}
}
printf("未找到该月饼信息。\n");
}
3.3 数据修改
void modifyMooncake(Mooncake *mooncake, int size) {
char name[50];
printf("请输入要修改的月饼名称:");
scanf("%s", name);
for (int i = 0; i < size; i++) {
if (strcmp(mooncake[i].name, name) == 0) {
printf("请输入新的库存数量:");
scanf("%d", &mooncake[i].quantity);
printf("请输入新的单价:");
scanf("%f", &mooncake[i].price);
return;
}
}
printf("未找到该月饼信息。\n");
}
3.4 数据删除
void deleteMooncake(Mooncake *mooncake, int *size) {
char name[50];
printf("请输入要删除的月饼名称:");
scanf("%s", name);
for (int i = 0; i < *size; i++) {
if (strcmp(mooncake[i].name, name) == 0) {
for (int j = i; j < *size - 1; j++) {
mooncake[j] = mooncake[j + 1];
}
(*size)--;
printf("删除成功。\n");
return;
}
}
printf("未找到该月饼信息。\n");
}
3.5 数据统计
void statisticsMooncake(Mooncake *mooncake, int size) {
int totalQuantity = 0;
float totalPrice = 0.0;
for (int i = 0; i < size; i++) {
totalQuantity += mooncake[i].quantity;
totalPrice += mooncake[i].quantity * mooncake[i].price;
}
printf("库存总量:%d\n", totalQuantity);
printf("销售额:%f\n", totalPrice);
}
4. 系统测试
为了验证系统的功能,我们可以编写一个简单的测试程序:
int main() {
Mooncake mooncake[10];
int size = 0;
int choice;
while (1) {
printf("1. 数据录入\n");
printf("2. 数据查询\n");
printf("3. 数据修改\n");
printf("4. 数据删除\n");
printf("5. 数据统计\n");
printf("6. 退出\n");
printf("请输入你的选择:");
scanf("%d", &choice);
switch (choice) {
case 1:
if (size < 10) {
inputMooncake(&mooncake[size]);
size++;
} else {
printf("库存已满,无法录入。\n");
}
break;
case 2:
queryMooncake(mooncake, size);
break;
case 3:
modifyMooncake(mooncake, size);
break;
case 4:
deleteMooncake(mooncake, &size);
break;
case 5:
statisticsMooncake(mooncake, size);
break;
case 6:
return 0;
default:
printf("无效的选择,请重新输入。\n");
}
}
return 0;
}
通过以上步骤,我们成功实现了一个简单的月饼库存管理系统。当然,在实际应用中,您可以根据需求对系统进行扩展和优化。希望本文对您有所帮助!
