C语言超市商品管理系统

//在C盘下面建立文件夹pyfc,再在其下建立c文件夹,再在其下建立project文件夹,再在其下建立project.txt文件
#include
#include
#define N 100

struct Goods
{
int Goods_id; //商品编号
char Goods_name[50]; //名称
float Goods_price; //单价
int Goods_num; //库存量
}GoodsList[N]={
{1,"飘柔洗发水",25,100},
{2,"黑人牙膏",12,120},
{3,"Iphone 4",5600,30},
{4,"尼康相机",12500,15},
{5,"康熙字典",99,50},
};

void loginVerify();
void loginTitle();
void addGoods();
void modifyGoods();
void deleteGoods();
void queryGoods();
void printGoods();
void QueryGoods_id();
void QueryGoods_name();
void QueryGoods_price();
void QueryGoods_num();
void QueryGoods_num1();
void QueryGoods_num2();
void sortGoods();
void sortGoods_price();
void sortGoods_num();
void saveGoods();
void import();
int quit();

void main()
{
loginVerify();
}

/*登录验证*/
void loginVerify()
{
int i=0;
char username[20];
char password[20];
printf("\t\t************************************\n");
printf("\t\t\t登陆超市商品库存管理\n");
printf("\t\t************************************\n");
do
{
printf("\n\t\t\t请输入登录账号:");
gets(username);
fflush(stdin);
printf("\t\t\t请输入登录密码:");
gets(password);
if((strcmp(username,"sa")==0) && (strcmp(password,"123"))==0)
{
printf("\n\t\t\t登录成功!\n\n");
loginTitle();
break;
}
else
{
i++;
if(i==3)
{
printf("你已错误输入三次,退出系统!\n");
break;
}
printf("\n登录失败,请重新登陆!\n");

}

}while(1);
}


/*系统首界面*/
void loginTitle()
{
int choice;
int flag=1;
do
{
printf("\n");
printf("\t\t************************************\n");
printf("\t\t\t欢迎进入商品库存管理系统\n");
printf("\t\t************************************\n");
printf("\t\t\t1.添加商品\n");
printf("\t\t\t2.修改商品\n");
printf("\t\t\t3.删除商品\n");
printf("\t\t\t4.查询商品\n");
printf("\t\t\t5.商品排序\n");
printf("\t\t\t6.退出系统\n");
printf("\n\n请选择你想要进行的操作(1~6):");
scanf("%d",&choice);

switch(choice)
{
case 1:
addGoods();
break;
case 2:
modifyGoods();
break;
case 3:
deleteGoods();
break;
case 4:
queryGoods();
break;
case 5:
sortGoods();
break;
case 6:
quit();
flag=0;
break;
default:
printf("\n输入序号错误,请重新输入:\n");
break;
//continue;
}
if(flag==0)
{
break;
}
}while(flag);
}



/*添加商品*/
void addGoods()
{
//int id;
int i;
int flag;
printGoods();
for(i=0;i{
if(GoodsList[i].Goods_id!=0)
{
continue;
}
else if(GoodsList[i].Goods_id==0)
{
GoodsList[i].Goods_id=GoodsList[i-1]

.Goods_id+1;
//break;
fflush(stdin);
printf("\t\t\t请输入商品名称:");
gets(GoodsList[i].Goods_name);
printf("\t\t\t请输入商品单价:");
scanf("%f",&GoodsList[i].Goods_price);
printf("\t\t\t请输入商品库存量:");
scanf("%d",&GoodsList[i].Goods_num);
}
printf("\n\t继续添加选择“1”,返回主菜单选择“0”:");

scanf("%d",&flag);

if(flag==0)
{
saveGoods();
break;
}
else if(flag==1)
{
addGoods();
}
}
}



/*修改商品信息*/
void modifyGoods()
{
int searchGoods_id;
int i,flag;
import();
printf(" \t\t\t 请输入要修改的商品编号: ");
scanf("%d",&searchGoods_id);

for(i=0;i{
if(GoodsList[i].Goods_id==searchGoods_id)
{
//输出该商品信息
printf("你要修改的商品是:\n");
printf("\t\t\t编号\t名称\t\t单价\t\t库存量\n");
printf("\t\t\t%d\t%-8s\t%-8.2f\t%-6d\n",GoodsList[i].Goods_id,GoodsList[i].Goods_name,GoodsList[i].Goods_price,GoodsList[i].Goods_num);

//修改该商品信息
//printf(" \t\t\t请输入修改后的商品编号: ");
//scanf("%d",&GoodsList[i].Goods_id);
printf(" \t\t\t请输入修改后的商品名称: ");
scanf("%s",&GoodsList[i].Goods_name);
printf(" \t\t\t请输入修改后的商品单价: ");
scanf("%f",&GoodsList[i].Goods_price);
printf(" \t\t\t请输入修改后的商品库存量: ");
scanf("%d",&GoodsList[i].Goods_num);
printf("修改之后的商品是:\n");
printf("\t\t\t编号\t名称\t\t单价\t\t库存量\n");
printf("\t\t\t%d\t%-8s\t%-8.2f\t%-6d\n",GoodsList[i].Goods_id,GoodsList[i].Goods_name,GoodsList[i].Goods_price,GoodsList[i].Goods_num);

printf("\n\t继续修改选“1”,返回主菜单选“0”:");
scanf("%d",&flag);

if(flag==0)
{
saveGoods();
break;
}
modifyGoods();
}
}
}

/*删除商品信息*/
void deleteGoods()
{
int i;
int flag,searchGoods_id;
char a;
import();
printf(" \t\t\t请输入要删除的商品编号: ");
scanf("%d",&searchGoods_id);
for(i=0;i{
if( GoodsList[i].Goods_id == searchGoods_id )
{
//输出该商品信息
printf("你要删除的商品是:\n");
printf("\t\t\t编号\t名称\t\t单价\t\t库存量\n");
printf("\t\t\t%d\t%-8s\t%-8.2f\t%-6d\n",GoodsList[i].Goods_id,GoodsList[i].Goods_name,GoodsList[i].Goods_price,GoodsList[i].Goods_num);

//删除所选商品信息
printf("\n\t\t\t警告:数据删除后不可修复!是否继续?/:");
fflush(stdin);
scanf("%c",&a);
printf("%c",a);
if((a=='Y') || (a=='y') )
{
//清空所有数据
GoodsList[i].Goods_id=0;
strcpy(GoodsList[i].Goods_name,"\0");
GoodsList[i].Goods_price=0;
GoodsList[i].Goods_num=0;
}
else
{
printf("\n选择不删除,返回主菜单");
loginTitle();
}

printf("\n\t继续

删除选“1”,返回主菜单选“0”:");
scanf("%d",&flag);
if(flag==0)
{
saveGoods();
break;
}
deleteGoods();
}
}
}




/*查询商品*/
void queryGoods()
{
int choice;
printf("\t\t\t\t1.查询全部商品信息\n");
printf("\t\t\t\t2.按商品编号查询\n");
printf("\t\t\t\t3.按商品名称查询\n");
printf("\t\t\t\t4.按商品价格查询\n");
printf("\t\t\t\t5.按商品库存查询\n");
printf("\t\t\t\t6.返回主菜单\n");

printf("请输入相应操作编号(1~5):");
scanf("%d",&choice);
switch(choice)
{
case 1 :printGoods();
break;
case 2 :QueryGoods_id();
break;
case 3 :QueryGoods_name();
break;
case 4 :QueryGoods_price();
break;
case 5 :QueryGoods_num();
break;
case 6 :loginTitle();
break;
default:
printf("\n输入错误,重新选择!\n\n");
queryGoods();
//continue;
}
}

/*输出全部商品信息*/
void printGoods()
{

FILE *fp;
struct Goods *p;
int i,t;
p=GoodsList;
if((fp=fopen("c:\\pyfc\\c\\project\\project.txt","rt+"))==NULL)
{
printf("打开文件失败!\n");
getchar();
exit(1);
}
rewind(fp);
fread(p,sizeof(struct Goods),N,fp);
printf("当前商店中的商品信息:\n");
for(i=0;i{
if(GoodsList[i].Goods_id==0)
{
break;
}
printf("\t\t\t%d\t%-8s\t%-8.2f\t%-6d\n",GoodsList[i].Goods_id,GoodsList[i].Goods_name,GoodsList[i].Goods_price,GoodsList[i].Goods_num);
}
fclose(fp);

printf("返回查询选“1”,否则返回主菜单:");
scanf("%d",&t);
if(t==1)
{
queryGoods();
}
}



/*按商品编号查询*/
void QueryGoods_id()
{
int id;
int i;
char t;
import();
printf("\n请输入你需要查询的商品编号:");
scanf("%d",&id);
printf("\t\t\t编号\t名称\t\t单价\t\t库存\n");
for(i=0;i{
if(GoodsList[i].Goods_id==id)
printf("\t\t\t%d\t%-8s\t%-8.2f\t%-6d\n",GoodsList[i].Goods_id,GoodsList[i].Goods_name,GoodsList[i].Goods_price,GoodsList[i].Goods_num);
}
printf("\n\t\t\t返回查询界面选“1”,输入任意键返回主菜单: ");
fflush(stdin);
scanf("%c",&t);
if(t=='1')
{
queryGoods();
}
else
{
//printf("输入错误,返回主菜单");
loginTitle();
}

}


/*按商品名称查询*/
void QueryGoods_name()
{
char name[50];
int i,t;
import();
printf("\t\t\t请输入需要查询的商品名称: ");
scanf("%s",&name);
printf("\t\t\t名称\t\t编号\t单价\t\t库存\n");
for(i=0;i{
if( strcmp(GoodsList[i].Goods_name,name) ==0 )
{
printf("\t\t\t%-8s\t%d\t%-8.2f\t%-6d\n",GoodsList[i].Goods_name,GoodsList[i].Goods_id,GoodsList[i].Goods_price,GoodsList[i].Goods_num);
}
}

printf("\t\t\t返回查询界面选“1”: ");
scanf("%d",&t);
if(t==1)
{
queryGoods();
}
else
{
printf("输入错误,返回主菜单");
loginTitle();
}
}


/*按商品价格

查询*/
void QueryGoods_price()
{
float price1,price2;
int i,t;
import();
printf("\t\t\t请输入你需要查询商品的价格区间:");
printf("\n请输入最低价格:");
scanf("%f",&price1);
printf("\n请输入最高价格:");
scanf("%f",&price2);
printf("\t\t\t单价\t\t编号\t名称\t\t库存\n");
for(i=0;i{
if(GoodsList[i].Goods_id==0)
{
continue;
}
else if( (GoodsList[i].Goods_price>=price1) && (GoodsList[i].Goods_price<=price2))
printf("\t\t\t%-8.2f\t%d\t%-8s\t%-6d\n",GoodsList[i].Goods_price,GoodsList[i].Goods_id,GoodsList[i].Goods_name,GoodsList[i].Goods_num);
}
printf("\n\t\t\t返回查询界面选“1”: ");
scanf("%d",&t);
if(t==1)
{
queryGoods();
}
else
{
printf("输入错误,返回主菜单");
loginTitle();
}

}
/*按商品库存查询*/

void QueryGoods_num()
{
int num;
int i,t;
import();
printf("\t\t\t请输入需要查询的商品库存量的最大范围: ");
scanf("%d",&num);
printf("\t\t\t库存\t编号\t名称\t\t单价\t\t\n");
for(i=0;i{
if(GoodsList[i].Goods_id==0)
{
continue;
}
else if((GoodsList[i].Goods_num>=0) && (GoodsList[i].Goods_num<=num))
{
printf("\t\t\t%-6d\t%d\t%-8s\t%-8.2f\t\n",GoodsList[i].Goods_num,GoodsList[i].Goods_id,GoodsList[i].Goods_name,GoodsList[i].Goods_price);
}

}
printf("\t\t\t返回选“1”: ");
scanf("%d",&t);
if(t==1)
{
queryGoods();
}
else
{
printf("输入错误,返回主菜单");
loginTitle();
}
}


/*商品排序*/
void sortGoods()
{
int choice;
printf("\t\t\t\t1.按商品单价排序\n");
printf("\t\t\t\t2.按商品库存排序\n");
printf("\t\t\t\t3.返回主菜单\n");

printf("请输入相应操作编号(1~3):");
scanf("%d",&choice);
switch(choice)
{
case 1 :sortGoods_price();
break;
case 2 :sortGoods_num();
break;
case 3 :loginTitle();
break;
default:
printf("\n输入错误,重新选择!\n\n");
sortGoods();
//continue;
}
}

/*单价排序*/
void sortGoods_price()
{
int i=0,j,t,temp1;
char temp2[N];
int temp3;
float temp4;
import();
printf("\n\t\t\t***********************单价排序***********************\n");

for(i=0;i{
for(j=N-1;j>i; j--)
if(GoodsList[j].Goods_price < GoodsList[j-1].Goods_price)
{
temp1=GoodsList[j-1].Goods_id,GoodsList[j-1].Goods_id=GoodsList[j].Goods_id,GoodsList[j].Goods_id=temp1;
strcpy(temp2,GoodsList[j-1].Goods_name),strcpy(GoodsList[j-1].Goods_name,GoodsList[j].Goods_name), strcpy(GoodsList[j].Goods_name,temp2);
temp3=GoodsList[j-1].Goods_num,GoodsList[j-1].Goods_num=GoodsList[j].Goods_num,GoodsList[j].Goods_num=temp3;
temp4=GoodsList[j-1].Goods_price,GoodsList[j-1].Goods_price=GoodsList[j].Goods_price,GoodsList[j].Goods_price=temp4;

}
}

printf("\t\t\t单价\t\t编号\t名称\t\t库存\n");
for(i=0;i{
if(GoodsList[i].G

oods_id==0)
{
continue;
}
printf("\t\t\t%-8.2f\t%d\t%-8s\t%-6d\n",GoodsList[i].Goods_price,GoodsList[i].Goods_id,GoodsList[i].Goods_name,GoodsList[i].Goods_num);
}
printf("返回查询界面输入“1”,输入其他返回主菜单:");
scanf("%d",&t);
if(t==1)
{
sortGoods();
}
else
{
loginTitle();
}
}

/*库存排序*/
void sortGoods_num()
{
int i=0,j,t,temp1;
char temp2[N];
int temp3;
float temp4;
import();
printf("\n\t\t\t***********************库存量排序***********************\n");

for(i=0;i{
for(j=N-1;j>i; j--)
if(GoodsList[j-1].Goods_num < GoodsList[j].Goods_num)
{
temp1=GoodsList[j-1].Goods_id,GoodsList[j-1].Goods_id=GoodsList[j].Goods_id,GoodsList[j].Goods_id=temp1;
strcpy(temp2,GoodsList[j-1].Goods_name),strcpy(GoodsList[j-1].Goods_name,GoodsList[j].Goods_name), strcpy(GoodsList[j].Goods_name,temp2);
temp3=GoodsList[j-1].Goods_num,GoodsList[j-1].Goods_num=GoodsList[j].Goods_num,GoodsList[j].Goods_num=temp3;
temp4=GoodsList[j-1].Goods_price,GoodsList[j-1].Goods_price=GoodsList[j].Goods_price,GoodsList[j].Goods_price=temp4;

}
}
printf("\t\t\t库存\t编号\t名称\t\t单价\t\t\n");
for(i=0;i{
if( GoodsList[i].Goods_id==0 )
{
continue;
}
printf("\t\t\t%-6d\t%d\t%-8s\t%-8.2f\t\n",GoodsList[i].Goods_num,GoodsList[i].Goods_id,GoodsList[i].Goods_name,GoodsList[i].Goods_price);
}
printf("返回查询界面输入“1”,输入其他返回主菜单:");
scanf("%d",&t);
if(t==1)
{
sortGoods();
}
else
{
loginTitle();
}

}



void saveGoods()
{
FILE *fp;
struct Goods *p;
p=GoodsList;
if((fp=fopen("c:\\pyfc\\c\\project\\project.txt","wt+"))==NULL)
{
printf("打开文件失败!");
getchar();
exit(1);
}
fwrite(p,sizeof(struct Goods),N,fp);
fclose(fp);
}


void import()
{

FILE *fp;
struct Goods *p;
p=GoodsList;
if((fp=fopen("c:\\pyfc\\c\\project\\project.txt","rt+"))==NULL)
{
printf("打开文件失败!\n");
getchar();
exit(1);
}
rewind(fp);
fread(p,sizeof(struct Goods),N,fp);
fclose(fp);
}

int quit()
{
int flag;
printf("\t\t************************************\n");
printf("\t\t\t感谢您的使用,再见!\n");
printf("\t\t************************************\n");
flag=0;
return flag;
}


相关文档
最新文档