C++ Proje ödevim hakkımda yardım (ACİL)

Konu, 'Elektronik Mühendisliği' kısmında Mustafa Yaşar Keçeci tarafından paylaşıldı.

  1. Mustafa Yaşar Keçeci

    Mustafa Yaşar Keçeci MB Üyesi

    Kayıt:
    5 Mayıs 2016
    Mesajlar:
    14
    Beğeniler:
    3
    Meslek:
    Elektrik Elektronik Mühendisliği
    En İyi Cevap:
    2
    Değerlendiriler:
    +6 / 0 / -0
    Üniversite:
    Adıyaman Üniversitesi
    Teslim Tarihi: 11/05/2016
    Bu sınav için, üç farklı *.txt dosyasında kayıtlı soruları rastgele seçip kullanıcıya soracak ve cevapları kontrol edecek, kim milyoner olmak ister yarışmasına benzer bir program oluşturmanız istenmektedir. Her bir dosya farklı bir soru kategorisini belirtmektedir. (Örneğin Spor, Genel Kültür, Bilim ve Sanat gibi) Kullanıcı programı başlattığında program rastgele bir kategori seçip o kategoriden bir soru soracaktır. Kullanıcının doğru yanıt vermesi durumunda program tekrar bir kategori belirleyip o kategorideki sıradaki soruyu soracaktır.
    Program kullanıcıya iki joker hakkı tanıyacaktır. Jokerlerden biri soruyu geç, diğeri %50 seçenekleridir. Kullanıcı yarışmanın herhangi bir aşamasında bu jokerleri kullanabilecektir.
    Program kullanıcının bir soruya yanlış yanıt vermesi ile sona erecektir.
    Program nesne tabanlı bir yaklaşımla oluşturulacaktır. Bunu gerçekleştirmek için en az bir tane sınıf oluşturulması istenmektedir.

    Türkiyenin başkenti neresidir?
    A:Ankara
    B: İstanbul
    C: Adıyaman
    D: Bursa
    DOĞRU CEVAP: A
    JOKER: A - B
    Örnek Soru Taslağı:
    Joker hakkını seçerse şıklardan sadece A ve B kalacaktır.
    3 Çeşit kategori olacak spor, bilim ve genel kültür. Her kategoride 3’ soru.
    Spor kategorisi:
    1- Basket Maçı Kaç Periyotdur?
    a)4periyot +
    b)2periyot
    c)5periyot
    d)6periyot

    2- 2011 Dünya Üniversitelerarası Kış Olimpiyatları hangi ilimizde yapılmıştır?
    a)Ankara
    b)Konya
    c)Erzurum +
    d)Trabzon
    3-2014 Fifa Dünya Kupasına Ev Sahipliği Yapan Ülke Hangisidir?
    a)Türkiye
    b)İtalya
    c)Brezilya+
    d)Rusya
    BİLİM KATEGORİSİ:
    1-En genç bilim adamı ünvanını elinde tutan Türk bilim adamı kimdir ?
    a)Oktay Sinanoğlu +
    b)Cahit arf
    c)Ali kuşcu
    d)Aziz Sancar
    2-Mikroskobu Bularak İlk Mikrobiyolojik İncelemeyi Yapan Bilim Adamı Kimdir?
    a)john logie baird
    b)Alfred nobel
    c)Edison
    d)leeuwenhoek +
    3-İlk Fizik Nobel Ödülünü Kazanan Alman Bilim Adamı Kimdir?
    a)Edison
    b)Tesla
    c)rontgen +
    d)graham bell
    GENEL KÜLTÜR SORULARI:
    1-“Sinekli Bakkal” Romanının Yazarı Aşağıdakilerden Hangisidir?

    A) Reşat Nuri Güntekin
    B) Halide Edip Adıvar +
    C) Ziya Gökalp
    D) Ömer Seyfettin
    2-Romen Rakamında Hangi Sayı Yoktur?
    A) 0 + B) 50 C) 100 D) 1000
    3-Hangi Ülkenin İki Tane Başkenti Vardır?
    A-Güney Afrika +
    B-Senegal
    C-El Salvador
    D-Venezuela
    E-Kamboçya


    Biraz yapmaya çalıştım yardım aldım ama bundan sonra olmadı yardım ederseniz sevinirim..

    #include <iostream>
    #include <fstream>
    #include <string>
    #include <vector>
    #include <time.h>
    using namespace std;
    bool elli=true;
    bool pass=true;
    struct soru{
    string s;
    string c;
    string a;
    string b;
    string d;
    string dc;
    string j;
    };
    class kategori{
    private:
    std::vector<soru> sorular;
    int siradaki;
    public:
    kategori(string dosya_adi)
    {
    siradaki=0;
    //parametre olarak gönderilen dosyayi açıp okuyacak ve soruları sorular adlı vectore kaydedecek
    //
    soru s;

    sorular.push_back(s);

    }
    bool sor()
    {
    //Siradaki soruyu sor ve cevap iste
    //dogru cevap ise true değilse false geri döndür
    //Joker kullanmak isteyip istemediğini sor


    /*soru s=sorular[siradaki];
    cout<<s.s<<"\n";
    cout<<s.a;
    cout<<s.b;
    char c;
    cout<<"CEVAP=";
    cin>>c;
    if(c=='p' && p==true)
    {
    pass=false;
    siradki++;
    sor();
    }
    if(c==s.dc)
    return true;
    else
    return false;*/

    siradaki++;
    return true;
    }
    };
    int main()
    {
    srand (time(NULL));
    kategori bir("bir.txt");
    kategori iki("iki.txt");
    kategori uc("uc.txt");
    //kategori seç, soru sor, cevap doğru olduğu sürece devam et
    kategori* aktif=&bir;
    int dcs=0;
    while(aktif->sor())
    {
    dcs++;
    int k = rand() % 3 + 1;

    if(k==1)
    {
    aktif=&bir;
    }
    else if(k==2){
    aktif=&iki;
    } else if(k==3){
    aktif=&uc;
    }
    cout<<dcs<<"\n";
    }
    cout<<"----------------------------- \n PUANINIZ = "<<dcs<<"\n----------------------------------";

    }
     
    • Beğen Beğen x 1
  2. Atakan Akbulut

    Atakan Akbulut Yetkili Kişi Moderatör

    Kayıt:
    28 Nisan 2016
    Mesajlar:
    143
    Beğeniler:
    42
    Meslek:
    R&D Embedded Systems Software Engineer
    En İyi Cevap:
    5
    Değerlendiriler:
    +63 / 0 / -0
    Merhabalar

    Öncelikle Program yazarken tek satırda yazmak her zaman daha avantaj sağlar. İkinci kısım Bunun gibi büyük programları yaparken Bölüm bölüm yapman hem zamandan hemde programın kolaylıgı bakımından fayda sağlar. Öncelikle ben olsam büyük bir fonksiyon yazardım.
    Şimdi gelelim programımıza , 3 adet dosyayı önce hepsini tanıttırmak işlemciye binen yükü azaltır. Şunu kesinlikle unutmamalısın Dosyayı kapatmadan tekrardan açmamaktadır yani soru bittikten sonra kapa . Yani her bilinen sorudan sonra dosya kapanmalıdır.

    Ayrıca asıl yapamayacağın kısmı söylersen daha iyi fikir verebilirim

    iyi forumlar.
     
    • Beğen Beğen x 1
  3. Mustafa Yaşar Keçeci

    Mustafa Yaşar Keçeci MB Üyesi

    Kayıt:
    5 Mayıs 2016
    Mesajlar:
    14
    Beğeniler:
    3
    Meslek:
    Elektrik Elektronik Mühendisliği
    En İyi Cevap:
    2
    Değerlendiriler:
    +6 / 0 / -0
    Üniversite:
    Adıyaman Üniversitesi
    Merhaba

    Değerli zamanınızı ayırıp cevap verdiğiniz için çok teşekkür ederim. Kafamda bir şeyler oluştu gibi ancak ilk defa görüyorum c++ dersini ve tam anlamıyla çok yabancı geliyor. Üniversitede birinci sınıfım, codlar kafamı karıstırdı anlayamadım bi türlü. Son çarem olarak burayı düşündüm belki bu ödevi daha önce yapmış olan büyüklerim vardır yada benzerini atarlar diye düşündüm..