1. 使用C语言编写atm程序,实现密码修改的功能。
2. 需要设置一个全局变量来存储当前用户的密码信息。
3. 在主函数中,定义一个函数,用于输入原密码和修改后的新密码。
4. 在输入新密码之前,需要验证输入的原密码是否正确。
5. 如果原密码输入正确,则继续输入新密码,并将新密码记录到全局变量中。
6. 如果原密码输入错误,则提示用户重新输入。
7. 将修改后的新密码记录到文件中,以备下次使用。
clude "string.h"//考虑到用数据库文件保存注册信息的话要使用access创建文件并且还要配置数据源,所以我的方法是采用将注册信息保存到文件
//下面是完整的程序:
//登陆检测函数
int login(char *name,char *password)
{
char info[10000]
char *p=info
FILE *file=fopen("user","r")
int size
if(file)
{
size=fread(info,1,10000,file)
while(size!=(int)p-(int)info)
{
if(!strcmp(p,name)&&!strcmp(p+strlen(p)+1,password))
{
fclose(file)
return 1
}
p+=strlen(p)+1
p+=strlen(p)+1
}
}
fclose(file)
return 0
}
//添加注册信息入文件
void save(char *name,char *password)
{
FILE *file=fopen("user","a")
fwrite(name,1,strlen(name)+1,file)
fwrite(password,1,strlen(password)+1,file)
fclose(file)
}
#define PASSWORD "12345" //这里指定你要允许通过的密码,比如12345,将引号里的数字改为你想要的即可
int main()
{
char password[100]
char name[100],c[100],password1[100]
tag1: printf("press 1 to register, or 2 to login\n")//输入1为注册,输入2为登陆
while(1)
{
gets(c)
if('1'==c[0])
{
printf("please enter your name\n")//输入姓名
gets(name)
tag2: printf("please enter your password\n")//输入密码
gets(password)
printf("please enter your password again\n")
gets(password1)
if(strcmp(password,password1))
{
//两次密码不一致,重输
printf("the password you entered is different from the first one,please try again!\n")
goto tag2
}
printf("register is completed!\n")//注册成功
//下面实现将注册信息加入文件保存
save(name,password)
goto tag1
}
else if('2'==c[0])
{
tag3: printf("please enter your name:\n")
gets(name)
printf("please enter your password:\n")
gets(password)
if(login(name,password))//如果验证通过,则
{
printf("login successfully!\n")
//这里添加成功登陆后要执行的代码
}
else
{
printf("your name or password doesn't exist!\n")//否则重输
goto tag3
}
}
else
{
printf("invalid input!press 1 to register, or 2 to login\n")//输入非法,重输
goto tag1
}
}
return 0
}
饿,写了我两个小时啊,大哥,分一定要给我啊~~~~~~
账号密码存放在user.txt中bool login()//登陆
{
char auser2[6]//存放用户组内的信息
char apwd2[6]
cout<<"==your name: "
cin>>auser
cout<<"==your password: "
cin>>apwd
bool have=false//记录用户名和密码正确否
user.open("user.txt",ios::in)
for( int n=0n<usernumn++ )//用户名18*n+0~18*n+5密码18*n+6~18*n+11 用户组18*n+12~18*n+17
{
user.seekg(18*n)
user>>auser2>>apwd2
int a=strcmp(auser,auser2)
int b=strcmp(apwd,apwd2)
if( (!a)&&(!b) )
{
have=true
user>>agroup
break
}
}
user.close()
if(have==true)
return 1
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)