Çözüldü C++'de swtich case içine if/else if kullanımı

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

vylox

Femtopat
Katılım
9 Ağustos 2020
Mesajlar
2
2 Gündür çabalıyorum ama beceremedim programlama bilgisi iyi olan varsa bir yardımcı olabilir mi? C++'da beginner seviyede yazıyorum şu an switch caseler ve if/ else if türevi komutlarla çalışıyorum. Devc++ IDE'da yazıyorum Visual Studio'dan da check ediyorum fakat alim satım seçtikten sonra hesaplamaları yapmıyor.
İstenirse .cpp dosyasını da atabilirim. Yardımlarınızı bekliyorum.

Untitled - Pastebin
 

Dosya Ekleri

  • helpp.png
    helpp.png
    22,7 KB · Görüntüleme: 105
Çözüm
Alim satım seçtikten sonra hesaplamaları yapmıyor.
Yapıyor.

Bu kısmı bile ben yazdırdım. Hiçbir şey hazırlamamışsın.

Öncelikle kurları sabit olarak tut. Sayı olarak değil. Yaz bi' güzel constexpr double euro1 = 3.85; diye. Adamdan hem isim hem soyisim iste. Para üstü hesapla. Eşitlikleri kontrol et. Ben buraya 1000 değeri girsem program patlar. Kod tekrarı yapıp durmuşsun. Fonksiyon kullan. Fonksiyona para metre olarak kuru yolla mesela. Her seferinde dolar için euro için ayrı ayrı metin yazmış olma. Hatta seçim kısmındaki metin için bile fonksiyon yapılabilir. Döngüleri de insanların anlayabileceği şekilde bırak. Satır sayısı fazla olunca daha hızlı çalışmıyor. Okunmasını zorlaştırıyor sadece.
Son olarak değişkenleri ilklendir. Git isim yerine boşluk koy, a koy, b koy. Ama koy. İleride saçma yerlerde hata çıkartır farkına bile varmazsın.

Bir yerde de switch içindeki default'tan sonra break vardı. Default'un içinde. Anlamsız.

Ekran Görüntüsü (4987).png
Kardeşim coderf#2503 Discord'dan bütün ödevi anlatayım burada kısa kısa mesajlar çok sağlıklı olmaz.
Burada da yardım edebilirim ama Discord üzerinden daha sağlıklı olur.
 
C++:
#include <iostream>
#include <stdio.h>
#include <conio.h>
using namespace std;
int main()
{
        string ad;
        int doviz;
    int lira; 
        int alim,satim; //Alımda büro alıyor satıcı satıyor,satımda tam tersi
        int secim;
        int secim2;
    double dolar;
    double euro;
    double sterlin;
    double frank;
  
    
  
    cout << "Isminizi Giriniz: \n ";
    cin >> ad;
        
            cout << "****Anlik Doviz Kuru****" << endl;
        cout << " 1-Euro\n 2-Dolar\n 3-Sterlin\n 4-Frank\n "<< endl;
        
        cout << "****Islem Yapmak Istediginiz Doviz Kuru****" << endl;
        cout << " 1-Euro\n 2-Dolar\n 3-Sterlin\n 4-Frank\n "<< endl;
        cout << "Seciminiz :" << endl;
        cin >> secim;
        switch (secim)
        {
 
 
        case 1:
                cout << "Seciminiz Euro" << endl;
                     cout << " 1-Alim\n 2-Satim" << endl;
                     cin>> secim2;
                     switch(secim2){
                      
                                case 1:
                        cout << "Seciminiz Alim" << endl;
                      
                                cout << "Miktar :" << endl;
                            cin >>doviz;
                            cout<<"Elinizdeki Turk Lirasini Giriniz:";
                        cin>>lira;
                      
                              if(doviz<1000 && doviz>0){ euro = lira / 3.85;}
                              else if (1000<doviz && doviz>5000){ euro = lira / 3.89;}
                              else if (doviz>5000){ euro = lira / 3.90;}
                        break ;
                      
                                case 2:
                                cout << "Seciminiz Satim" << endl;
                                  
                                cout << "Miktar :" << endl;
                    cin >>doviz;
                    cout<<"Elinizdeki Turk Lirasini Giriniz:";
                cin>>lira;
                          
                                  
                                    if(doviz<1000 && doviz>0 ){euro = lira / 3.98;}
                                    else if (1000<doviz && doviz>5000){euro = lira / 3.94;}
                                    else if (doviz>5000){euro = lira / 3.92;}
                                break ;
                              
                                default:
                        cout << "Hatali Giris Yaptiniz!" << endl;
                    break ;
                         }
                break;
        case 2:
                cout << "Seciminiz Dolar" << endl;
                    cout << " 1-Alim\n 2-Satim" << endl;
                     cin>> secim2;
                     switch(secim2){
                      
                                case 1:
                        cout << "Seciminiz Alim" << endl;
                          
                                         cout << "Miktar :" << endl;
                         cin >>doviz;
                             cout<<"Elinizdeki Turk Lirasini Giriniz:";
                                         cin>>lira;
                                        
                                     if(doviz<1000 && doviz>0) {dolar= lira / 3.54;}
                             else if (1000<doviz && doviz>5000) {dolar= lira / 3.57;}
                             else if (doviz>5000) {dolar= lira / 3.58;}
                        break ;
                      
                                case 2:
                                cout << "Seciminiz Satim" << endl;
                              
                                    cout << "Miktar :" << endl;
                        cin >>doviz; 
                                        cout<<"Elinizdeki Turk Lirasini Giriniz:";
                    cin>>lira; 
                              
                                if(doviz<1000 && doviz>0 ){dolar= lira / 3.68;}
                else if (1000<doviz && doviz>5000){dolar= lira / 3.63;}
                else if (doviz>5000){dolar= lira / 3.62;}
                              
                              
                                break ;
                              
                                default:
                        cout << "Hatali Giris Yaptiniz!" << endl;
                         }
                break;
        case 3:
                cout << "Seciminiz Sterlin" << endl;
                cout << " 1-Alim\n 2-Satim" << endl;
                     cin>> secim2;
                     switch(secim2){
                      
                                case 1:
                        cout << "Seciminiz Alim" << endl;
                              
                                                cout << "Miktar :" << endl;
                            cin >>doviz;
                                                cout<<"Elinizdeki Turk Lirasini Giriniz:";
                        cin>>lira; 
                      
                              if(doviz<1000 && doviz>0){sterlin = lira / 4.57;}
                              else if (1000<doviz && doviz>5000){sterlin = lira / 4.57;}
                              else if (doviz>5000){sterlin = lira / 4.60;}
                        break ;
                      
                                case 2:
                                cout << "Seciminiz Satim" << endl;
                              
                                     cout << "Miktar :" << endl;
                         cin >>doviz;
                         cout<<"Elinizdeki Turk Lirasini Giriniz:";
                     cin>>lira;
                              
                                if(doviz<1000 && doviz>0 ){sterlin = lira / 4.70;}
                else if (1000<doviz && doviz>5000){sterlin = lira / 4.66;}
                else if (doviz>5000){sterlin = lira / 4.62;}
                              
                              
                              
                                break ;
                              
                                default:
                        cout << "Hatali Giris Yaptiniz!" << endl;
                         }
                break;
        case 4:
                cout << "Seciminiz Frank" << endl;
                cout << " 1-Alim\n 2-Satim" << endl;
                     cin>> secim2;
                     switch(secim2){
                      
                                case 1:
                        cout << "Seciminiz Alim" << endl;
                      
                              cout << "Miktar :" << endl;
                          cin >>doviz;
                          cout<<"Elinizdeki Turk Lirasini Giriniz:";
                      cin>>lira;
                      
                             if(doviz<1000 && doviz>0) {frank = lira / 3.55;}
                             else if (1000<doviz && doviz>5000) {frank = lira / 3.61;}
                             else if (doviz>5000) {frank = lira / 3.67;}
                        break ;
                      
                                case 2:
                                cout << "Seciminiz Satim" << endl;
                              
                                     cout << "Miktar :" << endl;
                         cin >>doviz;
                         cout<<"Elinizdeki Turk Lirasini Giriniz:";
                     cin>>lira;
                              
                                if(doviz<1000 && doviz>0 ){frank = lira / 3.75;}
                else if (1000<doviz && doviz>5000){frank = lira / 3.70;}
                else if (doviz>5000){frank = lira / 3.69;}
                              
                              
                                break ;
                              
                                default:
                        cout << "Hatali Giris Yaptiniz!" << endl;
                         }
                break;
        default:
                cout << "Hatali Giris Yaptiniz!" << endl;
        }
}
 
Alim satım seçtikten sonra hesaplamaları yapmıyor.
Yapıyor.

Bu kısmı bile ben yazdırdım. Hiçbir şey hazırlamamışsın.

Öncelikle kurları sabit olarak tut. Sayı olarak değil. Yaz bi' güzel constexpr double euro1 = 3.85; diye. Adamdan hem isim hem soyisim iste. Para üstü hesapla. Eşitlikleri kontrol et. Ben buraya 1000 değeri girsem program patlar. Kod tekrarı yapıp durmuşsun. Fonksiyon kullan. Fonksiyona para metre olarak kuru yolla mesela. Her seferinde dolar için euro için ayrı ayrı metin yazmış olma. Hatta seçim kısmındaki metin için bile fonksiyon yapılabilir. Döngüleri de insanların anlayabileceği şekilde bırak. Satır sayısı fazla olunca daha hızlı çalışmıyor. Okunmasını zorlaştırıyor sadece.
Son olarak değişkenleri ilklendir. Git isim yerine boşluk koy, a koy, b koy. Ama koy. İleride saçma yerlerde hata çıkartır farkına bile varmazsın.

Bir yerde de switch içindeki default'tan sonra break vardı. Default'un içinde. Anlamsız.

Ekran Görüntüsü (4987).png
 
Çözüm

Geri
Yukarı