C programlama ++

Executorr

Hectopat
Katılım
21 Nisan 2020
Mesajlar
431
Kullanıcıdan isim istenilecek,

Girilen isim programcı (sizin) tarafından kodda belirlenen iki farklı isimden biriyse bu iki ismin her biri için “isme özel karşılama mesajı” yazdırılacak.

Girilen isim programcı (sizin) tarafından belirlenen iki isimden biri değilseGirilen isme özel standart bir karşılama mesajı” yazdırılacaktır.

Ardından programcı (sizin) tarafından hazırlanan özgün menüye erişim için kullanıcıdan şifre istenilecektir.

Şifre, programcı (sizin) tarafından “Alfanümerik (hem sayı hem harf içeren)” olarak kod içinde belirlenecek ve saklanacaktır.

Kullanıcı için şifreyi 3 kez yanlış girme tanınacaktır. Her yanlış denemede “Kalan hak” konsola yazdırılacaktır.

3 deneme sonrası kullanıcı şifreyi doğru yazamaz ise sistem “Uygun bir mesaj ile” kapanacaktır.

Eğer kullanıcı şifreyi doğru yazarsa “İşlem menüsü” açılacaktır.



C++ Dilinde bu programlara rica etsem yardım edebilicek birisi var mı ?
 
Maalesef zorunlu ödevim C++ programına yönelik yapılmak zorunda olduğu söylendi. Yardımcı olabilecek varsa çok minnettar olurum.
 
Son düzenleme:
“İşlem menüsü” kısmında anlatılmak istenen ''Şifreyi doğru yazdın'' gibisinden bir cümle ile belirtilmek istenmesidir.
 

Görsel program mı isteniyor? Yoksa console applicationu mu?

Anladığım kadarıyle program içinde Ahmet ve Mehmet gibi iki farklı isim tanımlı olacak. Eğer kullanıcı Ahmet ya da Mehmet yazarsa hem Ahmet, hem de Mehmet için karşılama mesajı olacak. Ancak eğer kullanıcı programda tanımlı olmayan bir isim, örneğin Ali girdiyse sadece Ali için karşılama mesajı olacak. Doğru mu?

Ayrıca kullanıcıdan istenen şifre mi alphanumeric olmak zorunda? Eğer öyleyse ve girilen şifre alphanumeric değilse program başa mı dönecek, yoksa hata mesajı verip program sonlandırılacak mı?

Şifre minimum kaç haneli olacak?

Son olarak nasıl bir “işlem menusu” istendiği belirtilmemiş.
 
Görsel programlama istenilmiyor.
Evet Ahmet ve mehmet örneklendirmesinde söylediğiniz doğru.
Şifre alphanumeric olmak ve 3 hak tanınmak zorunda.3 defa alphanumeric şifre yanlış girilirse hak buna göre azalıcak.
Şifre minimum 5 haneli olacaktır.
3 Denemede doğru şifre bulunamazsa "3 defa şifreyi yanlış girdiniz" gibi bir söylem kullanılayacak ve program sonlandırılacak ama şifre doğru bulunursa "şifre doğru" gibisinden bir söylem kullanılacak.
 
Son düzenleme:
Çıktılar bu şekilde:


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.
 
80. satırda bir hata alıyorum nedense sizde de böyle bir problem var mı ? Yardımcı olduğunuz için çok teşekkür ederim birde 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

 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…