prosty quiz w c++

0

Siema, robie sobie prosty konsolowy quiz w C++ - wszystko robiłem od zera i jestem początkującym wiec kod jest dość zagmatwany ale myślę że tak doświadczeni programiści jak wy załapią oco mi chodzi. Program działa prawie - zastosowałem ify które sprawdzają czy udzielona odp była dobra czy nie i w zaleznosci dodaja lub odejmuja jeden pkt. No i tak 1 pytanie odpowiadamy dobrze mamy 3 pkt drugie odpowiadamy zle i mam 2 pkt 3 odpowiadamy dobrze i zamiast miec 3 pkt to mamy 5 - wydaje mi się że doszedł bym do tego co zrobiłem źle (bo wiele rzeczy już tak naprawiłem) ale chcialbym dokończyć to jak najszybciej dlatego piszę tutaj. Kod nie ma poważniejszych errorów da się go skompilować i odpalić dlatego daje wam tutaj sam plik cpp.

link : http://www.wrzucaj.com/107902

pytania i odpowiedzi sa takie same bo nie skupiałem się na nich tylko na tym żeby program działał. Działający program potrzeba mi najpóźniej do niedzieli (21.11.10) godziny 22:00 jednak jeśli się wam nie uda tego naprawić to może być później. :)

Pozdrawiam

0

Na jakim systemie piszesz? Bo jest takie zajebiste ony narzędzie zwane debuggerem. Bardzo pomocne i wartościowe przy pisaniu programów.

0
DestiX napisał(a)

Działający program potrzeba mi najpóźniej do niedzieli (21.11.10) godziny 22:00 jednak jeśli się wam nie uda tego naprawić to może być później. :)

Nie no, naprawdę może być później?

0
  1. Nie piszemy
 
main()
{
  ...
}

tylko

int main()
{
  ...
  return 0;
}
  1. Kiedy masz if'a to to co jest w środku if'a odsuwaj bardziej od lewej, czyli:
cin >> liczba;
if(liczba == 2) 
  cout << "Brawo ! Prawidlowa odpowiedz! Otrzymujesz +1 pkt, teraz masz: " << wynikc3 << "punktow";
else 
  cout << "Niestety, nie udalo ci sie otrzymujesz -1 pkt, teraz masz: "<< wynikk3 << "punktow";     
int wynikc4; // kolejny wynik
  1. Możesz zrobić coś takiego:
int w=4;
w=w+2;

teraz zmienna w ma wartość 6.

  1. Poczytaj o funkcjach i procedurach.
0

A ja głupi myślałem że czasy programowania liniowego minęły bezpowrotnie. Nie słyszałeś o pętlach?
Cały ten program mogłeś zapisać tak:

#include <iostream>
using namespace std;
int main()
{
    int wynik = 0;
    int odpowiedz;
    int ilosc_pytan = 3;
    for(int i=0;i<ilosc_pytan;i++)
    {
        cout << "Ktory z wymienionych programow jest programem graficznym: \n";
        cout <<"1) Wordpad,\n 2) Paint,\n 3) Gadugadu,\n Odpowiedz: ";
        cin >> odpowiedz;
        if(odpowiedz == 2)
        {
            wynik++;
            cout << "Brawo ! Prawidlowa odpowiedz! Otrzymujesz +1 pkt, teraz masz: " << wynik << "punktow\n";
        }
        else
        {
            wynik--;
            cout << "Niestety, nie udalo ci sie otrzymujesz -1 pkt, teraz masz: "<< wynik << "punktow\n";
        }
       
    }
    cout<<"Na koniec masz "<<wynik<<" punktow"<<endl;
    return 0;
}

Za użycie kombinacji ctrl+c i ctrl+v powinien eksplodować monitor...

A teraz wracając do tematu: proponuje użyć tutaj tablic na pytania i prawidłowe odpowiedzi, na przykład tak:

#include <iostream>
#include <string>
using namespace std;
int main()
{
    const int ilosc_pytan = 2;
    string pytania[ilosc_pytan] = {
        "Ktory z wymienionych programow jest programem graficznym?\n 1) Wordpad,\n 2) Paint,\n 3) Gadugadu,\n Odpowiedz: ",
        "Ile lat ma Andrzej?\n 1) 10,\n 2) 15,\n 3) 20,\n Odpowiedz: "
        };
    int odpowiedzi[ilosc_pytan]={2,3};
    int wynik = 0;
    int odpowiedz;
    for(int i=0;i<ilosc_pytan;i++)
    {
        cout << pytania[i];
        cin >> odpowiedz;
        if(odpowiedz == odpowiedzi[i])
        {
            wynik++;
            cout << "Brawo ! Prawidlowa odpowiedz! Otrzymujesz +1 pkt,";
        }
        else
        {
            wynik--;
            cout << "Niestety, nie udalo ci sie otrzymujesz -1 pkt,";
        }
        cout<<" teraz masz: " << wynik << " punktow"<<endl;
    }
    cout<<"Na koniec masz "<<wynik<<" punktow"<<endl;
    return 0;
}

dodanie do tego programu kolejnego pytania to kwestia:

  1. zwiększenia wartości ilosc_pytan
  2. dopisania tego pytania w tablicy pytania[]
  3. dopisania numeru odpowiedzi w tablicy odpowiedzi[]
0

Autorze: z jakiego źródła czerpiesz informację o C++? Nie było tam wzmianki, że kod częściej się czyta niż pisze, dlatego winno się stosować chociażby wcięcia?

Jeśli jesteś bardzo początkujący to może zastanów się nad tym:

#include <iostream>

using namespace std;

int main()
{
	int odp;
	int wynik = 0;
	cout<<"Pytanie nr1: 1).... 2).... 3).... 4)....\n";
	cin>>odp;
	(odp == 2) ? (wynik += 1) : (wynik -= 1);

	cout<<"Pytanie nr2: 1)... 2).... 3)..... 4)....\n";
	cin>>odp;
	(odp == 2) ? (wynik += 1) : (wynik -=1);

	cout<<"Pytanie nr3: 1).... 2).... 3).... 4)....\n";
	cin>>odp;
	(odp == 2) ? (wynik += 1) : (wynik -= 1);

	cout<<"Pytanie nr4: 1).... 2).... 3).... 4)....\n";
	cin>>odp;
	(odp == 2) ? (wynik += 1) : (wynik -= 1);



	cout<<"Wynik to: " <<wynik;

	cin.get();
	cin.get();
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1