如何用C语言编写一个高效的长尾词查询功能的共享单车管理系统?

2026-04-12 10:072阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计8323个文字,预计阅读时间需要34分钟。

如何用C语言编写一个高效的长尾词查询功能的共享单车管理系统?

原文:本文字例为大型分享了C语言实现共享单车管理系统的整体代码,供大家参考。具体内容如下+1.功能模块图;+2.各个模块的详细功能描述。

1.登录:登录分为用户登录和管理员登录。

改写后:

本文展示了C语言编写的共享单车管理系统整体代码示例,可供参考。内容主要包括:+1.功能模块图;+2.各模块功能详解。

1.登录:系统登录分为用户和管理员两种。

本文实例为大家分享了C语言实现共享单车管理系统的具体代码,供大家参考,具体内容如下

1.功能模块图;

如何用C语言编写一个高效的长尾词查询功能的共享单车管理系统?

2.各个模块详细的功能描述。

1.登陆:登陆分为用户登陆,管理员登陆以及维修员登录,登陆后不同的用户所执行的操作不同,权限不同。

(1)管理员登录:管理员登陆之后,可使用键盘的上下键来控制菜单上的选项,管理员权限不多,可执行最多的操作,可以对单车进行投放,删除,修改,查找,车牌号排序,查看所有单车信息,所有用户信息,管理员能通过或驳回正在申请注册的维修员,还可以查看完全通过认证的维修员。

(2)用户登录:用户登录时需要输入注册时的账号和密码,或者是之前注册的有效账号及密码,用户可以查看自己附近的车,立即用车当车密码出现的时候就开始计时了,还车后停止计时,一个时间段内没有还车不能再借车了,另外还有报修,报修的信息会上传到维修员那里,还可以查看自己的信息修改自己的信息,当用户账号不足100元时不能再借车了,所以还有充值这一项功能。

(3)维修员登录:维修员登录时也需要账户和密码(管理员认证的),维修员权限较大,只可以查看自己的信息,修改自己的信息,以及查看用户报修的单车信息。

2.注册:注册有用户注册和维修员注册。

(1)用户注册:用户注册时,手机号即为登录账户,有查重的功能,每个手机号只能注册一个用户,设置密码时,系统会对你的密码的安全系数进行评分,以及需要确认密码,两次不一致注册失败,输入年龄,年龄不满10岁不可注册,注册成功后需要起一个用户名,需要绑定充值卡,首次充值200元,即可登录。

(2)维修员注册:维修员注册时,手机号即为登录账户,也有查重的功能,每个手机号只能注册一个用户,设置密码时,系统会对你的密码的安全系数进行评分,以及需要确认密码,两次不一致注册失败,后需要起一个用户名,输入年龄,年龄不满18岁不可注册,但此时并没有注册成功,只是完成了申请,不可登录,等待管理员认证,通过,注册成功,即可登录,驳回,注册失败。

3.增加:增加单车信息到文件 中。

4.修改:修改单车信息,修改用户个人信息,修改维修员个人信息。

5.删除:删除单车。

6.查找:查找单车并按所选顺序查看。

3.详细设计

(1).功能函数的调用关系图

(2).各功能函数的数据流程图

a.(查找单车)

b.(增加单车)

c.(删除单车)

d.(修改单车信息)

e.(查看所有用户信息)

f.(查看所有维修员信息)

g.(注册)

h.(登陆)

3.代码:

#include<stdio.h> #include<string.h>  #include<stdlib.h> #include<conio.h> #include<windows.h>  #include<time.h> #include<process.h> #define Up 0x48 #define Down 0x50 #define LEN sizeof(struct node) #define LEN_ sizeof(struct node_user) #define LEN_1 sizeof(struct node_repairman) typedef struct node {         char number[100];     char mima[100];     char address[100];     char profit[100];     struct node *next;     }NODE; typedef struct node_user {         char number_user[200];     char mima_user[100];     char mima_user2[100];     char name_user[200];     char bank_card[200];     int age;     int h;     int purse;     struct node_user *next;     }NODE_USER; typedef struct node_repairman {         char number_repairman[100];     char mima_repairman[100];     char mima_repairman2[100];     char name_repairman[100];     int age;     struct node_repairman *next;     }NODE_REPAIRMAN; int icount,j,w=1,k; //**********************函数声明************************** void Gotoxy(int x, int y);  NODE *input ();     void show ();                             //管理员创建单车信息  NODE * add_node (NODE *phead);                  //管理员增加单车信息  void delete_node ();                      //管理员删除单车信息  void print (); void print_user(NODE_USER *m); void print_repairman_(NODE_REPAIRMAN *m); void print_repairman_1(NODE_REPAIRMAN *m);               //输出  void modify ();       //修改  NODE *look_for (); void look_for2 (NODE_USER *n); NODE_REPAIRMAN *look_for3 (); void look_for_bike (NODE *a); NODE *look_for_repetition (char a[20]);                 //查找  void savefile(NODE *phead);       //写文件(A+)  void savefile_(NODE *phead); void savefile_user(NODE *phead); void savefile_user_(NODE_USER *m); void savefile_repairman_check_1();            //写文件(W)  NODE *readfile(); NODE_USER *readfile_user();     NODE_REPAIRMAN *readfile_repairman(); void user (NODE_USER *l); void repairman_ (NODE_REPAIRMAN *l); void admin ();      //读文件  void welcome();               //欢迎函数  void send_back (NODE *d);  void sort_num(); void sign_in ();                                                             void menu_1 ();           //菜单  void choice (); void goodbye();  //******************************************************** void Gotoxy(int x, int y)  //光标移动 {     HANDLE hout;//定义句柄变量     COORD coord;//定义结构体     coord.X = x;     coord.Y = y;     hout = GetStdHandle(STD_OUTPUT_HANDLE);//获得标准输出句柄     SetConsoleCursorPosition(hout, coord);//移动光标     return; } NODE *input ()       //管理员创建单车信息  {     char s[100];     NODE *phead,*pnew,*pend;     phead=NULL;     icount=0;     pend=pnew=(NODE *)malloc(LEN);     for(;;)     {         printf("\t\t\t共享单车的车牌号(数字):");         scanf("%s",pnew->number);         strcpy(s,pnew->number);         if(strlen(pnew->number)>8)          {             printf("请输入少于8位的车牌号!\n");         }              for(j=0;(size_t)j<strlen(s);j++)         {             if(s[j]<'0'||s[j]>'9')             {                    printf("车牌号只能为数字!重新输入!\n");                 break;             }                  }         if(strlen(pnew->number)<=8&&(size_t)j==strlen(s))         {             break;         }     }     printf("\n\n\t\t\t请为该共享单车设置密码:");     scanf("%s",pnew->mima);     for(;;)     {         loop2:         menu_1();     //    system("color 07");         printf("请选择该共享单车的初始投放地点:");         scanf("%s",pnew->address);         strcpy(s,pnew->address);         for(j=0;(size_t)j<strlen(s);j++)         {             if(s[j]<'0'||s[j]>'7')             {                 system("cls");                 printf("\a");           //      system("color 0A");                    printf("\n\n\n\n\n\t\t\t\t抱歉,目前只有这几个投放地点呦! ^_^ \n");                    Sleep(500);                    system("cls");                    goto loop2;             }                  }         if(strlen(pnew->address)<=8&&(size_t)j==strlen(s))         {             break;         }      }     while(strcmp(pnew->number,"0")==1)     {         system("cls");         icount++;         if(icount==1)         {             pnew->next=NULL;             phead=pnew;         }          else         {             pnew->next=NULL;             pend->next=pnew;             pend=pnew;         }         pnew=(NODE *)malloc(LEN);         for(;;)         {             printf("共享单车的车牌号(数字):");             scanf("%s",pnew->number);             strcpy(s,pnew->number);             if(strlen(pnew->number)>8)              {                 printf("请输入少于8位的车牌号!\n");             }                  for(j=0;(size_t)j<strlen(s);j++)             {                 if(s[j]<'0'||s[j]>'9')                 {                        printf("车牌号只能为数字!重新输入!\n");                     break;                 }                      }             if(strlen(pnew->number)<=8&&(size_t)j==strlen(s))             {                 break;             }         }         printf("请为该共享单车设置密码:");         scanf("%s",pnew->mima);         for(;;)         {             loop3:             menu_1();         //    system("color 07");             printf("请选择该共享单车的初始投放地点:");             scanf("%s",pnew->address);             strcpy(s,pnew->address);             for(j=0;(size_t)j<strlen(s);j++)             {                 if(s[j]<'0'||s[j]>'7')                 {                     system("cls");                     printf("\a");             //        system("color 0A");                        printf("\n\n\n\n\n\t\t\t\t抱歉,目前只有这几个投放地点呦! ^_^  \n");                        Sleep(500);                        system("cls");                        goto loop3;                 }                      }             if(strlen(pnew->address)<=8&&(size_t)j==strlen(s))             {                 break;             }          }     }     printf("正在保存!");     savefile(phead);     free(pnew);     return phead; } void delete_node ()     //管理员删除单车信息  {     NODE *l,*n,*m;     char s[100];     m=l=readfile();     printf("\t\t\t\t请输入您要删除的共享单车的车牌号:\n");     scanf("%s",s);     while(l!=NULL)     {         if(strcmp(m->number,s)==0)         {             m=m->next;             printf("删除成功!\n");                 break;         }          if(strcmp(l->next->number,s)==0)         {             n=l;             n=n->next;             l->next=n->next;             printf("删除成功!\n");             break;         }          l=l->next;         if(l->next==NULL)         {             printf("\t\t\t\t无删除项\n");             break;         }      }      free(n);     savefile_(m); }  void modify ()    //管理员修改单车信息  {     NODE *ma,*m;     char z[100];     m=ma=readfile();     printf("\t\t\t\t请输入您要修改共享单车的车牌号:\n");     scanf("%s",z);     while(ma!=NULL)     {         if(strcmp(ma->number,z)==0)         {             printf("请修改该共享单车的密码:");             scanf("%s",ma->mima);             break;         }         ma=ma->next;         if(ma->next==NULL)         {             printf("无修改项!\n");             break;         }         }     savefile_(m); } NODE *look_for (NODE_USER *l)            //管理员查找单车信息   {     NODE *m;     char q[100];     m=readfile();     if(l->purse <=100)     {         printf("您的金额已经不足100元!请尽快充值!\n\n");         Sleep(500);         return NULL;     }     printf("\t\t\t\t请输入你要查找的共享单车的车牌号:\n");     scanf("%s",q);     while(m!=NULL)     {         if(strcmp(m->number,q)==0)         {             l->h=1;             printf("车牌号        密码      停放地点\n\n");             printf("%s\t  \t",m->number);             printf("%s\t  ",m->mima);             if(strcmp(m->address,"0")==0)                 printf("长安广场");             if(strcmp(m->address,"1")==0)                 printf("南大学城");             if(strcmp(m->address,"2")==0)                 printf("三森");             if(strcmp(m->address,"3")==0)                 printf("紫薇都市");             if(strcmp(m->address,"4")==0)                 printf("韦曲西街");             if(strcmp(m->address,"5")==0)                 printf("航天城");             if(strcmp(m->address,"6")==0)                 printf("韦曲南站");              if(strcmp(m->address,"7")==0)                 printf("秦岭沿线");              break;         }         m=m->next;     }     if(m==NULL)         printf("\n还没有投放该编号的车哦!");      printf("\n");     return m; }  NODE *look_for_0 ()      //管理员查找单车信息   {     NODE *m,*n;     int a,b=0;     char q[100],p[100];     n=m=readfile();     int flag;     int l = 8;     printf("\n");     printf("-->管理员端");      while (1)     {         b=0;         Gotoxy(53, 8);         printf("1.按车牌号查找");         Gotoxy(53, 10);          printf("2.按停放地点查询");         Gotoxy(53, 12);         printf("3.按车号和地点查询");         Gotoxy(53, 14);         printf("4.退出查询");         Gotoxy(52, l);         printf("★");         flag = _getch();         if (flag == Down)         {             l=l+2;             if (l == 16)                 l = 8;         }         if (flag == Up)         {             l=l-2;             if (l == 6)                 l = 14;         }         if (flag == 13)         {             if (l == 8)                {                 system("cls");                 printf("\n->请输入您要查找的车的车牌号:");                 scanf("%s",q);                 while(n!=NULL)                 {                     if(strcmp(n->number,q)==0)                     {                         b++;                     }                         n=n->next;                 }                 if(b!=0)                     printf("车牌号        密码      停放地点\n\n");                 while(m!=NULL)                 {                     if(strcmp(m->number,q)==0)                     {                         printf("%s\t  \t",m->number);                         printf("%s\t  ",m->mima);                         if(strcmp(m->address,"0")==0)                             printf("长安广场");                         if(strcmp(m->address,"1")==0)                             printf("南大学城");                         if(strcmp(m->address,"2")==0)                             printf("三森");                         if(strcmp(m->address,"3")==0)                             printf("紫薇都市");                         if(strcmp(m->address,"4")==0)                             printf("韦曲西街");                         if(strcmp(m->address,"5")==0)                             printf("航天城");                         if(strcmp(m->address,"6")==0)                             printf("韦曲南站");                          if(strcmp(m->address,"7")==0)                             printf("秦岭沿线");                          break;                     }                     m=m->next;                 }                 if(m==NULL)                     printf("\n还没有投放该编号的车哦!");                  printf("\n");                 _getch();             }             if (l == 10)             {                 system("cls");                 menu_1();                 printf("\n->请输入您要查找在该停放位置的车:");                 scanf("%s",q);                 while(n!=NULL)                 {                     if(strcmp(n->address,q)==0)                     {                         b++;                     }                         n=n->next;                 }                 if(b!=0)                     printf("车牌号        密码      停放地点\n\n");                 while(m!=NULL)                 {                     if(strcmp(m->address,q)==0)                     {                         printf("%s\t  \t",m->number);                         printf("%s\t  ",m->mima);                         if(strcmp(m->address,"0")==0)                             printf("长安广场");                         if(strcmp(m->address,"1")==0)                             printf("南大学城");                         if(strcmp(m->address,"2")==0)                             printf("三森");                         if(strcmp(m->address,"3")==0)                             printf("紫薇都市");                         if(strcmp(m->address,"4")==0)                             printf("韦曲西街");                         if(strcmp(m->address,"5")==0)                             printf("航天城");                         if(strcmp(m->address,"6")==0)                             printf("韦曲南站");                          if(strcmp(m->address,"7")==0)                             printf("秦岭沿线");                          a=1;                         printf("\n");                     }                     m=m->next;                 }                 if(a!=1)                 {                     printf("\n\n\n->该停放点的车都被骑走了哟!");                 }                 _getch();             }             if (l == 12)             {                 system("cls");                 printf("\n->请输入您要查找的车的车牌号:");                 scanf("%s",q);                 menu_1();                 printf("\n->请输入您要查找在该停放位置的车:");                 scanf("%s",p);                 while(m!=NULL)                 {                     if(strcmp(m->number,q)==0 && strcmp(m->address,p)==0)                     {                         printf("车牌号        密码      停放地点\n\n");                         printf("%s\t  \t",m->number);                         printf("%s\t  ",m->mima);                         if(strcmp(m->address,"0")==0)                             printf("长安广场");                         if(strcmp(m->address,"1")==0)                             printf("南大学城");                         if(strcmp(m->address,"2")==0)                             printf("三森");                         if(strcmp(m->address,"3")==0)                             printf("紫薇都市");                         if(strcmp(m->address,"4")==0)                             printf("韦曲西街");                         if(strcmp(m->address,"5")==0)                             printf("航天城");                         if(strcmp(m->address,"6")==0)                             printf("韦曲南站");                          if(strcmp(m->address,"7")==0)                             printf("秦岭沿线");                      }                     m=m->next;                 }                 if(m==NULL)                     printf("\n没有符合条件的车哦!");                  printf("\n");                 _getch();             }             if(l == 14)             {                 return NULL;             }              return m;         }     }         }  NODE *look_for_bike (char a[100])           //报修时查找单车信息   {     NODE *m;     m=readfile();     while(m!=NULL)     {         if(strcmp(m->number,a)==0)         {             break;         }         m=m->next;     }     if(m==NULL)         printf("\n亲!报修信息有误!还没有投放该编号的车哦!");      printf("\n");     return m; }  void send_back (NODE *d)      //用户归还共享单车  {     NODE *m,*l;     char s[100];     l=m=readfile();     while(m!=NULL)     {         if(strcmp(m->number,d->number)==0)         {             menu_1 ();             printf("\t\t\t请选择您归还的地点:");              scanf("%s",m->address);              strcpy(s,m->address);             for(j=0;(size_t)j<strlen(s);j++)             {                 if(s[j]<'0'||s[j]>'7')                 {                     system("cls");                     printf("\a");                        printf("\n\n\n\n\n\t\t\t\t抱歉,目前只有这几个投放地点呦! ^_^ \n");                        Sleep(500);                        system("cls");                 }                      }             if(strlen(m->address)<=8&&(size_t)j==strlen(s))             {                 break;             }          }         m=m->next;     }     if(m==NULL)         printf("\n还没有投放该编号的车哦!");      printf("\n");     savefile_(l);         }  NODE_USER *look_for2 ()       //登录  {      loop_:     NODE_USER *m,*n;     int i=0;     char c,a[100],b[100];     char x[100],password[100],p[100];     int l = 8;     system("cls");     n=m=readfile_user();     printf("-->请输入正确的账号和密码\n");      printf("\n\n\n\n");     printf("\t\t\t\t\t╔════════════════╗\t\t\t\n");     printf("\t\t\t\t\t║☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆║\t\t\t\n");     printf("\t\t\t\t\t║┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄║\t\t\t\n");     printf("\t\t\t\t\t║                                ║\t\t\t\n");     printf("\t\t\t\t\t║                                ║\t\t\t\n");     printf("\t\t\t\t\t║                                ║\t\t\t\n");     printf("\t\t\t\t\t╚════════════════╝\t\t\t\n");     while (1)     {         Gotoxy(44, 8);         printf("★我的账号:");         Gotoxy(44, 10);          printf("★我的密码:");         Gotoxy(44, l);         if(l == 8)         {             printf("☆");             Gotoxy(56,8);             scanf("%s",x);             Gotoxy(44,10);             printf("☆");             Gotoxy(56,10);             while((c=getch())!=13)             {                 if(c==8)                 {                     printf("\b \b");                     i--;                     continue;                 }                 password[i++]=c;                 putchar('*');             }             password[i]='\0';             printf("\n");         }         break;     }     while(m!=NULL)     {         if(strcmp(m->number_user,x)==0&&strcmp(m->mima_user,password)==0)         {             system("cls");             printf("登陆成功!");              break;         }         m=m->next;     }     if(m==NULL)     {         mm:         printf("\n\n\n\t\t\t\t\t 账号或密码错误!请重新输入!\n");         Sleep(500);         printf("是否忘记密码,需要找回?");          scanf("%s",p);         for(;;)         {             if(strcmp(p,"y")==0||strcmp(p,"Y")==0)             {                 printf("\n->请输入账号:");                 scanf("%s",a);                 printf("\n->请输入充值卡号:");                 scanf("%s",b);                 while(n!=NULL)                 {                     if(strcmp(n->number_user,a)==0 && strcmp(n->bank_card,b)==0)                     {                         system("cls");                         printf("\n\n->成功找回!下次可别忘了哟!");                          printf("\n\n我的用户名:%s",n->name_user);                         printf("\n\n我的账号:%s\t",n->number_user);                         printf("\n\n我的密码:%s\t",n->mima_user);                         printf("\n\n我的钱包:¥ %d",n->purse);                         getch();                         break;                     }                     n=n->next;                 }                 break;             }             else if(strcmp(p,"n")==0||strcmp(p,"N")==0)             {                 printf("->已取消操作!\n");                 Sleep(500);                 system("cls");                 break;             }             else if(strcmp(p,"y")!=0 && strcmp(p,"Y")!=0 && strcmp(p,"n")!=0 && strcmp(p,"N")!=0)             {                 printf("亲!只能输入y/n哦!手误的话重新输入吧!^_^\n");                 Sleep(500);                 system("cls");                 goto mm;             }         }         goto loop_;      }         printf("\n");     return m; } NODE_REPAIRMAN *look_for3 ()      //登录  {      loop_:     int i=0;     char c;     char x[100],password[100];     int l = 8;     NODE_REPAIRMAN *m;     system("cls");     m=readfile_repairman();     printf("-->请输入正确的账号和密码\n");      printf("\n\n\n\n");     printf("\t\t\t\t\t╔════════════════╗\t\t\t\n");     printf("\t\t\t\t\t║☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆║\t\t\t\n");     printf("\t\t\t\t\t║┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄║\t\t\t\n");     printf("\t\t\t\t\t║                                ║\t\t\t\n");     printf("\t\t\t\t\t║                                ║\t\t\t\n");     printf("\t\t\t\t\t║                                ║\t\t\t\n");     printf("\t\t\t\t\t╚════════════════╝\t\t\t\n");     while (1)     {         Gotoxy(44, 8);         printf("★我的账号:");         Gotoxy(44, 10);          printf("★我的密码:");         Gotoxy(44, l);         if(l == 8)         {             printf("☆");             Gotoxy(56,8);             scanf("%s",x);             Gotoxy(44,10);             printf("☆");             Gotoxy(56,10);             while((c=getch())!=13)             {                 if(c==8)                 {                     printf("\b \b");                     i--;                     continue;                 }                 password[i++]=c;                 putchar('*');             }             password[i]='\0';             printf("\n");         }         break;     }     while(m!=NULL)     {         if(strcmp(m->number_repairman,x)==0&&strcmp(m->mima_repairman,password)==0)         {             system("cls");             printf("登陆成功!");              break;         }         m=m->next;     }     if(m==NULL)     {         printf("\n\n\t\t\t\t\t 账号或密码错误!请重新输入!\n");         goto loop_;      }         printf("\n");     return m; } void look_for_user (NODE_USER *m)            //查找  {      NODE_USER *n;     n=readfile_user();     while(n!=NULL)     {         if(strcmp(n->number_user,m->number_user)==0)         {             system("cls");             printf("****我的信息->\n");              printf("用户名:%s\n",n->name_user);             printf("账号:%s\n",n->number_user);             printf("密码:%s\n",n->mima_user);             break;         }         n=n->next;     }         printf("\n"); } void look_for_repairman (NODE_REPAIRMAN *m)                //查找  {      NODE_REPAIRMAN *n;     n=readfile_repairman();     while(n!=NULL)     {         if(strcmp(n->number_repairman,m->number_repairman)==0)         {             system("cls");             printf("****我的信息->\n");              printf("用户名:%s\n",n->name_repairman);             printf("账号:%s\n",n->number_repairman);             printf("密码:%s\n",n->mima_repairman);             break;         }         n=n->next;     }         printf("\n"); } void savefile(NODE *phead)          //写文件  {     FILE *fp;     NODE *p;     if((fp = fopen("bike.txt", "a+"))==NULL)         printf("\a error! Can not open the file!"); //    fputs("车牌号 密码 停车点\n",fp);      for(p=phead;p!=NULL;p=p->next)     {         fprintf(fp,"%s %s %s \n",p->number,p->mima,p->address);     }     printf("\n\n->按任意键返回!\n");     fclose(fp); } void savefile_(NODE *phead)    //写文件  {     FILE *fp;     NODE *p;     if((fp = fopen("bike.txt", "w"))==NULL)         printf("\a error! Can not open the file!");     for(p=phead;p!=NULL;p=p->next)     {         fprintf(fp,"%s %s %s \n",p->number,p->mima,p->address);     }     fclose(fp); } void savefile_user_bike(NODE *m)      //写文件  {     FILE *fp;     if((fp = fopen("repairman_.txt", "a+"))==NULL)         printf("\a error! Can not open the file!");     fprintf(fp,"%s %s %s \n",m->number,m->mima,m->address);     printf("\n\n->按任意键返回!\n");     fclose(fp); } void savefile_user(NODE_USER *m)      //写文件  {     FILE *fp;     if((fp = fopen("user.txt", "a+"))==NULL)         printf("\a error! Can not open the file!");         fprintf(fp,"%s %s %s %s %d \n",m->name_user,m->number_user,m->mima_user,m->bank_card,m->purse);     printf("\n\n->按任意键返回!\n");     fclose(fp); } void savefile_user_(NODE_USER *n)     //写文件  {     NODE_USER *m;     FILE *fp;     if((fp = fopen("user.txt", "w"))==NULL)         printf("\a error! Can not open the file!");     for(m=n;m!=NULL;m=m->next)     {         fprintf(fp,"%s %s %s %s %d \n",m->name_user,m->number_user,m->mima_user,m->bank_card,m->purse);     }     printf("\n\n->按任意键返回!\n");     fclose(fp); } void savefile_repairman(NODE_REPAIRMAN *m)            //写文件  {     FILE *fp;     if((fp = fopen("repairman.txt", "a+"))==NULL)         printf("\a error! Can not open the file!");         fprintf(fp,"%s %s %s \n",m->name_repairman,m->number_repairman,m->mima_repairman);     printf("\n\n->按任意键返回!\n");     fclose(fp); } void savefile_repairman_check(NODE_REPAIRMAN *m)                                                         //写文件  {     FILE *fp;     if((fp = fopen("repairman_check.txt", "a+"))==NULL)         printf("\a error! Can not open the file!");     fprintf(fp," %s %s %s \n",m->name_repairman,m->number_repairman,m->mima_repairman); /*    fprintf(fp,"%s\n",m->name_repairman);     fprintf(fp,"%s\n",m->number_repairman);     fprintf(fp,"%s\n",m->mima_repairman);*/     printf("\n\n->按任意键返回!\n");     fclose(fp); } void savefile_repairman_check_1()  //写文件  {     FILE *fp;     fp = fopen("repairman_check.txt", "w");     fclose(fp); } NODE *readfile()            //读文件  {      NODE *head,*u;     FILE *fp;     head=(NODE *)malloc(LEN);     head->next=NULL;     fp=fopen("bike.txt","a+");     fclose(fp);     if((fp=fopen("bike.txt","r"))==NULL)       {           printf("\n--->没有找到文件!\n");           Sleep(1000);         exit(0);     }    /*  else     {         rewind(fp);          fgets(a,66,fp);     }      */     while(!feof(fp))     {         u=(NODE *)malloc(LEN);         u->next=NULL;         fscanf(fp,"%s %s %s \n",u->number,u->mima,u->address);         u->next=head->next;         head->next=u;     }     fclose(fp);     return (head->next); }  NODE_USER *readfile_user()        //读文件  {      NODE_USER *head,*m;     FILE *fp;     head=(NODE_USER *)malloc(LEN_);     head->next=NULL;     fp=fopen("user.txt","a+");     fclose(fp);     if((fp=fopen("user.txt","r"))==NULL)       {           printf("\n--->没有找到文件!\n");           Sleep(1000);         exit(0);     }     while(!feof(fp))     {         m=(NODE_USER *)malloc(LEN_);         m->next=NULL;         fscanf(fp,"%s %s %s %s %d \n",m->name_user,m->number_user,m->mima_user,m->bank_card,&m->purse);         m->next=head->next;         head->next=m;     }     fclose(fp);     return (head->next); }  NODE *readfile_user_bike() {     char ch;     NODE *head,*m;     FILE *fp;     head=(NODE *)malloc(LEN);     head->next=NULL;     fp=fopen("repairman_.txt","a+");     fclose(fp);     if((fp=fopen("repairman_.txt","r"))==NULL)       {           printf("\n--->没有找到文件!\n");           Sleep(1000);         exit(0);     }     ch=fgetc(fp);     if(ch==EOF)     {         printf("还没有人报修呢!可以休息等等哦!\n\n");         k=1;         return NULL;     }     while(!feof(fp))     {         m=(NODE *)malloc(LEN);         m->next=NULL;         fscanf(fp,"%s %s %s \n",m->number,m->mima,m->address);         m->next=head->next;         head->next=m;     }     fclose(fp);     return (head->next); } NODE_REPAIRMAN *readfile_repairman()   //读文件  {      NODE_REPAIRMAN *head,*m;     FILE *fp;     head=(NODE_REPAIRMAN *)malloc(LEN_);     head->next=NULL;     fp=fopen("repairman.txt","a+");     fclose(fp);     if((fp=fopen("repairman.txt","r"))==NULL)       {           printf("\n--->没有找到文件!\n");           Sleep(1000);         exit(0);     }     while(!feof(fp))     {         m=(NODE_REPAIRMAN *)malloc(LEN_);         m->next=NULL;         fscanf(fp,"%s %s %s \n",m->name_repairman,m->number_repairman,m->mima_repairman);         m->next=head->next;         head->next=m;     }     fclose(fp);     return (head->next); } NODE_REPAIRMAN *readfile_repairman_check()      //读文件  {      char ch;     NODE_REPAIRMAN *head,*m;     FILE *fp;     head=(NODE_REPAIRMAN *)malloc(LEN_);     head->next=NULL;     fp=fopen("repairman_check.txt","a+");     fclose(fp);     if((fp=fopen("repairman_check.txt","r"))==NULL)       {           printf("\n--->没有找到文件!\n");           Sleep(1000);         exit(0);     }     ch=fgetc(fp);     if(ch==EOF)     {         w=0;     }     while(!feof(fp))     {         m=(NODE_REPAIRMAN *)malloc(LEN_);         m->next=NULL;         fscanf(fp," %s %s %s \n",m->name_repairman,m->number_repairman,m->mima_repairman);         m->next=head->next;         head->next=m;     }     fclose(fp);     return (head->next); }  void submit() {     int i;      system("cls");        printf("\n\n\n\n\t\t\t\t");        printf("★正在提交您的信息!★");        printf("\n\t\t\t     ");       for(i=0;i<7;i++)        {         printf("->  ");         Sleep(300);     }     system("cls"); } void goodbye() {     int i;      system("cls");        printf("\n\n\n\n\t\t\t\t");        printf("★正在退出!★");        printf("\n\t\t\t     ");       for(i=0;i<5;i++)        {         printf("->  ");         Sleep(300);     }     system("cls"); } void show () {     printf("-->使用指南!\n\n");     printf("    欢迎使用共享单车系统!该管理系统面向大众,可使用手机号自\n\n");     Sleep(500);     printf("行注册用户端以及维修员,用户完成注册后即可使用,维修员需要等\n\n");     Sleep(500);     printf("待管理员审核通过即可工作,每个手机号只能注册一次。\n\n\n");     Sleep(500);     printf("    用户租车收费:每半个小时1元,不满半小时按照一小时计算。\n\n\n\n\n\n\n");     Sleep(500);     printf("感谢您的阅读。按任意键进入系统 ^_^ ");     getch(); } void check () {     NODE_REPAIRMAN *d;     int flag;     int l = 8;     printf("\n");     printf("-->管理员端");      while (1)     {         Gotoxy(53, 8);         printf("1.待认证的维修员 ");         Gotoxy(53, 10);          printf("2.已注册的维修员");         Gotoxy(53, 12);         printf("3.返回上一层");         Gotoxy(52, l);         printf("★");         flag = _getch();         if (flag == Down)         {             l=l+2;             if (l == 14)                 l = 8;         }         if (flag == Up)         {             l=l-2;             if (l == 6)                 l = 12;         }         if (flag == 13)         {             if (l == 8)                {                 system("cls");                 d=readfile_repairman_check();                 print_repairman_(d);                 _getch();             }             if (l == 10)             {                 system("cls");                 d=readfile_repairman();                 print_repairman_1(d);                 printf("\n\n->按任意键继续!");                 getch();                 system("cls");                 _getch();             }             if (l == 12)             {                 system("cls");                 return;             }         }     } } void menu_1 () {     printf("\t\t ----------------------------------------------------------- \t\t\t\n");     printf("\t\t|                  共享单车 长安区停放地点                  |\t\t\t\n");     printf("\t\t|-----------------------------------------------------------|\t\t\t\n");     printf("\t\t|  :长安广场      :南大学城      :三森    |\t\t\t\n");     printf("\t\t|                                                           |\t\t\t\n");     printf("\t\t|  :紫薇都市      :韦曲西街      :航天城  |\t\t\t\n");     printf("\t\t|                                                           |\t\t\t\n");     printf("\t\t|  :韦曲南站      :秦岭沿线                     |\t\t\t\n");     printf("\t\t ----------------------------------------------------------- \t\t\t\n"); }  void sign_in () {     NODE_USER *n;     NODE_REPAIRMAN *l;     int flag;     int z = 8;     system("cls");     while (1)     {         Gotoxy(53, 8);         printf("1.管理员登陆");         Gotoxy(53, 10);          printf("2.用户登陆");         Gotoxy(53, 12);         printf("3.维修员登陆");         Gotoxy(53, 14);         printf("0.退出登录");         Gotoxy(52, z);         printf("★");         flag = _getch();         if (flag == Down)         {             z=z+2;             if (z == 16)                 z = 8;         }         if (flag == Up)         {             z=z-2;             if (z == 6)                 z = 14;         }         if (flag == 13)         {             if (z == 8)             {                 system("cls");                 admin();                 _getch();             }             if (z == 10)             {                     n=look_for2();                     user (n);                     system("cls");                     _getch();             }             if (z == 12)   //权限在老师端之上才能注册             {                     l=look_for3();                     repairman_(l);                     _getch();             }             if (z == 14)             {                 system("cls");                 return;             }         }     } } void print ()           //输出单车信息  {     NODE *m;     m=readfile();     printf("车牌号           密码       停放地点\n\n");     while(m!=NULL)     {         printf("%s\t\t",m->number);         printf("%s\t  ",m->mima);         if(strcmp(m->address,"0")==0)             printf("长安广场");         if(strcmp(m->address,"1")==0)             printf("南大学城");         if(strcmp(m->address,"2")==0)             printf("三森");         if(strcmp(m->address,"3")==0)             printf("紫薇都市");         if(strcmp(m->address,"4")==0)             printf("韦曲西街");         if(strcmp(m->address,"5")==0)             printf("航天城");         if(strcmp(m->address,"6")==0)             printf("韦曲南站");          if(strcmp(m->address,"7")==0)             printf("秦岭沿线");          m=m->next;         printf("\n\n");     }     }  void print_user(NODE_USER *m) {     int i=0;     while(m!=NULL)     {         i++;         printf("第%d个用户:\t",i);         printf("用户名:%-16s",m->name_user);         printf("账号:%-16s\t",m->number_user);         printf("密码:%-16s\t",m->mima_user);         printf("账户余额:¥ %d",m->purse);         m=m->next;         printf("\n\n");     }     printf("->按任意键继续!");     getch(); } void print_repairman_(NODE_REPAIRMAN *m) {     int i=0;     char n[10];     if(w==0)     {         printf("\n-->还没有人申请哦!\n");         printf("\n->请按任意键继续。");          return;     }     printf("-->正等待认证通过\n\n\n");      while(m!=NULL)     {         i++;         printf("第%d个申报维修人员:\t",i);         printf("用户名:%s\t\t",m->name_repairman);         printf("账号:%s\t\t",m->number_repairman);         printf("密码:%s\t\t",m->mima_repairman);         printf("\n\n是否通过?(y/n):");          scanf("%s",n);         if(strcmp(n,"y")==0 || strcmp(n,"Y")==0)         {             printf("\n\n->已通过认证!\n");             savefile_repairman(m);          }         if(strcmp(n,"n")==0 || strcmp(n,"N")==0)         {             printf("\n\n->已驳回申诉!\n");         }         m=m->next;         printf("\n\n");     }     savefile_repairman_check_1(); } void print_repairman_1(NODE_REPAIRMAN *m) {     int i=0;     while(m!=NULL)     {         i++;         printf("第%d个维修人员:",i);         printf("用户名:%-15s",m->name_repairman);         printf("账号:%-18s",m->number_repairman);         printf("密码:%s",m->mima_repairman);         m=m->next;         printf("\n\n");     } } void print_repairman ()     //输出报修单车信息  {     NODE *m;     m=readfile_user_bike();     if(k==0)         printf("车牌号           密码       停放地点\n\n");     while(m!=NULL)     {         printf("%s\t\t",m->number);         printf("%s\t  ",m->mima);         if(strcmp(m->address,"0")==0)             printf("长安广场");         if(strcmp(m->address,"1")==0)             printf("南大学城");         if(strcmp(m->address,"2")==0)             printf("三森");         if(strcmp(m->address,"3")==0)             printf("紫薇都市");         if(strcmp(m->address,"4")==0)             printf("韦曲西街");         if(strcmp(m->address,"5")==0)             printf("航天城");         if(strcmp(m->address,"6")==0)             printf("韦曲南站");          if(strcmp(m->address,"7")==0)             printf("秦岭沿线");          m=m->next;         printf("\n\n");     }     } void welcome()         //输入密钥进入管理员  {      int i=0;     char c;     char password[100];     char num[100];     strcpy(num,"152323");     loopback3:     system("cls");     printf(" \n\n\n\n\n\n\n\n");     printf("\t\t\t\t欢迎使用共享单车管理系统!\n\n\n");     printf("\t\t\t\t请输入管理员密码:");     while((c=getch())!=13)     {         if(c==8)         {             printf("\b \b");             i--;             continue;         }         password[i++]=c;         putchar('*');     }     password[i]='\0';     if(strcmp(password,num)==0)     {           system("cls");     }     else     {         printf("\t\t\t\t 密码错误!");         //密码错误重新输出          Sleep(100);         system("cls");         goto loopback3;     }  } void user (NODE_USER *l) {     time_t first,second;     double s;     int p=1,q=0,t=0;     char n[100],yn[100],h[100];      NODE *m,*g,*v,*y;     NODE_USER *o,*k,*f;     int flag;     int z = 4,d;     f=k=o=readfile_user();     while(k!=NULL)     {         if(strcmp(l->number_user,k->number_user)==0)             break;         k=k->next;     }     printf("\n");     printf("-->用户端");      while (1)     {         q=0;         Gotoxy(53, 4);          printf("1.附近的车");         Gotoxy(53, 6);         printf("2.立即用车");         Gotoxy(53, 8);          printf("3.立即还车");         Gotoxy(53, 10);         printf("4.我要报修");         Gotoxy(53, 12);         printf("5.我的信息");         Gotoxy(53, 14);         printf("6.我去充值");         Gotoxy(53, 16);          printf("0.退出登录");         Gotoxy(52, z);         printf("★");         flag = _getch();         if (flag == Down)         {             z=z+2;             if (z == 18)                 z = 4;         }         if (flag == Up)         {             z=z-2;             if (z == 2)                 z = 16;         }         if (flag == 13)         {             if(z == 4)             {                 system("cls");                 menu_1();                 printf("请选择您所在的地点代号:");                  scanf("%s",h);                 y=v=readfile();                 while(y!=NULL)                 {                     if(strcmp(y->address,h)==0)                     {                         t++;                     }                     y=y->next;                 }                 if(t!=0)                     printf("车牌号        密码      停放地点\n\n");                 while(v!=NULL)                 {                     if(strcmp(v->address,h)==0)                     {                         q=1;                         printf("%s\t  \t",v->number);                         printf("%s\t  ",v->mima);                         if(strcmp(v->address,"0")==0)                             printf("长安广场");                         if(strcmp(v->address,"1")==0)                             printf("南大学城");                         if(strcmp(v->address,"2")==0)                             printf("三森");                         if(strcmp(v->address,"3")==0)                             printf("紫薇都市");                         if(strcmp(v->address,"4")==0)                             printf("韦曲西街");                         if(strcmp(v->address,"5")==0)                             printf("航天城");                         if(strcmp(v->address,"6")==0)                             printf("韦曲南站");                          if(strcmp(v->address,"7")==0)                             printf("秦岭沿线");                         printf("\n");                      }                     v=v->next;                 }                 if(q==0)                 {                     printf("\n\n->这里的小车都被骑走啦!");                      Sleep(500);                 }                 printf("\n");                 getch();                 system("cls");             }              if (z == 6)                {                 system("cls");                 if(k->h==1)                 {                     printf("->您已经在使用共享单车了!一个账号只能同时租一个哦!\n");                     printf("->按任意键继续。。。\n");                     getch();                 }                 else                 {                     system("cls");                     g=look_for (k);                     first=time(NULL);                     printf("->按任意键继续。。。\n");                     getch();                 }                 _getch();             }             if (z == 8)             {                 system("cls");                 if(k->h==1)                 {                     send_back(g);                     second=time(NULL);                     s=difftime(second,first);                     k->h=0;                 }                  else                 {                     printf("还没有借车呐!快去骑共享单车哦!\n\n");                     goto mn;                                       }                 while(1)                 {                     if(s > 1800.0)                     {                         s=s-1800.0;                         p++;                     }                     else                         break;                 }                 system("cls");                 if(p==1)                 {                     k->purse=k->purse-1;                     printf("您总共骑行%0.1f秒,您需要支付 $1 yuan\n",s);                     printf("\n\n账户余额%d元",k->purse);                     savefile_user_(o);                     }                     else                     printf("您总共骑行%0.1f秒,您需要支付 $%d yuan\n",s,p);                 mn:                 _getch();             }             if (z == 10)             {                 system("cls");                 loop__1:                 while(1)                 {                     printf("请输入您要报修的共享单车的车牌号:");                     scanf("%s",n);                     m=look_for_bike (n);                     if(m!=0)                     {                         break;                     }                 }                 printf("您确定要报修吗?(y/n)");                 scanf("%s",yn);                 for(;;)                 {                     if(strcmp(yn,"y")==0||strcmp(yn,"Y")==0)                     {                         printf("感谢您的反馈!如果我们确认申报无误的话,会给您加分哦!\n");                         savefile_user_bike(m);                         break;                     }                     else if(strcmp(yn,"n")==0||strcmp(yn,"N")==0)                     {                         printf("->已取消操作!\n");                         Sleep(500);                         system("cls");                         break;                     }                     else if(strcmp(yn,"y")!=0 && strcmp(yn,"Y")!=0 && strcmp(yn,"n")!=0 && strcmp(yn,"N")!=0)                     {                         printf("亲!只能输入y/n哦!手误的话重新输入吧!^_^\n");                         Sleep(500);                         system("cls");                         goto loop__1;                     }                 }                 _getch();             }             if (z == 12)             {                 system("cls");                 look_for_user (l);                 printf("浏览完毕后,按任意键继续!\n");                 _getch();             }             if (z == 14)             {                 system("cls");                 printf("您已绑定充值卡!请输入充值金额:");                 scanf("%d",&d);                 while(f!=NULL)                 {                     if(strcmp(l->number_user,f->number_user)==0)                         break;                     f=f->next;                 }                  printf("\n当前余额%d元,充值后为%d元",f->purse,f->purse+d);                 f->purse=f->purse+d;                 savefile_user_(o);                 printf("\n\n->充值成功!");                  Sleep(1000);                 system("cls");             }             if (z == 16)             {                 return;             }         }     } } void repairman_ (NODE_REPAIRMAN *l) {     int flag;     int z = 8;     system("cls");     printf("\n->维修员端");     while (1)     {         Gotoxy(53, 8);         printf("1.我的信息");         Gotoxy(53, 10);          printf("2.用户报修车辆");         Gotoxy(53, 12);         printf("0.返回上一层");         Gotoxy(52, z);         printf("★");         flag = _getch();         if (flag == Down)         {             z=z+2;             if (z == 14)                 z = 8;         }         if (flag == Up)         {             z=z-2;             if (z == 6)                 z = 12;         }         if (flag == 13)         {             if (z == 8)             {                 system("cls");                 look_for_repairman (l);                 _getch();             }             if (z == 10)             {                     system("cls");                     print_repairman ();                     _getch();             }             if (z == 12)   //权限在老师端之上才能注册             {                 system("cls");                 return;              }         }     }     } void admin () {     NODE_USER *m;     welcome();      NODE *phead;     int flag;     int l = 4;     printf("\n");     printf("-->管理员端");      while (1)     {         Gotoxy(53, 4);         printf("1.添加单车");         Gotoxy(53, 6);          printf("2.删除单车");         Gotoxy(53, 8);         printf("3.修改单车密码");         Gotoxy(53, 10);          printf("4.查找单车");         Gotoxy(53, 12);         printf("5.所有单车及其盈利");         Gotoxy(53, 14);         printf("6.用户信息");         Gotoxy(53, 16);         printf("7.维修员信息");         Gotoxy(53, 18);          printf("0.退出登录");         Gotoxy(52, l);         printf("★");         flag = _getch();         if (flag == Down)         {             l=l+2;             if (l == 20)                 l = 4;         }         if (flag == Up)         {             l=l-2;             if (l == 2)                 l = 18;         }         if (flag == 13)         {             if (l == 4)             {                 system("cls");                 phead=input ();                 printf("\a 保存成功!");                 Sleep(500);                 system("cls");                 _getch();             }             if (l == 6)             {                 system("cls");                 delete_node ();                 system("cls");                 _getch();             }             if (l == 8)                {                 system("cls");                 modify ();                 system("cls");                 _getch();             }             if (l == 10)             {                 system("cls");                 look_for_0();                 system("cls");                 _getch();             }             if (l == 12)             {                 system("cls");                 printf("--->读取成功!\n\n");                 print() ;                 getch();             //    system("cls");                 _getch();             }             if (l == 14)             {                 system("cls");                 m=readfile_user();                 print_user(m);                 system("cls");                 _getch();             }             if (l == 16)             {                 system("cls");                 check();                 system("cls");                 _getch();             }             if (l == 18)             {                 system("cls");                 return;             }         }     }     } void choice() {     char c[5];     int flag;     int z = 8;     while (1)     {         Gotoxy(53, 8);         printf("1.登录");         Gotoxy(53, 10);          printf("2.注册");         Gotoxy(53, 12);         printf("3.退出");         Gotoxy(52, z);         printf("★");         flag = _getch();         if (flag == Down)         {             z=z+2;             if (z == 14)                 z = 8;         }         if (flag == Up)         {             z=z-2;             if (z == 6)                 z = 12;         }         if (flag == 13)         {             if (z == 8)             {                 sign_in ();             }             if (z == 10)             {                     NODE_USER *m,*n;                     m=(NODE_USER *)malloc(LEN_);                     m->next=NULL;                     NODE_REPAIRMAN *k,*l;                     k=(NODE_REPAIRMAN *)malloc(LEN_1);                     k->next=NULL;                     system("cls");                     printf("注册用户请按1\t注册维修员请按2(需要等待审核)\n\n");                     printf("请选择:");                     scanf("%s",c);                     if(strcmp(c,"1")==0)                     {                         printf("★亲!请按照指示操作完成用户注册哦!\n");                         for(;;)                         {                             printf("\n\n请输入绑定的手机号(账号):");                             scanf("%s",m->number_user);          //报修时查找单车信息                               n=readfile_user();                             while(n!=NULL)                             {                                 if(strcmp(n->number_user,m->number_user)==0)                                 {                                     printf("亲!这个手机号已经被注册过了呦!");                                     break;                                 }                                 n=n->next;                             }                             if(n==NULL)                             {                                 printf("\t\t\t\t\t-------这个账号还没有人注册过呢!");                                 break;                                 }                             printf("\n");                         }                          for(;;)                         {                             printf("\n\n请设置密码:");                             scanf("%s",m->mima_user);                             if(strlen(m->mima_user)<=2)                                 printf("\t\t\t\t\t安全系数★★,很不安全哦!");                             if(strlen(m->mima_user)<=6&&strlen(m->mima_user)>2)                                 printf("\t\t\t\t\t安全系数★★★,一般安全!");                             if(strlen(m->mima_user)>7)                                 printf("\t\t\t\t\t安全系数★★★★★,非常安全!");                                 printf("\n\n请确认密码:");                              scanf("%s",m->mima_user2);                             printf("\n\n请输入您的年龄:");                             scanf("%d",&m->age);                             if(m->age <= 10)                             {                                 printf("年龄过小哦!长大再骑吧!共享单车伴你成长!\n");                                 system("cls");                                 break;                             }                             if(m->age >= 65)                             {                                 printf("您已超过使用年限!抱歉!\n");                                 system("cls");                                 break;                             }                             if(strcmp(m->mima_user,m->mima_user2)==0)                             {                                 system("cls");                                 submit();                                 printf("\n->注册成功!");                                 printf("\n\n快为自己起一个霸气的用户名吧!\n");                                 scanf("%s",m->name_user);                                 printf("\n\n请先给自己钱包充值哦!(200元)");                                 printf("\n\n请输入充值卡号(系统将自动为您扣除):");                                  scanf("%s",m->bank_card);                                 m->purse=200;                                 savefile_user(m);                                  break;                             }                             if(strcmp(m->mima_user,m->mima_user2)!=0)                             {                                 printf("\a亲,两次输入密码不一样哦!\n");                                 Sleep(500);                             }                             }                     }                     if(strcmp(c,"2")==0)                     {                         printf("★亲!请按照指示操作完成维修员注册哦!\n");                         for(;;)                         {                             printf("\n\n请输入绑定的手机号(账号):");                             scanf("%s",k->number_repairman);                             getchar();                             l=readfile_repairman();                             while(l!=NULL)                             {                                 if(strcmp(l->number_repairman,k->number_repairman)==0)                                 {                                     printf("亲!这个手机号已经被注册过了呦!");                                     break;                                 }                                 l=l->next;                             }                             if(l==NULL)                             {                                 printf("\t\t\t\t\t-------这个账号还没有人注册过呢!");                                 break;                                 }                             printf("\n");                         }                          for(;;)                         {                             printf("\n\n请设置密码:");                             scanf("%s",k->mima_repairman);                             getchar();                             if(strlen(k->mima_repairman)<=2)                                 printf("\t\t\t\t\t安全系数★★,很不安全哦!");                             if(strlen(k->mima_repairman)<=6&&strlen(k->mima_repairman)>2)                                 printf("\t\t\t\t\t安全系数★★★,一般安全!");                             if(strlen(k->mima_repairman)>7)                                 printf("\t\t\t\t\t安全系数★★★★★,非常安全!");                                 printf("\n\n请确认密码:");                              scanf("%s",k->mima_repairman2);                             printf("\n\n请输入您的年龄:");                             scanf("%d",&k->age);                             getchar();                             if(k->age <= 10)                             {                                 printf("年龄过小哦!不能注册维修员,共享单车伴你成长!\n");                                 system("cls");                                 break;                             }                             if(k->age >= 65)                             {                                 printf("您已超过使用年限!抱歉!\n");                                 system("cls");                                 break;                             }                             if(strcmp(k->mima_repairman,k->mima_repairman2)==0)                             {                                 system("cls");                                 submit();                                 printf("\n->申请成功!等待管理员审核!");                                 printf("\n\n快为自己起一个霸气的用户名吧!\n");                                 scanf("%s",k->name_repairman);                                 savefile_repairman_check(k);                                  break;                             }                             if(strcmp(k->mima_repairman,k->mima_repairman2)!=0)                             {                                 printf("\a亲,两次输入密码不一样哦!\n");                                 Sleep(500);                             }                             }                     }                     _getch();             }             if (z == 12)               {                 goodbye();                 exit(0);             }         }     } } //    admin();        //管理员 //    user();      //用户 //repairman();      //维修员  int main (void) {     system("color F1");     show ();     system("cls");     choice(); }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自由互联。

本文共计8323个文字,预计阅读时间需要34分钟。

如何用C语言编写一个高效的长尾词查询功能的共享单车管理系统?

原文:本文字例为大型分享了C语言实现共享单车管理系统的整体代码,供大家参考。具体内容如下+1.功能模块图;+2.各个模块的详细功能描述。

1.登录:登录分为用户登录和管理员登录。

改写后:

本文展示了C语言编写的共享单车管理系统整体代码示例,可供参考。内容主要包括:+1.功能模块图;+2.各模块功能详解。

1.登录:系统登录分为用户和管理员两种。

本文实例为大家分享了C语言实现共享单车管理系统的具体代码,供大家参考,具体内容如下

1.功能模块图;

如何用C语言编写一个高效的长尾词查询功能的共享单车管理系统?

2.各个模块详细的功能描述。

1.登陆:登陆分为用户登陆,管理员登陆以及维修员登录,登陆后不同的用户所执行的操作不同,权限不同。

(1)管理员登录:管理员登陆之后,可使用键盘的上下键来控制菜单上的选项,管理员权限不多,可执行最多的操作,可以对单车进行投放,删除,修改,查找,车牌号排序,查看所有单车信息,所有用户信息,管理员能通过或驳回正在申请注册的维修员,还可以查看完全通过认证的维修员。

(2)用户登录:用户登录时需要输入注册时的账号和密码,或者是之前注册的有效账号及密码,用户可以查看自己附近的车,立即用车当车密码出现的时候就开始计时了,还车后停止计时,一个时间段内没有还车不能再借车了,另外还有报修,报修的信息会上传到维修员那里,还可以查看自己的信息修改自己的信息,当用户账号不足100元时不能再借车了,所以还有充值这一项功能。

(3)维修员登录:维修员登录时也需要账户和密码(管理员认证的),维修员权限较大,只可以查看自己的信息,修改自己的信息,以及查看用户报修的单车信息。

2.注册:注册有用户注册和维修员注册。

(1)用户注册:用户注册时,手机号即为登录账户,有查重的功能,每个手机号只能注册一个用户,设置密码时,系统会对你的密码的安全系数进行评分,以及需要确认密码,两次不一致注册失败,输入年龄,年龄不满10岁不可注册,注册成功后需要起一个用户名,需要绑定充值卡,首次充值200元,即可登录。

(2)维修员注册:维修员注册时,手机号即为登录账户,也有查重的功能,每个手机号只能注册一个用户,设置密码时,系统会对你的密码的安全系数进行评分,以及需要确认密码,两次不一致注册失败,后需要起一个用户名,输入年龄,年龄不满18岁不可注册,但此时并没有注册成功,只是完成了申请,不可登录,等待管理员认证,通过,注册成功,即可登录,驳回,注册失败。

3.增加:增加单车信息到文件 中。

4.修改:修改单车信息,修改用户个人信息,修改维修员个人信息。

5.删除:删除单车。

6.查找:查找单车并按所选顺序查看。

3.详细设计

(1).功能函数的调用关系图

(2).各功能函数的数据流程图

a.(查找单车)

b.(增加单车)

c.(删除单车)

d.(修改单车信息)

e.(查看所有用户信息)

f.(查看所有维修员信息)

g.(注册)

h.(登陆)

3.代码:

#include<stdio.h> #include<string.h>  #include<stdlib.h> #include<conio.h> #include<windows.h>  #include<time.h> #include<process.h> #define Up 0x48 #define Down 0x50 #define LEN sizeof(struct node) #define LEN_ sizeof(struct node_user) #define LEN_1 sizeof(struct node_repairman) typedef struct node {         char number[100];     char mima[100];     char address[100];     char profit[100];     struct node *next;     }NODE; typedef struct node_user {         char number_user[200];     char mima_user[100];     char mima_user2[100];     char name_user[200];     char bank_card[200];     int age;     int h;     int purse;     struct node_user *next;     }NODE_USER; typedef struct node_repairman {         char number_repairman[100];     char mima_repairman[100];     char mima_repairman2[100];     char name_repairman[100];     int age;     struct node_repairman *next;     }NODE_REPAIRMAN; int icount,j,w=1,k; //**********************函数声明************************** void Gotoxy(int x, int y);  NODE *input ();     void show ();                             //管理员创建单车信息  NODE * add_node (NODE *phead);                  //管理员增加单车信息  void delete_node ();                      //管理员删除单车信息  void print (); void print_user(NODE_USER *m); void print_repairman_(NODE_REPAIRMAN *m); void print_repairman_1(NODE_REPAIRMAN *m);               //输出  void modify ();       //修改  NODE *look_for (); void look_for2 (NODE_USER *n); NODE_REPAIRMAN *look_for3 (); void look_for_bike (NODE *a); NODE *look_for_repetition (char a[20]);                 //查找  void savefile(NODE *phead);       //写文件(A+)  void savefile_(NODE *phead); void savefile_user(NODE *phead); void savefile_user_(NODE_USER *m); void savefile_repairman_check_1();            //写文件(W)  NODE *readfile(); NODE_USER *readfile_user();     NODE_REPAIRMAN *readfile_repairman(); void user (NODE_USER *l); void repairman_ (NODE_REPAIRMAN *l); void admin ();      //读文件  void welcome();               //欢迎函数  void send_back (NODE *d);  void sort_num(); void sign_in ();                                                             void menu_1 ();           //菜单  void choice (); void goodbye();  //******************************************************** void Gotoxy(int x, int y)  //光标移动 {     HANDLE hout;//定义句柄变量     COORD coord;//定义结构体     coord.X = x;     coord.Y = y;     hout = GetStdHandle(STD_OUTPUT_HANDLE);//获得标准输出句柄     SetConsoleCursorPosition(hout, coord);//移动光标     return; } NODE *input ()       //管理员创建单车信息  {     char s[100];     NODE *phead,*pnew,*pend;     phead=NULL;     icount=0;     pend=pnew=(NODE *)malloc(LEN);     for(;;)     {         printf("\t\t\t共享单车的车牌号(数字):");         scanf("%s",pnew->number);         strcpy(s,pnew->number);         if(strlen(pnew->number)>8)          {             printf("请输入少于8位的车牌号!\n");         }              for(j=0;(size_t)j<strlen(s);j++)         {             if(s[j]<'0'||s[j]>'9')             {                    printf("车牌号只能为数字!重新输入!\n");                 break;             }                  }         if(strlen(pnew->number)<=8&&(size_t)j==strlen(s))         {             break;         }     }     printf("\n\n\t\t\t请为该共享单车设置密码:");     scanf("%s",pnew->mima);     for(;;)     {         loop2:         menu_1();     //    system("color 07");         printf("请选择该共享单车的初始投放地点:");         scanf("%s",pnew->address);         strcpy(s,pnew->address);         for(j=0;(size_t)j<strlen(s);j++)         {             if(s[j]<'0'||s[j]>'7')             {                 system("cls");                 printf("\a");           //      system("color 0A");                    printf("\n\n\n\n\n\t\t\t\t抱歉,目前只有这几个投放地点呦! ^_^ \n");                    Sleep(500);                    system("cls");                    goto loop2;             }                  }         if(strlen(pnew->address)<=8&&(size_t)j==strlen(s))         {             break;         }      }     while(strcmp(pnew->number,"0")==1)     {         system("cls");         icount++;         if(icount==1)         {             pnew->next=NULL;             phead=pnew;         }          else         {             pnew->next=NULL;             pend->next=pnew;             pend=pnew;         }         pnew=(NODE *)malloc(LEN);         for(;;)         {             printf("共享单车的车牌号(数字):");             scanf("%s",pnew->number);             strcpy(s,pnew->number);             if(strlen(pnew->number)>8)              {                 printf("请输入少于8位的车牌号!\n");             }                  for(j=0;(size_t)j<strlen(s);j++)             {                 if(s[j]<'0'||s[j]>'9')                 {                        printf("车牌号只能为数字!重新输入!\n");                     break;                 }                      }             if(strlen(pnew->number)<=8&&(size_t)j==strlen(s))             {                 break;             }         }         printf("请为该共享单车设置密码:");         scanf("%s",pnew->mima);         for(;;)         {             loop3:             menu_1();         //    system("color 07");             printf("请选择该共享单车的初始投放地点:");             scanf("%s",pnew->address);             strcpy(s,pnew->address);             for(j=0;(size_t)j<strlen(s);j++)             {                 if(s[j]<'0'||s[j]>'7')                 {                     system("cls");                     printf("\a");             //        system("color 0A");                        printf("\n\n\n\n\n\t\t\t\t抱歉,目前只有这几个投放地点呦! ^_^  \n");                        Sleep(500);                        system("cls");                        goto loop3;                 }                      }             if(strlen(pnew->address)<=8&&(size_t)j==strlen(s))             {                 break;             }          }     }     printf("正在保存!");     savefile(phead);     free(pnew);     return phead; } void delete_node ()     //管理员删除单车信息  {     NODE *l,*n,*m;     char s[100];     m=l=readfile();     printf("\t\t\t\t请输入您要删除的共享单车的车牌号:\n");     scanf("%s",s);     while(l!=NULL)     {         if(strcmp(m->number,s)==0)         {             m=m->next;             printf("删除成功!\n");                 break;         }          if(strcmp(l->next->number,s)==0)         {             n=l;             n=n->next;             l->next=n->next;             printf("删除成功!\n");             break;         }          l=l->next;         if(l->next==NULL)         {             printf("\t\t\t\t无删除项\n");             break;         }      }      free(n);     savefile_(m); }  void modify ()    //管理员修改单车信息  {     NODE *ma,*m;     char z[100];     m=ma=readfile();     printf("\t\t\t\t请输入您要修改共享单车的车牌号:\n");     scanf("%s",z);     while(ma!=NULL)     {         if(strcmp(ma->number,z)==0)         {             printf("请修改该共享单车的密码:");             scanf("%s",ma->mima);             break;         }         ma=ma->next;         if(ma->next==NULL)         {             printf("无修改项!\n");             break;         }         }     savefile_(m); } NODE *look_for (NODE_USER *l)            //管理员查找单车信息   {     NODE *m;     char q[100];     m=readfile();     if(l->purse <=100)     {         printf("您的金额已经不足100元!请尽快充值!\n\n");         Sleep(500);         return NULL;     }     printf("\t\t\t\t请输入你要查找的共享单车的车牌号:\n");     scanf("%s",q);     while(m!=NULL)     {         if(strcmp(m->number,q)==0)         {             l->h=1;             printf("车牌号        密码      停放地点\n\n");             printf("%s\t  \t",m->number);             printf("%s\t  ",m->mima);             if(strcmp(m->address,"0")==0)                 printf("长安广场");             if(strcmp(m->address,"1")==0)                 printf("南大学城");             if(strcmp(m->address,"2")==0)                 printf("三森");             if(strcmp(m->address,"3")==0)                 printf("紫薇都市");             if(strcmp(m->address,"4")==0)                 printf("韦曲西街");             if(strcmp(m->address,"5")==0)                 printf("航天城");             if(strcmp(m->address,"6")==0)                 printf("韦曲南站");              if(strcmp(m->address,"7")==0)                 printf("秦岭沿线");              break;         }         m=m->next;     }     if(m==NULL)         printf("\n还没有投放该编号的车哦!");      printf("\n");     return m; }  NODE *look_for_0 ()      //管理员查找单车信息   {     NODE *m,*n;     int a,b=0;     char q[100],p[100];     n=m=readfile();     int flag;     int l = 8;     printf("\n");     printf("-->管理员端");      while (1)     {         b=0;         Gotoxy(53, 8);         printf("1.按车牌号查找");         Gotoxy(53, 10);          printf("2.按停放地点查询");         Gotoxy(53, 12);         printf("3.按车号和地点查询");         Gotoxy(53, 14);         printf("4.退出查询");         Gotoxy(52, l);         printf("★");         flag = _getch();         if (flag == Down)         {             l=l+2;             if (l == 16)                 l = 8;         }         if (flag == Up)         {             l=l-2;             if (l == 6)                 l = 14;         }         if (flag == 13)         {             if (l == 8)                {                 system("cls");                 printf("\n->请输入您要查找的车的车牌号:");                 scanf("%s",q);                 while(n!=NULL)                 {                     if(strcmp(n->number,q)==0)                     {                         b++;                     }                         n=n->next;                 }                 if(b!=0)                     printf("车牌号        密码      停放地点\n\n");                 while(m!=NULL)                 {                     if(strcmp(m->number,q)==0)                     {                         printf("%s\t  \t",m->number);                         printf("%s\t  ",m->mima);                         if(strcmp(m->address,"0")==0)                             printf("长安广场");                         if(strcmp(m->address,"1")==0)                             printf("南大学城");                         if(strcmp(m->address,"2")==0)                             printf("三森");                         if(strcmp(m->address,"3")==0)                             printf("紫薇都市");                         if(strcmp(m->address,"4")==0)                             printf("韦曲西街");                         if(strcmp(m->address,"5")==0)                             printf("航天城");                         if(strcmp(m->address,"6")==0)                             printf("韦曲南站");                          if(strcmp(m->address,"7")==0)                             printf("秦岭沿线");                          break;                     }                     m=m->next;                 }                 if(m==NULL)                     printf("\n还没有投放该编号的车哦!");                  printf("\n");                 _getch();             }             if (l == 10)             {                 system("cls");                 menu_1();                 printf("\n->请输入您要查找在该停放位置的车:");                 scanf("%s",q);                 while(n!=NULL)                 {                     if(strcmp(n->address,q)==0)                     {                         b++;                     }                         n=n->next;                 }                 if(b!=0)                     printf("车牌号        密码      停放地点\n\n");                 while(m!=NULL)                 {                     if(strcmp(m->address,q)==0)                     {                         printf("%s\t  \t",m->number);                         printf("%s\t  ",m->mima);                         if(strcmp(m->address,"0")==0)                             printf("长安广场");                         if(strcmp(m->address,"1")==0)                             printf("南大学城");                         if(strcmp(m->address,"2")==0)                             printf("三森");                         if(strcmp(m->address,"3")==0)                             printf("紫薇都市");                         if(strcmp(m->address,"4")==0)                             printf("韦曲西街");                         if(strcmp(m->address,"5")==0)                             printf("航天城");                         if(strcmp(m->address,"6")==0)                             printf("韦曲南站");                          if(strcmp(m->address,"7")==0)                             printf("秦岭沿线");                          a=1;                         printf("\n");                     }                     m=m->next;                 }                 if(a!=1)                 {                     printf("\n\n\n->该停放点的车都被骑走了哟!");                 }                 _getch();             }             if (l == 12)             {                 system("cls");                 printf("\n->请输入您要查找的车的车牌号:");                 scanf("%s",q);                 menu_1();                 printf("\n->请输入您要查找在该停放位置的车:");                 scanf("%s",p);                 while(m!=NULL)                 {                     if(strcmp(m->number,q)==0 && strcmp(m->address,p)==0)                     {                         printf("车牌号        密码      停放地点\n\n");                         printf("%s\t  \t",m->number);                         printf("%s\t  ",m->mima);                         if(strcmp(m->address,"0")==0)                             printf("长安广场");                         if(strcmp(m->address,"1")==0)                             printf("南大学城");                         if(strcmp(m->address,"2")==0)                             printf("三森");                         if(strcmp(m->address,"3")==0)                             printf("紫薇都市");                         if(strcmp(m->address,"4")==0)                             printf("韦曲西街");                         if(strcmp(m->address,"5")==0)                             printf("航天城");                         if(strcmp(m->address,"6")==0)                             printf("韦曲南站");                          if(strcmp(m->address,"7")==0)                             printf("秦岭沿线");                      }                     m=m->next;                 }                 if(m==NULL)                     printf("\n没有符合条件的车哦!");                  printf("\n");                 _getch();             }             if(l == 14)             {                 return NULL;             }              return m;         }     }         }  NODE *look_for_bike (char a[100])           //报修时查找单车信息   {     NODE *m;     m=readfile();     while(m!=NULL)     {         if(strcmp(m->number,a)==0)         {             break;         }         m=m->next;     }     if(m==NULL)         printf("\n亲!报修信息有误!还没有投放该编号的车哦!");      printf("\n");     return m; }  void send_back (NODE *d)      //用户归还共享单车  {     NODE *m,*l;     char s[100];     l=m=readfile();     while(m!=NULL)     {         if(strcmp(m->number,d->number)==0)         {             menu_1 ();             printf("\t\t\t请选择您归还的地点:");              scanf("%s",m->address);              strcpy(s,m->address);             for(j=0;(size_t)j<strlen(s);j++)             {                 if(s[j]<'0'||s[j]>'7')                 {                     system("cls");                     printf("\a");                        printf("\n\n\n\n\n\t\t\t\t抱歉,目前只有这几个投放地点呦! ^_^ \n");                        Sleep(500);                        system("cls");                 }                      }             if(strlen(m->address)<=8&&(size_t)j==strlen(s))             {                 break;             }          }         m=m->next;     }     if(m==NULL)         printf("\n还没有投放该编号的车哦!");      printf("\n");     savefile_(l);         }  NODE_USER *look_for2 ()       //登录  {      loop_:     NODE_USER *m,*n;     int i=0;     char c,a[100],b[100];     char x[100],password[100],p[100];     int l = 8;     system("cls");     n=m=readfile_user();     printf("-->请输入正确的账号和密码\n");      printf("\n\n\n\n");     printf("\t\t\t\t\t╔════════════════╗\t\t\t\n");     printf("\t\t\t\t\t║☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆║\t\t\t\n");     printf("\t\t\t\t\t║┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄║\t\t\t\n");     printf("\t\t\t\t\t║                                ║\t\t\t\n");     printf("\t\t\t\t\t║                                ║\t\t\t\n");     printf("\t\t\t\t\t║                                ║\t\t\t\n");     printf("\t\t\t\t\t╚════════════════╝\t\t\t\n");     while (1)     {         Gotoxy(44, 8);         printf("★我的账号:");         Gotoxy(44, 10);          printf("★我的密码:");         Gotoxy(44, l);         if(l == 8)         {             printf("☆");             Gotoxy(56,8);             scanf("%s",x);             Gotoxy(44,10);             printf("☆");             Gotoxy(56,10);             while((c=getch())!=13)             {                 if(c==8)                 {                     printf("\b \b");                     i--;                     continue;                 }                 password[i++]=c;                 putchar('*');             }             password[i]='\0';             printf("\n");         }         break;     }     while(m!=NULL)     {         if(strcmp(m->number_user,x)==0&&strcmp(m->mima_user,password)==0)         {             system("cls");             printf("登陆成功!");              break;         }         m=m->next;     }     if(m==NULL)     {         mm:         printf("\n\n\n\t\t\t\t\t 账号或密码错误!请重新输入!\n");         Sleep(500);         printf("是否忘记密码,需要找回?");          scanf("%s",p);         for(;;)         {             if(strcmp(p,"y")==0||strcmp(p,"Y")==0)             {                 printf("\n->请输入账号:");                 scanf("%s",a);                 printf("\n->请输入充值卡号:");                 scanf("%s",b);                 while(n!=NULL)                 {                     if(strcmp(n->number_user,a)==0 && strcmp(n->bank_card,b)==0)                     {                         system("cls");                         printf("\n\n->成功找回!下次可别忘了哟!");                          printf("\n\n我的用户名:%s",n->name_user);                         printf("\n\n我的账号:%s\t",n->number_user);                         printf("\n\n我的密码:%s\t",n->mima_user);                         printf("\n\n我的钱包:¥ %d",n->purse);                         getch();                         break;                     }                     n=n->next;                 }                 break;             }             else if(strcmp(p,"n")==0||strcmp(p,"N")==0)             {                 printf("->已取消操作!\n");                 Sleep(500);                 system("cls");                 break;             }             else if(strcmp(p,"y")!=0 && strcmp(p,"Y")!=0 && strcmp(p,"n")!=0 && strcmp(p,"N")!=0)             {                 printf("亲!只能输入y/n哦!手误的话重新输入吧!^_^\n");                 Sleep(500);                 system("cls");                 goto mm;             }         }         goto loop_;      }         printf("\n");     return m; } NODE_REPAIRMAN *look_for3 ()      //登录  {      loop_:     int i=0;     char c;     char x[100],password[100];     int l = 8;     NODE_REPAIRMAN *m;     system("cls");     m=readfile_repairman();     printf("-->请输入正确的账号和密码\n");      printf("\n\n\n\n");     printf("\t\t\t\t\t╔════════════════╗\t\t\t\n");     printf("\t\t\t\t\t║☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆║\t\t\t\n");     printf("\t\t\t\t\t║┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄║\t\t\t\n");     printf("\t\t\t\t\t║                                ║\t\t\t\n");     printf("\t\t\t\t\t║                                ║\t\t\t\n");     printf("\t\t\t\t\t║                                ║\t\t\t\n");     printf("\t\t\t\t\t╚════════════════╝\t\t\t\n");     while (1)     {         Gotoxy(44, 8);         printf("★我的账号:");         Gotoxy(44, 10);          printf("★我的密码:");         Gotoxy(44, l);         if(l == 8)         {             printf("☆");             Gotoxy(56,8);             scanf("%s",x);             Gotoxy(44,10);             printf("☆");             Gotoxy(56,10);             while((c=getch())!=13)             {                 if(c==8)                 {                     printf("\b \b");                     i--;                     continue;                 }                 password[i++]=c;                 putchar('*');             }             password[i]='\0';             printf("\n");         }         break;     }     while(m!=NULL)     {         if(strcmp(m->number_repairman,x)==0&&strcmp(m->mima_repairman,password)==0)         {             system("cls");             printf("登陆成功!");              break;         }         m=m->next;     }     if(m==NULL)     {         printf("\n\n\t\t\t\t\t 账号或密码错误!请重新输入!\n");         goto loop_;      }         printf("\n");     return m; } void look_for_user (NODE_USER *m)            //查找  {      NODE_USER *n;     n=readfile_user();     while(n!=NULL)     {         if(strcmp(n->number_user,m->number_user)==0)         {             system("cls");             printf("****我的信息->\n");              printf("用户名:%s\n",n->name_user);             printf("账号:%s\n",n->number_user);             printf("密码:%s\n",n->mima_user);             break;         }         n=n->next;     }         printf("\n"); } void look_for_repairman (NODE_REPAIRMAN *m)                //查找  {      NODE_REPAIRMAN *n;     n=readfile_repairman();     while(n!=NULL)     {         if(strcmp(n->number_repairman,m->number_repairman)==0)         {             system("cls");             printf("****我的信息->\n");              printf("用户名:%s\n",n->name_repairman);             printf("账号:%s\n",n->number_repairman);             printf("密码:%s\n",n->mima_repairman);             break;         }         n=n->next;     }         printf("\n"); } void savefile(NODE *phead)          //写文件  {     FILE *fp;     NODE *p;     if((fp = fopen("bike.txt", "a+"))==NULL)         printf("\a error! Can not open the file!"); //    fputs("车牌号 密码 停车点\n",fp);      for(p=phead;p!=NULL;p=p->next)     {         fprintf(fp,"%s %s %s \n",p->number,p->mima,p->address);     }     printf("\n\n->按任意键返回!\n");     fclose(fp); } void savefile_(NODE *phead)    //写文件  {     FILE *fp;     NODE *p;     if((fp = fopen("bike.txt", "w"))==NULL)         printf("\a error! Can not open the file!");     for(p=phead;p!=NULL;p=p->next)     {         fprintf(fp,"%s %s %s \n",p->number,p->mima,p->address);     }     fclose(fp); } void savefile_user_bike(NODE *m)      //写文件  {     FILE *fp;     if((fp = fopen("repairman_.txt", "a+"))==NULL)         printf("\a error! Can not open the file!");     fprintf(fp,"%s %s %s \n",m->number,m->mima,m->address);     printf("\n\n->按任意键返回!\n");     fclose(fp); } void savefile_user(NODE_USER *m)      //写文件  {     FILE *fp;     if((fp = fopen("user.txt", "a+"))==NULL)         printf("\a error! Can not open the file!");         fprintf(fp,"%s %s %s %s %d \n",m->name_user,m->number_user,m->mima_user,m->bank_card,m->purse);     printf("\n\n->按任意键返回!\n");     fclose(fp); } void savefile_user_(NODE_USER *n)     //写文件  {     NODE_USER *m;     FILE *fp;     if((fp = fopen("user.txt", "w"))==NULL)         printf("\a error! Can not open the file!");     for(m=n;m!=NULL;m=m->next)     {         fprintf(fp,"%s %s %s %s %d \n",m->name_user,m->number_user,m->mima_user,m->bank_card,m->purse);     }     printf("\n\n->按任意键返回!\n");     fclose(fp); } void savefile_repairman(NODE_REPAIRMAN *m)            //写文件  {     FILE *fp;     if((fp = fopen("repairman.txt", "a+"))==NULL)         printf("\a error! Can not open the file!");         fprintf(fp,"%s %s %s \n",m->name_repairman,m->number_repairman,m->mima_repairman);     printf("\n\n->按任意键返回!\n");     fclose(fp); } void savefile_repairman_check(NODE_REPAIRMAN *m)                                                         //写文件  {     FILE *fp;     if((fp = fopen("repairman_check.txt", "a+"))==NULL)         printf("\a error! Can not open the file!");     fprintf(fp," %s %s %s \n",m->name_repairman,m->number_repairman,m->mima_repairman); /*    fprintf(fp,"%s\n",m->name_repairman);     fprintf(fp,"%s\n",m->number_repairman);     fprintf(fp,"%s\n",m->mima_repairman);*/     printf("\n\n->按任意键返回!\n");     fclose(fp); } void savefile_repairman_check_1()  //写文件  {     FILE *fp;     fp = fopen("repairman_check.txt", "w");     fclose(fp); } NODE *readfile()            //读文件  {      NODE *head,*u;     FILE *fp;     head=(NODE *)malloc(LEN);     head->next=NULL;     fp=fopen("bike.txt","a+");     fclose(fp);     if((fp=fopen("bike.txt","r"))==NULL)       {           printf("\n--->没有找到文件!\n");           Sleep(1000);         exit(0);     }    /*  else     {         rewind(fp);          fgets(a,66,fp);     }      */     while(!feof(fp))     {         u=(NODE *)malloc(LEN);         u->next=NULL;         fscanf(fp,"%s %s %s \n",u->number,u->mima,u->address);         u->next=head->next;         head->next=u;     }     fclose(fp);     return (head->next); }  NODE_USER *readfile_user()        //读文件  {      NODE_USER *head,*m;     FILE *fp;     head=(NODE_USER *)malloc(LEN_);     head->next=NULL;     fp=fopen("user.txt","a+");     fclose(fp);     if((fp=fopen("user.txt","r"))==NULL)       {           printf("\n--->没有找到文件!\n");           Sleep(1000);         exit(0);     }     while(!feof(fp))     {         m=(NODE_USER *)malloc(LEN_);         m->next=NULL;         fscanf(fp,"%s %s %s %s %d \n",m->name_user,m->number_user,m->mima_user,m->bank_card,&m->purse);         m->next=head->next;         head->next=m;     }     fclose(fp);     return (head->next); }  NODE *readfile_user_bike() {     char ch;     NODE *head,*m;     FILE *fp;     head=(NODE *)malloc(LEN);     head->next=NULL;     fp=fopen("repairman_.txt","a+");     fclose(fp);     if((fp=fopen("repairman_.txt","r"))==NULL)       {           printf("\n--->没有找到文件!\n");           Sleep(1000);         exit(0);     }     ch=fgetc(fp);     if(ch==EOF)     {         printf("还没有人报修呢!可以休息等等哦!\n\n");         k=1;         return NULL;     }     while(!feof(fp))     {         m=(NODE *)malloc(LEN);         m->next=NULL;         fscanf(fp,"%s %s %s \n",m->number,m->mima,m->address);         m->next=head->next;         head->next=m;     }     fclose(fp);     return (head->next); } NODE_REPAIRMAN *readfile_repairman()   //读文件  {      NODE_REPAIRMAN *head,*m;     FILE *fp;     head=(NODE_REPAIRMAN *)malloc(LEN_);     head->next=NULL;     fp=fopen("repairman.txt","a+");     fclose(fp);     if((fp=fopen("repairman.txt","r"))==NULL)       {           printf("\n--->没有找到文件!\n");           Sleep(1000);         exit(0);     }     while(!feof(fp))     {         m=(NODE_REPAIRMAN *)malloc(LEN_);         m->next=NULL;         fscanf(fp,"%s %s %s \n",m->name_repairman,m->number_repairman,m->mima_repairman);         m->next=head->next;         head->next=m;     }     fclose(fp);     return (head->next); } NODE_REPAIRMAN *readfile_repairman_check()      //读文件  {      char ch;     NODE_REPAIRMAN *head,*m;     FILE *fp;     head=(NODE_REPAIRMAN *)malloc(LEN_);     head->next=NULL;     fp=fopen("repairman_check.txt","a+");     fclose(fp);     if((fp=fopen("repairman_check.txt","r"))==NULL)       {           printf("\n--->没有找到文件!\n");           Sleep(1000);         exit(0);     }     ch=fgetc(fp);     if(ch==EOF)     {         w=0;     }     while(!feof(fp))     {         m=(NODE_REPAIRMAN *)malloc(LEN_);         m->next=NULL;         fscanf(fp," %s %s %s \n",m->name_repairman,m->number_repairman,m->mima_repairman);         m->next=head->next;         head->next=m;     }     fclose(fp);     return (head->next); }  void submit() {     int i;      system("cls");        printf("\n\n\n\n\t\t\t\t");        printf("★正在提交您的信息!★");        printf("\n\t\t\t     ");       for(i=0;i<7;i++)        {         printf("->  ");         Sleep(300);     }     system("cls"); } void goodbye() {     int i;      system("cls");        printf("\n\n\n\n\t\t\t\t");        printf("★正在退出!★");        printf("\n\t\t\t     ");       for(i=0;i<5;i++)        {         printf("->  ");         Sleep(300);     }     system("cls"); } void show () {     printf("-->使用指南!\n\n");     printf("    欢迎使用共享单车系统!该管理系统面向大众,可使用手机号自\n\n");     Sleep(500);     printf("行注册用户端以及维修员,用户完成注册后即可使用,维修员需要等\n\n");     Sleep(500);     printf("待管理员审核通过即可工作,每个手机号只能注册一次。\n\n\n");     Sleep(500);     printf("    用户租车收费:每半个小时1元,不满半小时按照一小时计算。\n\n\n\n\n\n\n");     Sleep(500);     printf("感谢您的阅读。按任意键进入系统 ^_^ ");     getch(); } void check () {     NODE_REPAIRMAN *d;     int flag;     int l = 8;     printf("\n");     printf("-->管理员端");      while (1)     {         Gotoxy(53, 8);         printf("1.待认证的维修员 ");         Gotoxy(53, 10);          printf("2.已注册的维修员");         Gotoxy(53, 12);         printf("3.返回上一层");         Gotoxy(52, l);         printf("★");         flag = _getch();         if (flag == Down)         {             l=l+2;             if (l == 14)                 l = 8;         }         if (flag == Up)         {             l=l-2;             if (l == 6)                 l = 12;         }         if (flag == 13)         {             if (l == 8)                {                 system("cls");                 d=readfile_repairman_check();                 print_repairman_(d);                 _getch();             }             if (l == 10)             {                 system("cls");                 d=readfile_repairman();                 print_repairman_1(d);                 printf("\n\n->按任意键继续!");                 getch();                 system("cls");                 _getch();             }             if (l == 12)             {                 system("cls");                 return;             }         }     } } void menu_1 () {     printf("\t\t ----------------------------------------------------------- \t\t\t\n");     printf("\t\t|                  共享单车 长安区停放地点                  |\t\t\t\n");     printf("\t\t|-----------------------------------------------------------|\t\t\t\n");     printf("\t\t|  :长安广场      :南大学城      :三森    |\t\t\t\n");     printf("\t\t|                                                           |\t\t\t\n");     printf("\t\t|  :紫薇都市      :韦曲西街      :航天城  |\t\t\t\n");     printf("\t\t|                                                           |\t\t\t\n");     printf("\t\t|  :韦曲南站      :秦岭沿线                     |\t\t\t\n");     printf("\t\t ----------------------------------------------------------- \t\t\t\n"); }  void sign_in () {     NODE_USER *n;     NODE_REPAIRMAN *l;     int flag;     int z = 8;     system("cls");     while (1)     {         Gotoxy(53, 8);         printf("1.管理员登陆");         Gotoxy(53, 10);          printf("2.用户登陆");         Gotoxy(53, 12);         printf("3.维修员登陆");         Gotoxy(53, 14);         printf("0.退出登录");         Gotoxy(52, z);         printf("★");         flag = _getch();         if (flag == Down)         {             z=z+2;             if (z == 16)                 z = 8;         }         if (flag == Up)         {             z=z-2;             if (z == 6)                 z = 14;         }         if (flag == 13)         {             if (z == 8)             {                 system("cls");                 admin();                 _getch();             }             if (z == 10)             {                     n=look_for2();                     user (n);                     system("cls");                     _getch();             }             if (z == 12)   //权限在老师端之上才能注册             {                     l=look_for3();                     repairman_(l);                     _getch();             }             if (z == 14)             {                 system("cls");                 return;             }         }     } } void print ()           //输出单车信息  {     NODE *m;     m=readfile();     printf("车牌号           密码       停放地点\n\n");     while(m!=NULL)     {         printf("%s\t\t",m->number);         printf("%s\t  ",m->mima);         if(strcmp(m->address,"0")==0)             printf("长安广场");         if(strcmp(m->address,"1")==0)             printf("南大学城");         if(strcmp(m->address,"2")==0)             printf("三森");         if(strcmp(m->address,"3")==0)             printf("紫薇都市");         if(strcmp(m->address,"4")==0)             printf("韦曲西街");         if(strcmp(m->address,"5")==0)             printf("航天城");         if(strcmp(m->address,"6")==0)             printf("韦曲南站");          if(strcmp(m->address,"7")==0)             printf("秦岭沿线");          m=m->next;         printf("\n\n");     }     }  void print_user(NODE_USER *m) {     int i=0;     while(m!=NULL)     {         i++;         printf("第%d个用户:\t",i);         printf("用户名:%-16s",m->name_user);         printf("账号:%-16s\t",m->number_user);         printf("密码:%-16s\t",m->mima_user);         printf("账户余额:¥ %d",m->purse);         m=m->next;         printf("\n\n");     }     printf("->按任意键继续!");     getch(); } void print_repairman_(NODE_REPAIRMAN *m) {     int i=0;     char n[10];     if(w==0)     {         printf("\n-->还没有人申请哦!\n");         printf("\n->请按任意键继续。");          return;     }     printf("-->正等待认证通过\n\n\n");      while(m!=NULL)     {         i++;         printf("第%d个申报维修人员:\t",i);         printf("用户名:%s\t\t",m->name_repairman);         printf("账号:%s\t\t",m->number_repairman);         printf("密码:%s\t\t",m->mima_repairman);         printf("\n\n是否通过?(y/n):");          scanf("%s",n);         if(strcmp(n,"y")==0 || strcmp(n,"Y")==0)         {             printf("\n\n->已通过认证!\n");             savefile_repairman(m);          }         if(strcmp(n,"n")==0 || strcmp(n,"N")==0)         {             printf("\n\n->已驳回申诉!\n");         }         m=m->next;         printf("\n\n");     }     savefile_repairman_check_1(); } void print_repairman_1(NODE_REPAIRMAN *m) {     int i=0;     while(m!=NULL)     {         i++;         printf("第%d个维修人员:",i);         printf("用户名:%-15s",m->name_repairman);         printf("账号:%-18s",m->number_repairman);         printf("密码:%s",m->mima_repairman);         m=m->next;         printf("\n\n");     } } void print_repairman ()     //输出报修单车信息  {     NODE *m;     m=readfile_user_bike();     if(k==0)         printf("车牌号           密码       停放地点\n\n");     while(m!=NULL)     {         printf("%s\t\t",m->number);         printf("%s\t  ",m->mima);         if(strcmp(m->address,"0")==0)             printf("长安广场");         if(strcmp(m->address,"1")==0)             printf("南大学城");         if(strcmp(m->address,"2")==0)             printf("三森");         if(strcmp(m->address,"3")==0)             printf("紫薇都市");         if(strcmp(m->address,"4")==0)             printf("韦曲西街");         if(strcmp(m->address,"5")==0)             printf("航天城");         if(strcmp(m->address,"6")==0)             printf("韦曲南站");          if(strcmp(m->address,"7")==0)             printf("秦岭沿线");          m=m->next;         printf("\n\n");     }     } void welcome()         //输入密钥进入管理员  {      int i=0;     char c;     char password[100];     char num[100];     strcpy(num,"152323");     loopback3:     system("cls");     printf(" \n\n\n\n\n\n\n\n");     printf("\t\t\t\t欢迎使用共享单车管理系统!\n\n\n");     printf("\t\t\t\t请输入管理员密码:");     while((c=getch())!=13)     {         if(c==8)         {             printf("\b \b");             i--;             continue;         }         password[i++]=c;         putchar('*');     }     password[i]='\0';     if(strcmp(password,num)==0)     {           system("cls");     }     else     {         printf("\t\t\t\t 密码错误!");         //密码错误重新输出          Sleep(100);         system("cls");         goto loopback3;     }  } void user (NODE_USER *l) {     time_t first,second;     double s;     int p=1,q=0,t=0;     char n[100],yn[100],h[100];      NODE *m,*g,*v,*y;     NODE_USER *o,*k,*f;     int flag;     int z = 4,d;     f=k=o=readfile_user();     while(k!=NULL)     {         if(strcmp(l->number_user,k->number_user)==0)             break;         k=k->next;     }     printf("\n");     printf("-->用户端");      while (1)     {         q=0;         Gotoxy(53, 4);          printf("1.附近的车");         Gotoxy(53, 6);         printf("2.立即用车");         Gotoxy(53, 8);          printf("3.立即还车");         Gotoxy(53, 10);         printf("4.我要报修");         Gotoxy(53, 12);         printf("5.我的信息");         Gotoxy(53, 14);         printf("6.我去充值");         Gotoxy(53, 16);          printf("0.退出登录");         Gotoxy(52, z);         printf("★");         flag = _getch();         if (flag == Down)         {             z=z+2;             if (z == 18)                 z = 4;         }         if (flag == Up)         {             z=z-2;             if (z == 2)                 z = 16;         }         if (flag == 13)         {             if(z == 4)             {                 system("cls");                 menu_1();                 printf("请选择您所在的地点代号:");                  scanf("%s",h);                 y=v=readfile();                 while(y!=NULL)                 {                     if(strcmp(y->address,h)==0)                     {                         t++;                     }                     y=y->next;                 }                 if(t!=0)                     printf("车牌号        密码      停放地点\n\n");                 while(v!=NULL)                 {                     if(strcmp(v->address,h)==0)                     {                         q=1;                         printf("%s\t  \t",v->number);                         printf("%s\t  ",v->mima);                         if(strcmp(v->address,"0")==0)                             printf("长安广场");                         if(strcmp(v->address,"1")==0)                             printf("南大学城");                         if(strcmp(v->address,"2")==0)                             printf("三森");                         if(strcmp(v->address,"3")==0)                             printf("紫薇都市");                         if(strcmp(v->address,"4")==0)                             printf("韦曲西街");                         if(strcmp(v->address,"5")==0)                             printf("航天城");                         if(strcmp(v->address,"6")==0)                             printf("韦曲南站");                          if(strcmp(v->address,"7")==0)                             printf("秦岭沿线");                         printf("\n");                      }                     v=v->next;                 }                 if(q==0)                 {                     printf("\n\n->这里的小车都被骑走啦!");                      Sleep(500);                 }                 printf("\n");                 getch();                 system("cls");             }              if (z == 6)                {                 system("cls");                 if(k->h==1)                 {                     printf("->您已经在使用共享单车了!一个账号只能同时租一个哦!\n");                     printf("->按任意键继续。。。\n");                     getch();                 }                 else                 {                     system("cls");                     g=look_for (k);                     first=time(NULL);                     printf("->按任意键继续。。。\n");                     getch();                 }                 _getch();             }             if (z == 8)             {                 system("cls");                 if(k->h==1)                 {                     send_back(g);                     second=time(NULL);                     s=difftime(second,first);                     k->h=0;                 }                  else                 {                     printf("还没有借车呐!快去骑共享单车哦!\n\n");                     goto mn;                                       }                 while(1)                 {                     if(s > 1800.0)                     {                         s=s-1800.0;                         p++;                     }                     else                         break;                 }                 system("cls");                 if(p==1)                 {                     k->purse=k->purse-1;                     printf("您总共骑行%0.1f秒,您需要支付 $1 yuan\n",s);                     printf("\n\n账户余额%d元",k->purse);                     savefile_user_(o);                     }                     else                     printf("您总共骑行%0.1f秒,您需要支付 $%d yuan\n",s,p);                 mn:                 _getch();             }             if (z == 10)             {                 system("cls");                 loop__1:                 while(1)                 {                     printf("请输入您要报修的共享单车的车牌号:");                     scanf("%s",n);                     m=look_for_bike (n);                     if(m!=0)                     {                         break;                     }                 }                 printf("您确定要报修吗?(y/n)");                 scanf("%s",yn);                 for(;;)                 {                     if(strcmp(yn,"y")==0||strcmp(yn,"Y")==0)                     {                         printf("感谢您的反馈!如果我们确认申报无误的话,会给您加分哦!\n");                         savefile_user_bike(m);                         break;                     }                     else if(strcmp(yn,"n")==0||strcmp(yn,"N")==0)                     {                         printf("->已取消操作!\n");                         Sleep(500);                         system("cls");                         break;                     }                     else if(strcmp(yn,"y")!=0 && strcmp(yn,"Y")!=0 && strcmp(yn,"n")!=0 && strcmp(yn,"N")!=0)                     {                         printf("亲!只能输入y/n哦!手误的话重新输入吧!^_^\n");                         Sleep(500);                         system("cls");                         goto loop__1;                     }                 }                 _getch();             }             if (z == 12)             {                 system("cls");                 look_for_user (l);                 printf("浏览完毕后,按任意键继续!\n");                 _getch();             }             if (z == 14)             {                 system("cls");                 printf("您已绑定充值卡!请输入充值金额:");                 scanf("%d",&d);                 while(f!=NULL)                 {                     if(strcmp(l->number_user,f->number_user)==0)                         break;                     f=f->next;                 }                  printf("\n当前余额%d元,充值后为%d元",f->purse,f->purse+d);                 f->purse=f->purse+d;                 savefile_user_(o);                 printf("\n\n->充值成功!");                  Sleep(1000);                 system("cls");             }             if (z == 16)             {                 return;             }         }     } } void repairman_ (NODE_REPAIRMAN *l) {     int flag;     int z = 8;     system("cls");     printf("\n->维修员端");     while (1)     {         Gotoxy(53, 8);         printf("1.我的信息");         Gotoxy(53, 10);          printf("2.用户报修车辆");         Gotoxy(53, 12);         printf("0.返回上一层");         Gotoxy(52, z);         printf("★");         flag = _getch();         if (flag == Down)         {             z=z+2;             if (z == 14)                 z = 8;         }         if (flag == Up)         {             z=z-2;             if (z == 6)                 z = 12;         }         if (flag == 13)         {             if (z == 8)             {                 system("cls");                 look_for_repairman (l);                 _getch();             }             if (z == 10)             {                     system("cls");                     print_repairman ();                     _getch();             }             if (z == 12)   //权限在老师端之上才能注册             {                 system("cls");                 return;              }         }     }     } void admin () {     NODE_USER *m;     welcome();      NODE *phead;     int flag;     int l = 4;     printf("\n");     printf("-->管理员端");      while (1)     {         Gotoxy(53, 4);         printf("1.添加单车");         Gotoxy(53, 6);          printf("2.删除单车");         Gotoxy(53, 8);         printf("3.修改单车密码");         Gotoxy(53, 10);          printf("4.查找单车");         Gotoxy(53, 12);         printf("5.所有单车及其盈利");         Gotoxy(53, 14);         printf("6.用户信息");         Gotoxy(53, 16);         printf("7.维修员信息");         Gotoxy(53, 18);          printf("0.退出登录");         Gotoxy(52, l);         printf("★");         flag = _getch();         if (flag == Down)         {             l=l+2;             if (l == 20)                 l = 4;         }         if (flag == Up)         {             l=l-2;             if (l == 2)                 l = 18;         }         if (flag == 13)         {             if (l == 4)             {                 system("cls");                 phead=input ();                 printf("\a 保存成功!");                 Sleep(500);                 system("cls");                 _getch();             }             if (l == 6)             {                 system("cls");                 delete_node ();                 system("cls");                 _getch();             }             if (l == 8)                {                 system("cls");                 modify ();                 system("cls");                 _getch();             }             if (l == 10)             {                 system("cls");                 look_for_0();                 system("cls");                 _getch();             }             if (l == 12)             {                 system("cls");                 printf("--->读取成功!\n\n");                 print() ;                 getch();             //    system("cls");                 _getch();             }             if (l == 14)             {                 system("cls");                 m=readfile_user();                 print_user(m);                 system("cls");                 _getch();             }             if (l == 16)             {                 system("cls");                 check();                 system("cls");                 _getch();             }             if (l == 18)             {                 system("cls");                 return;             }         }     }     } void choice() {     char c[5];     int flag;     int z = 8;     while (1)     {         Gotoxy(53, 8);         printf("1.登录");         Gotoxy(53, 10);          printf("2.注册");         Gotoxy(53, 12);         printf("3.退出");         Gotoxy(52, z);         printf("★");         flag = _getch();         if (flag == Down)         {             z=z+2;             if (z == 14)                 z = 8;         }         if (flag == Up)         {             z=z-2;             if (z == 6)                 z = 12;         }         if (flag == 13)         {             if (z == 8)             {                 sign_in ();             }             if (z == 10)             {                     NODE_USER *m,*n;                     m=(NODE_USER *)malloc(LEN_);                     m->next=NULL;                     NODE_REPAIRMAN *k,*l;                     k=(NODE_REPAIRMAN *)malloc(LEN_1);                     k->next=NULL;                     system("cls");                     printf("注册用户请按1\t注册维修员请按2(需要等待审核)\n\n");                     printf("请选择:");                     scanf("%s",c);                     if(strcmp(c,"1")==0)                     {                         printf("★亲!请按照指示操作完成用户注册哦!\n");                         for(;;)                         {                             printf("\n\n请输入绑定的手机号(账号):");                             scanf("%s",m->number_user);          //报修时查找单车信息                               n=readfile_user();                             while(n!=NULL)                             {                                 if(strcmp(n->number_user,m->number_user)==0)                                 {                                     printf("亲!这个手机号已经被注册过了呦!");                                     break;                                 }                                 n=n->next;                             }                             if(n==NULL)                             {                                 printf("\t\t\t\t\t-------这个账号还没有人注册过呢!");                                 break;                                 }                             printf("\n");                         }                          for(;;)                         {                             printf("\n\n请设置密码:");                             scanf("%s",m->mima_user);                             if(strlen(m->mima_user)<=2)                                 printf("\t\t\t\t\t安全系数★★,很不安全哦!");                             if(strlen(m->mima_user)<=6&&strlen(m->mima_user)>2)                                 printf("\t\t\t\t\t安全系数★★★,一般安全!");                             if(strlen(m->mima_user)>7)                                 printf("\t\t\t\t\t安全系数★★★★★,非常安全!");                                 printf("\n\n请确认密码:");                              scanf("%s",m->mima_user2);                             printf("\n\n请输入您的年龄:");                             scanf("%d",&m->age);                             if(m->age <= 10)                             {                                 printf("年龄过小哦!长大再骑吧!共享单车伴你成长!\n");                                 system("cls");                                 break;                             }                             if(m->age >= 65)                             {                                 printf("您已超过使用年限!抱歉!\n");                                 system("cls");                                 break;                             }                             if(strcmp(m->mima_user,m->mima_user2)==0)                             {                                 system("cls");                                 submit();                                 printf("\n->注册成功!");                                 printf("\n\n快为自己起一个霸气的用户名吧!\n");                                 scanf("%s",m->name_user);                                 printf("\n\n请先给自己钱包充值哦!(200元)");                                 printf("\n\n请输入充值卡号(系统将自动为您扣除):");                                  scanf("%s",m->bank_card);                                 m->purse=200;                                 savefile_user(m);                                  break;                             }                             if(strcmp(m->mima_user,m->mima_user2)!=0)                             {                                 printf("\a亲,两次输入密码不一样哦!\n");                                 Sleep(500);                             }                             }                     }                     if(strcmp(c,"2")==0)                     {                         printf("★亲!请按照指示操作完成维修员注册哦!\n");                         for(;;)                         {                             printf("\n\n请输入绑定的手机号(账号):");                             scanf("%s",k->number_repairman);                             getchar();                             l=readfile_repairman();                             while(l!=NULL)                             {                                 if(strcmp(l->number_repairman,k->number_repairman)==0)                                 {                                     printf("亲!这个手机号已经被注册过了呦!");                                     break;                                 }                                 l=l->next;                             }                             if(l==NULL)                             {                                 printf("\t\t\t\t\t-------这个账号还没有人注册过呢!");                                 break;                                 }                             printf("\n");                         }                          for(;;)                         {                             printf("\n\n请设置密码:");                             scanf("%s",k->mima_repairman);                             getchar();                             if(strlen(k->mima_repairman)<=2)                                 printf("\t\t\t\t\t安全系数★★,很不安全哦!");                             if(strlen(k->mima_repairman)<=6&&strlen(k->mima_repairman)>2)                                 printf("\t\t\t\t\t安全系数★★★,一般安全!");                             if(strlen(k->mima_repairman)>7)                                 printf("\t\t\t\t\t安全系数★★★★★,非常安全!");                                 printf("\n\n请确认密码:");                              scanf("%s",k->mima_repairman2);                             printf("\n\n请输入您的年龄:");                             scanf("%d",&k->age);                             getchar();                             if(k->age <= 10)                             {                                 printf("年龄过小哦!不能注册维修员,共享单车伴你成长!\n");                                 system("cls");                                 break;                             }                             if(k->age >= 65)                             {                                 printf("您已超过使用年限!抱歉!\n");                                 system("cls");                                 break;                             }                             if(strcmp(k->mima_repairman,k->mima_repairman2)==0)                             {                                 system("cls");                                 submit();                                 printf("\n->申请成功!等待管理员审核!");                                 printf("\n\n快为自己起一个霸气的用户名吧!\n");                                 scanf("%s",k->name_repairman);                                 savefile_repairman_check(k);                                  break;                             }                             if(strcmp(k->mima_repairman,k->mima_repairman2)!=0)                             {                                 printf("\a亲,两次输入密码不一样哦!\n");                                 Sleep(500);                             }                             }                     }                     _getch();             }             if (z == 12)               {                 goodbye();                 exit(0);             }         }     } } //    admin();        //管理员 //    user();      //用户 //repairman();      //维修员  int main (void) {     system("color F1");     show ();     system("cls");     choice(); }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自由互联。