Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <sstream>
- #include <stdio.h>
- #include <fstream>
- #include <string>
- using namespace std;
- template <typename TYP>
- class Tablica
- {
- int mRozmiar;
- TYP* pTablica;
- Tablica() = delete;
- public:
- Tablica(int rozmiar)
- : mRozmiar(rozmiar)
- {
- pTablica = new TYP[rozmiar];
- }
- bool WczytajTablice(std::istream &strumienWej)
- {
- TYP doWczytania;
- int iterator = 0;
- while (iterator < mRozmiar && strumienWej >> doWczytania){
- pTablica[iterator] = doWczytania; ++iterator;
- }
- return iterator == mRozmiar;
- }
- void WypiszTablice(std::ostream &strumienWyj)
- {
- for (auto i = 0; i < mRozmiar; ++i)
- {
- strumienWyj << pTablica[i]<<" ";
- }
- }
- ~Tablica(){
- delete[] pTablica;
- }
- bool ZapiszDoPliku(std::string nazwa, bool czyBinarny = false)
- {
- auto binarny = czyBinarny ? ios::binary : 0;
- std::fstream plikWyjsciowy(nazwa.c_str(), ios::out | binarny);
- if (plikWyjsciowy.is_open())
- {
- WypiszTablice(plikWyjsciowy);
- plikWyjsciowy.close();
- return true;
- }
- else
- {
- return false;
- }
- }
- bool WczytajZPliku(std::string nazwa,bool czyBinarny = false)
- {
- auto binarny = czyBinarny ? ios::binary : 0;
- std::fstream plikWyjsciowy(nazwa.c_str(), ios::in | binarny);
- if (plikWyjsciowy.is_open())
- {
- return WczytajTablice(plikWyjsciowy);
- }
- else
- {
- return false;
- }
- }
- bool ZapiszDoPlikuBinarnego(std::string nazwa)
- {
- return ZapiszDoPliku(nazwa, true);
- }
- bool WczytajDoPlikuBinarnego(std::string nazwa)
- {
- return WczytajZPliku(nazwa, true)
- }
- };
- void menu()
- {
- int opcja;
- do
- {
- cout << "1.Wczytanie tablicy z konsoli" << endl;
- cout << "2.Wyswietlenie tablicy" << endl;
- cout << "3.Wczytywanie z pliku tekstowego" << endl;
- cout << "4.Zapisywanie do pliku tekstowego" << endl;
- cout << "5.Wczytywanie z pliku binarnego" << endl;
- cout << "6.Zapisywanie do pliku binarnego" << endl;
- cout << "7.Wypelnianie tablicy" << endl;
- cout << "8.Tworzenie dynamicznej kopii + wyswietlenie kopii" << endl;
- cout << "0.Koniec" << endl;
- cout << "Wybierz opcje: ";
- cin >> opcja;
- switch (opcja){
- case 0:
- break;
- case 1:
- break;
- }
- } while (opcja != 0);
- }
- int main()
- {
- {
- Tablica<int> tab(3);
- std::stringstream test("3 5 7");
- auto wynik = tab.WczytajTablice(test);
- if (wynik == true)
- {
- std::cout << "Test 1 PASS" << std::endl;
- }
- else
- {
- std::cout << "Test 1 padl" << std::endl;
- }
- }
- {
- Tablica<float> tab(3);
- std::stringstream test("3 5 7 5");
- auto wynik = tab.WczytajTablice(test);
- if (wynik == true)
- {
- std::cout << "Test 2 PASS" << std::endl;
- }
- else
- {
- std::cout << "Test 2 padl" << std::endl;
- }
- }
- {
- Tablica<int> tab(3);
- std::stringstream test("3 5");
- auto wynik = tab.WczytajTablice(test);
- if (wynik == false)
- {
- std::cout << "Test 3 PASS" << std::endl;
- }
- else
- {
- std::cout << "Test 3 padl" << std::endl;
- }
- }
- {
- Tablica<int> tab(3);
- std::stringstream test("3 4 5");
- tab.WczytajTablice(test);
- std::stringstream wyjscie;
- tab.WypiszTablice(wyjscie);
- if (wyjscie.str() == "3 4 5 ")
- {
- std::cout << "Test 4 PASS" << std::endl;
- }
- else
- {
- std::cout << "Test 4 padl" << std::endl;
- }
- }
- {
- {
- Tablica<int> tab(3);
- //std::stringstream test("3 4 5");
- //tab.WczytajTablice(test);
- tab.WczytajZPliku("plik1.txt", false);
- std::stringstream wyjscie;
- tab.WypiszTablice(wyjscie);
- if (wyjscie.str() == "3 4 5 ")
- {
- std::cout << "Test 5 PASS" << std::endl;
- }
- else
- {
- std::cout << "Test 5 padl" << std::endl;
- }
- }
- {
- Tablica<int> tab(3);
- std::stringstream test("3 4 5");
- tab.WczytajTablice(test);
- std::string nazwaPliku("test6.dat");
- tab.ZapiszDoPliku(nazwaPliku);
- Tablica<int> tab2(3);
- tab2.WczytajZPliku(nazwaPliku);
- std::stringstream wyjscie;
- tab2.WypiszTablice(wyjscie);
- if (wyjscie.str() == "3 4 5 ")
- {
- std::cout << "Test 6 PASS" << std::endl;
- }
- else
- {
- std::cout << "Test 6 padl" << std::endl;
- }
- }
- }
- {
- char c;
- std::cin >> c;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement