c语言编写注册与登录的程序

Python024

c语言编写注册与登录的程序,第1张

希望对你有所帮助

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#include<ctype.h>

#define N 100

struct user

{

int user_id

char user_name[19]//最大18位

char password[13]//最大13位

char like[255]

char sign[255]

}

/*

* 验证用户名长度是否合法

*/

int length_user_name(char *p)

{

int l

l=strlen(p)

if(l>18||l<1)

{

return 0

}

else

return l

}

/*

* 判断用户名是否有效

*/

int valid_user_name(char *p)

{

int i=0

int len = strlen(p)

if((*p >= 'a' &&*p <= 'z') || (*p >= 'A' &&*p <='Z')) //判断首字符是不是字母

{

for(i = 0i <leni++)

{

if(!(p[i] == '_' || (p[i] >= 'a' &&p[i] <= 'z') || (p[i] >= 'A' &&p[i] <='Z')

||(p[i] >='0' &&p[i] <= '9'))) //判断后面字符是否有效

return 0

}

return 1

}

else

return 0

}

/*

* 判断用户名是否有效

*/

int is_username_valid(char *p)

{

if((*p >= 'a' &&*p <= 'z') || (*p >= 'A' &&*p <='Z'))

{

p++

while(*p)

{

if(!(isalpha(*p) || *p == '_' || isdigit(*p)))

return 0

p++

}

return 1

}

else

{

return 0

}

}

/*

* 密码长度有效性验证

*/

int length_password(char *p)

{

int len

len = strlen(p)

if(len<6||len>12)

{

return 0

}

else

return len

}

/*

* 密码的有效性验证

*/

int is_password_valid(char *p)

{

int i=0

for(*p != '\0'p++)

{

if(!( (*p >= 'a' &&*p <= 'z') || (*p >= 'A' &&*p <='Z')

||(*p >='0' &&*p <= '9'))) //判断字符是否有效

return 0

}

return 1

}

int two_password_valid(char *p1,char*p2)

{

if(strcmp(p1,p2)==0)

return 1

else

return 0

}

/*

* 完成注册功能

*/

int user_register(struct user *ptr_user,int size)

{

char password[13]

char repassword[13]

if(size==N)

{

puts("注册人数以满!")

return 0

}

printf("请输入注册姓名:")

fflush(stdin)

gets(ptr_user[size].user_name)

if(!(length_user_name(ptr_user[size].user_name)&&valid_user_name(ptr_user[size].user_name)))

{

printf("您输入的姓名无效,用户名在1-18之间,首字符为字母,后面必须为字母,数字或下划线!!!")

return 0

}

printf("请输入注册密码:")

fflush(stdin)

gets(password)

printf("请再次输入注册密码:")

fflush(stdin)

gets(repassword)

if(!two_password_valid(password,repassword))

{

printf("\n两次输入的密码不一致!")

return 0

}

else

{

strcpy(ptr_user[size].password,password)

}

if(!(length_password(ptr_user[size].password)&&is_password_valid(ptr_user[size].password)))

{

printf("您输入的密码无效,密码应在6-12之间,密码只能包含字母和数字!!!")

return 0

}

printf("请输入您的爱好:")

fflush(stdin)

gets(ptr_user[size].like)

printf("请输入您的个性签名:")

fflush(stdin)

gets(ptr_user[size].sign)

printf("您的编号为:%d,这将是您的登陆帐号.",ptr_user[size].user_id=10000+size)

return 1

}

/*

* 如果登陆成功则返回第i+1个用户的信息,否则返回0

*/

int is_my_user(struct user *p,int size)

{

int i

int zhanghu

char mima[15]

printf("请输入您的帐号: ")

scanf("%d",&zhanghu)

fflush(stdin)

printf("请输入您的密码: ")

gets(mima)

for(i=0i<sizei++)

{

if((zhanghu == p[i].user_id)&&(strcmp(mima,p[i].password)==0))

{

return i + 1

}

}

return 0

}

void display_user(struct user u)

{

printf("\n你的帐号是:%d",u.user_id)

printf("\n你注册姓名是:%s",u.user_name)

printf("\n你的爱好:%s",u.like)

printf("\n你的个性签名:%s",u.sign)

}

void update_password(struct user *ptr_user,int size)

{

char mima1[13],mima2[13]

int i = is_my_user(ptr_user,size)

if(i)

{

i--

}

else

{

printf("\n帐号密码不存在!")

return

}

printf("请输入新密码: ")

scanf("%s",mima1)

printf("请再次输入新密码: ")

scanf("%s",mima2)

if(two_password_valid(mima1,mima2) &&length_password(mima1) &&is_password_valid(mima1))

{

strcpy(ptr_user[i].password,mima1)//完成新旧密码的调换

printf("\n您的的密码修改成功!")

}

else

printf("\您的密码修改失败!")

}

//显示菜单

int show_menu()

{

int choice

printf("\n1.注册")

printf("\n2.登陆")

printf("\n3.修改密码")

printf("\n4.退出")

printf("\n请选择1-4\n")

scanf("%d",&choice)

return choice

}

int main()

{

struct user our_users[N]

int count = 0

int current_user

while(1)

{

switch(show_menu())

{

case 1:

if(user_register(our_users,count))

{

count++

printf("\n注册成功!")

}

break

//注册

case 2:

if((current_user = is_my_user(our_users,count)))

{

printf("\n登陆成功!")

display_user(our_users[current_user - 1])

}

else

printf("\n登陆失败!")

break

//登陆

case 3:

update_password(our_users,count)

break

//修改密码

case 4:

exit(1)

break

//退出

default:

printf("请正确输入")

}

}

return 0

}

/ /你看到自己专门为你烫一下注册和登录系统

1新用户注册

2登录

3退出

1

注册帐号:

请输入您的姓名:

KA西瓜

请输入您的密码:!

注册成功

注册和登录系统

1新用户注册

2登录

3退出

2

登录帐号:

请输入用户名:

KA西瓜

请输入密码:

确定登录成功

欢迎回来,KA西瓜

按任意键继续

! >#包括中

#包括的

无效新用户注册()/ /用户注册功能

无效登录()/ /用户登录功能

的main()

{

整数selectNum

的printf(“\ nRegistered和登录系统\ n \ n已”)

printf(“请1新用户注册\ N”)

printf(“请2登录\ N”)

printf(“请3退出\ n”)

的scanf(“%d个”,&selectNum)

开关(selectNum)

{

案例1:新用户注册()

突破

案例2:登录()

突破案例3:printf(“请!退出程序\ n”)

出口(1)

突破

无效新用户注册()

{

文件*计划生育

字符Linedata [50] = {0},用户[20],通[20]

计划生育=打开(“data.dat文件”,“在”)

printf(“请注册帐号:\ n”)

printf(“请输入你的姓名:\ n”)

FFLUSH(标准输入)

得到(用户)

printf(“请输入您的密码:\ n”)

FFLUSH(标准输入)

得到(通行证)

的strcpy(Linedata,用户)

的strcat(Linedata,“,”)

strcat的(Linedata,通行证)

strcat的(Linedata,“\ N”)

FPUTS(Linedata,FP)

FCLOSE(FP)

printf(“请!注册成功\ n”)

的main()

}

无效登录()

{

文件*计划生育

整型发现= 0

用户的char [20],通[20],Userstrcat [50] = {0}

字符使用用户数据[50] = {0}

计划生育=打开(“data.dat文件”,“R”)

printf(“请登录帐号:\ n”)

printf(“请输入用户名:\ n”)

FFLUSH(标准输入)

得到(用户)

printf(“请输入密码:\ n”)

FFLUSH(标准输入)

得到(通行证)

的strcpy(Userstrcat,用户)

的strcat(Userstrcat,“,”)

strcat的(Userstrcat,通行证)

strcat的(Userstrcat,“\ N”)!

而(的feof(计划生育))

{

与fgets(使用用户数据,19,FP)

如果(STRCMP(保留使用者,Userstrcat)== 0)

{

printf(“请确定登录成功\ n!”)

printf(“请欢迎回来,%s的\ n!”,用户)

发现= 1

突破

如果

(find!){

的printf(“用户名或密码不正确\ n”)

FCLOSE(FP)

}

#include "Head.h"

#include "Chinese.c"

#include "Mouse.c"

#include "Login.c"

#include "Exit.c"

#include "Window.c"

#include "OtIT.c"

#include "Scanf.c"void initgr(void) /* BGI初始化 */

{

int gd = DETECT, gm = 0 /* 和gd = VGA,gm = VGAHI是同样效果 */

registerbgidriver(EGAVGA_driver)/* 注册BGI驱动后没成绩不需求.BGI文档的支持运行 */

initgraph(&gd, &gm, "")

if(graphresult())

{

printf ("Graphics isn't available...")

getch()exit(1)

}

MskindMath()/* 计算鼠标的样子*/

Msinit()

}void main(void)

{

initgr()/* 初始化*/

Login()/* 登录*/

Exit() /* 退出*/

}

。。。。。。。。。。。