Witam. Z racji że programowanie nie jest moją najmocniejszą stroną, a mam za zadanie stworzyć mini projekcik, muszę skorzystać z Waszej pomocy. Pierwsza część mojego zadania brzmi tak:
Create structure Task, cotaining the information about the test question in the fields: a question, five variants of the answer, a correct answer number, a number of points for a correct answer and method to display a question (struct with public data-members for simplicity, it can be defined inside next class).
Kod który napisałem:
[code]#include
#include
#include
using namespace std;
class Test{
char guess; //będzie przyjmowało odpowiedź z klawiatury(a,b,c,d lub e)
int total; //będzie sumowało liczbę pkt z testu
vector questions;
void askQuestion();
};
struct Question
:public Test
{
string Question_Text; //pytanie
string answers[ 5 ]; // tablica na 5 odpowiedzi
char correct_answer; //wskazana prawidłowa odp w pytaniu
int Question_Score; //liczba pkt za prawidłową odpowiedź
Question( string q, string a1, string a2, string a3, string a4, string a5, char ca, int qs ) //konstruktor do dodawania pytań
{
Question_Text = q;
answers[ 0 ] = a1;
answers[ 1 ] = a2;
answers[ 2 ] = a3;
answers[ 3 ] = a4;
answers[ 4 ] = a5;
correct_answer = ca;
Question_Score = qs;
}
void showQuestion(); //deklaracja metody wyswietlajacej pytanie
};
void Question::showQuestion() //metoda wyswietlajaca pytanie
{
cout << “\n”;
cout << Question_Text << “\n”;
for( int i = 0; i < 5; i++ ) {
cout << answers[ i ];
cout << endl;
}
}
int main() {
Question t1( “1. Stolica Polski to:”,
“a. Warszawa”,
“b. Poznan”,
“c. Krakow”,
“d. Gdansk”,
“e. Torun”,
‘a’,
5 );
Question t2( “2. Stolica Polski to:”,
“a. Warszawa”,
“b. Poznan”,
“c. Krakow”,
“d. Gdansk”,
“e. Torun”,
‘a’,
5 );
Question t3( “3. Stolica Polski to:”,
“a. Warszawa”,
“b. Poznan”,
“c. Krakow”,
“d. Gdansk”,
“e. Torun”,
‘a’,
5 );
t1.showQuestion();
t2.showQuestion();
return 0;
}[/code]
Wszystko działa jak należy(wiem że przypisywanie na sztywno 5 odpowiedzi nie powinno mieć miejsca, ale nie będzie tutaj żadnych zmian, a kod ma wyglądać “słowo w słowo”, więc musiałem tak zrobić.
Kolejna część mojego zadania to:
To model a set of test questions, create the TestContent class, with data-member vector of test questions. Create constructors, set, get & print methods, methods to add and remove a test question(duplicate questions should not be included in the vector), method to access a test question by it’s index in the list of questions(vector), method to check if the answer of given question is correct
na początku skupiłem się na zdefiniowaniu struktury Question, w klasie Test…jak widać w powyższym kodzie zrobiłem to tak:
class Test{
char guess; //będzie przyjmowało odpowiedź z klawiatury(a,b,c,d lub e)
int total; //będzie sumowało liczbę pkt z testu
vector<string> questions;
void askQuestion();
};
struct Question
:public Test
{
//reszta kodu
}
Wektor z pytaniami również stworzyłem(później tam będę dodawał). No i pomijając środek, na końcu mam zadanie aby stworzyć metodę która wyświetli pytanie i sprawdzi odpowiedź. Więc używając poprzedniej metody showQuestion ze struktury Task, chciałem jej użyć i dopisać pare linijek które będą miały na celu sprawdzenie odpowiedzi. Wygląda to tak:
Class Test{
int guess;
int total;
vector<string> questions;
void askQuestion();
};
//void Test::askQuestion()
//{
// showQuestion();
// cout << "Twoja odpowiedz to?" << "\n";
// cin >> guess;
// if( guess == correct_answer ) {
// cout << "\n";
// cout << "Dobrze!" << "\n";
// total = total + Question_Score;
// cout << "\n";
// cout << "Nacisnij enter aby kontynuować" << "\n";
// cin.get();
// cin.ignore();
// }
// else
// {
// cout << "\n";
// cout << "Niestety, zla odpowiedz" << "\n";
// cout << "Prawidlowa odpowiedź to: " << correct_answer << "." << "\n";
// cout << "\n";
// cout << "Nacisnij enter aby kontynuować" << "\n";
// cin.get();
// cin.ignore();
//
// }
//}
Ale niestety to nie działa, wyskakują mi błędy:
In member function ‘void Test::askQuestion()’:
[Error] ‘showQuestion’ was not declared in this scope
[Error] ‘correct_answer’ was not declared in this scope
[Error] ‘Question_Score’ was not declared in this scope
że te rzeczy są nie zadeklarowane, ale przecież one są w strukturze Question…
Czy ktoś jest w stanie mi pomóc jak to rozwiązać?