溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C語(yǔ)言中怎么實(shí)現(xiàn)一個(gè)外賣(mài)管理系統(tǒng)

發(fā)布時(shí)間:2021-08-07 14:01:49 來(lái)源:億速云 閱讀:235 作者:Leah 欄目:編程語(yǔ)言

本篇文章給大家分享的是有關(guān)C語(yǔ)言中怎么實(shí)現(xiàn)一個(gè)外賣(mài)管理系統(tǒng),小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

重點(diǎn)內(nèi)容

??三端登錄 :分別為管理員,用戶以及店主;兩端注冊(cè),分別為用戶以及店鋪,其中店鋪的注冊(cè)成功需要得到管理員的審核。

??管理員端可以查看店鋪信息,店鋪信息修改(分為增刪改查),處理申請(qǐng)店鋪,和修改本人信息。  ??用戶端分為用戶相關(guān)(為用戶本人對(duì)自己信息的操作),查看訂單,查看菜品,購(gòu)買(mǎi)菜品,以及訂單排序。  ??管理員端為增添菜品,刪除菜品,修改菜品,查看菜品以及業(yè)績(jī)查看(統(tǒng)計(jì)總訂單與總收入)。

另外:

1. 店家注冊(cè)需要的到管理員的認(rèn)證,認(rèn)證通過(guò)之后才可登錄 2. 密碼修改需要輸入舊的密碼,三次錯(cuò)誤可以找回密碼,輸入手機(jī)號(hào),若手機(jī)號(hào)匹配得當(dāng),則可產(chǎn)生三位數(shù)的隨機(jī)驗(yàn)證碼,輸入驗(yàn)證碼即可修改。 3. 對(duì)于已超過(guò)三分鐘的訂單不能修改,因?yàn)橐呀?jīng)配送 4. 限制了用戶的余額,當(dāng)購(gòu)買(mǎi)時(shí)余額不足時(shí),需要進(jìn)行賬戶的充值,而購(gòu)買(mǎi)結(jié)束后,賬戶的余額也會(huì)相應(yīng)的減少

以下為功能模塊圖:

以下為函數(shù)調(diào)用關(guān)系圖:

以下為整個(gè)代碼:

#include<stdio.h>#include<stdlib.h>#include<string.h> #include<windows.h>#include<time.h>#include<conio.h>void choose();//建立關(guān)于店鋪的結(jié)構(gòu)體 typedef struct shop{  char name[20];  char phone[20];  char address[30];  char password[20];  struct shop *next;}shop,*link_shop;//建立關(guān)于訂單的結(jié)構(gòu)體 typedef struct food{  char name[20];  int type;  int amount;  int price;  int total;  char shop[20];  char yonghu[20];  char leibie[20];   struct food *next; }food,*link_food;//建立關(guān)于用戶的結(jié)構(gòu)體typedef struct user{  char name[20];  char delivery[39];  char password[15];  char number[15];  int score;  struct user *next;}user,*link_user;typedef struct money{  char person[20];  char card[25];  char mima[20];  struct money *next;}money,*link_money;char yh[20];//用戶設(shè)置全局變量 char dp[20];//店鋪設(shè)置全局變量 time_t start,end;//函數(shù)聲明void foodwrite(link_food LF);void shopwrite1(link_shop LS);void dingdanwrite(link_food LF);void user_moneywrite(link_user LM);void welcome(){  int i=0;  char a[52]="▲▼WELCOME TO RESTAURANT MANAGEMENT SYSTEM▲▼";  //system("color 0a");  printf("\n\n\n\n\t\t");  while(a[i])  {    printf("%c",a[i]);    Sleep(50);    i++;  }  printf("\n\n\n\n\t\t");}void Exit(){  int i=0;  system("cls");  char a[20]="LOVE you,byebye^_^";  system("color 03");  printf("\n\n\n\t\t\t");  while(a[i])  {    printf("%c",a[i]);    Sleep(100);    i++;  }}void ME(){  system("color 0b");  printf("\n\n\n\t\t☆★ W E L C O M E ☆★\n\n\t這里是外賣(mài)管理系統(tǒng),請(qǐng)選擇接下來(lái)的操作:");  printf("\n\n\t\t\t1.登陸");  printf("\t\t\t2.注冊(cè)\t\t\t0.退出\n"); }//主菜單(登陸或者注冊(cè))  void MENU(){  printf("\n\n\n\n\t\t\t\t\t================================\n");  printf("\t\t\t\t\t   外 賣(mài) 管 理 系 統(tǒng)   \n");  printf("\t\t\t\t\t     1.管理員登陸     \n");  printf("\t\t\t\t\t     2.用戶登錄      \n");  printf("\t\t\t\t\t     3.店家登陸      \n");  printf("\t\t\t\t\t     0.返回上一級(jí)     \n");  printf("\t\t\t\t\t================================\n");}//管理員選項(xiàng) void MENU1(){  system("color 0f");  printf("                                     溫馨小提示:按5可以清屏哦^-^\n");  printf("\n\n\t\t\t\t\t1.查看店鋪信息▲\n");  printf("\t\t\t\t\t--------------\n");  printf("\t\t\t\t\t2.店鋪信息修改▼\n");  printf("\t\t\t\t\t--------------\n");  printf("\t\t\t\t\t3.處理申請(qǐng)店鋪▲\n");  printf("\t\t\t\t\t--------------\n");  printf("\t\t\t\t\t4.修改本人信息▼\n");  printf("\t\t\t\t\t--------------\n");  printf("\t\t\t\t\t0.返回上一級(jí) ▲\n");}//用戶選項(xiàng) void MENU2(){  system("color 0f");  printf("\n\n\t\t\t\t 1.用戶相關(guān) ▲\t\t\t 5.購(gòu)買(mǎi)菜品 ▼\n");   printf("\t\t\t\t---------------\t\t\t---------------\n");  printf("\t\t\t\t 2.查看訂單 ▲\t\t\t 6.訂單排序▼\n");  printf("\t\t\t\t---------------\t\t\t---------------\n");  printf("\t\t\t\t 3.查看菜品 ▲\t\t\t 0.返回上級(jí) ▼\n");  printf("\t\t\t\t---------------\t\t\t---------------\n");  printf("\t\t\t\t 4.修改訂單 ▲\n");}//店主選項(xiàng) void MENU3(){  system("color 0f");  printf("\n\n\n\t\t\t ________ Shop Version _______\n");  printf("\t\t\t|               |\n");  printf("\t\t\t|     1.添加菜品     |\n");  printf("\t\t\t|     2.修改菜品     |\n");  printf("\t\t\t|     3.刪除菜品     |\n");  printf("\t\t\t|     4.查看菜品     |\n");  printf("\t\t\t|     5.查看業(yè)績(jī)     |\n");  printf("\t\t\t|     0.返回上一級(jí)    |\n");  printf("\t\t\t|_____________________________|\n");}//建立關(guān)于單鏈表void *creatf(){  int i=0,n;  link_food LF;  food *s,*r;  char a[10];  //srand((unsigned)time(NULL));//產(chǎn)生隨機(jī)數(shù)的種子   LF=(food *)malloc(sizeof(food));  LF->next=NULL;  r=LF;  while(1)  {    printf("請(qǐng)輸入菜的名稱:");    scanf("%s",a);    if(strcmp(a,"0")!=0)    {      s=(food *)malloc(sizeof(food));      printf("請(qǐng)輸入菜的單價(jià):");      scanf("%d",&s->price);      printf("請(qǐng)輸入菜的類(lèi)別");      scanf("%s",s->leibie);       strcpy(s->name,a);      s->total=(s->amount)*(s->price);      r->next=s;      s->next=NULL;      r=s;    }     else      break;  }  foodwrite(LF); } shop *creats(){  char a[30],b[20],c[15],d[20];  link_shop LS;  shop *s,*r;  LS=r=(shop *)malloc(sizeof(shop));  LS->next=NULL;  r=LS;  while(1)  {    printf("請(qǐng)輸入店鋪信息:\n");    printf("\t\t●  店鋪名稱:");    scanf("%s",a);    printf("\n\t\t●  店鋪電話:");    scanf("%s",b);    if(strcmp(b,"0")!=0)    {      printf("\n\t\t●  店鋪地址:");       scanf("%s",c);      printf("\n\t\t●  店鋪密碼:");       scanf("%s",d);      s=(shop *)malloc(sizeof(shop));      strcpy(s->name,a);      strcpy(s->phone,b);      strcpy(s->address,c);      strcpy(s->password,d);      r->next=s;      s->next=NULL;      r=s;    }    else      break;  }  return LS; }void Outputshop(link_shop Ls){  int n=0;  shop *p,*u;  p=Ls->next;  system("cls");  printf("入駐的商家如下:\n");  printf("\t\t\t\t-------------------------------------------\n");  printf("\t\t\t\t店鋪名稱\t店鋪電話\t店鋪地址\n");  printf("\t\t\t\t-------------------------------------------\n");  while(p)  {    printf("\t\t\t\t%8s\t%8s\t%7s\n",p->name,p->phone,p->address);    printf("\t\t\t\t-------------------------------------------\n");    p=p->next;  }  for(u =Ls->next; u != NULL;u = u->next)     n++;  printf("\t\t\t\t合計(jì)\t\t\t\t%d個(gè)\n",n);  printf("\t\t\t\t-------------------------------------------\n");}void Outputfood(link_food LF){  food *s;  s=LF->next;  int sum=0;  printf("訂單如下:\n");  printf("\t----------------------------------------------------------------------------------------------------\n");  printf("\t菜名\t\t數(shù)量/份\t\t單價(jià)/元\t\t總價(jià)/元\t\t店鋪\t\t訂單號(hào)\t\t用戶名\n");   printf("\t----------------------------------------------------------------------------------------------------\n");  for(s=LF->next;s!=NULL;s=s->next)  {    if(strcmp(s->yonghu,yh)==0)    {      printf("\t%-8s\t%-8d\t%-8d\t%-8d\t%-10s\t%-10d\t%s\n",s->name,s->amount,s->price,s->total,s->shop,s->type,s->yonghu);      printf("\t----------------------------------------------------------------------------------------------------\n");      sum=sum+s->total;    }  }  printf("\t累計(jì)輸出/元\t\t\t\t\t\t\t%d\n",sum);  printf("\t----------------------------------------------------------------------------------------------------\n");  if(sum==0)  {     printf("○  您還沒(méi)有訂單呢,快去購(gòu)買(mǎi)吧 φ(>ω<*) ");    printf("\n\t\t\t\t\t->");    Sleep(1000);    printf("->");    Sleep(1000);    printf("->");    Sleep(1000);    system("cls");    MENU2();    return;  }}void outputfood(link_food LF){  food *p;  p=LF->next;  printf("\n\t\t\t         菜    譜            ");   printf("\n\t\t\t--------------------------------------------------\n");  printf("\t\t\t菜名    菜價(jià)     店鋪      菜系\n");   printf("\t\t\t---------------------------------------------------\n");  while(p)  {    printf("\t\t\t%-13s%-12d%-14s%s\n",p->name,p->price,p->shop,p->leibie);    printf("\t\t\t---------------------------------------------------\n");    p=p->next;  }}//充值user* addmoney(user *u){  int n;  char y;  char a[20];  FILE *fp;  link_money LY;  money *p,*r;  printf("您賬戶里的余額為:%d",u->score);  printf("是否充值?Y/else");  fflush(stdin);//清除緩存   y=getchar();  if(y=='Y')  {    fp=fopen("yue.txt","rt");    LY=r=(money *)malloc(sizeof(money));    LY->next=NULL;    while(!feof(fp))    {      p=(money *)malloc(sizeof(money));      fscanf(fp,"%s %s %s\n",p->person,p->card,p->mima);      p->next=NULL;      r->next=p;      r=p;     }        fclose(fp);    p=LY->next;    while(1)    {      if(strcmp(yh,p->person)==0)      {        break;      }      else        p=p->next;     }    printf("充值的錢(qián)數(shù)?");    scanf("%d",&n);    printf("請(qǐng)輸入支付密碼:");    scanf("%s",a);    if(strcmp(p->mima,a)==0)    {      u->score=(u->score+n);       printf("已充值");    }     else      printf("\t\t×  密碼錯(cuò)誤,充值失敗");  }  else    printf("已放棄充值");  return u; }          //按工號(hào)排序void name_sort(link_shop LS) {   int i,j,n;   n = 0; //記錄店鋪總數(shù);  shop *u,*q,*p;  for(u =LS->next; u != NULL;u = u->next)     n++; //采用冒泡法對(duì)各個(gè)節(jié)點(diǎn)按姓名升序  for(i=1;i<=n;i++)   {     u =LS;     for(j=0;j<n-i;j++)     {       p = u->next;       q = p->next;       if(strcmp(p->name,q->name) > 0 || strcmp(p->name,q->name) == 0)       {         u->next = q;         p->next = q->next;         q->next = p;       }       u = u->next;     }   }   printf("\t排序后店鋪信息\n");  Outputshop(LS);  return;}void address_sort(link_shop LS) {   int i,j,n;   n = 0; //記錄店鋪總數(shù);  shop *u,*q,*p;  for(u =LS->next; u != NULL;u = u->next)     n++; //采用冒泡法對(duì)各個(gè)節(jié)點(diǎn)按地址升序  for(i=1;i<=n;i++)   {     u =LS;     for(j=0;j<n-i;j++)     {       p = u->next;       q = p->next;      if(strcmp(p->address,q->address) > 0 || strcmp(p->address,q->address) == 0)       {         u->next = q;         p->next = q->next;         q->next = p;       }       u = u->next;     }   }   printf("\t\t\t\t地址排序后店鋪信息\n");  Outputshop(LS);  return;}void dingdan_name_sort(link_food LF) //按訂單食物名稱排序 {   int i,j,n;   n = 0; //記錄店鋪總數(shù);  food *u,*q,*p;  for(u =LF->next; u != NULL;u = u->next)     n++; //采用冒泡法對(duì)各個(gè)節(jié)點(diǎn)按姓名升序  for(i=1;i<=n;i++)   {     u =LF;     for(j=0;j<n-i;j++)     {       p = u->next;       q = p->next;       if(strcmp(p->name,q->name) > 0 || strcmp(p->name,q->name) == 0)       {         u->next = q;         p->next = q->next;         q->next = p;       }       u = u->next;     }   }   Outputfood(LF);  return;}void dingdan_total_sort(link_food LF) //按訂單總價(jià)從高到低排序 {   int i,j,n;   n = 0; //記錄店鋪總數(shù);  food *u,*q,*p;  for(u =LF->next; u != NULL;u = u->next)     n++; //采用冒泡法對(duì)各個(gè)節(jié)點(diǎn)按姓名升序  for(i=1;i<=n;i++)   {     u =LF;     for(j=0;j<n-i;j++)     {       p = u->next;       q = p->next;       if(p->total>q->total)       {         u->next = q;         p->next = q->next;         q->next = p;       }       u = u->next;     }   }   Outputfood(LF);  return;}void dingdandelete(link_food Lf){  food *p,*n;  p=Lf;  n=p->next;  int m;  char a;  printf("請(qǐng)輸入你所想刪除的訂單序號(hào):");  scanf("%d",&m);  while(n)  {    if(m==n->type)    {      if(strcmp(n->shop,dp)==0)      {        p->next=n->next;        //foodwrite(Lf);        dingdanwrite(Lf);        break;       }      else        printf("不好意思,您沒(méi)有權(quán)限刪除\n");      break;    }    else    {      p=p->next;      n=n->next;    }  }}food *dingdanread(){  FILE *fp;  link_food LF,r,s;  fp=fopen("dingdan.txt","rt");  if(fp==NULL)  {     printf("查看訂單失敗");    return 0;  }  LF=r=(food *)malloc(sizeof(food));  r->next=NULL;  while(!feof(fp))  {    s=(food *)malloc(sizeof(food));     fscanf(fp,"%s %d %d %d %s %d %s\n",s->name,&s->amount,&s->price,&s->total,s->shop,&s->type,s->yonghu);    r->next=s;    s->next=NULL;    r=s;  }  return LF;}void scorefind(link_food LF){  int sum=0;  food *p;  p=LF->next;  system("cls");   printf("\n\n\n\t\t\t產(chǎn)生的訂單如下:\n");  printf("   ----------------------------------------------------------------------------------------------------\n");  printf("   菜品名稱 \t菜品數(shù)量\t菜品單價(jià)\t菜品總價(jià)\t店鋪名稱\t訂單號(hào) \t\t用戶名\n");  printf("   ----------------------------------------------------------------------------------------------------\n");  while(p)  {    if(strcmp(p->shop,dp)==0)    {    printf("  %7s%14d%15d%16d%16s%15d%18s\n",p->name,p->amount,p->price,p->total,p->shop,p->type,p->yonghu);    printf("   ----------------------------------------------------------------------------------------------------\n");    sum=sum+p->total;    }    p=p->next;  }  printf("   合計(jì)/元:\t\t\t\t\t\t\t累計(jì)收入%d\n",sum);  printf("   ----------------------------------------------------------------------------------------------------\n");  if(sum==0)    printf("\t\t●  您店里的菜還沒(méi)有人購(gòu)買(mǎi)哦,應(yīng)該反思啦\n");}food * foodread()//讀取 {  link_food LF;  food *s,*r;  LF=r=(food *)malloc(sizeof(food));  LF->next=NULL;  FILE *fp;  fp=fopen("food.txt","rt");  if(fp==NULL)  {    printf("不能打開(kāi)此文件");    exit(1);   }  while(!feof(fp))//判斷文件指針是否處于文件結(jié)束位置,若是,返回1,非,返回0   {    s=(food *)malloc(sizeof(food));     fscanf(fp,"%s %d %s %s\n",s->name,&s->price,s->shop,s->leibie);    r->next=s;    s->next=NULL;    r=s;  }  fclose(fp);  return LF;  }money * moneyread()//讀取 {  link_money LM;  money *s,*r;  LM=r=(money *)malloc(sizeof(money));  LM->next=NULL;  FILE *fp;  fp=fopen("yue.txt","rt");  if(fp==NULL)  {    printf("不能打開(kāi)此文件");    exit(1);   }  while(!feof(fp))//判斷文件指針是否處于文件結(jié)束位置,若是,返回1,非,返回0   {    s=(money *)malloc(sizeof(money));      fscanf(fp,"%s %s %s\n",s->person,s->card,s->mima);    r->next=s;    s->next=NULL;    r=s;  }  fclose(fp);  return LM;  }shop * shopread(){  link_shop LS;  shop *s,*r;  LS=r=(shop *)malloc(sizeof(shop));  r->next=NULL;  FILE *fp;  fp=fopen("shop.txt","rt");  if(fp==NULL)  {    printf("不能打開(kāi)此文件");    exit(1);   }  while(!feof(fp))//判斷文件指針是否處于文件結(jié)束位置,若是,返回1,非,返回0   {    s=(shop *)malloc(sizeof(shop));    s->next=NULL;    fscanf(fp,"%s %s %s %s\n",s->name,s->phone,s->address,s->password);    r->next=s;    r=s;  }  fclose(fp);  return LS;  }user * userread(){  link_user LU;  user *s,*r;  LU=r=(user *)malloc(sizeof(user));  r->next=NULL;  FILE *fp;  fp=fopen("users.txt","rt");  if(fp==NULL)  {    printf("不能打開(kāi)此文件");    exit(1);   }  while(!feof(fp))//判斷文件指針是否處于文件結(jié)束位置,若是,返回1,非,返回0   {    s=(user *)malloc(sizeof(user));    s->next=NULL;    fscanf(fp,"%s %s %s %s %d\n",s->name,s->delivery,s->password,s->number,&s->score);    r->next=s;    r=s;  }  fclose(fp);  return LU;  } void deleteshop(link_shop LS){  int i=0;  shop *p,*q;  p=LS;  q=p->next;  char m[20];  char a;  printf("請(qǐng)輸入你所想刪除的店鋪名稱或者電話:");  scanf("%s",m);  while(q)  {    if(strcmp(m,q->name)==0||strcmp(m,q->phone)==0)    {      i++;      p->next=q->next;      shopwrite1(LS);      return;    }    else    {      p=p->next;      q=q->next;    }  }  if(i==0)  {    printf("沒(méi)有此店鋪,無(wú)法刪除\n");    return;  }}void deletedingdan(link_food Lf){  food *p,*n;  p=Lf;  n=p->next;  int m,i=0;  char a;  printf("請(qǐng)輸入你所想刪除的訂單號(hào):");  scanf("%d",&m);  while(n)  {    if(n->type==m)    {      if(strcmp(n->yonghu,yh)==0)      {        p->next=n->next;        i++;        foodwrite(Lf);      }      else        printf("不好意思,您沒(méi)有權(quán)限刪除\n");      break;    }    else    {      p=p->next;      n=n->next;     }  }  if(i==0)  {    printf("\t沒(méi)有此訂單,無(wú)法刪除\n");    return;  }}void purchase(){  link_food Lf;  money *LM,*mo;  user *lu,*us;  FILE *fp;  char a[20],b[20],mi[20];  char y;  int i=0;  printf("\t\t◇您想吃啥呢?");  scanf("%s",a);  Lf=foodread();  food *p;  p=Lf->next;  srand((unsigned)time(NULL));//訂單號(hào)的種子   while(p!=NULL)  {    if(strcmp(p->name,a)==0||strcmp(p->leibie,a)==0)    {    // printf("%s\t%d\t%s\n",p->name,p->price,p->shop);      i++;    }      p=p->next;   }  if(i==0)  {    printf("\t\t\t×不好意思,還沒(méi)有此菜呢\n");    system("pause");    system("cls");    MENU2();    return;   }  else  {    p=Lf->next;    printf("\n\t\t\t--------------------------------------------------\n");    printf("\t\t\t菜名    菜價(jià)     店鋪      菜系\n");     printf("\t\t\t---------------------------------------------------\n");    while(p)    {      if(strcmp(p->leibie,a)==0||strcmp(p->name,a)==0)      {        printf("\t\t\t%-13s%-12d%-14s%s\n",p->name,p->price,p->shop,p->leibie);        printf("\t\t\t---------------------------------------------------\n");      }      p=p->next;    }  }  printf("\t\t◇請(qǐng)輸入要購(gòu)買(mǎi)的店鋪:");  scanf("%s",b);  lu=userread();  us=lu->next;  while(us)  {    if(strcmp(yh,us->name)==0)      break;    else      us=us->next;  }//找出要購(gòu)買(mǎi)的用戶信息   LM=moneyread();  mo=LM->next;  i=0;  while(mo)  {    if(strcmp(yh,mo->person)==0)    {      i++;      break;    }    else      mo=mo->next;  }//找出用戶的銀行卡信息   if(i==0)  {    printf("\t\t×  您還沒(méi)有綁定銀行卡哦,不能購(gòu)買(mǎi)的");    return;   }  p=Lf->next;  i=0;  while(p)  {    if(strcmp(p->name,a)==0||strcmp(p->leibie,a)==0)    {      if(strcmp(p->shop,b)==0)      {        printf("\t\t◇請(qǐng)輸入要購(gòu)買(mǎi)的數(shù)量");        scanf("%d",&p->amount);        if(p->amount!=0)        {          i++;          p->total=(p->amount)*(p->price);          p->type=rand()%900+100;          if((us->score)<p->total)          {            printf("\t\t×  您的賬號(hào)余額不足,請(qǐng)先充值\n");            system("pause");            system("cls");            MENU2();            return;          }          printf("\t\t●確認(rèn)購(gòu)買(mǎi)?Y/else");          fflush(stdin);          y=getchar();          if(y=='Y')          {            printf("請(qǐng)輸入支付密碼:");            scanf("%s",mi);            if(strcmp(mi,mo->mima)==0)            {              fp=fopen("dingdan.txt","at");              if(fp==NULL)                printf("\t\t\t\t×購(gòu)買(mǎi)失敗\n");//因文件無(wú)法打開(kāi)而失敗              else              {                fprintf(fp,"%s %d %d %d %s %d %s\n",p->name,p->amount,p->price,p->total,p->shop,p->type,yh);                fclose(fp);                us->score=(us->score)-(p->total);                user_moneywrite(lu);                printf("\t\t\t\t√購(gòu)買(mǎi)成功,請(qǐng)耐心等待配送\n");                start = time(NULL);//計(jì)時(shí)                 system("pause");                system("cls");                MENU2();                return;              }                }            else            {              printf("\t\t×  密碼錯(cuò)誤,購(gòu)買(mǎi)失敗");              system("pause");              system("cls");              MENU2();              return;             }              }           else          {            printf("\t\t\t×已放棄購(gòu)買(mǎi)");            system("pause");            system("cls");            MENU2();            return;           }        }        else        {          printf("\t\t\t×請(qǐng)輸入正確的數(shù)量");          system("pause");          system("cls");          MENU2();          return;         }      }    }    p=p->next;  }  if(i==0)  {    printf("\t\t×請(qǐng)輸入表中的店鋪名稱哦\n");    system("pause");    system("cls");    MENU2();   }}void foodwrite(link_food LF)//保存  {  FILE *fp;  food *p;  char a;  printf("確認(rèn)保存?(Y/else)");  scanf("%*c%c",&a);  if(a=='Y')  {    fp=fopen("food.txt","at");    if(fp==NULL)      printf("錯(cuò)誤!無(wú)法打開(kāi)");    for(p=LF->next;p!=NULL;p=p->next)      fprintf(fp,"%s %d %s %s\n",p->name,p->price,dp,p->leibie);    printf("修改成功\n");    fclose(fp);    return;  }  else    printf("已放棄修改"); } void foodwrite1(link_food LF) {  FILE *fp;  food *p;  char a;  printf("確認(rèn)保存?(Y/else)");  scanf("%*c%c",&a);  if(a=='Y')  {    fp=fopen("food.txt","wt");    if(fp==NULL)      printf("錯(cuò)誤!無(wú)法打開(kāi)");    for(p=LF->next;p!=NULL;p=p->next)      fprintf(fp,"%s %d %s %s\n",p->name,p->price,p->shop,p->leibie);    printf("修改成功\n");    fclose(fp);    return;  }  else    printf("已放棄修改"); }// void foodwrite2(link_food LF)// {// FILE *fp;// food *p;// char a;// printf("確認(rèn)保存?(Y/else)");// scanf("%*c%c",&a);// if(a=='Y')// {//   fp=fopen("food.txt","wt");//   if(fp==NULL)//     printf("錯(cuò)誤!無(wú)法打開(kāi)");//   for(p=LF->next;p!=NULL;p=p->next)//     fprintf(fp,"%s %d %s %s\n",p->name,p->price,p->shop,p->leibie);//   printf("修改成功\n");//   fclose(fp);//   return;// }// else//   printf("已放棄修改");// } void dingdanwrite(link_food LF) {  FILE *fp;  food *p;  char a;  printf("確認(rèn)保存?(Y/else)");  scanf("%*c%c",&a);  if(a=='Y')  {    fp=fopen("dingdan.txt","wt");    if(fp==NULL)      printf("錯(cuò)誤!無(wú)法打開(kāi)");    for(p=LF->next;p!=NULL;p=p->next)      fprintf(fp,"%s %d %d %d %s %d %s\n",p->name,p->amount,p->price,p->total,p->shop,p->type,p->yonghu);    printf("修改成功\n");    fclose(fp);    return;  }  else    printf("已放棄修改");  }void shopwrite1(link_shop LS) {  FILE *fp;  shop *p;  char a;  printf("確認(rèn)保存?(Y/else)");  scanf("%*c%c",&a);  if(a=='Y')  {    fp=fopen("shop.txt","wt");    if(fp==NULL)      printf("錯(cuò)誤!無(wú)法打開(kāi)");    for(p=LS->next;p!=NULL;p=p->next)      fprintf(fp,"%s %s %s %s\n",p->name,p->phone,p->address,p->password);    printf("保存成功\n");    fclose(fp);    return;  }  else    printf("已放棄"); } void shopwrite2(link_shop LS) {  FILE *fp;  shop *p;  char a;  printf("是否將信息保存至文件里?(Y/else)");  scanf("%*c%c",&a);  if(a=='Y')  {    fp=fopen("shop.txt","at");    if(fp==NULL)      printf("錯(cuò)誤!無(wú)法打開(kāi)");    for(p=LS->next;p!=NULL;p=p->next)    fprintf(fp,"%s %s %s\n",p->name,p->phone,p->address);    printf("修改成功\n");    fclose(fp);    return;  }  else    printf("已放棄修改"); } void userwrite(link_user LU) {  FILE *fp;  user *p;  char a;// printf("請(qǐng)確認(rèn)?(Y/else)");// scanf("%*c%c",&a);// if(a=='Y')// {    fp=fopen("users.txt","wt");    if(fp==NULL)      printf("錯(cuò)誤!無(wú)法打開(kāi)");    for(p=LU->next;p!=NULL;p=p->next)      fprintf(fp,"%s %s %s %s %d\n",p->name,p->delivery,p->password,p->number,p->score);    printf("操作成功\n");    fclose(fp);    return;// }  //else    //printf("已放棄注冊(cè)"); } void user_moneywrite(link_user LM) {  FILE *fp;  user *p;  char a;// printf("是否將信息保存至文件里?(Y/else)");// scanf("%*c%c",&a);// if(a=='Y')// {    fp=fopen("users.txt","wt");    if(fp==NULL)      printf("錯(cuò)誤!無(wú)法打開(kāi)");    for(p=LM->next;p!=NULL;p=p->next)      fprintf(fp,"%s %s %s %s %d\n",p->name,p->delivery,p->password,p->number,p->score);    //printf("注冊(cè)成功\n");    fclose(fp);    //return;// }  //else    //printf("已放棄注冊(cè)"); } void userwrite2(link_user LU) {  FILE *fp;  user *p;  char a;  printf("是否將信息保存至文件里?(Y/else)");  scanf("%*c%c",&a);  if(a=='Y')  {    fp=fopen("users.txt","at");    if(fp==NULL)      printf("錯(cuò)誤!無(wú)法打開(kāi)");    for(p=LU->next;p!=NULL;p=p->next)      fprintf(fp,"%s %s %s %s %d\n",p->name,p->delivery,p->password,p->number,p->score);    printf("注冊(cè)成功\n");    fclose(fp);    return;  }  else    printf("已放棄注冊(cè)"); }void increaseshop(link_shop LS){  char a[30],b[20],c[15],d[20];  shop *s;  printf("請(qǐng)輸入你所想加入的店鋪信息:\n");  printf("\t\t●  店鋪名稱:");  scanf("%s",a);  printf("\n\t\t●  店鋪電話:");  scanf("%s",b);  printf("\n\t\t●  店鋪地址:");   scanf("%s",c);  printf("\n\t\t●  店鋪密碼:");   scanf("%s",d);  if(strcmp(a,"0")!=0)  {    s=(shop *)malloc(sizeof(shop));    strcpy(s->name,a);    strcpy(s->phone,b);    strcpy(s->address,c);    strcpy(s->password,d);  }  s->next=LS->next;  LS->next=s;   shopwrite1(LS); }void shopfind(link_shop LS){   shop *p;  char E[20];  p=LS->next;  printf("請(qǐng)輸入店鋪的名稱:");  scanf("%s",E);   while(strcmp(p->name,E)!=0&&(p->next)!=NULL)  {    p=p->next;  }  if((p->next)==NULL)  {    printf("沒(méi)有此店鋪");    return;  }    printf("您所查詢的店鋪信息為:\n名稱\t電話\t地址\n");  printf("%s %s %s",p->name,p->phone,p->address);} void registerdeal(){  int q;  FILE *fp;  char y;  link_shop head;  shop *r,*p;  head=r=(shop *)malloc(sizeof(shop));  r->next=NULL;  fp=fopen("shenqing.txt","rt");  if(fp==NULL)  {    printf("發(fā)生錯(cuò)誤,無(wú)法打開(kāi)文件");    return;   }  if((y=fgetc(fp))==EOF)  {    printf("目前沒(méi)有需要處理的信息\n");    system("pause");    system("cls");    MENU1();    return;  }  else  {    while(!feof(fp))    {      p=(shop *)malloc(sizeof(shop));      fscanf(fp," %s %s %s %s \n",p->name,p->phone,p->address,p->password);      r->next=p;      p->next=NULL;      r=p;    }    for(p=head->next;p!=NULL;p=p->next)      printf("%s %s %s\n",p->name,p->phone,p->address);     printf("是否同意注冊(cè)?Y/else");    scanf("%*c%c",&y);     if(y=='Y')    {      fp=fopen("shop.txt","at");      if(fp==NULL)        printf("文件不存在,打開(kāi)錯(cuò)誤\n");       for(p=head->next;p!=NULL;p=p->next)        fprintf(fp,"% s %s %s %s \n",p->name,p->phone,p->address,p->password);      fclose(fp);    }   }   printf("處理成功");   fp=fopen("shenqing.txt","wt");  fclose(fp);}void MENU1_choose(){  int n,m,q;  char a[20],b[20],c[20],d[20];  char y;  FILE *fp,*fa;  shop *p;  shop sq;  link_shop LS;  link_user LU;  LS=shopread();  while(1)  {    printf("請(qǐng)選擇你想所想進(jìn)行的選項(xiàng):\n");     scanf("%d",&n);    if(n==1)    {      Outputshop(LS);      printf("是否進(jìn)行排序?Y/else");      fflush(stdin);      y=getchar();      if(y=='Y')      {        system("cls");        printf("\n\n\n\t\t\t●1.按店鋪名稱排序\n");        printf("\t\t\t●2.按店鋪地址排序\n");        scanf("%d",&m);        if(m==1)          name_sort(LS);        if(m==2)          address_sort(LS);        printf("1.退出\t2.返回");        scanf("%d",&m);        if(m==1)          exit(0);        else        {          system("cls");          MENU1();          continue;        }       }      else      {        printf("已放棄排序\n");        system("cls");        MENU1();      }    }    if(n==2)    {      system("cls");      printf("\n\n\n\t\t\t☆【1】刪除店鋪\n");      printf("\t\t\t☆【2】增加店鋪\n");      printf("\t\t\t☆【3】輸入店鋪\n");      printf("\t\t\t☆【0】返回上一級(jí)\n");      printf("\n\t\t請(qǐng)選擇將要進(jìn)行的操作:\n"); //二級(jí)       while(1)      {        scanf("%d",&m);        if(m==1)          deleteshop(LS);        if(m==2)          increaseshop(LS);        if(m==3)        {           LS=creats();          shopwrite1(LS);        }        if(m==4)          shopfind(LS);          if(m==0)        {          system("cls");          MENU1();          break;        }       }        }    if(n==3)      registerdeal();//注冊(cè)處理以及投訴處理函數(shù)     if(n==4)    {      //LU=userread();      system("cls");      printf("\n\t請(qǐng)選擇所想進(jìn)行的選項(xiàng):\n\n");      printf("\t● ○ ● ○ ● ○ ●\n");      printf("\t  1.查看個(gè)人信息  \n");      printf("\t○ 2.修改個(gè)人信息 ○\n");      printf("\t  0.返回上一級(jí)   \n");//二級(jí)       printf("\t● ○ ● ○ ● ○ ●\n");      while(1)      {        scanf("%d",&m);        if(m==1)        {          char d[20];          fa=fopen("admin.txt","rt");          fscanf(fa,"%s %s %s %s",a,b,c,d);          fclose(fa);          printf("\n\t\t地區(qū)\t姓名\t電話號(hào)碼\n");          printf("\t\t%s\t%s\t%s\n",a,b,d);        }        if(m==2)        {          system("cls");          printf("\n                             溫馨提示,按0返回哦(〃'▽'〃)\n");           printf("\n\t\t● ○ ● ○ ● ○ ●\n");          printf("\t\t   1.修改姓名   \n");          printf("\t\t○  2.修改地址  ○\n");          printf("\t\t   3.修改密碼   \n");//三級(jí)           printf("\t\t● ○ ● ○ ● ○ ●\n");          scanf("%d",&q);           if(q==1)          {            printf("請(qǐng)輸入新的姓名:\n");            scanf("%s",b);          }          if(q==2)          {            printf("請(qǐng)輸新的地址:\n");            scanf("%s",a);           }           if(q==3)//修改密碼,含找回密碼           {            int j=0,h;             char f[20],e[20];            fa=fopen("admin.txt","rt");            fscanf(fa,"%s %s %s %s",a,b,c,d);            printf("您需要輸入舊的密碼:\n");            scanf("%s",f);            while(strcmp(f,c)!=0)            {              j++;               printf("\t\t×您的密碼有誤,請(qǐng)重新輸入:");              scanf("%s",f);              if(j==2)              {                printf("\t\t×您已經(jīng)連續(xù)輸錯(cuò)三次,按1找回密碼,其他數(shù)字鍵返回:");                scanf("%d",&j);                if(j==1)                {                  printf("請(qǐng)輸入您的電話號(hào)碼:");                  scanf("%s",e);                  if(strcmp(e,d)==0)                  {                    srand((unsigned)time(NULL));                    j=rand()%900+100;                    fp=fopen("yanzheng.txt","wt");                    //fscanf(fp,"%d\n",&j);                    fprintf(fp,"%d\n",j);                    fclose(fp);                    printf("我們已經(jīng)發(fā)送驗(yàn)證碼到您的手機(jī),請(qǐng)輸入:");                    scanf("%d",&h);                    if(h==j)                    {                      printf("\t\t√請(qǐng)重新設(shè)置您的密碼:");                      scanf("%s",c);                      break;                     }                    else                    {                      printf("\t\t×驗(yàn)證碼錯(cuò)誤\n");                      break;                     }                  }                  else                  {                    printf("\t\t×找回密碼失敗\n");                    break;                   }                }                else                {                  system("cls");                  MENU();                  return;                 }              }            }            if(strcmp(c,f)==0)            {              printf("請(qǐng)輸入新的密碼:\n");              scanf("%s",c);            }          }          if(q==1||q==2||q==3)          {            printf("是否保存?Y/else");            fflush(stdin);            y=getchar();            if(y=='Y')            {              fa=fopen("admin.txt","wt");              fprintf(fa,"%s %s %s %s",a,b,c,d);              fclose(fa);              printf("\t\t√保存成功");             }            else              printf("\t\t×已放棄修改");            system("pause");            system("cls");            printf("\n\t請(qǐng)選擇所想進(jìn)行的選項(xiàng):\n\n");            printf("\t● ○ ● ○ ● ○ ●\n");            printf("\t  1.查看個(gè)人信息  \n");            printf("\t○ 2.修改個(gè)人信息 ○\n");            printf("\t  0.返回上一級(jí)   \n");//二級(jí)             printf("\t● ○ ● ○ ● ○ ●\n");            continue;           }          if(q==0)          {            system("cls");            printf("\n\t請(qǐng)選擇所想進(jìn)行的選項(xiàng):\n\n");            printf("\t● ○ ● ○ ● ○ ●\n");            printf("\t  1.查看個(gè)人信息  \n");            printf("\t○ 2.修改個(gè)人信息 ○\n");            printf("\t  0.返回上一級(jí)   \n");//二級(jí)             printf("\t● ○ ● ○ ● ○ ●\n");            continue;          }        }        if(m==0)         {          system("cls");          MENU1();          break;        }       }     }    if(n==5)    {      system("cls");      MENU1();    }    if(n==0)    {      system("cls");      MENU();      break;    }    if(n!=1&&n!=2&&n!=3&&n!=4&&n!=5&&n!=0)    {      printf("\t\t∷");      Sleep(400);      printf("∷");      Sleep(400);      printf("∷");      Sleep(400);      printf("您需要輸入菜單上的數(shù)字哦\n");     }    }}void MENU2_choose(){  int n,m,q,i=0;  char a[20],b[20];  char y;  FILE *fp;  user *u;  food *p,*s,*r;  link_food LF,Lf;  LF=foodread();  link_user LU;// user user;  while(1)  {    scanf("%d",&n);    switch(n)    {      case 1:          system("cls");          printf("\n\n\t\t\t請(qǐng)選擇需要進(jìn)行的選項(xiàng):\n\n");          printf("\t\t\t--------------------\n");          printf("\t\t\t  用 戶 相 關(guān)\n");          printf("\t\t\t--------------------\n");          printf("\t\t\t●  1.修改用戶名\n");           printf("\t\t\t●  2.修改密碼\n");           printf("\t\t\t●  3.修改收貨地址\n");          printf("\t\t\t●  4.修改電話號(hào)\n");          printf("\t\t\t●  5.查看個(gè)人信息\n");          printf("\t\t\t●  6.充值錢(qián)包\n");          printf("\t\t\t●  0.返回上一級(jí)\n");          LU=userread();          u=LU->next;          while(1)          {            if(strcmp(yh,u->name)==0)              break;            else              u=u->next;          }          while(1)          {            scanf("%d",&m);            if(m==1)            {              printf("請(qǐng)輸入新的用戶名:\n");              scanf("%s",u->name);            }            if(m==2)            {              printf("您需要輸入舊的密碼:\n");              scanf("%s",b);              while(strcmp(u->password,b)!=0)              {                printf("密碼錯(cuò)誤,請(qǐng)重新輸入\n");                scanf("%s",b);                i++;                if(i==2)                {                  printf("您已經(jīng)輸錯(cuò)三次,請(qǐng)5分鐘后再試");                  continue;                 }              }              printf("請(qǐng)輸入新的密碼:");              scanf("%s",u->password);             }            if(m==3)            {              printf("請(qǐng)輸入新的收貨地址:");              scanf("%s",u->delivery);             }            if(m==4)            {               printf("請(qǐng)輸入新的收貨地址");              scanf("%s",u->number);            }            if(m==1||m==2||m==3||m==4)              userwrite(LU);            if(m==5)            {              printf("您的信息為:\n");              printf("姓名\t收獲地址\t聯(lián)系方式\n");               printf("%s\t%s\t%s\n",u->name,u->delivery,u->number);            }            if(m==6)            {              u=addmoney(u);              userwrite(LU);             }            if(m==0)            {              system("cls");              MENU2();               break;            }          }           break;      case 2:        LF=dingdanread();        Outputfood(LF);         break;      case 3:        LF=foodread();        system("cls");        outputfood(LF);        p=LF->next;         printf("\t●  按1購(gòu)買(mǎi),其他數(shù)字返回\t");        scanf("%d",&q);        if(q==1)        {          purchase();        }        else        {          system("cls");          MENU2();          continue;        }        break;      case 4:        LF=dingdanread();        p=LF->next;        i=0;             printf("請(qǐng)輸入所想修改的訂單號(hào):");        scanf("%d",&n);        while(p)        {          if(n==p->type)          {            if(strcmp(p->yonghu,yh)==0)            {              i=1;               system("cls");              printf("\n訂單信息如下:\n");               printf("\t菜名\t單價(jià)\t數(shù)量\t總價(jià)\t店鋪\t用戶名\t\n");              printf("\t%s\t%d\t%d\t%d\t%s\t%s\n\n",p->name,p->price,p->amount,p->total,p->shop,p->yonghu);               printf("\t\t○  1.修改數(shù)量\n");              printf("\t\t○  2.刪除訂單\n");              printf("\t\t○  其他數(shù)字鍵返回\n");               scanf("%d",&n);              if(n==1)              {                end = time(NULL);                if((difftime(end,start))<180)                {                  printf("還沒(méi)有超過(guò)三分鐘,請(qǐng)盡快修改哦\n");                   printf("您只能修改菜的數(shù)量:");                  scanf("%d",&m);                  p->amount=m;                  p->total=(p->amount)*(p->price);                  dingdanwrite(LF);                  printf("\t\t√已成功修改");                }                else                {                  printf("時(shí)間超過(guò)三分鐘,已配送\n");                  system("pause");                  system("cls");                  MENU2();                   break;                }              }              if(n==2)              {                deletedingdan(LF);                dingdanwrite(LF);               }              else              {                system("pause");                system("cls");                MENU2();                break;              }            }            if(strcmp(p->yonghu,yh)!=0)            {              printf("\t\t×  不好意思,該訂單您沒(méi)有權(quán)限修改\n");              i=2;              system("pause");               system("cls");              MENU2();               break;            }          }          else            p=p->next;        }          if(i==0)        {          printf("\t\t×沒(méi)有改訂單\n");          system("pause");          system("cls");          MENU2();          continue;        }          break;       case 5:        purchase();        break;      case 6:        system("cls");        printf("\n\n\n\t\t\t---------------\n");        printf("\t\t\t 訂 單 排 序\n");        printf("\t\t\t---------------\n");         printf("\t\t\t△ 1.按菜名排序:\n");        printf("\t\t\t△ 2.按總價(jià)排序:\n");        printf("\t\t\t△ 0.返回\n");        scanf("%d",&m);        {          LF=dingdanread();          if(m==1)            dingdan_name_sort(LF);          if(m==2)            dingdan_total_sort(LF);          if(m==0)          {            system("cls");            MENU2();            continue;          }          system("pause");          system("cls");          MENU2();          continue;        }        break;        //dindan_name_sort(LF);      case 0:        system("cls");        MENU();        return;        break;      }    }}void deletefood(link_food Lf){  int i=0;  food *p,*n;  p=Lf;  n=p->next;  char m[20];  char a;  printf("請(qǐng)輸入你所想刪除的菜名:");  scanf("%s",m);  while(n)  {    if(strcmp(m,n->name)==0)    {      if(strcmp(n->shop,dp)==0)      {        i++;        p->next=n->next;        foodwrite1(Lf);      }      else        printf("不好意思,您沒(méi)有權(quán)限刪除\n");      break;    }    else    {      p=p->next;      n=n->next;    }  }  if(i==0)  {    printf("沒(méi)有此菜,無(wú)法刪除\n");    return;  }}void MENU3_choose(){  int x,y;  char a[20];  link_food LF,Lf;  LF=foodread();  food *p;  while(1)  {    printf("請(qǐng)選擇:");    scanf("%d",&x);    if(x==1)    {      creatf();      //foodwrite(LF);    }    if(x==2)    {      int i=0;      printf("請(qǐng)輸入要修改的菜的名稱:");      scanf("%s",a);      //LF=foodread();      p=LF->next;      while(p!=NULL)      {        if(strcmp(a,p->name)==0)        {          i++;          if(strcmp(dp,p->shop)==0)          {            printf("請(qǐng)重新輸入菜的信息:\n");            printf("\t\t\t△新菜名:");            scanf("%s",p->name);            printf("\t\t\t△新菜價(jià):");            scanf("%d",&p->price);            foodwrite1(LF);           }          else            printf("不好意思,您沒(méi)有權(quán)限修改\n");          break;         }        p=p->next;      }      if(i==0)        printf("\t\t×  沒(méi)有此菜的信息\n");     }    if(x==3)    {      deletefood(LF);    }     if(x==4)    {      int sum=0;      Lf=foodread();      p=Lf->next;      system("cls");      printf("\n\n\t\t您家的食物如下:");      printf("\n\t\t----------------------------------------\n");      printf("\t\t菜名\t   菜價(jià)\t店鋪\t  菜系\n");      printf("\t\t----------------------------------------\n");       while(p)      {        if(strcmp(p->shop,dp)==0)        {          printf("\t\t%-14s%-10d%-12s%s\n",p->name,p->price,p->shop,p->leibie);          printf("\t\t----------------------------------------\n");          sum=sum+1;        }        p=p->next;      }      printf("\t\t合計(jì)/個(gè):\t\t\t%d個(gè)菜\n",sum);      printf("\t\t----------------------------------------\n");      if(sum==0)        printf("\t\t\t●  怪不得沒(méi)訂單,您還沒(méi)添加菜品呢\n");      system("pause");      system("cls");      MENU3();    }    if(x==5)    {      LF=dingdanread();      scorefind(LF);//查看業(yè)績(jī)函數(shù)      system("pause");      system("cls");      MENU3();    }        if(x==0)     {      system("cls");      MENU();      break;    }    } }//登陸void login(){  int n,i=0,j=0;  char a[10],c[10];  char b[15],d[15],f[10],e[20];  FILE *fp;  char ch;  system("cls");   MENU();  printf("請(qǐng)選擇:");  while(1)  {    scanf("%d",&n);    //管理員登陸     if(n==1)    {      printf("請(qǐng)輸入用戶名:");       scanf("%s",a);      printf("請(qǐng)輸入密碼:");      while((ch=getch())!=13){      if(ch==8){        printf("\b \b");        i--;        continue;      }      b[i++]=ch;      putchar('*');      }      b[i]='';      fp=fopen("admin.txt","rt");        if(fp==NULL)          printf("沒(méi)有此文件,無(wú)法打開(kāi)");      fscanf(fp,"%s %s %s %s",f,c,d,e);      fclose(fp);      while(strcmp(a,c)!=0||strcmp(b,d)!=0)      {        printf("\n賬號(hào)或密碼錯(cuò)誤,請(qǐng)重新輸入:\n");        printf("請(qǐng)輸入用戶名:");        scanf("%s",a);        printf("請(qǐng)輸入密碼:");        i=0;        while((ch=getch())!=13){        if(ch==8){          printf("\b \b");          i--;          continue;        }        b[i++]=ch;        putchar('*');        }        b[i]='';        j++;        if(j==2)        {          printf("\n密碼錯(cuò)誤已達(dá)三次,將自動(dòng)退回主菜單\n");          system("pause");           system("cls");          MENU();          return;        }      }      system("cls");      //system("color 03");      welcome();      printf("\n");      system("pause");      system("cls");      MENU1();      MENU1_choose();     }  //用戶登錄     if(n==2)    {      link_user LU;      user *p;      LU=userread();      p=LU->next;      printf("請(qǐng)輸入賬號(hào)或名稱");      scanf("%s",yh);      printf("請(qǐng)輸入密碼:");      i=0;      while((ch=getch())!=13){      if(ch==8){        printf("\b \b");        i--;        continue;      }      b[i++]=ch;      putchar('*');      }      b[i]='';      int i=0;      while(p!=NULL)      {        if(strcmp(yh,p->name)==0&&strcmp(b,p->password)==0)        {          system("cls");          //system("color 0a");          //welcome();          printf("\n");          system("pause");          system("cls");          i++;          MENU2();          MENU2_choose();          break;        }        p=p->next;      }      if(i==0)      {         printf("密碼或者賬號(hào)錯(cuò)誤\n");        system("pause");        system("cls");        ME();        return;      }    }    if(n==3)    {      link_shop LS;      shop *p;      j=0;      LS=shopread();      p=LS->next;      printf("請(qǐng)輸入店鋪名稱或者賬號(hào):");      scanf("%s",dp);      printf("請(qǐng)輸入密碼");      i=0;      while((ch=getch())!=13)      {        if(ch==8)        {          printf("\b \b");          i--;          continue;        }            putchar('*');        b[i++]=ch;      }      b[i]='';      while(p!=NULL)      {        if(strcmp(dp,p->name)==0&&strcmp(b,p->password)==0)        {          system("cls");          //system("color 0a");          //welcome();          j++;          printf("\n");          system("pause");          system("cls");          MENU3();          MENU3_choose();          break;        }        else          p=p->next;      }      if(j==0)      {         printf("\t\t\n×  密碼或者賬號(hào)錯(cuò)誤\n");        system("pause");        system("cls");        ME();        return;      }    }    if(n==0)    {      system("cls");      ME();      break;     }    }}user * creatu(){  char a[30],b[20],c[15],d[20];  char ca[20],mi1[20],mi2[20];  link_user LU,lu;  FILE *fp;  user *s,*r,*p;  int x,y,i,h;   LU=r=(user *)malloc(sizeof(user));  LU->next=NULL;  printf("請(qǐng)輸入姓名:");  scanf("%s",a);  lu=userread();  while(1)  {    i=0;    p=lu->next;    while(p)    {       if(strcmp(a,p->name)==0)      {        i++;        printf("\t\t×此用戶已經(jīng)有人注冊(cè)過(guò),請(qǐng)重新輸入:");        scanf("%s",a);        break;      }      else        p=p->next;    }    if(i==0)      break;  }  printf("請(qǐng)輸入收貨地址:");  scanf("%s",b);   printf("請(qǐng)輸入密碼:");  scanf("%s",c);  printf("請(qǐng)輸入電話號(hào)碼:");  scanf("%s",d);   x=strlen(c);  while(x<8)  {    printf("\t\t●  您的密碼小于8位,安全指數(shù)為低\n");    printf("按1修改,其他鍵放棄修改:");    scanf("%d",&y);    if(y==1)    {      scanf("%s",c);      x=strlen(c);      }    else      break;   }  if(strcmp(b,"0")!=0)  {    s=(user *)malloc(sizeof(user));    s->score=0;    strcpy(s->name,a);    strcpy(s->delivery,b);    strcpy(s->password,c);    strcpy(s->number,d);    r->next=s;    s->next=NULL;    r=s;    printf("為了方便充值錢(qián)包,請(qǐng)綁定您的銀行卡:");    scanf("%s",ca);    h=strlen(ca);    while(h<15)    {      printf("\t\t●  您的銀行卡不足15位,請(qǐng)重新輸入:");      scanf("%s",ca);      h=strlen(ca);     }    i=0;     printf("請(qǐng)?jiān)O(shè)置您的支付密碼");    scanf("%s",mi1);    printf("請(qǐng)確認(rèn)密碼");    scanf("%s",mi2);    if(strcmp(mi1,mi2)!=0)    {      printf("\t\t×注冊(cè)失敗,兩次密碼不同");      return 0;    }    fp=fopen("yue.txt","at");    fprintf(fp,"%s %s %s\n",a,ca,mi1);    fclose(fp);  }  else  {    printf("\t\t×注冊(cè)失敗,請(qǐng)輸入正確的收貨信息:");    return 0;  }  return LU;  }void Register(){  int y;  char a;  FILE *fp;  shop sq;//申請(qǐng)   system("cls");  printf("\n\n\n\t\t\t\t1.注冊(cè)用戶\t\t\t2.申請(qǐng)店鋪\n");  printf("\t\t\t\t0.返回上一級(jí)");  while(1)  {    printf("\t\t▲ 請(qǐng)選擇要進(jìn)行的選項(xiàng):");     scanf("%d",&y);    if(y==1)//用戶注冊(cè)     {      link_user LU;      LU=creatu();       userwrite2(LU);    }    if(y==2)    {      printf("請(qǐng)輸入店鋪名稱:");      scanf("%s",sq.name);      printf("請(qǐng)輸入店鋪電話:");      scanf("%s",sq.phone);      printf("請(qǐng)輸入店鋪地址:");      scanf("%s",sq.address);       printf("請(qǐng)輸入店鋪密碼:");      scanf("%s",sq.password);      fp=fopen("shenqing.txt","at");      if(fp==NULL)      {        printf("發(fā)生錯(cuò)誤,無(wú)法打開(kāi)文件");        return;       }      printf("是否保存?Y/else");      scanf("%*c%c",&a);      if(a=='Y')      {          fprintf(fp," %s %s %s %s \n",sq.name,sq.phone,sq.address,sq.password);        fclose(fp);        printf("\t\t√  申請(qǐng)成功,等待上級(jí)審核");       }      else      {        printf("\t\t×  已放棄申請(qǐng)");        fclose(fp);       }    }    if(y==0)    {      system("cls");      printf("\t\tWELCOME\n這里是外賣(mài)管理系統(tǒng),請(qǐng)選擇接下來(lái)的操作:");      printf("\n\n\t\t\t\t1.登陸");      printf("\t\t\t\t2.注冊(cè)\n");       break;       }  }}void choose(){  int x;  ME();  while(1)  {    scanf("%d",&x);    if(x==1)      login();    if(x==0)    {      Exit();      return;    }    if(x==2)      Register();  }}int main(){  choose(); }

以上就是C語(yǔ)言中怎么實(shí)現(xiàn)一個(gè)外賣(mài)管理系統(tǒng),小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI