
离线 TA的专栏
- 打卡等级:热心大叔
- 打卡总天数:227
- 打卡月天数:0
- 打卡总奖励:3596
- 最近打卡:2025-04-06 02:17:46
|
本文实例为大家分享了C语言实现共享单车管理系统的具体代码,供大家参考,具体内容如下
1.功能模块图;
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| 【0】:长安广场 【1】:南大学城 【2】:三森 |\t\t\t\n");
- printf("\t\t| |\t\t\t\n");
- printf("\t\t| 【3】:紫薇都市 【4】:韦曲西街 【5】:航天城 |\t\t\t\n");
- printf("\t\t| |\t\t\t\n");
- printf("\t\t| 【6】:韦曲南站 【7】:秦岭沿线 |\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();
- }
复制代码以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持晓枫资讯。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
晓枫资讯-科技资讯社区-免责声明
免责声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。
1、注册用户在本社区发表、转载的任何作品仅代表其个人观点,不代表本社区认同其观点。
2、管理员及版主有权在不事先通知或不经作者准许的情况下删除其在本社区所发表的文章。
3、本社区的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,举报反馈:  进行删除处理。
4、本社区一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、以上声明内容的最终解释权归《晓枫资讯-科技资讯社区》所有。
|