C语言超市商品管理系统代码(精)

发布于:2023-07-04 ⋅ 阅读:(97) ⋅ 点赞:(0)
//在C盘下面建立文件夹pyfc,再在其下建立c文件夹,再在其下建立project文件夹,再在其下建立project.txt文件
#include<stdio.h>
#include<string.h>
#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<N;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<N;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<N;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警告:数据删除后不可修复!是否继续?<Y>/<N>:");
			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<N;i++,p++)
	{
		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<N;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<N;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<N;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<N;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<N-1; 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<N;i++)
	{
		if(GoodsList[i].Goods_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<N-1; 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<N;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;
}

 

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到