cinle atasan daha iyi olur hocam. Farketmez aslinda. Simdi sizin C++ derecenizi bilmedigim icin birsey diyemiyorum. Cevap anahtarina da dogru sıklari girecegiz. |
Bende birkaç tüyo verebilirim. 2 tane paralel dizi yerine soru ve cevabı struct içine koyun. struct SoruCevap { string soru; string cevap; }; Kaç tane soru varsa tek dizi yapın. SoruCevap sc[ADET]; Programa her girişte diziyi karıştırın. std::random_shuffle(sc, sc + ADET); Kaç tane soru sorulacaksa dizinin başından sorun. for(int i = 0; i < SORULACAK; ++i) Cevap otomatikman sorunun içinde olacaktır. if(sc[ i].cevap == alinan_cevap) Ve bir tavsiye olarak soru-cevapları kodun içine yazmayın, dosyadan çekin. |
Arkadasin yaptigi cok mantikli. ![]() ![]() |
Hocam ornegin ben sabahtan beri ugrasiyom biturlu beceremedim tum kodlari birbirine baglayamadim ![]() #include <iostream> #include <string> #include <ctime> #include <cstdlib> #define SORU_SAY 5 #include <string.h> #include <stdafx.h> using namespace std; int main () { int j,k,l,x; string sorular[3] = {"Turkiyenin baskenti ? a)istanbul b)ankara c)izmir", "futbol kac kisiyle oynanir ? a)10 b)11 c)12", "amerikanin baskenti ? a)washington b)new york c)oklahoma"}; cin>>j; cin>>k; cin>>l; char kullaniciCevaplari[] = {'g', 'g', 'g'}; char cevapAnahtari[3] = {'b', 'b', 'a'}; int secilenSoru=0; int dogruSayisi; int yanlisSayisi; srand(time(0)); secilenSoru = rand() % SORU_SAY; cout << sorular[secilenSoru]; return 0; for(int i=0; i < 3; i++) { if(strcmp(cevapAnahtari, kullaniciCevaplari)) dogruSayisi++; else yanlisSayisi++; } } |
Ne yaptın becerdin mi? Bak ben karaladım bişeyler. Buradan birşeyler kapmaya bak. Soruları "sorular.txt" isimli bir dosyaya koyacaksın. Dosya formatı şu şekilde olacak. Türkiyenin başkenti neresidir? Ankara Bursa İstanbul Hakkari C' de ekrana yazı yazdırmak için kullanılan fonksiyon hangisidir? printf scanf memcpy strcmp Önce soru daha sonra şıklar. Şıklardan doğru olanı daima en üstte olmalı. Kaç tane şık olacağı koddaki #define SIK_ADET sabiti ile tam olarak eşleşmeli.
|
hocam verdigin cevaplar icin cok tesekkur ederim,ama sorular.txt dosyasini nasil kaydedicem masaustune mi?,bide dosyanin icini nasil bi sekilde yazmam gerekli. |
Kodun bu hali ile çalışması için txt dosyasının program dosyası (exe) ile aynı dizinde olması lazım. Ama sen kodu değiştirerek ve tam yol vererek istediğin yere koyabilirsin. ifstream dosya("D:\\Ornek\\sorular.txt"); gibi. Dosyanın içini nasıl yazacağını yukarıda söyledim. Tekrar söylüyorum şu formda olacak. Soru1 Şık1 (Cevap) Şık2 Şık3 Soru2 Şık1 (Cevap) Şık2 Şık3 ... Ne kadar şık varsa kod içinde SIK_ADET sabiti belirtmelisin. Ben 4 olarak ayarladım. Cevabın en üste yazılması gerekliliği kafanı karıştırmasın. Hem şıklar hemde sorular her seferinde karıştırılıyor. |
elektro_gadget hocam ben soyle yapiyorum 3tane soru hazirliyorum ve .txt olarak kaydediyorum programin bulundugu alana,sonrada kodu sizin yazdiginiz gibi ayni kopyala yapistir yapiyorum ama .txt icindeki sorular ve sikklar gozukmuyor,bunu nasil cozebilirim acaba ? |
Yanlış mı anlıyorum acaba kodu derlemeden mi yapıyorsun?![]() Eğer txt yi göremezse "Assertion 'dosya' failed. Aborted" diye hata verir. |
yok derleyip calistiriyorumda ama cout << "Kaç tane soru sorulsun?: "; yaziyor benim elde ettigim sorular cikmiyor |
Kodu birazcık inceleseydin keşke. Belki soruların tamamı sorulmak istenmez diye öyle yaptım. Eğer txt ye 3 tane soru yazdıysan oraya 3 e kadar bir sayı yazacaksın. Şöyle. Kaç tane soru sorulsun?: 2 |
elektro_gadget verdigin herseyi yaptim ama yinede calismiyor.soyle Kaç tane soru sorulsun?: soruyor ardindan herhangi bir tusa basinca birden "Doğru cevap sayısı: " "Yanlış cevap sayısı" cikiyor ekrana.Sanirim benim sorunum sorulari dogru durust dosyaya atmamam.Ben dosyaya sorulari atma konusunu soyle yapiyorum programin olustugu yer My documents bende txt dosyasini oraya oldugu gibi atiyorum icindede 3 tane soru var sorularda soyle: Turkiyenin baskenti neresidir? Ankara (cevap) Istanbul Edirne Izmir Amerikanin baskenti hangisidir? Washington (cevap) boston los angeles philedelphia Kosovanin baskenti? Prizren pristina (cevap) mitrovica gjakova elektro_gadget cevabini bekliyorum |
Arkadaşım tamam. Al işte sana örnek bir txt.http://www.dosya.tc/server6/NJoJ4l/sorular.txt.html Bu da kodun sadeleştirilmiş hali. Bunu kullan. Daha da olmazsa yapabileceğim birşey yok. Bende takır takır çalışıyor.
|
elektro_gadget kardesim verdigin cevaplar icin cok tesekkur ettim kod simdi bendede takir takir calisiyor,ama kusura bakmasan bi sorum daha olucak.Simdi ben dogru olan sikki kodda mi belirtmem lazim yoksa sorular.txt de mi yani dogru olan sikki nasil belirticez?Cok tesekkur ederim saygilar. |
Arkadaşım senin için birşeyler yapıyoruz burada ama lütfen sende anlamak için biraz gayret et. Yanlış saymadıysam bu sorunun cevabını tam 3 kere vermişim. Daha nasıl anlatacağım gerçekten bilmiyorum. txt dosyasını incele. Programı çalıştır ve sorduğu sorulara cevap ver. Program doğru şıkkı biliyor, bunu nasıl yaptığını anlattım. Tekrar gözden geçir. Ayrıca koddaki "sc.siklar[0] = sc[ i].cevap;" satırını da inceleyiver. |
Merhaba arkadaslar bende C++ konusunda birazcik yeniyimde, elektro_gadget verdiginiz kod gayet guzeldi calisiyor,fakat benim kafama su takildi sertaclincoln de baslikta belirmis 100 tane soru sorulacak peki bu 100 taneden sadece 10 tane soru sormasini nasil yapicaz? Hayirli aksamlar tesekkur ettim. |
{
2.dereceSorular[rastgeleDeger];
if(strcmp(kullaniciCevabi, cevapAnahtari)) Hocam peki kullaniciCevabinda cin>> diye mi yazicaz ve bunlardan hangilerine ne sekilde tanimlamamiz lazim bide cevap anahtarina dogru olan cevap sikkini mi yazicaz ornegin: a gibi.tesekkur ettim hocam
< Bu ileti mobil sürüm kullanılarak atıldı >