Witam,
dopiero zaczynam swoją przygode z C++, przeczytałem sporo książek dochodząc jednak do granicy programowania zwykłego a obiektowego (nie zacząłem klas)
napisałem pierwszy klakulator, który... no, nie chce się skompilować. Nienawidzę wskaźników, ale specjalnie nieoptymalnie podzieliłem program na funkcje ze wskaźnikami żeby się ich nauczyć. Help please...
PS jeśli to zły dział to przepraszam, przenieście. Nie chce robić spamu, ale też nie kasujcie tego
#include <iostream>
#include <windows.h>
using namespace std;
float *wsk1, *wsk2;
float dodawanie(*wsk1, *wsk2);
float odejmowanie(*wsk1, *wsk2);
float mnozenie(*wsk1, *wsk2);
float dzielenie(*wsk1, *wsk2);
std::string PL(std::string znak);
int inny();
int main()
{
system("cls");
cout << PL("Witaj w kalkulatorze :) \n");
cout << PL("Wybierz operacje na liczbach:\n");
cout << PL("\t 1. Dodawanie\n");
cout << PL("\t 2. Odejmowanie\n");
cout << PL("\t 3. Mnożenie\n");
cout << PL("\t 4. Dzielenie\n");
cout << PL("\t 5. Potęgowanie\n");
cout << PL("\t 6. Pierwiastkowanie\n");
cout << PL("\t 7. Wyjście\n");
int wybor;
float Liczba1, Liczba2;
float m;
cin >> wybor;
switch(wybor)
{
case 1:
{
m = dodawanie(&Liczba1, &Liczba2);
break;
}
case 2:
{
m = odejmowanie(&Liczba1, &Liczba2);
break;
}
case 3:
{
m = mnozenie(&Liczba1, &Liczba2);
break;
}
case 4:
{
m = dzielenie(&Liczba1, &Liczba2);
break;
}
case 5:
{
m = potega(&Liczba1, &Liczba2);
break;
}
case 6:
{
m = pierwiastek(&Liczba1, &Liczba2);
break;
}
case 7:
{
system("cls");
cout << PL("Kalkulator bY Lisu 2011 ");
cout << "\u00A9";
system("pause");
break;
}
default:
{
system("cls");
inny();
break;
}
system("pause");
}
int inny()
{
cout << PL("Nie ma takiej opcji! Prosze wybrać właściwy numer.\n\n");
cout << PL("Co chcesz teraz zrobić?\n");
cout << PL("\t1. Chce jeszcze raz! :)\n");
cout << PL("\t2. Wyjście");
int klawisz;
cin >> klawisz;
if(klaiwsz==2)
return ((ShellExecute(NULL, NULL, "kalkulator.exe", NULL, NULL, SW_SHOWNORMAL) || 0));
elseif(klawisz==1)
close();
else
{
clrscr();
inny();
}
}
float dodawanie(*Liczba1, *Liczba2)
{
system("cls");
cout << PL("Dodawanie:");
cout << PL("\tPodaj pierwszą liczbę (może być ułamek)");
cin >> *Liczba1;
cout << PL("\tPodaj drugą liczbę (może być ułamek)");
cin >> *Liczba2;
return (*Liczba1+*Liczba2)
}
float odejmowanie(*Liczba1, *Liczba2)
{ return 1.0;
}
float mnozenie(*Liczba1, *Liczba2){
return 1.0;
}
float dzielenie(*Liczba1, *Liczba2){return 1.0;}
float potega(*Liczba1, *Liczba2){return 1.0;}
float pierwiastek(*Liczba1, *Liczba2){
return 1.0;
}
std::string PL(std::string znak)
{
for (unsigned i = 0; i < znak.length(); i ++)
{
switch(znak[i])
{
case 'ą':
znak[i] = static_cast<char>(165);
break;
case 'ć':
znak[i] = static_cast<char>(134);
break;
case 'ę':
znak[i] = static_cast<char>(169);
break;
case 'ł':
znak[i] = static_cast<char>(136);
break;
case 'ń':
znak[i] = static_cast<char>(228);
break;
case 'ó':
znak[i] = static_cast<char>(162);
break;
case 'ś':
znak[i] = static_cast<char>(152);
break;
case 'ź':
znak[i] = static_cast<char>(171);
break;
case 'ż':
znak[i] = static_cast<char>(190);
break;
case 'Ą':
znak[i] = static_cast<char>(164);
break;
case 'Ć':
znak[i] = static_cast<char>(143);
break;
case 'Ę':
znak[i] = static_cast<char>(168);
break;
case 'Ł':
znak[i] = static_cast<char>(157);
break;
case 'Ń':
znak[i] = static_cast<char>(227);
break;
case 'Ó':
znak[i] = static_cast<char>(224);
break;
case 'Ś':
znak[i] = static_cast<char>(151);
break;
case 'Ź':
znak[i] = static_cast<char>(141);
break;
case 'Ż':
znak[i] = static_cast<char>(189);
break;
}
}
return znak;
}
proszę o szybką pomoc, i ewentualne podświetlenie błędów wraz z wyjaśnieniem czemu tak a nie inaczej
Z góry dziękuje,
młody (przyszły) programista.
PS Jako że wyskoczyło mi tyle błędów, poprawnie zrobiłem tylko dodawanie...