进销存货管理系统代码c语言
时间: 2023-07-03 21:20:06 浏览: 90
由于进销存货管理系统比较复杂,代码量较大,我这里只能提供一个简单的示例代码。你可以在此基础上进行修改和完善。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Goods {
char name[50]; // 商品名称
float price; // 商品单价
int num; // 商品数量
float total; // 商品总价
} Goods;
typedef struct Node {
Goods goods; // 商品信息
struct Node* next; // 指向下一个节点的指针
} Node;
Node* head = NULL; // 头节点指针
// 添加商品
void addGoods() {
Node* node = (Node*) malloc(sizeof(Node));
printf("请输入商品名称:");
scanf("%s", node->goods.name);
printf("请输入商品单价:");
scanf("%f", &node->goods.price);
printf("请输入商品数量:");
scanf("%d", &node->goods.num);
node->goods.total = node->goods.price * node->goods.num;
node->next = NULL;
if (head == NULL) {
head = node;
} else {
Node* p = head;
while (p->next != NULL) {
p = p->next;
}
p->next = node;
}
printf("添加商品成功!\n");
}
// 查询商品
void queryGoods() {
char name[50];
printf("请输入要查询的商品名称:");
scanf("%s", name);
Node* p = head;
while (p != NULL) {
if (strcmp(p->goods.name, name) == 0) {
printf("商品名称:%s\n", p->goods.name);
printf("商品单价:%.2f\n", p->goods.price);
printf("商品数量:%d\n", p->goods.num);
printf("商品总价:%.2f\n", p->goods.total);
return;
}
p = p->next;
}
printf("没有找到该商品!\n");
}
// 修改商品
void modifyGoods() {
char name[50];
printf("请输入要修改的商品名称:");
scanf("%s", name);
Node* p = head;
while (p != NULL) {
if (strcmp(p->goods.name, name) == 0) {
printf("请输入新的商品名称:");
scanf("%s", p->goods.name);
printf("请输入新的商品单价:");
scanf("%f", &p->goods.price);
printf("请输入新的商品数量:");
scanf("%d", &p->goods.num);
p->goods.total = p->goods.price * p->goods.num;
printf("修改商品成功!\n");
return;
}
p = p->next;
}
printf("没有找到该商品!\n");
}
// 删除商品
void deleteGoods() {
char name[50];
printf("请输入要删除的商品名称:");
scanf("%s", name);
Node* p = head;
Node* pre = NULL;
while (p != NULL) {
if (strcmp(p->goods.name, name) == 0) {
if (pre == NULL) {
head = p->next;
} else {
pre->next = p->next;
}
free(p);
printf("删除商品成功!\n");
return;
}
pre = p;
p = p->next;
}
printf("没有找到该商品!\n");
}
// 显示商品列表
void showGoodsList() {
Node* p = head;
while (p != NULL) {
printf("商品名称:%s,商品单价:%.2f,商品数量:%d,商品总价:%.2f\n",
p->goods.name, p->goods.price, p->goods.num, p->goods.total);
p = p->next;
}
}
// 主函数
int main() {
int choice;
do {
printf("请选择操作:\n");
printf("1. 添加商品\n");
printf("2. 查询商品\n");
printf("3. 修改商品\n");
printf("4. 删除商品\n");
printf("5. 显示商品列表\n");
printf("6. 退出\n");
scanf("%d", &choice);
switch (choice) {
case 1:
addGoods();
break;
case 2:
queryGoods();
break;
case 3:
modifyGoods();
break;
case 4:
deleteGoods();
break;
case 5:
showGoodsList();
break;
case 6:
printf("程序退出!\n");
break;
default:
printf("输入有误,请重新输入!\n");
}
} while (choice != 6);
return 0;
}
```
这是一个简单的控制台程序,实现了基本的商品添加、查询、修改、删除、显示列表等功能。但这个程序还存在很多不足,例如没有进行数据持久化、没有进行输入格式验证等,需要根据实际需求进行改进。
阅读全文