• 使用链表实现一个简单的登录系统


    代码如下:

    /*AUTOR:XIXI*/

    #include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct node{ char name[20]; //定义两个字符型数组 char pass[20]; struct node *next; }usernode; void init_user(usernode *h){ h=(usernode *)malloc(sizeof(usernode)); if(h==NULL) exit(0); h->next=NULL; } int get(usernode *h){ char A[20]; char B[20]; usernode *p; p=h->next; /* if(p){ printf("暂时没有用户! "); return 0; }*/ if(p!=NULL){ while(1){ printf("用户名:"); scanf("%s",A); //使用%s格式 // gets(A); printf("密码:"); scanf("%s",B); while(p!=NULL){ if(strcmp(p->name,A)==0&&strcmp(p->pass,B)==0){ return 1; } //使用strcpy函数进行字符串的比较 p=p->next; } printf("输入错误,请重新输入! "); } } else { printf("暂时没有用户! ") ; return 0; } } void insert(usernode *h){ char A[20]; char B[20]; usernode *p; p=(usernode *)malloc(sizeof(usernode)); printf("请设置用户名:"); // getchar(); scanf("%s",A); //使用scanf进行字符串的获取 // gets(A); strcpy(p->name,A); //使用strcpy函数对字符串进行赋值 printf("请设置密码:"); // getchar(); scanf("%s",B); strcpy(p->pass,B); p->next=h->next; h->next=p; printf("注册成功! "); } int main(int argc,char* argv[]){ printf(" *******登入界面****** "); printf(" * 1.登入 * "); printf(" * 2.注册 * "); printf(" ********************* "); usernode *user; init_user(user); int chance; int a; while(1){ printf("请输入您的选择:"); scanf("%d",&chance); if(chance==1){ a=get(user); if(a==1){ printf("登入成功! "); break; } if(a==0) printf("请先注册用户! "); } else if(chance==2){ insert(user); } else { printf("没有此功能,请重新选择! "); } } }

    功能如下所示:

    [ouyangxi@DESKTOP-QNJ4U2U flight]$ ./a.out
                    *******登入界面******
                    *       1.登入      *
                    *       2.注册      *
                    *********************
    请输入您的选择:2
    请设置用户名:oyx
    请设置密码:oyx
    注册成功!
    请输入您的选择:2
    请设置用户名:oyx1
    请设置密码:oyx1
    注册成功!
    请输入您的选择:1
    用户名:oyx
    密码:oyx
    登入成功!

    此代码较简单就没有模块化,请读者自行领悟。

    正是步行者,一步步登峰!

  • 相关阅读:
    判断数组的方法
    介绍下 npm 模块安装机制,为什么输入 npm install 就可以自动安装对应的模块?
    因为这样那样的原因又滚回来了
    AFO成功
    SDOI2018
    TJOI2018
    杂题
    线段树合并
    几个dp的陈年老题
    【自家测试】2018-5-9
  • 原文地址:https://www.cnblogs.com/ouyangmail/p/12772083.html
Copyright © 2020-2023  润新知