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 6 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.

Technopat Haberler

Yeni konular

Geri
Yukarı