超市库存管理系统,c语言,文件存储并调用代码实现
时间: 2023-05-30 21:02:17 浏览: 163
由于超市库存管理系统需要涉及到大量的数据存储和调用,因此我们可以采用文件存储的方式来实现。下面是一个简单的超市库存管理系统的实现,使用c语言来实现文件存储和调用。
1. 定义数据结构
首先我们需要定义一个数据结构来存储商品的信息,包括商品编号、名称、价格、库存数量等等。我们可以使用一个结构体来实现,如下:
```c
struct goods {
int id; // 商品编号
char name[20]; // 商品名称
float price; // 商品价格
int stock; // 商品库存数量
};
```
2. 实现文件读写函数
接下来我们需要实现一个函数来读取文件中的数据,并将其存储到一个结构体数组中。同时,我们还需要实现一个函数来将结构体数组中的数据写入到文件中。具体的代码实现如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct goods {
int id; // 商品编号
char name[20]; // 商品名称
float price; // 商品价格
int stock; // 商品库存数量
};
// 从文件中读取数据到结构体数组
void read_data(struct goods *g, int *n) {
FILE *fp;
fp = fopen("goods.dat", "rb");
if (fp == NULL) {
printf("Error opening file!\n");
exit(1);
}
fread(n, sizeof(int), 1, fp);
fread(g, sizeof(struct goods), *n, fp);
fclose(fp);
}
// 将结构体数组中的数据写入到文件中
void write_data(struct goods *g, int n) {
FILE *fp;
fp = fopen("goods.dat", "wb");
if (fp == NULL) {
printf("Error opening file!\n");
exit(1);
}
fwrite(&n, sizeof(int), 1, fp);
fwrite(g, sizeof(struct goods), n, fp);
fclose(fp);
}
```
3. 实现菜单函数
接下来我们需要实现一个菜单函数,用于显示菜单并等待用户输入选择。具体的代码实现如下:
```c
int menu() {
int choice;
printf("Supermarket Inventory Management System\n");
printf("----------------------------------------\n");
printf("1. Display all goods\n");
printf("2. Add new goods\n");
printf("3. Modify goods\n");
printf("4. Delete goods\n");
printf("5. Search goods\n");
printf("6. Exit\n");
printf("----------------------------------------\n");
printf("Enter your choice: ");
scanf("%d", &choice);
return choice;
}
```
4. 实现主函数
最后,我们需要实现一个主函数,用于调用各种函数实现超市库存管理系统。具体的代码实现如下:
```c
int main() {
struct goods goods_list[100];
int goods_num = 0;
// 读取数据
read_data(goods_list, &goods_num);
// 菜单循环
while (1) {
int choice = menu();
switch (choice) {
case 1:
display_all(goods_list, goods_num);
break;
case 2:
add_goods(goods_list, &goods_num);
break;
case 3:
modify_goods(goods_list, goods_num);
break;
case 4:
delete_goods(goods_list, &goods_num);
break;
case 5:
search_goods(goods_list, goods_num);
break;
case 6:
// 退出程序前将数据写入文件
write_data(goods_list, goods_num);
return 0;
default:
printf("Invalid choice!\n");
break;
}
}
}
```
完整代码如下: