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

Kayıt
5 Mayıs 2016
Mesajlar
14
Tepkiler
3
Yaş
28
Meslek
Elektrik Elektronik Mühendisliği
Üniv
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
[TBODY] [/TBODY]
Ö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----------------------------------";

}
 

Atakan Akbulut

Yetkili Kişi
Moderatör
Kayıt
28 Nisan 2016
Mesajlar
143
Tepkiler
43
Meslek
R&D Embedded Systems Software Engineer
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.
 
Konu sahibi
Konu sahibi
Mustafa Yaşar Keçeci
Kayıt
5 Mayıs 2016
Mesajlar
14
Tepkiler
3
Yaş
28
Meslek
Elektrik Elektronik Mühendisliği
Üniv
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..
 
Yukarı Alt