C programlama ++

Çı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. :)

Hocam yalnız bu C kodu. Ödev C++ istenmiş.
 
Klasik yazılımcı hatası; dalgınlıktan olsa gerek, uyarınız için teşekkür ediyorum. DevC++ derleyicisiyle çıktılar şu şekilde:

1587491955823.png


C++ kodu:
C++:
#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.
Hoca bu C++ değil diyemez :D
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 :)
 
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 C++ derleyicileri aynı zamanda C programlarını derleyebilirler. Ancak hocalar özellikle C++ ödevi isterlerse C kodu gösterdiğiniz zaman kabul etmeyebiliyorlar.
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ık :D
 
C++:
#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();
}
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Geri
Yukarı