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