c语言商品进销存管理程序
时间: 2023-05-31 09:02:08 浏览: 141
以下是一个简单的C语言商品进销存管理程序,实现了商品的添加、删除、修改、查询、进货、售货等基本功能。
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_PRODUCTS 1000 // 最大商品数量
struct product {
int id; // 商品编号
char name[20]; // 商品名称
int stock; // 商品库存
float price; // 商品单价
};
struct product products[MAX_PRODUCTS]; // 商品数组
int num_products = 0; // 商品数量
// 显示菜单
void show_menu() {
printf("商品进销存管理系统\n");
printf("1. 添加商品\n");
printf("2. 删除商品\n");
printf("3. 修改商品\n");
printf("4. 查询商品\n");
printf("5. 进货\n");
printf("6. 售货\n");
printf("7. 退出\n");
printf("请选择操作:");
}
// 添加商品
void add_product() {
if (num_products >= MAX_PRODUCTS) {
printf("商品数量已达上限,无法添加!\n");
return;
}
printf("请输入商品编号:");
scanf("%d", &products[num_products].id);
printf("请输入商品名称:");
scanf("%s", products[num_products].name);
printf("请输入商品库存:");
scanf("%d", &products[num_products].stock);
printf("请输入商品单价:");
scanf("%f", &products[num_products].price);
num_products++;
printf("商品添加成功!\n");
}
// 删除商品
void delete_product() {
int id, i, j;
printf("请输入要删除的商品编号:");
scanf("%d", &id);
for (i = 0; i < num_products; i++) {
if (products[i].id == id) {
for (j = i; j < num_products - 1; j++) {
products[j] = products[j+1];
}
num_products--;
printf("商品删除成功!\n");
return;
}
}
printf("未找到编号为%d的商品!\n", id);
}
// 修改商品
void modify_product() {
int id, i;
printf("请输入要修改的商品编号:");
scanf("%d", &id);
for (i = 0; i < num_products; i++) {
if (products[i].id == id) {
printf("请输入新的商品名称:");
scanf("%s", products[i].name);
printf("请输入新的商品库存:");
scanf("%d", &products[i].stock);
printf("请输入新的商品单价:");
scanf("%f", &products[i].price);
printf("商品修改成功!\n");
return;
}
}
printf("未找到编号为%d的商品!\n", id);
}
// 查询商品
void query_product() {
int id, i;
printf("请输入要查询的商品编号:");
scanf("%d", &id);
for (i = 0; i < num_products; i++) {
if (products[i].id == id) {
printf("商品编号:%d\n", products[i].id);
printf("商品名称:%s\n", products[i].name);
printf("商品库存:%d\n", products[i].stock);
printf("商品单价:%.2f\n", products[i].price);
return;
}
}
printf("未找到编号为%d的商品!\n", id);
}
// 进货
void purchase() {
int id, i;
int quantity; // 进货数量
float cost; // 进货成本
printf("请输入要进货的商品编号:");
scanf("%d", &id);
for (i = 0; i < num_products; i++) {
if (products[i].id == id) {
printf("请输入进货数量:");
scanf("%d", &quantity);
printf("请输入进货成本:");
scanf("%f", &cost);
products[i].stock += quantity;
products[i].price = (products[i].price * products[i].stock + cost) / (products[i].stock + quantity);
printf("进货成功!\n");
return;
}
}
printf("未找到编号为%d的商品!\n", id);
}
// 售货
void sell() {
int id, i;
int quantity; // 销售数量
printf("请输入要售出的商品编号:");
scanf("%d", &id);
for (i = 0; i < num_products; i++) {
if (products[i].id == id) {
printf("请输入销售数量:");
scanf("%d", &quantity);
if (quantity > products[i].stock) {
printf("库存不足,无法售出!\n");
return;
}
products[i].stock -= quantity;
printf("销售成功!\n");
return;
}
}
printf("未找到编号为%d的商品!\n", id);
}
int main() {
int choice;
while (1) {
show_menu();
scanf("%d", &choice);
switch (choice) {
case 1:
add_product();
break;
case 2:
delete_product();
break;
case 3:
modify_product();
break;
case 4:
query_product();
break;
case 5:
purchase();
break;
case 6:
sell();
break;
case 7:
printf("谢谢使用!\n");
exit(0);
default:
printf("无效的选择,请重新输入!\n");
}
}
return 0;
}
```
注意,这只是一个简单的示例程序,实际的商品进销存管理系统还需要考虑更多的细节和功能,例如数据存储、数据备份、用户权限管理等。
阅读全文