C语言编写用户登录程序

请编写一个用户登录程序,用户每次登录需要输入用户名、密码和随机生成的三位数的验证码,之后程序判断用户名、密码和验证码是否正确,如果正确,则显示“登录成功!”,否则,显示“用户名、密码或者验证码错误!请重新输入!”。如果三次输入错误,则显示“拒绝登录!”,然后程序结束。要求用户输入之前程序要给与适当的提示。

提示:程序中设置一个二维字符数组(或者字符指针数组),用于存储合法的用户名和密码;如果这里不会,则可以简化为以下情况:假设正确的用户名为admin,密码为admin123.

艾达的小刀
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>

/*随机码产生函数*/
void RandomCode (char Rcode[])
{
int i;
srand ((unsigned int)time(NULL));
for (i = 0; i < 3; ++i)
Rcode[i] = rand()%10 + '0';
Rcode[i] = '\0';
}
/*登陆函数,判断信息是否匹配,若匹配返回1,否则返回0*/
int LandedApp (char *password[], char Rcode[])
{
char name[10] = {0};
char pword[10] = {0};
char rcode[4] = {0};

printf ("用户名 : ");
gets (name);
printf ("密码 : ");
gets (pword);
printf ("随机码 : ");
gets (rcode);

if (strcmp (name, password[0]) != 0 || strcmp (pword, password[1]) != 0 || strcmp (rcode, Rcode) != 0)
return 0;
else
return 1;
}

int main ()
{
char * password[2] = {"admin", "admin123"}; //用户名和密码
char rc[4] = {0}; //随机码
int count = 3; //可输入次数

puts ("请输入用户名,密码和随机码:");
while (count)
{
RandomCode (rc);
printf ("随机码 : %s\n", rc);
if (LandedApp(password, rc) != 0)
break;
--count;
if (count != 0)
puts ("错误的用户名或密码或随机码,请重新输入: ");
}
if (count != 0)
puts ("\n成功登陆!");
else
puts ("\n登录失败 !");

return 0;
}
艾达的小刀
温馨提示:答案为网友推荐,仅供参考
相似回答