#include<iostream>#include<conio.h>intset(structAdminadmin[],char*name);intlanding(structAdminadmin[]);usingnamespacestd;structAdmin{ charname[15]; charcode[20];};intCount=0;//全局变量记录用户数voidmain(){ structAdminadmin[8]; intn=1,m;charname[20]; while(n) { cout<<"\t\t****************************************\n";cout<<"\t\t**用户登录系统**\n";cout<<"\t\t****\n";cout<<"\t\t**1:建立**\n";cout<<"\t\t**2:登陆**\n";cout<<"\t\t**0:退出**\n";cout<<"\t\t****************************************\n";cout<<"\t\t请选择:"; cin>>m; switch(m) { case1:set(admin,name);break; case2:landing(admin);break;case0:n=0;break; } }}//建立用户intset(structAdminadmin[],char*name){ inti=0;intc; cout<<"\t\t输入用户名:"; cin>>admin[Count].name; cout<<endl<<"\t\t输入密码:"; Count-=1-Count++;c=getch(); while(c!='\r')//回车 { if(i>=0) { if(c=='\b') { cout<<"\b\b";//\b只是退回一格,不清除的。所以第一次\b退回后用空格覆盖。然后再\b退回 i=i-1; } else { cout<<"*"; admin[Count].code[i]=c; } } c=getch(); if(c!='\b') i=i+1; } admin[Count].code[i]='\0'; cout<<endl<<endl;return0;}//用户登录intlanding(structAdminadmin[]){ charName[20],Code[20]; intp=0,i=0,c,m=0; cout<<endl<<"\t\t输入用户名:"; cin>>Name; cout<<endl<<"\t\t输入密码:";c=getch(); while(c!='\r')//回车 { if(i>=0) { if(c=='\b') { cout<<"\b\b";//\b只是退回一格,不清除的。所以第一次\b退回后用空格覆盖。然后再\b退回 i=i-1; } else { cout<<"*"; Code[i]=c; } } c=getch(); if(c!='\b') i=i+1; } Code[i]='\0'; for(intn=0;n<9;n++) { if(strcmp(Name,admin[n].name)==0&&strcmp(Code,admin[n].code)==0) { cout<<"\n\t\t登陆成功!\n"; p=1; } } if(p!=1)//判断登录失败原因 { for(m;m<9;m++) { if(strcmp(Name,admin[m].name)==0) { cout<<"\t\t密码错误!\n"; return0; } } cout<<"\t\t用户不存在!\n"; } return0;};