Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Programa - skaičiuotuvas, galima skaičiuoti kiek norime kartų. - 2013.12.07
- Skaičiavimai išvedami į atskirą failą. - 2013.12.07
- Ieva Jakšaitytė (KTU gr. IF-3/4) */
- #include <iostream>
- #include <fstream>
- #include <iomanip>
- #include <time.h>
- using namespace std;
- static const int maks = 100; // maksimalus galimas masyvo dydis
- const char REZ[] = "Skaiciavimai.txt"; // failas, į kurį išvedami visi skaičiavimai
- // klasė saugojanti kiekvieną skaičiavimą atskirai -----------------------------
- class Skaiciavimas
- {
- private:
- double skaicius1, // pirmas skaičius
- skaicius2, // antras skaičius
- atsakymas; // gautas atsakymas
- char veiksmas; // naudotas veiksmas
- public:
- void Dėti(double sk1, double sk2, double ats, char veiksm);
- double GetSk1() { return skaicius1; }
- double GetSk2() { return skaicius2; }
- double GetAts() { return atsakymas; }
- char GetVks() { return veiksmas; }
- };
- // sąsajos metodas -------------------------------------------------------------
- void Skaiciavimas::Dėti(double sk1, double sk2, double ats, char veiksm) {
- skaicius1 = sk1;
- skaicius2 = sk2;
- atsakymas = ats;
- veiksmas = veiksm;
- }
- // prototipai ------------------------------------------------------------------
- void Skaiciuoti(Skaiciavimas s[], int & kiek);
- void Isvesti(Skaiciavimas s[], int kiek);
- // main funkcija ---------------------------------------------------------------
- int main()
- {
- setlocale(LC_ALL, "Lithuanian");
- Skaiciavimas s[maks]; // klasės objektas (masyvas), saugojantis gautą informaciją
- int kiek; // kiek kartų buvo atlikti skaičiavimai
- cout << "Skaičiuotuvas.\n\n"
- << "Norint skaičius rašyti per kablelį rašykite tašką vietoj kablelio, pvz 5.5.\n"
- << "Norint baigti įrašykite '0 0 0'.\n\n";
- Skaiciuoti(s, kiek);
- Isvesti(s, kiek);
- cout << "Visi skaičiavimai buvo išvesti į failą \"Skaiciavimai.txt\"\n\n\n\n\n\n\n\n\n";
- system("pause");
- return 0;
- }
- // funkcijos -------------------------------------------------------------------
- // funckija, kuri leidžia pateikti veiksmus, suskaičiuoja atsakymą ir viską sudeda į masyvus
- void Skaiciuoti(Skaiciavimas s[], int & kiek)
- {
- double sk1, sk2, // pirmas ir antras skaičiai
- ats; // gautas atsakymas
- char veiksmas; // veiksmas
- bool skaiciuoti = true; // reiškmė rodanti ar dar skaičiuoti
- for (int i = 0; skaiciuoti == true; i++)
- {
- cout << "Įveskite skaičių, veiksmą ir skaičių.\n";
- cin >> sk1 >> veiksmas >> sk2;
- if (sk1 == 0 && veiksmas == '0' && sk2 == 0) {
- skaiciuoti = false;
- cout << "\n\n\n\n\n\n\n"
- << "\nPrograma baigė darbą.\n\n";
- break;
- }
- switch (veiksmas)
- {
- case '+':
- ats = sk1 + sk2;
- break;
- case '-':
- ats = sk1 - sk2;
- break;
- case '*':
- ats = sk1 * sk2;
- break;
- case '/':
- ats = sk1 / sk2;
- break;
- default:
- cout << "blogas veiksmas..";
- break;
- }
- cout << "Atsakymas: " << ats << endl;
- s[i].Dėti(sk1, sk2, ats, veiksmas);
- kiek = i;
- cout << endl;
- }
- }
- // funckija išvedanti visus skaičiavimus į atskirą failą
- void Isvesti(Skaiciavimas s[], int kiek) {
- char date[9];
- _strdate(date);
- ofstream fout(REZ, ios::app);
- fout << "Skaičiavimai atlikti: " << date << endl;
- for (int i = 0; i <= kiek; i++)
- {
- fout << setw(10) << right << s[i].GetSk1() << " "
- << setw(1) << left << s[i].GetVks() << " "
- << setw(10) << left << s[i].GetSk2() << " = "
- << s[i].GetAts() << endl;
- }
- fout << "\n\n\n";
- fout.close();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement