保存商品信息到硬盘文件

保存商品信息到硬盘文件包括通过键盘录入路径及名称新建或修改一个文件用于存储已保留的商品信息。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void save(struct product a[N])
{
int i;
char name[N];
FILE* fp;
if (input == 1)
{
printf("\n\t请输入文件路径及文件名:");
scanf("%s", name);//检查
FILE* fp = fopen(name, "w+");
fprintf(fp, "商品编号\t\t商品名称\t\t商品数量\t\t商品单价\n");
for (i = 0; i < n; i++)
{
fprintf(fp, "%d\t\t%s\t\t%d\t\t%f\t\t\n", a[i].num, a[i].name, a[i].quantity, a[i].price);
}
printf("\n\t文件已保存!\n");
fclose(fp);
}
else printf("---------------------------------------------------\n\t\t无可保存的商品信息\n");
return;
}

从硬盘文件获得商品信息

从硬盘文件获得商品信息包括通过键盘录入路径及名称查找到一个已存在的文件用于读取文件中的的商品信息。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
void read(struct product a[N])
{
int i, j = -1;
char name[N];
char ch;
FILE* fp;
printf("\n\t请输入要读取文件路径或文件名:");
scanf("%s", name);
if ((fp = fopen(name, "r")) == NULL)
{
printf("\n\t该文件不存在!\n");
}
else
{
while (!feof(fp))
{
ch = fgetc(fp);
if (ch == '\n')
j++;
}
n = j;
fclose(fp);
fp = fopen(name, "r");
fscanf(fp, "商品编号\t\t商品名称\t\t商品数量\t\t商品单价\n");
for (i = 0; i < n; i++)
{
fscanf(fp, "%d%s%d%f", &a[i].num, a[i].name, &a[i].quantity, &a[i].price);
}
fclose(fp);
input = 1;
output_goods(a);
return;
}
}

主函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
int main()
{
struct product a[N];
int m;
while (1)

{
printf("\n\t -小型商场进销存管理系统-\n\t ========================\n");
printf("\t\t1-输入商品信息\n\t\t2-浏览商品信息\n\t\t3-输入进货信息\n\t\t4-输入销售信息\n\t\t5-查询商品信息\n\t\t6-修改商品信息\n\t\t7-增加/删除商品\n\t\t8-商品信息排序\n\t\t9-保存商品信息\n\t\t10-导入商品信息\n\t\t ----------------------\n\t");
printf("请选择您所需要的操作(选择”0“退出):");
scanf("%d", &m);
switch (m)
{
case 1:input_goods(a);
break;
case 2:output_goods(a);
break;
case 3:purchase(a);
break;
case 4:sale(a);
break;
case 5:search(a);
break;
case 6:modify(a);
break;
case 7:edit(a);
break;
case 8:order(a);
break;
case 9:save(a);
break;
case 10:read(a);
break;
case 0:
printf("\n\t\t谢谢使用");
return 0;
default:printf("\n\t\t选择错误,请重新输入\n");
}
system("pause");
system("cls");
}
return 0;
}