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(¤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);
}
效果展示:
#註冊、登錄、更改管理員密碼效果#
#更改管理員密碼出錯效果#
#客戶信息管理菜單#
#購物結算(會員,客戶名三次輸入錯誤)#
#購物結算(非會員)#
#購物結算(會員)#
#真情回饋#
#註銷#
更多資料請點擊:我的目錄