|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
/* 1.使用结构体将用户名和密码进行存储
实现用户查看、用户管理功能:
0)查看所有用户
1)修改用户名
2)修改密码 */
#include<stdio.h>
#include<string.h>
struct user
{
char name[20];
char pwd[20];
};//定义结构体
struct user check[20]={{"pea1","123456"},{"pea2","1234567"},{"pea3","12345678"}
};//定义全局变量
int check_name_pwd(void)//封装函数检查用户名和密码是否匹配
{
int i;
int countx1=0;
int countx2=0;
char user_[20]={0};//输入的用户名
char pwd_[20]={0};//输入的密码
printf("请输入用户名\n");
scanf("%s",user_);
while(getchar()!='\0');//清空缓存区
/* printf("%s\n",user_); */
printf("请输入密码\n");
scanf("%s",pwd_);
while(getchar()!='\0');//清空缓存区
/* printf("%s\n",pwd_); */
for(i=0;i<3;i++)
{
if(strcmp(user_,check[i].name)==0&&strcmp(pwd_,check[i].pwd)==0)
{
countx1++;
countx2++;
break;
}
}
return countx1+countx2;
}
int main(void)
{
int j=1;
while(1) //用户登录功能
{
if(check_name_pwd()!=2)//调用函数判断用户名和密码是否匹配
{
printf("用户名或密码错误!请重新输入\n");
printf("第%d次错误\n",j);
printf("3次后退出\n");
if(j==3)//3次错误后退出程序
{
printf("第3次错误再见!\n");
return 0;
}
j++;
}
else
{
printf("welcome to pea's home\n");
break;
}
}
while(1)
{
int k,f,g,cmd;
char name1[20]={0};//修改的新用户名
char pwd1[20]={0};//修改指定用户名对应的密码
printf("请输入指令\n");
printf("0查看所有用户\n1修改用户名\n2修改密码");
scanf("%d",&cmd);
if(k==0)//功能菜单0
{
for(f=0;f<3;f++)
{
printf("%d:%s\n",k+1,check[k].name);
}
}
if(k==1)//功能菜单1
{
printf("请输入指令修改对应的用户名\n");
for(f=0;f<3;f++)
{
printf("%d:%s\n",f,check[k].name);
}
scanf("%d",&g);
printf("请输入用户名\n");
scanf("%s",name1);
bzero(check[g].name,20);
strncpy(name1,check[g].name,sizeof(name1));
}
if(k==2)//功能菜单2
{
printf("请输入指令修改对应的用户名的密码\n");
for(f=0;f<3;f++)
{
printf("%d:%s\n",f,check[f].pwd);
}
scanf("%d",&g);
printf("请输入用户名\n");
scanf("%s",pwd1);
bzero(check[f].pwd,20);
strncpy(pwd1,check[g].pwd,sizeof(pwd1));
}
}
return 0;
}
//代码没有语法错误,逻辑错误预计在函数check_name_pwd(void)段输入位置。 |
|