PDA

View Full Version : سوال: اگه به زبان C یه برنامه بنویسیم که username وpasseord بخاد اگه بخایم به جا پسورد ستاره تایپ بشه چیک



jahadgar91
شنبه 16 آذر 1392, 19:10 عصر
اگه به زبان C یه برنامه بنویسیم که username وpasseord بخاد اگه بخایم به جا پسورد ستاره تایپ بشه چیکار باید کنیم
اینم برنامه هه #include <stdio.h>
#include <conio.h>
char login(char ,char,char,char );
main()
{
char username , password ,newusername , newpassword,ans;

printf("Enter new username : "); scanf("%s",&newusername);
printf("Enter new password : "); scanf("%s",&newpassword);
printf("************************************************** ******\n");
do
{
for(ans=0;ans<3;ans++)
{
printf("Enter new username : "); scanf("%s",&username);
printf("Enter new password : "); scanf("%s",&password);
login(username , password,newusername , newpassword);
printf("\n");
}
}while (ans != 3);
getch();
return 0;
}

char login(char newusername , char newpassword,char username,char password)
{
if(newusername==username && newpassword==password)
printf(" ********************** Login ************************** ");
else
printf(" ////////////////////// Field ////////////////////////// ");
getch();
return 0;
}

abdorreza
شنبه 16 آذر 1392, 19:46 عصر
شما به جای استفاده از تابع scanf باید خودتان تابعی بنویسید که کاراکتر ها را یکی یکی دریافت کند ، داخل یک رشته قرار دهد و به جای نمایش کاراکترهای وارده ، ستاره * نمایش دهد.

m.khodadad
شنبه 16 آذر 1392, 19:50 عصر
اگه به زبان C یه برنامه بنویسیم که username وpasseord بخاد اگه بخایم به جا پسورد ستاره تایپ بشه چیکار باید کنیم
اینم برنامه هه #include <stdio.h>
#include <conio.h>
char login(char ,char,char,char );
main()
{
char username , password ,newusername , newpassword,ans;

printf("Enter new username : "); scanf("%s",&newusername);
printf("Enter new password : "); scanf("%s",&newpassword);
printf("************************************************** ******\n");
do
{
for(ans=0;ans<3;ans++)
{
printf("Enter new username : "); scanf("%s",&username);
printf("Enter new password : "); scanf("%s",&password);
login(username , password,newusername , newpassword);
printf("\n");
}
}while (ans != 3);
getch();
return 0;
}

char login(char newusername , char newpassword,char username,char password)
{
if(newusername==username && newpassword==password)
printf(" ********************** Login ************************** ");
else
printf(" ////////////////////// Field ////////////////////////// ");
getch();
return 0;
}

این کد برنامه به زبان ++C :

113637

abdorreza
سه شنبه 19 آذر 1392, 23:59 عصر
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
#include <string.h>

void main(void)
{
int count=0, i=0;
char username[10],password[10],ch;
for (;;)
{
ch=' ';
i=0;
clrscr();
cout<<"Username : ";
cin>>username;
cout<<"\n"<<"Password : ";
while (ch!=13)
{
ch=getch();
password[i]=ch;
cout<<"*";
i++;
}
password[i-1]=NULL;
if ( strcmp(username,"admin")==0 && strcmp(password,"admin")==0 )
{
printf("\n\n\nLogin");
break;
}
count++;
if ( count==3 )
{
cout<<"\n\n\n"<<"Fail";
break;
}
}
}

113773

jahadgar91
چهارشنبه 20 آذر 1392, 00:14 صبح
اگه بخایم تو برنامه ای که بالا گذاشتم چه جوری باید نوشتش؟؟ یعنی این که اگه username وpasseordدرست بود پیغام loginدر غیر این صورت failedو سه یار هم بیشتر فرصت نداشته باشیم؟؟

abdorreza
چهارشنبه 20 آذر 1392, 00:17 صبح
یعنی برنامه ی خودتون رو تغییر بدین ؟

jahadgar91
چهارشنبه 20 آذر 1392, 00:33 صبح
منظورم اینه که اگه درست بود loginاگه نهField و سه بار فرصت داشته باشیم امه این برنامه اینجور نیست در هر صورت Field چاپ میکنه؟

abdorreza
چهارشنبه 20 آذر 1392, 06:33 صبح
نه دوست عزیز
تست کردم خودم اول. مشکلی نداره
همینطوری هم برنامه رو trace کنید میبینید که درست کار میکنه
در ضمن حواستون باید باشه که همه حروف admin کوچک است. پس اگر غیر از admin وارد کنید پیام Fail میده. مثلا Admin یا ADMIN با admin تفاوت داره.