当前位置:新励学网 > 秒知问答 > 求一段C语言程序

求一段C语言程序

发表时间:2024-07-19 00:37:40 来源:网友投稿

这个是第一题,我承认后面几道题我都没看题目。

编译环境:WINDOWSXPSP3+VC6.0

#include

#include

#include//getch()头文件

#include//exit()头文件

#definePASSPORT_LENGTH20//密码最大长度

voidSetPassport();//选择1设置密码

voidLoadSystem();//选择2登录系统

voidInputPassport(charstr[]);//输入一个密码,并在屏幕上显示*号

voidmain()

{

inti=0;

while(1)

{

printf(******************\n);

printf(1.设置密码.\n);

printf(2.登录系统.\n);

printf(0.退出.\n);

printf(******************\n);

printf(请输入您的选择:);

scanf(%d,&i);

switch(i)

{

case1:SetPassport();break;

case2:LoadSystem();break;

case0:return;break;

default:printf(输入错误,请重新输入。\n);

}

}

}

voidSetPassport()

{

FILE*fiPassport=NULL;

charstr0[PASSPORT_LENGTH]={0};

charstr1[PASSPORT_LENGTH]={0};

charstr2[PASSPORT_LENGTH]={0};

fiPassport=fopen(passport.txt,r+);

if(fiPassport==NULL)//如果没有密码文件则设置初始密码

{

printf(本系统未设置过密码,请设置初始密码!\n);

printf(请输入新密码:\n);

InputPassport(str1);

printf(请再次输入新密码:\n);

InputPassport(str2);

}

else//设置新密码

{

fscanf(fiPassport,%s,&str0);

fclose(fiPassport);

printf(请输入原密码:\n);

InputPassport(str1);

if(strcmp(str0,str1)==0)

{

memset(str1,0,PASSPORT_LENGTH);

printf(请输入新密码:\n);

InputPassport(str1);

printf(请再次输入新密码:\n);

InputPassport(str2);

}

else

{

printf(原密码输入错误!\n);

return;

}

}

if(strcmp(str1,str2)==0)//如果两次输入的密码一致则保存密码到passport.txt文件,未加密

{

fiPassport=fopen(passport.txt,w);

if(fiPassport==NULL)

{

printf(新密码保存失败!\n);

}

else

{

if(fprintf(fiPassport,%s,str1))

printf(保存新密码成功!\n);

fclose(fiPassport);

}

}

else

{

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

}

}

voidLoadSystem()

{

FILE*fiPassport=NULL;

charstr0[PASSPORT_LENGTH]={0};

charstr1[PASSPORT_LENGTH]={0};

inti=3;//3次输入密码的机会

fiPassport=fopen(passport.txt,r);

if(fiPassport==NULL)//如果未设置过密码则不能登陆系统

{

printf(请先设置密码!\n);

return;

}

else

{

fscanf(fiPassport,%s,&str0);//获取设置的密码

fclose(fiPassport);

}

while(i)//3次机会

{

printf(请输入登录密码(您还有%d次输入密码的机会):\n,i);

InputPassport(str1);

if(strcmp(str0,str1)==0)

{

printf(**********\n);//密码正确则显示欢迎信息

printf(欢迎进入XX系统,您在此系统的一切操作都将被记录,以作为将来的呈堂证供\n(按任意键返回主菜单)\n);

printf(**********\n);

getch();

return;

}

else

{

printf(输入密码错误,请重新输入!\n);

i--;//输入错误一次就减少一次机会

}

}

printf(密码输入3次错误,按任意键程序将终止运行!\n);

getch();

exit(1);

}

voidInputPassport(charstr[])

{

inti=0;

charch;

while(i<PASSPORT_LENGTH)

{

ch=getch();

if(ch!=13)//如果不是回车则接受输入并显示*号

{

str[i]=ch;

printf(*);

i++;

}

else//如果是回车则结束本次密码输入

{

printf(\n);

break;

}

}

}

免责声明:本站发布的教育资讯(图片、视频和文字)以本站原创、转载和分享为主,文章观点不代表本网站立场。

如果本文侵犯了您的权益,请联系底部站长邮箱进行举报反馈,一经查实,我们将在第一时间处理,感谢您对本站的关注!