plik main.cpp
Kod: Zaznacz cały
#include "klasy.h"
#include "inicjalizacja klas.h"
int main(int argc, char *argv[])
{
Tekst Jezyk;
cout << "Podaj jezyk, w ktorym chcesz korzystac z programu\n";
cout << "1 - polski\n";
cout << "2 - angielski\n";
int decyzja;
cin >> decyzja;//wybieramy jezy,
switch (decyzja)//wczytanie wybranego jezyka
{
case 1:
Jezyk.Wczytaj("polski.txt");
break;
case 2:
Jezyk.Wczytaj("angielski.txt");
break;
default: continue;
}
while(1)//petla glowna
{
cout << Jezyk[1] << endl;
cout << "1 - " << Jezyk[2] << endl;
cout << "2 - " << Jezyk[3] << endl;
cout << "3 - " << Jezyk[4] << endl;
cout << "4 - " << Jezyk[9] << endl;
cout << "5 - " << Jezyk[15] << endl;
cout << "6 - " << Jezyk[17] << endl;
cout << "7 - " << Jezyk[26] << endl;
double number;//zmienna uzywana do pobierania liczby w pierwiastkach i potedze
cin >> decyzja;
//menu
Oblicz Zadanie;
switch(decyzja)
{
case 1:
//pierwiastek kwadratowy
cout << Jezyk[5] << endl;
cin >> number;
Zadanie.Sqrt(number);
cout << Jezyk[7] << Zadanie.GetItsVal() << endl;
break;
case 2:
//pierwiastek szescienny
cout << Jezyk[5] << endl;
cin >> number;
Zadanie.Cbrt(number);
cout << Jezyk[7] << Zadanie.GetItsVal() << endl;
break;
case 3:
//potega
double wykladnik;
cout << Jezyk[5] << endl;
cin >> number;
cout << Jezyk[6] << endl;
cin >> wykladnik;
Zadanie.Pow(number,wykladnik);
cout << Jezyk[7] << Zadanie.GetItsVal() << endl;
break;
case 4:
//srednia
double arytmSrednia;
arytmSrednia = Zadanie.Srednia();
cout << Jezyk[27] << arytmSrednia << endl;
break;
}
}
system("PAUSE");
return EXIT_SUCCESS;
}
Kod: Zaznacz cały
#include <iostream>
#include <fstream>
#include <string>
#include <cmath>
using namespace std;
//wczytywanie plikow z jezykami
class Tekst
{
public:
bool Wczytaj(const char * nazwa)
{
ifstream plik(nazwa);
if(!plik) { cerr << "Nie mozna wczytac '" << nazwa << "'\n"; return false; }
char temp[1024]; int tmp;
plik.getline(temp, 1024, '\n');
ile = atoi(temp);
if(ile < 1 || ile > 9999) { cerr << "Nieprawidlowe dane\n"; return false; }
tekst = new string[ile];
while(plik)
{
plik.getline(temp, 16, ' ');
tmp = atoi(temp);
plik.getline(temp, 1024, '\n');
if(tmp > 0 && tmp <= ile) tekst[tmp-1] = temp;
}
return true;
}
const char* operator [](int indeks)
{
if(indeks > 0 && indeks <= ile) return tekst[indeks-1].c_str();
return NULL;
}
~Tekst() { delete [] tekst; }
protected:
string* tekst;
int ile;
};
class Oblicz
{
public:
//konstruktory
Oblicz();
~Oblicz(){}
//akcesory
double GetItsVal()const { return itsVal; }
double GetItsVal2()const { return itsVal2; }//jeszcze bez zastosowania
//metody
//pierwiastek kwadratowy
double Sqrt(itsVal);
//pierwiastek szescienny
double Cbrt(itsVal);
//potega
double Pow(itsVal,itsWykladnik);
//srednia
double Srednia();
protected:
double itsVal;
double itsVal2;//jeszcze bez zastosowania
double itsWykladnik;
};
Kod: Zaznacz cały
//pierwiastek kwadratowy
Oblicz::Sqrt(itsVal)
{
itsVal = sqrt(itsVal);
return itsVal;
}
//pierwiastek szescienny
Oblicz::Cbrt(itsVal)
{
itsVal = cbrt(itsVal);
return itsVal;
}
//potega
Oblicz::Pow(itsVal,itsWykladnik)
{
itsVal = pow(itsVal,itsWykladnik)
return itsVal;
}
//srednia
Oblicz::Srednia()
{
double tablica[50];
int i, j;
double srednia;
//petla zbierajaca liczby
for (i = 0; i < 50; i++)//BLAD!funkcja bedzie dzialac az i<50. nie ma innego przerwania
{
cout << Jezyk[5] << endl;
double liczba;
cin >> liczba;
tablica[i] = liczba;
}
if (i == 50)cout << "Nie mozesz wpisac wiecej znakow!\n";
//petla sumujaca
for(j = 0; j != i; j++)
{
srednia += tablica[j];
}
//ostateczny wynik
srednia = srednia / j;
return srednia;
}
kompilator uwaza ze w pliku klasy.h nie postawilem średnika przed '(' w deklaracjach metod od pierwiastka kwadratowego poczawszy, skonczywszy na potedze. W pliku inicjalizacje.h
twierdzie, ze
"2 C:\Dev-Cpp\Biblioteka\matematyka reconstructed\inicjalizacja klas.h expected constructor, destructor, or type conversion before '(' token "
oraz:
"2 C:\Dev-Cpp\Biblioteka\matematyka reconstructed\inicjalizacja klas.h expected `,' or `;' before '(' token "
to sie tyczy kazdego naglowka definiowanej funkcji. Jest jeszcze szereg roznych bledow, ale jest ich tak wiele ze nie sposob ich wyliczyc, a napewno czesc powstala na skutek wczesniejszych.