#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct GOODS
{
char name[20];//名称
float price;//单价
int num;//数量
};
int menu()
{
int choice;
system("cls");
printf("1:添加商品\n");
printf("2:删除商品\n");
printf("3:修改商品\n");
printf("4:显示商品\n");
printf("0:退出\n");
printf("请选择:");
scanf("%d",&choice);
while(choice<0||choice>4)
{
printf("请进行选择:");
scanf("%d",&choice);
}
return choice;
}
int LoadFile(struct GOODS good[])
{
int i=0;
FILE* fp=fopen("good.txt","r+");
if(fp==NULL)
return 0;
while(fread(&good[i],sizeof(struct GOODS),1,fp))
{
i++;
}
fclose(fp);
return i;
}
void SaveFile(struct GOODS good[],int n)
{
int i=0;
FILE* fp=fopen("good.txt","w+");
if(fp==NULL)
return ;
for(i=0;i<n;i++)
{
fwrite(&good[i],sizeof(struct GOODS),1,fp);
}
fclose(fp);
}
int Add_Good(struct GOODS good[],int n)
{
system("cls");
printf("请输入商品名称:");
scanf("%s",good[n].name);
printf("请输入商品单价:");
scanf("%f",&good[n].price);
printf("请输入商品数量:");
scanf("%d",&good[n].num);
printf("添加成功!\n");
system("pause");
return n+1;
}
int Del_Good(struct GOODS good[],int n)
{
int i,j;
char str[20];
system("cls");
printf("请输入要删除的商品名称:");
scanf("%s",str);
for(i=0;i<n;i++)
{
if(!strcmp(str,good[i].name))
{
break;
}
}
if(i==n)
{
printf("添加失败,不存在该商品!\n");
system("pause");
return n;
}
for(j=i;j<n-1;j++)
{
good[j]=good[j+1];
}
printf("删除成功!\n");
system("pause");
return n-1;
}
void Display_Good(struct GOODS good[],int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%-20s%-10.2f%-10d\n",good[i].name,good[i].price,good[i].num);
}
}
void Modify_Good(struct GOODS good[],int n)
{
int i;
char str[20];
system("cls");
printf("请输入要修改的商品名称:");
scanf("%s",str);
for(i=0;i<n;i++)
{
if(!strcmp(str,good[i].name))
{
break;
}
}
if(i==n)
{
printf("修改失败,不存在该商品!\n");
system("pause");
return ;
}
printf("%-20s%-10s%-10s\n","商品名","单价","数量");
Display_Good(&good[i],1);
printf("请修改商品单价:");
scanf("%f",&good[i].price);
printf("请修改商品数量:");
scanf("%d",&good[i].num);
printf("修改成功!\n");
system("pause");
}
int main()
{
int choice;
struct GOODS good[100];
int n=LoadFile(good);
do
{
choice=menu();
switch(choice)
{
case 1:
n=Add_Good(good,n);
break;
case 2:
n=Del_Good(good,n);
break;
case 3:
Modify_Good(good,n);
break;
case 4:
system("cls");
printf("%-20s%-10s%-10s\n","商品名","单价","数量");
Display_Good(good,n);
system("pause");
break;
}
}while(choice!=0);
SaveFile(good,n);
return 0;
}
购物车系统
最新推荐文章于 2024-01-11 14:27:17 发布