iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言实现共享单车管理系统
  • 908
分享到

C语言实现共享单车管理系统

2024-04-02 19:04:59 908人浏览 八月长安
摘要

本文实例为大家分享了C语言实现共享单车管理系统的具体代码,供大家参考,具体内容如下 1.功能模块图; 2.各个模块详细的功能描述。 1.登陆:登陆分为用户登陆,管理员登陆以及维修员

本文实例为大家分享了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;
/
    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);
    } 
  
    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();
}

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

--结束END--

本文标题: C语言实现共享单车管理系统

本文链接: https://www.lsjlt.com/news/166469.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言实现共享单车管理系统
    本文实例为大家分享了C语言实现共享单车管理系统的具体代码,供大家参考,具体内容如下 1.功能模块图; 2.各个模块详细的功能描述。 1.登陆:登陆分为用户登陆,管理员登陆以及维修员...
    99+
    2024-04-02
  • C语言实现停车管理系统
    本题为大家分享了C语言实现停车管理系统的具体代码,供大家参考,具体内容如下 设计题目 设停车场是一个可以停放n辆汽车的南北方向的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按...
    99+
    2024-04-02
  • C语言实现车票管理系统
    本文实例为大家分享了C语言实现车票管理系统的具体代码,供大家参考,具体内容如下 一、项目简介 设计一个车票管理系统实现录入、查看班次信息,售票,退票等基本功能。设计中要求综合运用所学...
    99+
    2024-04-02
  • C语言实现简单的停车场管理系统
    本文实例为大家分享了C语言实现简单停车场管理系统的具体代码,供大家参考,具体内容如下 1.问题描述 1)有一个两层的停车场,每层有6个车位,当第一层车位停满后才允 许使用第二层(停车...
    99+
    2024-04-02
  • C语言实现火车票管理系统
    本文为大家分享了C语言实现火车票管理系统课程设计的具体代码,供大家参考,具体内容如下 1、前言 这是大一刚学C语言一个学期完成的课设项目,里面的功能还可以进一步的完善,仅供分享、参考...
    99+
    2024-04-02
  • C语言实现自行车管理系统
    在大家学完C语言后,经常会被学校要求做很多管理系统,主流做法当选链表,但是很多问题就来了,在学习阶段写过最多基本上就是50行代码左右了,一下子做个小型管理系统问题就比较多。小编当然也...
    99+
    2024-04-02
  • C语言实现车辆信息管理系统
    本文实例为大家分享了C语言实现车辆信息管理系统的具体代码,供大家参考,具体内容如下 车辆信息管理系统 问题描述:建立车辆信息管理系统,实现车辆信息的添加和维护管理。 系统存储数据要求...
    99+
    2024-04-02
  • C语言如何实现车票管理系统
    今天小编给大家分享一下C语言如何实现车票管理系统的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、项目简介设计一个车票管理系...
    99+
    2023-06-30
  • C语言实现简易停车场管理系统
    本文实例为大家分享了C语言实现停车场管理系统的具体代码,供大家参考,具体内容如下 问题描述: 设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按...
    99+
    2024-04-02
  • C语言实现自行车存放管理系统
    本文实例为大家分享了C语言实现自行车存放管理系统的具体代码,供大家参考,具体内容如下 系统包括以下内容 1.数据录入:录入系统基本数据,用数组或链表组织; 2.数据存储:用文件的形式...
    99+
    2024-04-02
  • 如何用C语言实现简单的停车场管理系统
    本篇内容主要讲解“如何用C语言实现简单的停车场管理系统”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用C语言实现简单的停车场管理系统”吧!1.问题描述1)有一个两层的停车场,每层有6个车位,...
    99+
    2023-06-29
  • Java如何实现共享租车信息管理系统
    这篇文章主要介绍Java如何实现共享租车信息管理系统,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!基于servlet+jsp+jdbc的后台管理系统,包含5个模块:汽车账户部管理、租车账户部管理、汽车信息管理表、租车...
    99+
    2023-06-29
  • C语言实现单位车辆调度管理
    本文实例为大家分享了C语言实现单位车辆调度管理的具体代码,供大家参考,具体内容如下 单位车辆信息包括:车牌号、车型、载重(客)量,车牌,生产厂家,出厂日期,购买日期,购买单价等;车辆...
    99+
    2024-04-02
  • C语言版停车位管理系统
    本文实例为大家分享了C语言实现停车位管理系统的具体代码,供大家参考,具体内容如下 简单功能介绍 1、录入车辆信息2、查找车辆信息3、删除车辆信息4、修改车辆信息5、查找区域车辆信息6...
    99+
    2024-04-02
  • C语言实现简单酒店管理系统
    本文实例为大家分享了C语言实现酒店管理系统的具体代码,供大家参考,具体内容如下 一、问题描述 系统应具有以下主要功能:登记入住:从键盘输入住信息:房间层数,房间号码等;查询入住情况,...
    99+
    2024-04-02
  • C++实现车票管理系统
    本文实例为大家分享了C++实现车票管理系统的具体代码,供大家参考,具体内容如下 一车站每天有n个发车班次,每个班次都有一班次号(1、2、3…n),固定的发车时间,固定的...
    99+
    2024-04-02
  • C语言实现停车管理系统的代码怎么写
    本篇内容主要讲解“C语言实现停车管理系统的代码怎么写”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言实现停车管理系统的代码怎么写”吧!设计题目设停车场是一个可以停放n辆汽车的南北方向的狭长通...
    99+
    2023-06-29
  • 怎么用C语言实现简易停车场管理系统
    本篇内容主要讲解“怎么用C语言实现简易停车场管理系统”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用C语言实现简易停车场管理系统”吧!问题描述:设停车场内只有一个可停放n辆汽车的狭长通道,且...
    99+
    2023-06-29
  • C语言实现简单通讯录管理系统
    C语言实现的通讯录管理系统,供大家参考,具体内容如下 设计一个学生通信录,学生通迅录数据信息构成内容可自行设计(如:学号、姓名、电话号码、所在班级、寝室地址等),通信录数据类型定义为...
    99+
    2024-04-02
  • C语言单链表实现图书管理系统
    本文实例为大家分享了C语言单链表实现图书管理系统的具体代码,供大家参考,具体内容如下 单链表实现的图书管理系统相比于结构体实现的管理系统,可以随时开辟新的空间,可以增加书的信息 单链...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作