c語言編程實現用戶的注冊和登錄

很簡單的小程序啊,使用getch()來讀取鍵盤輸入,顯示為「*」號,然後將讀取的字元(串)直接做一下比較就可以了。

② 如何用C語言編程實現用戶登錄

C語言的話,來一般用戶信息存儲源在結構體鏈表裡
你輸入用戶名回車以後,需要遍歷鏈表,使用strcmp()函數逐一對比鏈表裡是否存儲了你輸入的用戶名。不存在輸出「無此用戶」,存在繼續輸入密碼,將密碼與此結點的密碼信息對比,處理方式同用戶名;
至少三次輸入錯誤,可設一個整形變數index = 0,每錯誤一次執行index++,當if(index==3)成立時,輸出相應信息,並執行exit(1);

③ c語言編寫登錄程序

#include<stdio.h>
voidmain()
{
chara[100],b[100];
printf("請輸入用戶名:");
scanf("%s",a);
printf("請輸入密碼:");
scanf("%s",b);
if(strcmp(a,"root")==0&&strcmp(b,"123456")==0)
內{
printf("密碼正確");
}
else
{
printf("密碼或用戶名錯誤容");
}
}

用戶名和密碼都要用字元串保存和比較。

scanf里不能帶輸出信息。

④ C語言用戶登錄

艾達的小刀
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>

/*隨機碼產生函數*/
void RandomCode (char Rcode[])
{
int i;
srand ((unsigned int)time(NULL));
for (i = 0; i < 3; ++i)
Rcode[i] = rand()%10 + '0';
Rcode[i] = '\0';
}
/*登陸函數,判斷信息是否匹配,若匹配返回1,否則返回0*/
int LandedApp (char *password[], char Rcode[])
{
char name[10] = {0};
char pword[10] = {0};
char rcode[4] = {0};

printf ("用戶名 : ");
gets (name);
printf ("密碼 : ");
gets (pword);
printf ("隨機碼 : ");
gets (rcode);

if (strcmp (name, password[0]) != 0 || strcmp (pword, password[1]) != 0 || strcmp (rcode, Rcode) != 0)
return 0;
else
return 1;
}

int main ()
{
char * password[2] = {"admin", "admin123"}; //用戶名和密碼
char rc[4] = {0}; //隨機碼
int count = 3; //可輸入次數

puts ("請輸入用戶名,密碼和隨機碼:");
while (count)
{
RandomCode (rc);
printf ("隨機碼 : %s\n", rc);
if (LandedApp(password, rc) != 0)
break;
--count;
if (count != 0)
puts ("錯誤的用戶名或密碼或隨機碼,請重新輸入: ");
}
if (count != 0)
puts ("\n成功登陸!");
else
puts ("\n登錄失敗 !");

return 0;
}
艾達的小刀

⑤ C語言編寫用戶登錄程序

|艾達的小刀
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>

/*隨機碼產生函數*/
void RandomCode (char Rcode[])
{
int i;
srand ((unsigned int)time(NULL));
for (i = 0; i < 3; ++i)
Rcode[i] = rand()%10 + '0';
Rcode[i] = '\0';
}
/*登陸函數,判斷信息是否匹配,若匹配返回1,否則返回0*/
int LandedApp (char *password[], char Rcode[])
{
char name[10] = {0};
char pword[10] = {0};
char rcode[4] = {0};

printf ("用戶名 : ");
gets (name);
printf ("密碼 : ");
gets (pword);
printf ("隨機碼 : ");
gets (rcode);

if (strcmp (name, password[0]) != 0 || strcmp (pword, password[1]) != 0 || strcmp (rcode, Rcode) != 0)
return 0;
else
return 1;
}

int main ()
{
char * password[2] = {"admin", "admin123"}; //用戶名和密碼
char rc[4] = {0}; //隨機碼
int count = 3; //可輸入次數

puts ("請輸入用戶名,密碼和隨機碼:");
while (count)
{
RandomCode (rc);
printf ("隨機碼 : %s\n", rc);
if (LandedApp(password, rc) != 0)
break;
--count;
if (count != 0)
puts ("錯誤的用戶名或密碼或隨機碼,請重新輸入: ");
}
if (count != 0)
puts ("\n成功登陸!");
else
puts ("\n登錄失敗 !");

return 0;
}
艾達的小刀

⑥ C語言編程:實現用戶的注冊和登錄

模擬用戶注冊和登陸可以用文件來保存用戶名和密碼。注冊就是向文件里寫,用if判斷兩次密碼是否一致。連續三次,可以有一個變數,每次輸入加一,變數大於三就提示登陸不成功。用戶名不對,那你就把你輸入的用戶名和文件里的用戶名是否一致。

⑦ c語言編寫注冊與登錄的程序

||希望對你有所幫助

#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 = 0; i < len; i++)
{
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=0;i<size;i++)
{
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;
}

⑧ c語言編寫用戶登錄程序

程序的關鍵是如何讀入 password 和顯示. 允許用回退鍵, 下面給出。
至於如何讀入 用戶名,檢查 用戶名是否在名單里,如果在,他/她的正確 密碼是什麼,
如果不在,則進入 注冊程序 等, 這里不介紹。
#include <stdio.h>
#include <stdlib.h>
int main()
{
char u[20];
char p[50]; //存放拍入的密碼
char u_name[20]="U_Name888"; // 假定u_name的正確的用戶名
char password[50]="Leaf888"; // 假定u_name的正確的密碼
int i=0;
printf("type user name:\n");
scanf("%s",u_name);
printf("type your password:\n");
while ( i < 50 ){
p[i] = getch();
if (p[i] == '\r') break;
if (p[i] == '\b') { i=i-1; printf("\b \b"); } else {i=i+1;printf("*");};
}
p[i]='\0';
if ( strcmp(password,p)==0) printf("\nThe passwd is right!\n");
else printf("\n You typed wrong password:%s",p);
return 0;
}

⑨ C語言:實現登錄功能,謝謝

#include <stdio.h> #include<string.h> main() { FILE *fp; char pswd[100], enter[100]; int i; if((fp=fopen("password.txt","r"))==NULL) { puts("password file not exist"); return 1; } fgets(pswd,100,fp); printf("plz enter pswd:"); gets(enter); i=3; while(i-->0) if(strcmp(enter,pswd)==0) puts("welcome!"); else printf("pswd error,try again:"); if(i==-1) puts("login error!"); }