Hallettim çok teşekkür ederim yardımlarınız için size minnettarım.Hangi compiler IDE kullanıyorsunuz?
Ekleme: Bir önceki mesajımda çalıştığına dair ekran resmini koymuştum, son kez kontrol ettim ve bir daha ekran resmini koyuyorum
Eki Görüntüle 542150
Çıktılar bu şekilde:
Eki Görüntüle 542121
Kod:
C++:#include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> int main() { char userId[10],passwrd[10]; char kullanici1[] = "Lucifer01"; //1. kullanici char kullanici2[] = "ArkhamKnight"; //2. kullanici char kullanici1Sifre[] = "A123"; //kullanicinin sifresi int kalanHak = 3; //Kalan hak degiskeni ve degeri while (kalanHak) //Program hak degerin bitene kadar calismaya devam edecek. { printf("Kullanıcı adınızı girin: ");//Program kullanicidan kullanici adinizi girmenizi isteyecek. scanf("%s", userId); //Girilen karakterler userId degiskeninde tutulacak. //Girilen userId degiskenindeki verinin, kayitta olan kullanicilarin degeriyle eslesme saglama kontrolu: //Eger eslesme saglarsa ozel mesajla karsilacak ve sifre isteyecektir: if (strcmp(kullanici1, userId) == 0){ printf("Hosgeldin %s mubarek! Lutfen sifrenizi girin: ", kullanici1); scanf("%s", passwrd); //Sifre, kayitta olan sifreyle eslesirse son mesajla karsilacaktir: if(strcmp(passwrd, kullanici1Sifre) == 0){ printf("Giris basarili, islem menusu aciklacaktir."); break; //Eger yanlis sifre girerse kalan haktan bir eksilecek } else { kalanHak--; printf("Yanlış şifre, kalan hakkınız: %d\n", kalanHak); //Kalan hak kalmamissa, programdan cikilacak. if(!kalanHak) printf("Hakkınız kalmadı, görüşmek üzere..."); } //Eger 2. kullanici giris yapmissa, o kisiye ozel mesajla karsilacak ve sifre isteyecektir: } else if(strcmp(kullanici2, userId) == 0){ printf("Selamlar %s, sefalar getirdiniz, lutfen sifrenizi girin: ", kullanici2); scanf("%s", passwrd); //Sifre, kayitta olan sifreyle eslesirse son mesajla karsilacaktir: if(strcmp(passwrd, kullanici1Sifre) == 0){ printf("Giris basarili, islem menusu aciklacaktir."); break; //Eger yanlis sifre girerse kalan haktan bir eksilecek } else { kalanHak--; printf("Yanlış şifre, kalan hakkınız: %d\n", kalanHak); //Kalan hak kalmamissa, programdan cikilacak. if(!kalanHak) printf("Hakkınız kalmadı, görüşmek üzere..."); } } else { printf("Merhaba %s, sifrenizi girin: ", userId); scanf("%s", passwrd); if(strcmp(passwrd,kullanici1Sifre) == 0){ printf("Giris basarili, islem menusu aciklacaktir."); break; } else { kalanHak--; printf("Yanlış şifre, kalan hakkınız: %d\n", kalanHak); //Kalan hak kalmamissa, programdan cikilacak. if(!kalanHak) printf("Hakkınız kalmadı, görüşmek üzere..."); } } } getch(); return 0; }
Mümkün olduğunca giriş seviyesinde ve anlaşılır bir şekilde yazmaya çalıştım, mutlu kodlamalar.
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
int main()
{
char userId[25],passwrd[10];
char kullanici1[] = "Lucifer01"; //1. kullanici
char kullanici2[] = "ArkhamKnight"; //2. kullanici
char kullanici1Sifre[] = "A123"; //kullanicinin sifresi
int kalanHak = 3; //Kalan hak degiskeni ve degeri
while (kalanHak) //Program hak degerin bitene kadar calismaya devam edecek.
{
cout<<"Kullanici adinizi girin: "; //Program kullanicidan kullanici adinizi girmenizi isteyecek.
cin>>userId; //Girilen karakterler userId degiskeninde tutulacak.
//Girilen userId degiskenindeki verinin, kayitta olan kullanicilarin degeriyle eslesme saglama kontrolu:
//Eger eslesme saglarsa ozel mesajla karsilacak ve sifre isteyecektir:
if (strcmp(kullanici1, userId) == 0){
cout<<"Hosgeldin "<<kullanici1<<" mubarek! Lutfen sifrenizi girin: ";
cin>>passwrd;
//Sifre, kayitta olan sifreyle eslesirse son mesajla karsilacaktir:
if(strcmp(passwrd, kullanici1Sifre) == 0){
cout<<"Giris basarili, islem menusu acilacaktir.";
break;
//Eger yanlis sifre girerse kalan haktan bir eksilecek
} else {
kalanHak--;
cout<<"Yanlis sifre, kalan hakkiniz: "<< kalanHak<<endl;
//Kalan hak kalmamissa, programdan cikilacak.
if(!kalanHak){
cout<<"Hakkiniz kalmadi, gorusmek uzere...";
}
}
//Eger 2. kullanici giris yapmissa, o kisiye ozel mesajla karsilacak ve sifre isteyecektir:
} else if(strcmp(kullanici2, userId) == 0){
cout<<"Selamlar "<<kullanici2<<" sefalar getirdiniz, lutfen sifrenizi girin: ";
cin>>passwrd;
//Sifre, kayitta olan sifreyle eslesirse son mesajla karsilacaktir:
if(strcmp(passwrd, kullanici1Sifre) == 0){
cout<<"Giris basarili, islem menusu acilacaktir.";
break;
//Eger yanlis sifre girerse kalan haktan bir eksilecek
} else {
kalanHak--;
cout<<"Yanlis sifre, kalan hakkiniz: "<< kalanHak<<endl;
//Kalan hak kalmamissa, programdan cikilacak.
if(!kalanHak){
cout<<"Hakkiniz kalmadi, gorusmek uzere...";
}
}
} else {
cout<<"Merhaba "<<userId<<" ,sifrenizi girin: ";
cin>>passwrd;
if(strcmp(passwrd,kullanici1Sifre) == 0){
cout<<"Giris basarili, islem menusu acilacaktir.";
break;
} else {
kalanHak--;
cout<<"Yanlis sifre, kalan hakkiniz: "<< kalanHak<<endl;
//Kalan hak kalmamissa, programdan cikilacak.
if(!kalanHak){
cout<<"Hakkiniz kalmadi, gorusmek uzere...";
}
}
}
}
getch();
return 0;
}
Cpp dosyasına yazacak o yüzden bu C++ kodu, C'yi C++'tan ayıramazsınız.Hocam yalnız bu C kodu. Ödev C++ istenmiş.
Dediklerinize her ne kadar katılsam da çoğu hocalarımız buna katılmıyor. Misal en basit örnekle; ilk kodtaki benzer bir satırı yani "printf" ifadesini ele alalım. C programlamada çok net kullanılır aynı şekilde C++ dilinde gayet de kullanılabilir, fakat C++ dilinde "printf" yerine "cout" ifadesini çok yaygın kullanılıyor. Dolayısıyla bazı hocalarımız buna karşı çıkıp, "Eee bu C++ falan değil, benim istediğimden yapılmamış, ben derste böyle göstermedim/öğretmedim, yok olmamış al bunu götür..." gibi gereksiz atarlar yapıyorlarCpp dosyasına yazacak o yüzden bu C++ kodu, C'yi C++'tan ayıramazsınız.
Hoca bu C++ değil diyemez
Cpp dosyasına yazacak o yüzden bu C++ kodu, C'yi C++'tan ayıramazsınız.
Hoca bu C++ değil diyemez
Dediklerinize her ne kadar katılsam da çoğu hocalarımız buna katılmıyor. Misal en basit örnekle; ilk kodtaki benzer bir satırı yani "printf" ifadesini ele alalım. C programlamada çok net kullanılır aynı şekilde C++ dilinde gayet de kullanılabilir, fakat C++ dilinde "printf" yerine "cout" ifadesini çok yaygın kullanılıyor. Dolayısıyla bazı hocalarımız buna karşı çıkıp, "Eee bu C++ falan değil, benim istediğimden yapılmamış, ben derste böyle göstermedim/öğretmedim, yok olmamış al bunu götür..." gibi gereksiz atarlar yapıyorlar
Evet öyle yapanlar var ancak yersiz, printf'i tercih edenler de var. Ayrıca böyle bir şey istiyorlarsa C++'ın ayırt edici özelliklerinden en az bir tanesini kullanmayı şart koşmalılar. Ki o da kolay, sen yine C ile yaz kodun başına "using namespace std" ekle oldu bitti gitti buna da C++ değil bu diyemezsin artıkEvet C++ derleyicileri aynı zamanda C programlarını derleyebilirler. Ancak hocalar özellikle C++ ödevi isterlerse C kodu gösterdiğiniz zaman kabul etmeyebiliyorlar.
#include <iostream>
#include <string>
#include <locale>
#include <ctype.h>
using namespace std;
int main() {
string a, a0 = "Ahmet", a1 = "ahmet", a2 = "Mehmet", a3 = "mehmet";
int b = 3;
cout << "Lütfen adınızı giriniz: " << endl;
getline(cin, a);
if(a.compare(a0)==0 or a.compare(a1)==0 or a.compare(a2)==0 or a.compare(a3)==0) {
string a4;
int b0 = 0;
cout << "Hoşgeldiniz, " << a0 << " ve " << a2 << " bey. Lütfen bir şifre belirleyiniz: ";
while(b>0) {
getline(cin, a4);
while(isalnum(a4[b0])) b0++;
if(a4.length()<5) {
cout << "Lütfen en az 5 karakterli bir şifre giriniz." << endl;
b--;
cout << "Kalan hakkınız: " << b << endl;
}
else if(a4.length()!=b0) {
cout << "Lütfen alfanümerik bir şifre giriniz." << endl;
b--;
cout << "Kalan hakkınız: " << b << endl;
}
else {
cout << "Sisteme giriş başarılı. Tekrar hoşgeldiniz " << a << " bey." << endl;
break;
}
}
if(b==0)
cout << "3 kez geçersiz şifre girişi yapıldı. Program sonlandırılıyor." << endl;
}
else {
string a4;
int b0 = 0;
cout << "Hoşgeldiniz, " << a << ". Lütfen bir şifre belirleyiniz: ";
while(b>0) {
getline(cin, a4);
while(isalnum(a4[b0])) b0++;
if(a4.length()<5) {
cout << "Lütfen en az 5 karakterli bir şifre giriniz." << endl;
b--;
cout << "Kalan hakkınız: " << b << endl;
}
else if(a4.length()!=b0) {
cout << "Lütfen alfanümerik bir şifre giriniz." << endl;
b--;
cout << "Kalan hakkınız: " << b << endl;
}
else {
cout << "Sisteme giriş başarılı. Tekrar hoşgeldiniz " << a << " bey." << endl;
break;
}
}
if(b==0)
cout << "3 kez geçersiz şifre girişi yapıldı. Program sonlandırılıyor." << endl;
}
cout << "Programı sonlandırmak için \"Enter\" tuşuna basınız.\n";
cin.get();
}