當前位置:首頁 » 編程語言 » c語言的注冊

c語言的注冊

發布時間: 2023-03-02 18:32:15

c語言程序,登錄注冊系統

提供一個思路,將txt文件中的內容讀取到一個數組中,這個數組中的數據應該是你自定義的結構體。然後將該用戶名與數組中的內容循環比較。如果發現有相等的(即已存在),則注冊失敗!給個例子:

#include<stdio.h>
intmain()
{
intv[100];//開一個足夠大的數組。
inti=0,j;
FILE*fp;//文件指針

fp=fopen("in.txt","r");//以文本方式打開文件。
if(fp==NULL)//打開文件出錯。
return-1;
while(fscanf(fp,"%s",v[i])!=EOF)//讀取數據到數組,直到文件結尾(返回EOF)
i++;
fclose(fp);//關閉文件

charregisterName[20];
for(j=0;j<i;j++)//循環輸出數組元素。
{
if(strcmp(registerName,v[i].name)==0)
{
printf("該用戶名已存在! ");
break;
}
}
return0;
}

大概就這樣的。具體的細節你自己調試。

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

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

Ⅲ 用C語言設計登錄注冊功能的程序實現的基本思路:

1.輸入姓名變數和密碼變數,保存到一個數組中(比如:賬戶信息數組)。
2.輸入姓名和密碼,然後到數組中用循環比較找到用戶名,然後在比較密碼。
3.如果沒有匹配到姓名則輸出無此用戶,否則,進一步比較密碼,成功,輸出
登陸成功,否則,輸出密碼錯誤,然後返回到重新登陸頁面。

Ⅳ c語言用戶注冊代碼

C語言編程實現用戶的注冊和登錄
#include "stdafx.h"
#include "string.h"
#define n 20

void zhuce();
void denglu();
char yhm[n],mm[n];
int main(int argc, char* argv[])
{
int i;

printf("-----------\n1.注冊\n2.登陸\n3.繼續\n0.退出\n");
scanf("%d",&i);
switch(i)
{case 0: break;
case 1 : zhuce();break;
case 2: denglu();break;

}

return 0;
}
void zhuce( )
{char temp1[n],temp2[n],temp3[n],yhmtmp[n];

printf("輸入用戶名\n");
fflush(stdin);//清空緩存
gets(yhmtmp);

printf("輸入密碼\n");
fflush(stdin);
gets(temp1);
printf("輸入密碼確認\n");
fflush(stdin);
gets(temp2);
if(!strcmp(temp1,temp2))
{strcpy(mm,temp1);
printf("注冊成功\n");

}
else
{printf("輸入密碼確認\n");
gets(temp3);
if(!strcmp(temp1,temp3))
{strcpy(mm,temp1);
printf("注冊成功\n");

}
else

printf("注冊失敗\n");

}

}
void denglu( )
{
char s1[n],s2[n];
printf("輸入用戶名\n");
fflush(stdin);
gets(s1);
printf("輸入密碼\n");
fflush(stdin);
gets(s2);
if((strcmp(s1,yhm))&&(strcmp(s2,mm)))
printf("登陸成功\n");

}

Ⅳ 編一個注冊登陸的程序 C語言的

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

bool search(char id[], char pass[]) {
FILE *fp;
char tid[10], tpass[10];
fp = fopen("c:\\data", "r");
while (!feof(fp)) {
fscanf(fp, "%s%s", tid, tpass);
if (strcmp(tid, id)==0 && strcmp(tpass, pass)==0) {
fclose(fp);
return true;
}
}
fclose(fp);
return false;
}

bool login() {
char id[10], pass[10];
printf("Login\nPress the id: ");
scanf("%s", id);
printf("Press the password: ");
// 可以自行將password處理成*號, 如果不會可以發信給我
scanf("%s", pass);
printf("-----------------------");
if (search(id, pass))
return true;
else
return false;
}

void _add(char id[], char pass[]) {
FILE *fp;
fp=fopen("c:\\data", "a");
// 在寫入文件時可以按一定的排序方式插入,可減少以後Login時的search時間
fprintf(fp, "%s %s\n", id, pass);
fclose(fp);
}

void regis() {
char id[10], pass[10], tpass[10];
printf("Register\nPress the id: ");
scanf("%s", id);
while (true) {
printf("Press the password: ");
scanf("%s", pass);
printf("Press the password again: ");
scanf("%s", tpass);
if (strcmp(pass, tpass) != 0)
printf("The passwords you pressed are not the same!\n");
else
break;
}
_add(id, pass);
printf("-----------------------Register successfully!\n");
}

void init() {
FILE *fp;
if ((fp=fopen("c:\\data", "r")) == NULL) { // 注意,一定要有個名叫data(沒有擴展名)的合法文件在C盤根目錄
printf("---------File is not exist\n");
system("pause");
exit(0);
}
else
fclose(fp);
}

int main(void){
int command;
init(); // 檢查data文件在不在
while (true) {
printf("-----------------------(Login: 1 Register: 2 Exit: 3)\n");
scanf("%d", &command);
printf("-----------------------\n");
// 這里可以編寫command的檢測語句
if (command == 3)
break;
else if (command == 1) {
if (!login())
printf("ID is not exist or password is wrong!\n");
else
printf("Login successfully!\n");
}
else
regis();
}
return 0;
}
搞定了。。。我是用成功了的。。。如果有問題就發信給我。。。。

Ⅵ 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;
}

熱點內容
javaj2ee 發布:2024-11-07 12:26:17 瀏覽:787
hmcl伺服器地址怎麼寫 發布:2024-11-07 12:26:10 瀏覽:542
北京一區伺服器ip地址 發布:2024-11-07 12:12:54 瀏覽:316
dll加密反編譯 發布:2024-11-07 12:10:40 瀏覽:92
lol如何設置伺服器忙 發布:2024-11-07 12:04:04 瀏覽:547
發票價演算法 發布:2024-11-07 11:59:02 瀏覽:603
使命召喚如何退款安卓微信 發布:2024-11-07 11:32:38 瀏覽:822
優酷上傳音樂 發布:2024-11-07 11:28:14 瀏覽:733
安卓原生系統開發者模式在哪裡 發布:2024-11-07 11:22:47 瀏覽:409
pythongdal安裝 發布:2024-11-07 11:07:29 瀏覽:289