日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言编辑问道注册登录程序,C语言实现简单的注册登陆功能

發(fā)布時間:2024/1/1 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言编辑问道注册登录程序,C语言实现简单的注册登陆功能 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

之前在學(xué)習(xí)用C語言建立通訊錄管理系統(tǒng)的時候有想過,怎么為每個用戶單獨設(shè)立通訊錄,自然而然想到了最常見的注冊與登陸功能,通過不同的賬號達到單獨設(shè)立通訊錄的目的。肯定還存在許多問題,當(dāng)給自己立個flag,未來慢慢磨。以下是實現(xiàn)過程:

注意頭文件:

#include

#include

#include

#include

#define bool int //這里用define定義了布爾類型

#define true 1 //避免一些編譯器如vs2010沒有該頭文件無法使用的情況發(fā)生

#define false 0 //有些編譯器如code:blocks可以直接使用頭文件

FILE *fp; //文件指針,不多說

bool judge=true;

先定義一個結(jié)構(gòu)體Users,然后新建結(jié)構(gòu)體pe用來存放用戶名和密碼。

typedef struct

{

char user[20];

char code[20];

}Users;

Users pe;

然后是編寫注冊模塊。這里多增加了一個"閱讀用戶手冊",可刪改。

/*注冊模塊*/

void zhuce()

{

char temp[20],txt[100],cha; //定義兩個數(shù)組,一個存放鍵盤輸入的用戶名和密碼一個存放用戶手冊

do

{

printf("\t\t\t\t用戶注冊");

printf("\n\t\t1.直接注冊 2.閱讀用戶手冊");

cha=getch();

if(cha=='2')

{

if((fp=fopen("使用說明.txt","r"))==NULL)

{

printf("\n\t\t打開失敗");

exit(0);

}

fread(txt,2,20,fp);

printf("\n\t\t%s",txt);

/*txt=fgets(txt,100,fp);

printf("%s",txt);

}

printf("\n\t\t按任意鍵繼續(xù)");

getch();

system("cls");

/*以上部分用于打開用戶手冊,可刪改*/

printf("\t\t\t\t用戶注冊");

printf("\n\t\t用戶名:");

scanf("%s",pe.user);

fp=fopen(pe.user,"r");

/*判斷用戶名是否重復(fù)*/

if(fp!=NULL)

{

printf("\n\t該用戶名已存在");

fclose(fp);

printf("\n\t繼續(xù)注冊?(Y/N)");

if(getch()=='Y') return zhuce();

else return denglu();

}

/*確認兩次密碼輸入是否一致*/

printf("\n\t\t密 碼:");

scanf("%s",pe.code);

printf("\n\t\t確認密碼:");

scanf("%s",temp);

if(strcmp(pe.code,temp)!=0)

printf("\n\t\t兩次密碼不一致,請重新輸入");

}while(strcmp(pe.code,temp)!=0);

/*用戶名密碼無誤,寫入文檔儲存用戶信息*/

fp=fopen(pe.user,"w");

if(fp==NULL)

{

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

exit(0);

}

else

{

system("cls");

printf("\n\t注冊成功");

write(); //用戶信息寫入函數(shù),底下給出

judge = false;

denglu(); //這里跳轉(zhuǎn)到登陸模塊

}

}

/*寫入用戶信息*/

void write()

{

if(fwrite(&pe,sizeof(User),1,fp)!=1)

{

printf("\n\t\t寫入文件錯誤");

exit(0); //寫入錯誤則退出程序

}

}

寫完注冊模塊,接下來就是寫登陸模塊了,這里的關(guān)鍵就是讀取之前存儲好的用戶信息以及用戶的資料

void denglu()

{

char u[20],c[20],temp[20]; //定義兩個數(shù)組,存放鍵盤輸入的用戶名和密碼

printf("\n\t\t\t\t用戶登錄");

printf("\n\t\t用戶名:");

scanf("%s",u);

/*判斷用戶名是否存在*/

fp=fopen(u,"r+");

temp[0]='0';

if(fp==NULL)

{

printf("\n\t\t用戶不存在,請注冊");

printf("\n\t\t1.注冊 2.重新登陸");

temp[0]=getch();

if(temp[0]=='1')

{

system("cls");

zhuce();

}

else return denglu();

}

/*驗證密碼是否正確*/

do

{

if(judge==true) fread(&pe,sizeof(Users),1,fp); //讀取用戶信息,即用戶名和密碼

printf("\t\t密 碼:");

scanf("%s",c);

if(strcmp(pe.code,c)!=0) //對比輸入的密碼和讀取的密碼

{

printf("\n\t\t密碼錯誤(1.退出 2.重新輸入)");

temp[0]=getch();

printf("\n");

if(temp[0]=='1')

{

fclose(fp); //關(guān)閉文件防止錯誤操作

return main();

}

}

}while(temp[0]=='2');

/*readfile();

該函數(shù)讀取用戶自己的資料,需要注意這里用戶信息和其資料存儲在一個文件中,讀取是應(yīng)適當(dāng)使用rewind,ftell和fseek跳過一個User大小的空間讀取的才是用戶的資料*/

getch();

//這里可以設(shè)置跳轉(zhuǎn)到操作界面

}

到這里登陸模塊也編寫好了,只需要將它添加到已有代碼稍微修改下就可以了O(∩_∩)O~

雖然這個思路很簡單,但當(dāng)初思考的時候還是費勁腦汁,畢竟剛接觸C語言,很多東西還不能融會貫通,不能運用自如,甚至?xí)诤芎唵蔚膯栴}上糾結(jié)幾個小時,最后發(fā)現(xiàn)的時候真的想抽自己幾巴掌,但當(dāng)最后完工了,真的實現(xiàn)了,好開心好開心!O(∩_∩)O~

然而,實用性確實有限,只能供咱們這些新手小白消遣消遣,而且肯定存在許多漏洞,水平有限,又或者太懶了,真心不找了,這里立個flag,未來的學(xué)習(xí)之路,咱們慢慢磨!

(*^__^*) 嘻嘻……

總結(jié)

以上是生活随笔為你收集整理的c语言编辑问道注册登录程序,C语言实现简单的注册登陆功能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。