C语言购物管理系统项目

Hello ! 你好呀 ! 既然都点进来了,不妨看一看,文末效果展示! 
C语言购物管理系统项目:
  操作说明:按照菜单上面给的提示选择菜单,暂时没有实现出了数字以外的输入,输入其他字符会出错。
  操作步骤说明:根据菜单选择先登录系统,在登录系统界面中注册,注册完登录,登录后会跳转到管理的主菜单,然后可以通过输入数字分别跳转到相应的业务功能中,一些操作中需要填写的 id,暂时只能从查看所有顾客信息中查看,商品
信息是通过系统刚开始初始化的,编号从 1-5,只有 5 种商品,如果想要退出
系统的话,要一级一级菜单返回,直到返回到开始主菜单中选择菜单 3 进行退
出.另外,更改管理员密码需要你登录之后才能修改,没登录想修改的话会返回
主菜单。
更多资料请点击:我的目录

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>

void start();		//开始主菜单界面
void systems();		//进入登录系统界面
void registe();		//注册界面
void logon();		//登录界面
void main_list();	//登录完成进入主界面
void inform_list();	//客户信息管理菜单
void show_inform();	//显示所有客户信息
void add_inform();	//添加客户信息
void revise_inform();	//修改客户信息
void check_inform();	//查询客户信息
void settle_account();	//购物结算界面
void member();		//已是会员
void N_member();	//不是会员
void feedback();	//真情回馈
void lucky_release();	//幸运大放送
void lucky_draw();	//幸运抽奖
void birth_greet();	//生日问候
int logout();		//注销用户
int change_pw();	//密码修改
void gettime(char *cur_time);//获取当前系统时间

int i = 0 ,j = 0 , n = 0, k = 0, sum1 = 0, sum2;
char bool1, bool2, bool3, bool4, bool5;
int choose ,choose1, choose2, choose3, choose4, choose5;
int num[][120] = {0}, N[][120] = {0}, random_num[5][4];
char username[120], password[120], usr[120], pw[120], custom[120], card_num[120], passw1[120], passw2[120], ID[20];
char custom_nm[][120]= {0} ,custom_pw[][120] = {0},custom_bd[][120] = {0};
char custom_ID[][20] = {"2355" , "3453" , "8453" , "7561" , "2794"};
char custom_NM[][20] = {"JIAJIA" , "ZHUZHU" , "HAOYU" , "TONGSD" , "NIKEH"};
char custom_PW[][20] = {"235553" , "342553" , "482453" , "756631" , "226794"};
char custom_SC[][20] = {"23" , "33" , "43" , "51" , "27"};
char custom_BD[][20] = {"01-23" , "11-13" , "08-23" , "05-16" , "07-14"};

int main()
{
label1:	
	start();									//开始主菜单界面
	switch(choose)
	{
label10:		case 1:systems();							//进入登录系统界面
			switch(choose1)							
			{
				case 1:
				{					
					registe();					//注册界面
					if(choose2 == 2)
					{
label20:
						logon();				//登录界面
label2:
						main_list();				//登录后进入主界面
						if( strcmp(username, usr) != 0 || strcmp(password, pw) != 0)
						{
							printf("\t用户名或密码输入错误,请重新输入!\n");
							goto label20;	
						}
						switch(choose3)
						{
							case 1:
							{
label3:
								inform_list();			//客户信息管理菜单
								switch(choose4)
								{
									case 1:show_inform();goto label3;	//显示所有客户信息
									case 2:add_inform();goto label3;	//添加客户信息
									case 3:revise_inform();goto label3;	//修改客户信息
									case 4:check_inform();goto label3;	//查询客户信息
									case 5:goto label2;			//返回上一级
									
								}
							}break;
							case 2:
							{
								settle_account();				//购物结算界面
								if(bool1 == 'Y')			//已是会员
								{
									member();
									if(j == 2){N_member();}
									goto label2;
								}
								if(bool1 == 'N')			//不是会员
								{
									N_member();
									goto label2;
								}						
							}break;
							case 3:
							{
label4:
								feedback();					//真情回馈
								switch(choose5)
								{
									case 1:lucky_release();goto label4;	//幸运大放送
									case 2:lucky_draw();goto label4;	//幸运抽奖
									case 3:birth_greet();goto label4;	//生日问候
									case 4:goto label2;break;		//返回上一级
								}							
							}break;	
							case 4:logout();goto label1;break;			//注销用户
							case 5:goto label1;break;				//返回上一级			
						}
					}
					if(choose2 == 3)goto label1;break;					//返回上一级
				}
				case 2:
				if(password[0] == '\0'){printf("\t请先注册的呢,亲!\n");goto label10;}
				else goto label2;break;
				case 3:goto label1;break;							//返回上一级
			}break;

		case 2:
			if(usr[0] == '\0'){printf("\t请您先登录呢,亲!\n");goto label10;}	
label5:
			change_pw();
			if(k == -1){goto label5;}
			if( username[0] != '\0'){ goto label20;}
			if( username[0] == '\0'){ goto label1;}
			break;
		case 3:
			return 0;
	}	
	return 0;	
}


void start()
{
//**************************开始主菜单界面**************************//
	printf("\n\t**********欢迎进入购物管理系统**********\n");
	printf("\t1、登录系统\n");
	printf("\t2、更改管理员密码\n");
	printf("\t3、退出\n");
	printf("\t***************************************\n");
	printf("\t请选择菜单:");
	scanf("%d",&choose);
}

void systems()
{
//**************************登录系统界面**************************//
	printf("\n\t【购物管理系统 > 登录系统】\n");
	printf("\t1、注册\n");
	printf("\t2、登录\n");
	printf("\t3、返回上一级菜单\n");
	printf("\t请选择菜单:");
	scanf("%d",&choose1);
}

void registe()
{
 //**************************系统注册界面**************************//
	printf("\n\t【购物管理系统 > 登录系统 > 注册】\n");
	printf("\t请输入用户名:");
	scanf("%s",username);
	printf("\t请输入密码:");
	scanf("%s",password);
	
	printf("\n\t【购物管理系统 > 登录系统】\n");
	printf("\t1、注册\n");
	printf("\t2、登录\n");
	printf("\t3、返回上一级菜单\n");
	printf("\t请选择菜单:");
	scanf("%d",&choose2);
}

void logon()
{
 //**************************系统登录界面**************************//				
	printf("\n\t【购物管理系统 > 登录系统 > 登录】\n");
	printf("\t请输入用户名:");
	scanf("%s",usr);
	printf("\t请输入密码:");
	scanf("%s",pw);
}

void main_list()
{
	if( strcmp(username, usr) == 0 && strcmp(password, pw) == 0 )
	{
		printf("\n\t【购物管理系统 > 主菜单】\n");
		printf("\t1、客户信息管理\n");
		printf("\t2、购物结算\n");
		printf("\t3、真情回馈\n");
		printf("\t4、注销\n");
		printf("\t5、返回上一级菜单\n");
		printf("\t请选择菜单:");
		scanf("%d",&choose3);
	}
}

void inform_list()
{
//**************************客户信息管理菜单**************************//
	printf("\n\t【购物管理系统 > 主菜单 > 客户信息管理菜单】\n");
	printf("\t1、显示所有客户信息\n");
	printf("\t2、添加客户信息\n");
	printf("\t3、修改客户信息\n");
	printf("\t4、查询客户信息\n");
	printf("\t5、返回上一级菜单\n");
	printf("\t请选择菜单:");	
	scanf("%d",&choose4);
}

void show_inform()
{
//**************************显示所有客户信息**************************//							
	printf("\n\t【购物管理系统 > 主菜单 > 客户信息管理 > 所有客户信息】\n");
	printf("\t ID \t 用户名 \t 密码 \t积分 \t 生日 \n");
	printf("\t%s \t%s \t\t%s \t%s \t%s\n",custom_ID[0], custom_NM[0], custom_PW[0], custom_SC[0], custom_BD[0]);
	printf("\t%s \t%s \t\t%s \t%s \t%s\n",custom_ID[1], custom_NM[1], custom_PW[1], custom_SC[1], custom_BD[1]);
	printf("\t%s \t%s \t\t%s \t%s \t%s\n",custom_ID[2], custom_NM[2], custom_PW[2], custom_SC[2], custom_BD[2]);
	printf("\t%s \t%s \t\t%s \t%s \t%s\n",custom_ID[3], custom_NM[3], custom_PW[3], custom_SC[3], custom_BD[3]);
	printf("\t%s \t%s \t\t%s \t%s \t%s\n",custom_ID[4], custom_NM[4], custom_PW[4], custom_SC[4], custom_BD[4]);
}


void add_inform()
{
//**************************添加客户信息**************************//
	printf("\n\t【购物管理系统 > 主菜单 > 客户信息管理 > 添加客户信息】\n");
	printf("\t请输入客户的用户名:");
	scanf("%s",&custom_nm[i][120]);
	printf("\t请输入客户的密码:");
	scanf("%s",&custom_pw[i][120]);
	printf("\t请输入生日(月.日):");
	scanf("%s",&custom_bd[i][120]);
	printf("\t添加会员成功!\n");							
	i++;
}

void revise_inform()
{
//**************************修改客户信息**************************//
	printf("\n\t【购物管理系统 > 主菜单 > 客户信息管理 > 修改客户信息】\n");
	printf("\t请输入需要修改的用户ID号:");
	scanf("%s",ID);
	for(i = 0; i < 5; i++)
	{
		if(strcmp(ID ,custom_ID[i]) == 0)
		{
			printf("\t需要修改什么信息呢?(用户名Y/密码M)");
			scanf("%s",&bool4);
			if(bool4 == 'Y')
			{
				printf("\t请输入新的用户名:");
				scanf("%s",custom_NM[i]);
				printf("\t用户名修改成功!\n\n");		
			}
			if(bool4 == 'M')
			{
				printf("\t请输入新的密码:");				
				scanf("%s",custom_PW[i]);
				printf("\t密码修改成功!\n\n");
			}
			i = 5;
		}
		else
		{
			printf("\t输入错误!\n\n");
			i = 5;
		}
	}
	
}

void check_inform()
{
//**************************修改客户信息**************************//
	printf("\n\t【购物管理系统 > 主菜单 > 客户信息管理 > 查询客户信息】\n");
	printf("\t请输入需要查询的用户ID号:");
	scanf("%s",ID);
	for(i = 0; i < 5; i++)
	{
		if(strcmp(ID ,custom_ID[i]) == 0)
		{
			printf("\t ID \t 用户名 \t 密码 \t积分 \t 生日 \n");
			printf("\t%s \t%s \t\t%s \t%s \t%s\n\n",custom_ID[i], custom_NM[i], custom_PW[i], custom_SC[i], custom_BD[i]);
			i = 5;
		}
		else
		{
			printf("\t没有此用户!\n\n");	
			i = 5;	
		}
	}		
}
void settle_account()
{
//**************************购物结算界面**************************//
	printf("\n\t【购物管理系统 > 主菜单 > 购物结算】\n");		
	printf("\t是否为会员(Y/N)");
	scanf("%s",&bool1);
}

void member()
{
//**************************购物结算界面(已是会员)**************************//
	printf("\n\t请输入这次购物的客户号(输入三次不对将按普通用户结算)");
	scanf("%s",custom);
	for( j = 0; j < 2; j++ )					
	{
		if(strcmp(custom,custom_NM[0]) == 0)
		{
			do
			{
				printf("\t请输入商品编号:");
				scanf("%d",&num[n][120]);
				printf("\t请输入购买数量:");
				scanf("%d",&N[n][120]);
				n++;j = 2;
				printf("\t是否继续输入(Y/N)");
				scanf("%s",&bool2);
			}while(bool2 == 'Y');
			printf("\n\t********************购物清单********************\n");
			printf("\t商品编号\t商品名\t商品价格\t购入数量\t单行总价\n");
			for( k = 0; k < n; k++)
			{
				printf("\t%d\t\t%d\t%d\t\t%d\t\t%d\n",num[k][120],num[k][120],num[k][120],N[k][120],num[k][120]*N[k][120]);			
				sum1 = sum1 + num[k][120]*N[k][120];
			}
			printf("\t购物总金额:%d\n",sum1);
			printf("\t打折后所需金额:%.1f\n",sum1*0.8);
			printf("\t实际交款金额:");
			scanf("%d",&sum2);
			printf("\t应找:%.1f\n",sum2-sum1*0.8);
		}	
		else 
			scanf("%s",custom);;				
	}
	

}


void N_member()
{
//**************************购物结算界面(不是会员)**************************//
do
{
	printf("\t请输入商品编号:");
	scanf("%d",&num[n][120]);
	printf("\t请输入购买数量:");
	scanf("%d",&N[n][120]);
	n++;
	printf("\t是否继续输入(Y/N)");
	scanf("%s",&bool2);
}while(bool2 == 'Y');
	printf("\n\t********************购物清单********************\n");
	printf("\t商品编号\t商品名\t商品价格\t购入数量\t单行总价\n");
	for( k = 0; k < n; k++)
	{
		printf("\t%d\t\t%d\t%d\t\t%d\t\t%d\n",num[k][120],num[k][120],num[k][120],N[k][120],num[k][120]*N[k][120]);			
		sum1 = sum1 + num[k][120]*N[k][120];
	}
	printf("\t购物总金额:%d\n",sum1);
	printf("\t打折后所需金额:%d\n",sum1);
	printf("\t实际交款金额:");
	scanf("%d",&sum2);
	printf("\t应找:%d\n",sum2-sum1);
}

void feedback()
{
//**************************真情回馈**************************//
	printf("\n\t【购物管理系统 > 主菜单 > 真情回馈】\n");
	printf("\t1、幸运大放送\n");
	printf("\t2、幸运抽奖\n");
	printf("\t3、生日问候\n");
	printf("\t4、返回上一级菜单\n");
	printf("\t请选择菜单:");
	scanf("%d", &choose5);
}

void lucky_release()
{
//**************************幸运大放送**************************//
	printf("\n\t【购物管理系统 > 主菜单 > 真情回馈 > 幸运大放送】\n");
	printf("\t请输入您的卡号:");
	scanf("%s", card_num);
	
	srand(time(NULL));			//生成随机数
	for(k = 0; k < 5; k++)			//遍历5个数组
	{		
		for(i = 0; i < 4; i++)		//每个数组4个随机数
		{
			random_num[k][i]=rand()%9+1;
			for(j = 0; j < i; j++)
			while(random_num[k][i] == random_num[k][j])	//两个数相等时
			{
				random_num[k][i]=rand()%9+1;		//重新赋值
				j=-1;
			}
		}
	}
	k = 0;	//用于计算相等数字的个数
	for(i = 0 ; i < 5; i++)
	{
		for(j = 0; j < 4; j++)
		{
			if(card_num[j] == random_num[i][j])
			k ++;	//用于计算相等数字的个数
		}
	}
	
	if(k != 4)	
	{
		printf("\t/*****抱歉!请下次再试!*****/\n");
		printf("\t本次幸运客户卡号为:");
		for(i = 0; i < 5; i++)
		{
			printf("\t");	
			for(j = 0; j < 4; j++)
			{
				printf("%d",random_num[i][j]);
			}
		}
		printf("\n");
	}
	else if(k == 4)	//相等数字的个数为4个
	{
		printf("\t恭喜您!获得本次幸运大奖!请找工作人员领奖\n\n");
	}
}

void lucky_draw()
{
//**************************幸运抽奖**************************//
	printf("\n\t【购物管理系统 > 主菜单 > 真情回馈 > 幸运抽奖】\n");
	printf("\t请输入您的卡号:");
	scanf("%s", card_num);
	
	srand(time(NULL));		//生成随机数
	for(k = 0; k < 5; k++)	
	{		
		for(i = 0; i < 4; i++)
		{
			random_num[k][i]=rand()%9+1;
			for(j = 0; j < i; j++)
			while(random_num[k][i] == random_num[k][j])
			{
				random_num[k][i]=rand()%9+1;
				j=-1;
			}
		}
	}
	k = 0;
	for(i = 0 ; i < 5; i++)
	{
		for(j = 0; j < 4; j++)
		{
			if(card_num[j] == random_num[i][j])
			k ++;
		}
	}
	
	if(k != 4)	
	{
		printf("\t/*****抱歉!您不是本次的幸运会员!*****/\n");
		printf("\t本次幸运客户卡号为:");
		for(i = 0; i < 5; i++)
		{
			printf("\t");	
			for(j = 0; j < 4; j++)
			{
				printf("%d",random_num[i][j]);
			}
		}
		printf("\n");
	}
	else if(k == 4)
	{
		printf("\t恭喜您!您是本次的幸运会员!\n\n");
	}
}

void birth_greet()
{
//**************************生日问候**************************//
	printf("\n\t【购物管理系统 > 主菜单 > 真情回馈 > 生日问候】\n");
	printf("\t请输入客户ID号:");
	scanf("%s",ID);
	for(i = 0; i < 5; i++)
	{
		if(strcmp(ID ,custom_ID[i]) == 0)
		{
			printf("\t客户生日时间:%s\n",custom_BD[i]);
			i = 5;
			char *cur_time = (char *)malloc(21*sizeof(char));
       			gettime(cur_time);
       			printf("\t当前时间为: %s\n", cur_time);
        		free(cur_time);
        		cur_time = NULL;
			printf("\t(相同Y/不同N)");
			scanf("%s",&bool5);
			if(bool5 == 'Y')
			{
				printf("\n\t***** ***** ***** *****\n");
				printf("\t***** ***** ***** *****\n");
				printf("\t*** Happy  Birthday ***\n");				
				printf("\t***** ***** ***** *****\n");	
				printf("\t***** ***** ***** *****\n");
			}
			else
			{
				printf("\t抱歉!你的生日还没到!\n");			
			}
		}
		else
		{
			printf("\t没有此用户!\n");
			i = 5;
		}
	}	
}

int logout()
{
//**************************注销账号**************************//
	printf("\n\t【购物管理系统 > 主菜单 > 注销】\n");
	printf("\t请输入密码:");
	scanf("%s",passw1);
	if(strcmp(passw1,password) == 0)
	{
		printf("\t确认注销用户吗?(Y/N)");
		scanf("%s",&bool3);
		if(bool3 == 'Y')
		{	
			for(i = 0; password[i] != '\0'; i++)	//重置存放账号密码的数组
			{
				username[i] = '\0';
				password[i] = '\0';
			}
			printf("\t注销用户成功!\n");
		}
		if(bool3 == 'N')
		{
			return 0;
		}
		
	}
	else
	{
		printf("\t密码错误!\n");
		return 0;
	}
}

int change_pw()
{
//**************************更改管理员密码**************************//
	if(username[0] != '\0')
	{
		printf("\t请输入原密码:");
		scanf("%s",passw1);
		if(strcmp(password,passw1) == 0)
		{
			printf("\t请输入新密码:");
			scanf("%s",passw1);
			printf("\t请再次输入新密码:");
			scanf("%s",passw2);
			if(strcmp(passw1,passw2) == 0)
			{
				for(i = 0; passw2[i] !='\0'; i++)
				{
					password[i] = passw2[i];
				}
				printf("\t密码修改成功!请重新登录!\n\n");
				k = 0;
			}
			else
			{
				printf("\t两次密码不相同!请重新输入!\n\n");
				k = -1;
				return k;
			}		
		}
		else
		{
			printf("\t密码输入错误!\n\n");
			k = -1;
			return k;
		}
	}				
	if(username[0] == '\0')return 0;
}

void gettime(char *cur_time) 
{
//**************************获取系统当前时间**************************//
        char Year[6] = {0};
        char Month[4] = {0};
        char Day[4] = {0};
        char Hour[4] = {0};
        char Min[4] = {0};
        char Sec[4] = {0};

        time_t current_time;
        struct tm* now_time;
        time(&current_time);
        now_time = localtime(&current_time);

        strftime(Year, sizeof(Year), "%Y-", now_time);
        strftime(Month, sizeof(Month), "%m-", now_time);
        strftime(Day, sizeof(Day), "%d ", now_time);
        strftime(Hour, sizeof(Hour), "%H:", now_time);
        strftime(Min, sizeof(Min), "%M:", now_time);
        strftime(Sec, sizeof(Sec), "%S", now_time);

        strncat(cur_time, Year, 5);
        strncat(cur_time, Month, 3);
        strncat(cur_time, Day, 3);
        strncat(cur_time, Hour, 3);
        strncat(cur_time, Min, 3);
        strncat(cur_time, Sec, 3);
}

效果展示:

#注册、登录、更改管理员密码效果#
注册、登录、更改管理员密码效果

#更改管理员密码出错效果#
更改管理员密码出错效果

#客户信息管理菜单#
在这里插入图片描述

#购物结算(会员,客户名三次输入错误)#
在这里插入图片描述

#购物结算(非会员)#
在这里插入图片描述

#购物结算(会员)#
在这里插入图片描述

#真情回馈#
在这里插入图片描述

#注销#
在这里插入图片描述

更多资料请点击:我的目录

发布了75 篇原创文章 · 获赞 35 · 访问量 5918

猜你喜欢

转载自blog.csdn.net/weixin_43793181/article/details/104113776