可更改密码的c语言函数 c语言密码修改程序

c语言编写atm如何修改密码

步骤:

成都创新互联公司主要从事网站建设、网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务奇台,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220

1. 使用C语言编写atm程序,实现密码修改的功能。

2. 需要设置一个全局变量来存储当前用户的密码信息。

3. 在主函数中,定义一个函数,用于输入原密码和修改后的新密码。

4. 在输入新密码之前,需要验证输入的原密码是否正确。

5. 如果原密码输入正确,则继续输入新密码,并将新密码记录到全局变量中。

6. 如果原密码输入错误,则提示用户重新输入。

7. 将修改后的新密码记录到文件中,以备下次使用。

一个简单的C语言:密码转换

char mycrypt ( char ch, int key )

{

if ( ch = 'Z' ch = 'A' )

{

ch -= 'A';

ch += 26 + key;

ch = ch % 26;

ch += 'A';

}

else if ( ch = 'z' ch = 'a' )

{

ch -= 'a';

ch += 26 + key;

ch = ch % 26;

ch += 'a';

}

return ch;

}

C语言学生信息录入系统,有个初始密码为admin现在如何增加一个用户自定义的修改密码函数

//专门注册用户和登录的代码

#include stdio.h

#include stdlib.h

#include string.h

#include stdbool.h

#include windows.h

typedef struct

{

int x;

int y;

}PT_STRUCT;

typedef struct

{

char user[20];

char pw[20];

}USER_STRUCT;

PT_STRUCT pt;

bool LoginSuccess=false;

char CurrentUser[20]={'\0'};

int UserCount=0;

USER_STRUCT* pUser=NULL;

char WorkDir[100]={'\0'};

char DataFile[100]={'\0'};

void setxy(int x, int y)  //设置光标位置 

{

COORD coord = {x, y};

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);

}

void getxy()             //获取当前光标所在位置 

{

HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

COORD coordScreen = {0, 0}; //光标位置

CONSOLE_SCREEN_BUFFER_INFO csbi;

if(GetConsoleScreenBufferInfo(hConsole, csbi))

{

pt.x=csbi.dwCursorPosition.X;

pt.y=csbi.dwCursorPosition.Y;

}

}

void input(char* buf)

{

int len=strlen(buf);

int c;

int i=0;

while(1)

{

c=getch();

if(c==8  i==0)

{

continue;

}

if(c==10 || c==13) break;

if(c==8  i0)

{

buf[i-1]='\0';

i--;

getxy();

setxy(pt.x-1,pt.y);

printf(" ");

setxy(pt.x-1,pt.y);

}

else if(i=0)

{

printf("*");

buf[i++]=c;

}

if(i=buf)

{

return;

}

}

}

void GetUserDataFromFile()

{

UserCount=GetPrivateProfileInt("USER","user_count",0,DataFile);

if(pUser!=NULL)

{

free(pUser);

}

pUser=(USER_STRUCT*)malloc(sizeof(USER_STRUCT)*(UserCount+1));

int i;

char ch[5];

for(i=0;iUserCount;i++)

{

memset(ch,'\0',5);

sprintf(ch,"%d",i+1);

GetPrivateProfileString(ch,"user","",pUser[i].user,20,DataFile);

GetPrivateProfileString(ch,"pw","",pUser[i].pw,20,DataFile);

}

}

void WriteDataToFile()

{

int i;

char t[5]={"\0"};

sprintf(t,"%d",UserCount);

WritePrivateProfileString("USER","user_count",t,DataFile);

for(i=0;iUserCount;i++)

{

sprintf(t,"%d",i+1);

WritePrivateProfileString(t,"user",pUser[i].user,DataFile);

WritePrivateProfileString(t,"pw",pUser[i].pw,DataFile);

}

GetUserDataFromFile();

}

bool login()

{

if(LoginSuccess==true)

{

printf("\n当前已有用户登录! 重新登录吗?(Y/N)");

char sel;

fflush(stdin);

scanf("%c",sel);

if(sel=='y' || sel=='Y')

{

LoginSuccess==false;

}

else

{

return false;

}

}

char user[20]={'\0'};

char pw[20]={'\0'};

printf("\nInput User: ");

fflush(stdin);

scanf("%s",user);

printf("\nInput Password: ");

fflush(stdin);

input(pw);

bool find=false;

int i;

for(i=0;iUserCount;i++)

{

if(strcmp(user,pUser[i].user)==0  strcmp(pw,pUser[i].pw)==0)

{

find=true;

LoginSuccess=true;

strcpy(CurrentUser,pUser[i].user);

break;

}

}

if(find==true)

{

return 1;

}

else

{

return 0;

}

}

bool regist(char* ErrBuf)

{

char user[20]={'\0'};

char pw1[20]={'\0'};

char pw2[20]={'\0'};

printf("\nInput User: ");

fflush(stdin);

scanf("%s",user);

int i;

for(i=0;iUserCount;i++)

{

if(strcmp(user,pUser[i].user)==0)

{

strcpy(ErrBuf,"User Repeat");

return false;

}

}

printf("\nInput Password: ");

fflush(stdin);

input(pw1);

printf("\nReInput Password: ");

fflush(stdin);

input(pw2);

if(strcmp(pw1,pw2)!=0)

{

strcpy(ErrBuf,"Password Differ");

return false;

}

strcpy(pUser[UserCount].user,user);

strcpy(pUser[UserCount].pw,pw1);

UserCount++;

return true;

}

int main()

{

_getcwd(WorkDir,100); //取得当前程序的绝对路径

strcpy(DataFile,WorkDir);

strcat(DataFile,"\\user.dat");

if(access(DataFile,0))

{

printf("\n用户数据文件不存在, 按任意键将创建文件");

getchar();

FILE* fp;

fp=fopen(DataFile,"wb");

int re=fputs("[USER]\nuser_count=0",fp);

if(re=0)

{

printf("\n用户数据文件创建成功!");

}

else

{

printf("\n用户数据文件创建失败!");

}

getchar();

fclose(fp);

}

GetUserDataFromFile();

while(1)

{

system("cls");

printf("已注册用户%d\n",UserCount);

if(LoginSuccess==true)

{

printf("Logined User : %s",CurrentUser);

}

printf("\n-------------------------------");

printf("\n登录---1");

printf("\n注册---2");

printf("\n退出---3");

printf("\n-------------------------------");

printf("\n\nInput:(1,2,3) : ");

fflush(stdin);

int sel;

bool re;

char ErrBuf[50]={'\0'};

scanf("%d",sel);

switch(sel)

{

case 1:

re=login();

if(re==true)

{

printf("\nLogin Success! Current User: %s",CurrentUser);

fflush(stdin);

getchar();

}

else

{

printf("\nLogin Fail!");

fflush(stdin);

getchar();

}

break;

case 2:

memset(ErrBuf,'\0',50);

re=regist(ErrBuf);

if(re!=true)

{

printf("%s Register Fail!",ErrBuf);

fflush(stdin);

getchar();

}

else

{

WriteDataToFile();

printf("\nRegister Success!");

fflush(stdin);

getchar();

}

break;

case 3:

exit(0);

break;

default:

break;

}

}

return 0;

}

C语言用c写一个可以验证账号,密码和修改密码的程序

#include string.h

struct e

{

char a[10];

char b[10];

}z;

int main()

{ int t=0;

char s[10],d[10];

FILE *p;

void as();

if ((p=fopen("m.txt","r+"))==NULL)

{

p=fopen("m.txt","w+");

t=1;

}

if(t==1)

{

printf("当前没有任何用户\n");

printf("请新建用户名: ");

scanf("%s",s);

printf("为用户设置密码: ");

scanf("%s",d);

strcpy(z.a,s);

strcpy(z.b,d);

fprintf(p,"%s %s",z.a,z.b);

fclose(p);

}

if(t==0)

{

printf("请输入用户名: ");

scanf("%s",s);

fscanf(p,"%s %s",z.a,z.b);

fclose(p);

if (!strcmp(z.a,s))

{

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

scanf("%s",d);getchar();

if(!strcmp(z.b,d))

{ char i;

printf("是否要修改密码?(输入y修改,n退出!)");

scanf("%c",i);

if(i=='y')

{

printf("请输入修改密码:");

scanf("%s",z.b);

p=fopen("m.txt","w+");

fprintf(p,"%s %s",z.a,z.b);

fclose(p);

printf("修改成功!");

}

}

else printf("密码错误!");

}

else printf("用户名错误");

fclose(p);

}

}

本文题目:可更改密码的c语言函数 c语言密码修改程序
本文来源:https://www.cdcxhl.com/article2/ddspjoc.html

成都网站建设公司_创新互联,为您提供网站内链面包屑导航网站导航网站设计公司网站策划

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站优化排名