Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib>
- #include <windows.h>
- #include <algorithm>
- #include "Klasy_Ekspres.h"
- #include "AplikacjeKlasyEkspres.h"
- using namespace std;
- /*void AplikacjeDodatkowe::WyswietlMenu() {
- short wybor;
- cout << "Programy dla roznych typow danych:" << endl;
- cout << "1. Kalkulator" << endl;
- cout << "2. Sortowanie babelkowe" << endl;
- cout << "3. Wyszukiwanie elementu najwiekszego i najmniejszego" << endl;
- cout << "4. Wyszukiwanie indeksu" << endl;
- cout << "5. Zliczanie wystapien" << endl;
- cin >> wybor;
- }
- WywolanieKalkulator* obj30 = new WywolanieKalkulator();
- WywolanieSortowanie* obj31 = new WywolanieSortowanie();
- WywolanieMinMax* obj32 = new WywolanieMinMax();
- WywolanieWyszukiwanieIndeksu* obj33 = new WywolanieWyszukiwanieIndeksu();
- WywolanieZliczanieWystapien* obj34 = new WywolanieZliczanieWystapien();
- switch (wybor) {
- case 1:
- obj30->WywolajKalkulator();
- delete obj30;
- break;
- case 2:
- obj31->WywolajSortowanie();
- delete obj31;
- break;
- case 3:
- obj32->WywolajMinMax();
- delete obj32;
- break;
- case 4:
- obj33->WywolajWyszukiwanieIndeksu();
- delete obj33;
- break;
- case 5:
- obj34->WywolajWyszukiwanieIndeksu();
- delete obj34;
- break;
- }
- default:
- cout << "Brak opcji w menu!" << endl;
- Sleep(3000);
- exit(0);
- }
- //-------------------------------------------------------------------------------------
- template<typename Type>
- class Kalkulator {
- Type liczba1;
- public:
- Kalkulator(Type argument) {
- liczba1 = argument;
- }
- Type Dodawanie(Type liczba2) {
- return (liczba1 + liczba2);
- }
- Type Odejmowanie(Type liczba2) {
- return (liczba1 - liczba2);
- }
- Type Mnozenie(Type liczba2) {
- return (liczba1 * liczba2);
- }
- Type Dzielenie(Type liczba2) {
- return (liczba1 / liczba2);
- }
- };
- void WywolanieKalkulator::WywolajKalkulator() {
- short wyborintdouble;
- short wyboroperacji;
- int x1, x2;
- double y1, y2;
- cout << "Dziala dla int i dla dobule" << endl;
- cout << "1. Int" << endl;
- cout << "2. Double" << endl;
- cin >> wyborintdouble;
- cout << "Operacja: " << endl;
- cout << "1. Dodawanie" << endl;
- cout << "2. Odejmowanie" << endl;
- cout << "3. Mnozenie" << endl;
- cout << "4. Dzielenie" << endl;
- cin >> wyboroperacji;
- if (wyborintdouble == 1) {
- cout << "Pierwsza liczba int: ";
- cin >> x1;
- cout << "Druga liczba int: ";
- cin >> x2;
- if (wyboroperacji == 1) {
- Kalkulator<int>* intKalkulator = new Kalkulator<int>(x1);
- cout << "Wynik: " << intKalkulator->Dodawanie(x2) << endl;
- }
- else if (wyboroperacji == 2) {
- Kalkulator<int>* intKalkulator = new Kalkulator<int>(x1);
- cout << "Wynik: " << intKalkulator->Odejmowanie(x2) << endl;
- }
- else if (wyboroperacji == 3) {
- Kalkulator<int>* intKalkulator = new Kalkulator<int>(x1);
- cout << "Wynik: " << intKalkulator->Mnozenie(x2) << endl;
- }
- else if (wyboroperacji == 4) {
- Kalkulator<int>* intKalkulator = new Kalkulator<int>(x1);
- cout << "Wynik: " << intKalkulator->Dzielenie(x2) << endl;
- }
- else cout << "Nie ma opcji w menu."; exit(0);
- }
- else if (wyborintdouble == 2){
- cout << "Pierwsza liczba double: ";
- cin >> y1;
- cout << "Druga liczba double: ";
- cin >> y2;
- if (wyboroperacji == 1) {
- Kalkulator<double>* intKalkulator = new Kalkulator<double>(y1);
- cout << "Wynik: " << intKalkulator->Dodawanie(y2) << endl;
- }
- else if (wyboroperacji == 2) {
- Kalkulator<double>* intKalkulator = new Kalkulator<double>(y1);
- cout << "Wynik: " << intKalkulator->Odejmowanie(y2) << endl;
- }
- else if (wyboroperacji == 3) {
- Kalkulator<double>* intKalkulator = new Kalkulator<double>(y1);
- cout << "Wynik: " << intKalkulator->Mnozenie(y2) << endl;
- }
- else if (wyboroperacji == 4) {
- Kalkulator<double>* intKalkulator = new Kalkulator<double>(y1);
- cout <<"Wynik: " << intKalkulator->Dzielenie(y2) << endl;
- }
- else cout << "Nie ma opcji w menu."; exit(0);
- }
- }
- //------------------------------------------------------------
- template<typename Type>
- class Sortowanie {
- public:
- Type Babelkowe(Type tab[], int n) {
- for (int i = 0; i < n; i++)
- for (int j = 1; j < n - i; j++)
- if (tab[j - 1] > tab[j])
- swap(tab[j - 1], tab[j]);
- }
- };
- void WywolanieSortowanie::WywolajSortowanie() {
- bool wybor;
- short n;
- int* tabint;
- double* tabdouble;
- cout << "Sortowanie ma sie odbywac dla typu int czy double: " << endl;
- cout << "0. Int" << endl;
- cout << "1. Double" << endl;
- cin >> wybor;
- //BYL TU DUZY PROBLEM Z PRZEKAZYWANIEM TABLICY DYNAMICZNEJ POLECENIE CL.EXE ZAKONCZONE PRZEZ KOD 2
- cout << "Ile liczb do posortowania: ";
- cin >> n;
- if (wybor == false) {
- tabint = new int[n];
- for (int i = 0; i < n; i++)
- cin >> tabint[i];
- Sortowanie<int>* intSortowanie = new Sortowanie<int>();
- intSortowanie->Babelkowe(tabint, n);
- for (int i = 0; i < n; i++)
- cout << tabint[i] << " ";
- }
- else if (wybor == true) {
- tabdouble = new double[n];
- for (int i = 0; i < n; i++)
- cin >> tabdouble[i];
- Sortowanie<double>* doubleSortowanie = new Sortowanie<double>();
- doubleSortowanie->Babelkowe(tabdouble, n);
- for (int i = 0; i < n; i++)
- cout << tabdouble[i] << " ";
- }
- }
- //----------------------------------------------------------------------------------
- template<typename Type>
- class MinMax {
- public:
- Type WyszukajMin(Type n1, Type n2) {
- return min(n1, n2);
- }
- Type WyszukajMax(Type n1, Type n2) {
- return max(n1, n2);
- }
- };
- void WywolanieMinMax::WywolajMinMax() {
- bool wybor;
- int x1, x2;
- double y1, y2;
- cout << "Wyszukiwanie min max sposrod dwoch liczb ma byc dla typu: " << endl;
- cout << "0. Int" << endl;
- cout << "1. Double" << endl;
- cin >> wybor;
- if (wybor == false) {
- cout << "Pierwsza liczba: ";
- cin >> x1;
- cout << "Druga liczba: ";
- cin >> x2;
- MinMax<int>* intMinMax = new MinMax<int>();
- cout << "Min: " << intMinMax->WyszukajMin(x1, x2) << endl;
- cout << "Max: " << intMinMax->WyszukajMax(x1, x2) << endl;
- }
- else if (wybor == true) {
- cout << "Pierwsza liczba: ";
- cin >> y1;
- cout << "Druga liczba: ";
- cin >> y2;
- MinMax<double>* doubleMinMax = new MinMax<double>();
- cout << "Min: " << doubleMinMax->WyszukajMin(y1, y2) << endl;
- cout << "Max: " << doubleMinMax->WyszukajMax(y1, y2) << endl;
- }
- }
- //---------------------------------------------------------------------------------
- template<typename Type>
- class Wyszukiwanie {
- public:
- Type Indeksu(Type tab[], int n, Type szukana) {
- for (int i = 0; i < n; i++) {
- if (tab[i] == szukana) {
- return i + 1;
- break;
- }
- }
- }
- };
- void WywolanieWyszukiwanieIndeksu::WywolajWyszukiwanieIndeksu() {
- bool wybor;
- short n;
- int* tabint;
- double* tabdouble;
- int szukanaInt;
- double szukanaDouble;
- cout << "Wyszukiwanie ma sie odbywac dla typu int czy double: " << endl;
- cout << "0. Int" << endl;
- cout << "1. Double" << endl;
- cin >> wybor;
- cout << "Ile liczb do wpisania: ";
- cin >> n;
- if (wybor == false) {
- cout << "Podaj szukana liczbe Int: ";
- cin >> szukanaInt;
- cout << "Wpisuj liczby:" << endl;
- for (int i = 0; i < n; i++)
- cin >> tabint[i];
- tabint = new int[n];
- Wyszukiwanie<int>* intWyszukiwanie = new Wyszukiwanie<int>();
- cout << "Indeks tablicy poszukiwanego elementu to: " << intWyszukiwanie->Indeksu(tabint, n, szukanaInt) << endl;
- }
- else if (wybor == true) {
- cout << "Podaj szukana liczbe Double: ";
- cin >> szukanaDouble;
- cout << "Wpisuj liczby:" << endl;
- for (int i = 0; i < n; i++)
- cin >> tabdouble[i];
- tabdouble = new double[n];
- Wyszukiwanie<double>* doubleWyszukiwanie = new Wyszukiwanie<double>();
- cout << "Indeks tablicy poszukiwanego elementu to: " << doubleWyszukiwanie->Indeksu(tabdouble, n, szukanaDouble) << endl;
- }
- }
- //-------------------------------------------------------------------------------------------------------------------------
- template<typename Type>
- class Zliczanie {
- public:
- Type Wystapienia(Type tab[], int n, Type szukana) {
- return count(tab, tab + n, szukana);
- }
- };
- void WywolanieZliczanieWystapien::WywolajZliczanieWystapien() {
- bool wybor;
- short n;
- int* tabint;
- double* tabdouble;
- int szukanaInt;
- double szukanaDouble;
- cout << "Zliczanie wystapien ma sie odbywac dla typu int czy double: " << endl;
- cout << "0. Int" << endl;
- cout << "1. Double" << endl;
- cin >> wybor;
- cout << "Ile liczb do tablicy: ";
- cin >> n;
- if (wybor == false) {
- cout << "Liczba do zliczenia: ";
- cin >> szukanaInt;
- cout << "Podaj liczby: ";
- tabint = new int[n];
- for (int i = 0; i < n; i++)
- cin >> tabint[i];
- Zliczanie<int>* intZliczanie = new Zliczanie<int>();
- intZliczanie->Wystapienia(tabint, n, szukanaInt);
- cout << "Liczba do zliczenia: " << szukanaInt << " , liczba wystapien: " << intZliczanie->Wystapienia(tabint, n, szukanaInt) << endl;
- }
- else if (wybor == true) {
- cout << "Liczba do zliczenia: ";
- cin >> szukanaDouble;
- cout << "Podaj liczby: ";
- tabdouble = new double[n];
- for (int i = 0; i < n; i++)
- cin >> tabdouble[i];
- Zliczanie<double>* doubleZliczanie = new Zliczanie<double>();
- cout << "Liczba do zliczenia: " << szukanaDouble << " , liczba wystapien: " << doubleZliczanie->Wystapienia(tabdouble, n, szukanaDouble) << endl;
- }
- }*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement