求一段C语言程序
这个是第一题,我承认后面几道题我都没看题目。
编译环境: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;
}
}
}
免责声明:本站发布的教育资讯(图片、视频和文字)以本站原创、转载和分享为主,文章观点不代表本网站立场。
如果本文侵犯了您的权益,请联系底部站长邮箱进行举报反馈,一经查实,我们将在第一时间处理,感谢您对本站的关注!
新励学网教育平台
海量全面 · 详细解读 · 快捷可靠
累积科普文章数:18,862,126篇