如何用C语言编写一个支持登录注册及忘记密码功能的全能系统?

2026-04-19 04:231阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

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

如何用C语言编写一个支持登录注册及忘记密码功能的全能系统?

这是一个使用C语言和文件操作实现的登录、注册和忘记密码功能的系统。可以用于C语言大作业的登录系统。以下是一些具体的代码示例。

如何用C语言编写一个支持登录注册及忘记密码功能的全能系统?

首先,定义一个结构体来存储用户信息:

c#include #include #include

#define MAX_USER 100#define MAX_NAME 50#define MAX_PASS 50

typedef struct { char username[MAX_NAME]; char password[MAX_PASS];} User;

User users[MAX_USER];int user_count=0;

然后,编写函数来处理注册操作:

cint register_user(const char* username, const char* password) { if (user_count >=MAX_USER) { return -1; // 用户数量已达上限 } for (int i=0; i

接下来,编写函数来处理登录操作:

cint login_user(const char* username, const char* password) { for (int i=0; i

最后,编写一个简单的测试程序来演示这些功能:

cint main() { // 注册用户 if (register_user(user1, password1)==0) { printf(注册成功\n); } else { printf(注册失败\n); }

// 登录用户 if (login_user(user1, password1)==0) { printf(登录成功\n); } else { printf(登录失败\n); }

return 0;}

这个简单的示例展示了如何使用C语言和文件操作实现登录、注册和忘记密码功能。在实际应用中,你可能需要添加更多的功能,例如密码加密、文件存储等。

这是一个用纯C语言和文件操作实现的系统的登录、注册和忘记密码功能。可以用于c语言大作业的登录系统。下面分享一下具体的代码。

首先定义一个结构体来存放用户的注册信息,账号密码等。

typedef struct The_users //typedef 可以定义结构体别名 { char id[11]; //账号 char pwd[20]; //密码 char name[15];//姓名为字符串 char sex; //性别为单个字符 long phone; //电话号码为长整型 }users;

然后写一个函数用来创建储存用户账号密码的文件。

/*创建储存用户账号密码的文件*/ void Create_File() { FILE *fp; if ((fp = fopen("users.txt","rb"))==NULL) /*如果此文件不存在*/ { if ((fp = fopen("users.txt","wb+"))==NULL) { printf("无法建立文件!\n"); exit(0); } } }

注册:将存放用户的信息的结构体直接存入文件中,每次存入分配该结构体大小的空间,然后该用户的信息就可以按结构体整体来读取。还加入了一些错误提示,如果输入错误就提示重新输入。

/*注册账号*/ void registers() //按结构体的大小,一次写入或者读入1个结构体大小 { users a,b;//结构体 The_users 重命名定义 FILE *fp; char temp[20]; int count = 0; printf("欢迎来到注册界面!\n"); Sleep(1000); fp = fopen("users.txt","r"); fread(&b, sizeof(struct The_users), 1, fp); //读入一个结构体字符块 到b printf("请输入账号\n"); scanf("%s",&a.id); while (1) { if (strcmp(a.id, b.id)) /*如果两串不相等*/ { if (!feof(fp)) /*如果未到文件尾*/ { fread(&b, sizeof(struct The_users), 1, fp); } else break; } else { printf("此用户名已存在!请重新注册!\n"); Sleep(1000); fclose(fp); return; } } printf("请输入姓名:\n"); scanf("%s",&a.name); printf("请输入性别(f(女)/m(男)):\n"); scanf(" %c",&a.sex); do{ if(a.sex != 'f' && a.sex != 'm'){ printf("性别输入错误!请重新输入!\n"); scanf("%c",&a.sex); } }while(a.sex != 'f' && a.sex != 'm'); getchar(); printf("请输入电话号码:\n"); scanf("%ld",&a.phone); printf("请输入密码\n"); scanf(" %s",&a.pwd); printf("请确认密码\n"); scanf(" %s",&temp); do{ if(!strcmp(a.pwd,temp)){ fp = fopen("users.txt","a"); fwrite(&a, sizeof(struct The_users), 1, fp); printf("账号注册成功,请登录!\n"); Sleep(500); fclose(fp); return; }else{ printf("两次密码不匹配!请重新输入!\n"); scanf("%s",&a.pwd); printf("请确认密码\n"); scanf("%s",&temp); } }while(1); }

登录:先输入账号和密码。然后按账号从文件中读取,如果账号匹配就读取密码,如果密码也匹配就登录成功,否则重新输入密码。

/*登录系统*/ void Input_login() { users a,b;//定义结构体The_users别名 FILE *fp; printf("欢迎来到登录界面!\n"); Sleep(1000); fp = fopen("users.txt","r"); fread(&b, sizeof(struct The_users), 1, fp); //读入一个结构体字符块 写入b printf("请输入账号\n"); scanf("%s",&a.id); while (1) { if (strcmp(a.id, b.id)==0) //如果有此用户名 { break; } else { if (!feof(fp)) //如果文件没有读完 { fread(&b, sizeof(struct The_users), 1, fp); } else { printf("此用户名不存在,请重新输入!\n"); Sleep(500); fclose(fp); return; } } } printf("请输入密码\n"); scanf("%s",&a.pwd); do{ if (strcmp(a.pwd, b.pwd)==0) /*如果密码匹配*/ { fclose(fp); printf("登录成功,欢迎使用!"); Sleep(500); return; } else { printf("密码不正确!请重新输入密码\n"); scanf("%s",&a.pwd); } }while(strcmp(a.pwd, b.pwd)==0); }

找回密码:根据输入的账号获取该账号的结构体信息,然后与其他信息进行匹配,如果全部匹配成功,则显示该账号的密码。

/*找回密码*/ void reback() //按结构体的大小,一次写入或者读入1个结构体大小 { users a,b;//结构体 The_users 重命名定义 FILE *fp; char temp[20]; int count = 0; printf("欢迎来到找回密码界面!\n"); Sleep(1000); fp = fopen("users.txt","r"); fread(&b, sizeof(struct The_users), 1, fp); //读入一个结构体字符块 写入b printf("请输入账号\n"); scanf("%s",&a.id); while (1) { if (strcmp(a.id, b.id)==0) //如果有此用户名 { break; } else { if (!feof(fp)) //如果文件没有读完 { fread(&b, sizeof(struct The_users), 1, fp); } else { printf("此用户名不存在,请重新输入!\n"); Sleep(500); fclose(fp); return; } } } printf("请输入姓名:\n"); scanf("%s",&a.name); do{ if(strcmp(a.name,b.name)){ printf("姓名输入错误!请重新输入!\n"); scanf("%s",&a.name); } }while(strcmp(a.name,b.name)); printf("请输入电话号码:\n"); scanf("%ld",&a.phone); do{ if(a.phone != b.phone){ printf("电话号码输入错误!请重新输入!\n"); scanf("%ld",&a.phone); } }while(a.phone != b.phone); printf("您的密码是:%s",b.pwd); Sleep(3000); }

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

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

如何用C语言编写一个支持登录注册及忘记密码功能的全能系统?

这是一个使用C语言和文件操作实现的登录、注册和忘记密码功能的系统。可以用于C语言大作业的登录系统。以下是一些具体的代码示例。

如何用C语言编写一个支持登录注册及忘记密码功能的全能系统?

首先,定义一个结构体来存储用户信息:

c#include #include #include

#define MAX_USER 100#define MAX_NAME 50#define MAX_PASS 50

typedef struct { char username[MAX_NAME]; char password[MAX_PASS];} User;

User users[MAX_USER];int user_count=0;

然后,编写函数来处理注册操作:

cint register_user(const char* username, const char* password) { if (user_count >=MAX_USER) { return -1; // 用户数量已达上限 } for (int i=0; i

接下来,编写函数来处理登录操作:

cint login_user(const char* username, const char* password) { for (int i=0; i

最后,编写一个简单的测试程序来演示这些功能:

cint main() { // 注册用户 if (register_user(user1, password1)==0) { printf(注册成功\n); } else { printf(注册失败\n); }

// 登录用户 if (login_user(user1, password1)==0) { printf(登录成功\n); } else { printf(登录失败\n); }

return 0;}

这个简单的示例展示了如何使用C语言和文件操作实现登录、注册和忘记密码功能。在实际应用中,你可能需要添加更多的功能,例如密码加密、文件存储等。

这是一个用纯C语言和文件操作实现的系统的登录、注册和忘记密码功能。可以用于c语言大作业的登录系统。下面分享一下具体的代码。

首先定义一个结构体来存放用户的注册信息,账号密码等。

typedef struct The_users //typedef 可以定义结构体别名 { char id[11]; //账号 char pwd[20]; //密码 char name[15];//姓名为字符串 char sex; //性别为单个字符 long phone; //电话号码为长整型 }users;

然后写一个函数用来创建储存用户账号密码的文件。

/*创建储存用户账号密码的文件*/ void Create_File() { FILE *fp; if ((fp = fopen("users.txt","rb"))==NULL) /*如果此文件不存在*/ { if ((fp = fopen("users.txt","wb+"))==NULL) { printf("无法建立文件!\n"); exit(0); } } }

注册:将存放用户的信息的结构体直接存入文件中,每次存入分配该结构体大小的空间,然后该用户的信息就可以按结构体整体来读取。还加入了一些错误提示,如果输入错误就提示重新输入。

/*注册账号*/ void registers() //按结构体的大小,一次写入或者读入1个结构体大小 { users a,b;//结构体 The_users 重命名定义 FILE *fp; char temp[20]; int count = 0; printf("欢迎来到注册界面!\n"); Sleep(1000); fp = fopen("users.txt","r"); fread(&b, sizeof(struct The_users), 1, fp); //读入一个结构体字符块 到b printf("请输入账号\n"); scanf("%s",&a.id); while (1) { if (strcmp(a.id, b.id)) /*如果两串不相等*/ { if (!feof(fp)) /*如果未到文件尾*/ { fread(&b, sizeof(struct The_users), 1, fp); } else break; } else { printf("此用户名已存在!请重新注册!\n"); Sleep(1000); fclose(fp); return; } } printf("请输入姓名:\n"); scanf("%s",&a.name); printf("请输入性别(f(女)/m(男)):\n"); scanf(" %c",&a.sex); do{ if(a.sex != 'f' && a.sex != 'm'){ printf("性别输入错误!请重新输入!\n"); scanf("%c",&a.sex); } }while(a.sex != 'f' && a.sex != 'm'); getchar(); printf("请输入电话号码:\n"); scanf("%ld",&a.phone); printf("请输入密码\n"); scanf(" %s",&a.pwd); printf("请确认密码\n"); scanf(" %s",&temp); do{ if(!strcmp(a.pwd,temp)){ fp = fopen("users.txt","a"); fwrite(&a, sizeof(struct The_users), 1, fp); printf("账号注册成功,请登录!\n"); Sleep(500); fclose(fp); return; }else{ printf("两次密码不匹配!请重新输入!\n"); scanf("%s",&a.pwd); printf("请确认密码\n"); scanf("%s",&temp); } }while(1); }

登录:先输入账号和密码。然后按账号从文件中读取,如果账号匹配就读取密码,如果密码也匹配就登录成功,否则重新输入密码。

/*登录系统*/ void Input_login() { users a,b;//定义结构体The_users别名 FILE *fp; printf("欢迎来到登录界面!\n"); Sleep(1000); fp = fopen("users.txt","r"); fread(&b, sizeof(struct The_users), 1, fp); //读入一个结构体字符块 写入b printf("请输入账号\n"); scanf("%s",&a.id); while (1) { if (strcmp(a.id, b.id)==0) //如果有此用户名 { break; } else { if (!feof(fp)) //如果文件没有读完 { fread(&b, sizeof(struct The_users), 1, fp); } else { printf("此用户名不存在,请重新输入!\n"); Sleep(500); fclose(fp); return; } } } printf("请输入密码\n"); scanf("%s",&a.pwd); do{ if (strcmp(a.pwd, b.pwd)==0) /*如果密码匹配*/ { fclose(fp); printf("登录成功,欢迎使用!"); Sleep(500); return; } else { printf("密码不正确!请重新输入密码\n"); scanf("%s",&a.pwd); } }while(strcmp(a.pwd, b.pwd)==0); }

找回密码:根据输入的账号获取该账号的结构体信息,然后与其他信息进行匹配,如果全部匹配成功,则显示该账号的密码。

/*找回密码*/ void reback() //按结构体的大小,一次写入或者读入1个结构体大小 { users a,b;//结构体 The_users 重命名定义 FILE *fp; char temp[20]; int count = 0; printf("欢迎来到找回密码界面!\n"); Sleep(1000); fp = fopen("users.txt","r"); fread(&b, sizeof(struct The_users), 1, fp); //读入一个结构体字符块 写入b printf("请输入账号\n"); scanf("%s",&a.id); while (1) { if (strcmp(a.id, b.id)==0) //如果有此用户名 { break; } else { if (!feof(fp)) //如果文件没有读完 { fread(&b, sizeof(struct The_users), 1, fp); } else { printf("此用户名不存在,请重新输入!\n"); Sleep(500); fclose(fp); return; } } } printf("请输入姓名:\n"); scanf("%s",&a.name); do{ if(strcmp(a.name,b.name)){ printf("姓名输入错误!请重新输入!\n"); scanf("%s",&a.name); } }while(strcmp(a.name,b.name)); printf("请输入电话号码:\n"); scanf("%ld",&a.phone); do{ if(a.phone != b.phone){ printf("电话号码输入错误!请重新输入!\n"); scanf("%ld",&a.phone); } }while(a.phone != b.phone); printf("您的密码是:%s",b.pwd); Sleep(3000); }

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