Už vážně nevím, co mám dělat.. Učím se C++ po předchozí znalosti PHP a Pythonu podle knihy C++ za 21 dní. Ze začátku, asi tak do 7 lekce, tedy po objekty šlo všechno dobře, ale pak jsem se zasekl u ukazatelů a odkazů, ale i ty jsem po nějakém tom dni nakonec pochopil, jenomže teď už jsem ztracen úplně... :( komlpetně jsem se zasekl u 14 lekce, tedy mnohotvarnosti a propojených seznamů... Prostě úplně nechápu věci, které tam používají, ale nikde předem nenapíší co dělají, prostě si to mám domyslet. Ve 13 lekci použijí zápis virtual funkce() = 0 a v 14 na konci řeknou co to děla :(. Nevím jestli jsem prostě antitalent na programování, ale prostě se přes to místo nemůžu dostat a konec :(. Nemůžete mi někdo pomoct? Na ukázku dovedností, které asi mám posílám zdroják mého asi nej. programu.
PS: Používám Visual C++ 6 (hodlám se učit nativní programování, ne DOTNET)
Tady je ta ukázka(není to doladěné, pokuď se například zadá nějaké písmeno místo čísla zblázní se to):
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <iostream>
#include <string>
#define GetRandom( min, max ) ((rand() % (int)(((max) + 1) - (min))) + (min))
using namespace std;
class Slovicka
{
public:
void zkousej(int obtiznost);
void zkousejan(int obtiznost);
Slovicka();
~Slovicka() {}
private:
string slovickaAnL[5];
string slovickaCzL[5];
string slovickaAnS[5];
string slovickaCzS[5];
string slovickaAnT[5];
string slovickaCzT[5];
};
Slovicka::Slovicka()
{
slovickaAnL[0] = "car" ;
slovickaAnL[1] = "house" ;
slovickaAnL[2] = "wheel" ;
slovickaAnL[3] = "heart" ;
slovickaAnL[4] = "luck" ;
slovickaCzL[0] = "auto" ;
slovickaCzL[1] = "dum" ;
slovickaCzL[2] = "kolo" ;
slovickaCzL[3] = "srdce" ;
slovickaCzL[4] = "stesti" ;
slovickaAnS[0] = "hay";
slovickaAnS[1] = "fight";
slovickaAnS[2] = "scar";
slovickaAnS[3] = "dye";
slovickaAnS[4] = "puck";
slovickaCzS[0] = "seno" ;
slovickaCzS[1] = "boj" ;
slovickaCzS[2] = "jizva" ;
slovickaCzS[3] = "barva" ;
slovickaCzS[4] = "puk" ;
slovickaAnT[0] = "bent";
slovickaAnT[1] = "outfit";
slovickaAnT[2] = "kettle";
slovickaAnT[3] = "soul";
slovickaAnT[4] = "eldest";
slovickaCzT[0] = "ohnuty" ;
slovickaCzT[1] = "vystroj" ;
slovickaCzT[2] = "konvice" ;
slovickaCzT[3] = "duse" ;
slovickaCzT[4] = "nejstarsi" ;
}
void Slovicka::zkousej(int obtiznost)
{
switch (obtiznost)
{
case (1):
{
for (int i = 0; i <= 4; i++)
{
string slovickocz;
cout << "\n\nSlovicko: " << slovickaAnL[i] << " Cesky: ";
cin >> slovickocz;
if (slovickocz != slovickaCzL[i])
cout << "\nSpatne, spravne je " << slovickaCzL[i];
else
cout << "\nSpravne";
}
break;
}
case (2):
{
for (int j = 0; j <= 4; j++)
{
string slovickocz2;
cout << "\n\nSlovicko: " << slovickaAnS[j] << " Cesky: ";
cin >> slovickocz2;
if (slovickocz2 != slovickaCzS[j])
cout << "\nSpatne, spravne je " << slovickaCzS[j];
else
cout << "\nSpravne";
}
break;
}
case (3):
{
for (int k = 0; k <= 4; k++)
{
string slovickocz3;
cout << "\n\nSlovicko: " << slovickaAnT[k] << " Cesky: ";
cin >> slovickocz3;
if (slovickocz3 != slovickaCzT[k])
cout << "\nSpatne, spravne je " << slovickaCzT[k];
else
cout << "\nSpravne";
}
break;
}
}
}
void Slovicka::zkousejan(int obtiznost)
{
switch (obtiznost)
{
case (1):
{
for (int i = 0; i <= 4; i++)
{
string slovickoan;
cout << "\n\nSlovicko: " << slovickaCzL[i] << " Anglicky: ";
cin >> slovickoan;
if (slovickoan != slovickaAnL[i])
cout << "\nSpatne, spravne je " << slovickaAnL[i];
else
cout << "\nSpravne";
}
break;
}
case (2):
{
for (int j = 0; j <= 4; j++)
{
string slovickoan2;
cout << "\n\nSlovicko: " << slovickaCzS[j] << " Anglicky: ";
cin >> slovickoan2;
if (slovickoan2 != slovickaAnS[j])
cout << "\nSpatne, spravne je " << slovickaAnS[j];
else
cout << "\nSpravne";
}
break;
}
case (3):
{
for (int k = 0; k <= 4; k++)
{
string slovickoan3;
cout << "\n\nSlovicko: " << slovickaCzT[k] << " Anglicky: ";
cin >> slovickoan3;
if (slovickoan3 != slovickaAnT[k])
cout << "\nSpatne, spravne je " << slovickaAnT[k];
else
cout << "\nSpravne";
}
break;
}
}
}
int main()
{
bool *ukKonec = new bool;
for (int m = 0; m < 2; m++)
{
for (int m = 0; m < 79; m++)
cout << "*";
cout << "\n";
}
Slovicka test;
for (;;)
{
int obtiznost = 0;
int typ = 0;
cout << "\n*****Vitejte v programu Slovicka*****";
cout << "\n*****Toto je pouze testovaci verze*****";
cout << "\n*****Vyberte typ zkouseni*****";
cout << "\n*****Anglicky - Cesky(1)*****\n*****Cesky - Anglicky(2)*****\n\n";
cin >> typ;
cout << "\n*****Vyberte ktery test chcete spustit*****\n\n";
cout << "\n*****Lehky(1)*****\n*****Stredni(2)*****\n*****Tezky(3)*****\n";
cin >> obtiznost;
if (typ == 1)
{
switch (obtiznost)
{
case (1):
test.zkousej(1);
cout << "\nChcete ukoncit program(y/n)?\n";
char pom;
cin >> pom;
if (pom == 'y')
*ukKonec = true;
break;
case (2):
test.zkousej(2);
cout << "\nChcete ukoncit program(y/n)?\n";
char pom2;
cin >> pom2;
if (pom2 == 'y')
*ukKonec = true;
break;
case (3):
test.zkousej(3);
cout << "\nChcete ukoncit program(y/n)?\n";
char pom3;
cin >> pom3;
if (pom3 == 'y')
*ukKonec = true;
break;
default:
*ukKonec = false;
}
if (*ukKonec == true)
break;
}
else
switch (obtiznost)
{
case (1):
test.zkousejan(1);
cout << "\nChcete ukoncit program(y/n)?\n";
char pom;
cin >> pom;
if (pom == 'y')
*ukKonec = true;
break;
case (2):
test.zkousejan(2);
cout << "\nChcete ukoncit program(y/n)?\n";
char pom2;
cin >> pom2;
if (pom2 == 'y')
*ukKonec = true;
break;
case (3):
test.zkousejan(3);
cout << "\nChcete ukoncit program(y/n)?\n";
char pom3;
cin >> pom3;
if (pom3 == 'y')
*ukKonec = true;
break;
default:
*ukKonec = false;
}
if (*ukKonec == true)
break;
}
return 0;
}
Jinak zde je spustitelná verze: http://jackxl.php5.cz/Slovicka.exe