Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // dzialekowski.cpp : Defines the entry point for the console application.
- //
- #include <iostream>
- #include <fstream>
- #include <cstdlib>
- #include <string>
- #include <stdlib.h>
- #include <ctime>
- /* run this program using the console pauser or add your own getch, system("pause") or input loop */
- using namespace std;
- class tablica
- {
- public:
- int roz, ele, pozycja;
- int *tab1;
- void read_from_file();
- void display();
- void addele();
- void delele();
- void find();
- void createrand();
- };
- void tablica::read_from_file()
- {
- roz;
- fstream plik;
- int licznik = 0;
- plik.open("Dane1.txt");
- string wiersz;
- getline(plik, wiersz);
- roz = atoi(wiersz.c_str());
- tab1 = new int[roz];
- cout << "Rozmiar tablicy: " << roz << endl << endl;
- cout << "Elementy tablicy:" << endl;
- while (!plik.eof())
- {
- if (licznik == roz) break;
- getline(plik, wiersz);
- tab1[licznik] = atoi(wiersz.c_str());
- cout << tab1[licznik] << endl;
- licznik++;
- }
- cout << endl;
- system("pause");
- }
- void tablica::display()
- {
- for (int i = 0; i<roz; i++)
- {
- cout << tab1[i] << endl;
- }
- system("pause");
- }
- void tablica::delele()
- {
- cout << "Ktory element chcesz usunac (podaj pozycje)?: ";
- cin >> pozycja;
- if (pozycja == 1)
- {
- cout << "tab1" << endl;
- for (int i=0 ; i<roz-1 ; i++)
- {
- tab1[i] = tab1[i+1];
- cout << tab1[i] << " ";
- }
- roz--;
- cout << endl << endl;
- }
- else if ( pozycja == roz )
- {
- roz--;
- int *tab2 = new int[roz];
- cout << endl << "tab2" << endl;
- for ( int i=0 ; i<roz ; i++ )
- {
- tab2[i]=tab1[i];
- cout << tab2[i] << " ";
- }
- cout << endl << endl;
- tab1 = new int[roz];
- cout << "tab1" << endl;
- for ( int i=0 ; i<roz ; i++ )
- {
- tab1[i]=tab2[i];
- cout << tab1[i] << " ";
- }
- cout << endl << endl;
- }
- else if ( pozycja>1 && pozycja<roz )
- {
- roz--;
- int *tab2 = new int[roz];
- cout << endl << "lewa strona tab2: ";
- for ( int i=0 ; i<pozycja-1 ; i++ )
- {
- tab2[i] = tab1[i];
- cout << tab2[i] << " ";
- }
- cout << endl << "prawa strona tab2: ";
- for ( int i=pozycja-1 ; i<roz ; i++ )
- {
- tab2[i] = tab1[i+1];
- cout << tab2[i] << " ";
- }
- tab1 = new int[roz];
- cout << endl << endl << "tab2" << endl;
- for ( int i=0 ; i<roz ; i++ )
- {
- tab1[i]=tab2[i];
- cout << tab1[i] << " ";
- }
- cout << endl << endl;
- }
- system("pause");
- }
- void tablica::addele()
- {
- roz++;
- int *tab2 = new int[roz];
- cout << "Podaj wartosc nowego elementu: ";
- cin >> ele;
- cout << endl << "Na ktora pozycje chcesz go wstawic?: ";
- cin >> pozycja;
- cout << endl << "tab1" << endl;
- if (pozycja == 1)
- {
- for (int i=0; i<roz-1; i++)
- {
- tab2[i+1] = tab1[i];
- cout << tab1[i] << " ";
- }
- cout << endl << endl;
- tab2[0] = ele;
- tab1 = new int[roz-1];
- cout << "tab2" << endl;
- for (int i = 0; i<roz; i++)
- {
- tab1[i] = tab2[i];
- cout << tab2[i] << " ";
- }
- cout << endl << endl;
- }
- else if ( pozycja == roz )
- {
- for ( int i=0 ; i<(roz-1) ; i++ )
- {
- tab2[i] = tab1[i];
- cout << tab1[i] << " ";
- }
- cout << endl << endl;
- tab2[roz-1]=ele;
- tab1=new int[roz-1];
- cout << "tab2:" << endl;
- for ( int i=0 ; i<roz ; i++ )
- {
- tab1[i]=tab2[i];
- cout << tab2[i] << " ";
- }
- cout << endl << endl;
- }
- else if ( pozycja>1 && pozycja<roz )
- {
- cout << endl << "lewa strona tab2: ";
- for ( int i=0 ; i<pozycja-1 ; i++ )
- {
- tab2[i] = tab1[i];
- cout << tab2[i] << " ";
- }
- cout << endl << "prawa strona tab2: ";
- for ( int i=pozycja ; i<roz ; i++ )
- {
- tab2[i] = tab1[i-1];
- cout << tab2[i] << " ";
- }
- tab2[pozycja-1]=ele;
- cout << endl << "Dodany element: " << tab2[pozycja-1] << endl << endl << "tab2" << endl;
- for ( int i=0 ; i<roz ; i++ )
- {
- tab1[i]=tab2[i];
- cout << tab2[i] << " ";
- }
- cout << endl << endl;
- }
- else
- {
- cout << endl << "Podano nieprawidlowa pozycje!" << endl << endl;
- roz--;
- }
- system("pause");
- }
- void tablica::find()
- {
- cout << "Jaka liczbe chcesz znalezc?: ";
- cin >> ele;
- cout << endl;
- bool finder = false;
- for ( int i=0 ; i<roz ; i++ )
- {
- if ( tab1[i]==ele )
- {
- finder=true;
- break;
- }
- }
- if ( finder==true ) cout << "Znaleziono szukana liczbe!" << endl << endl;
- else cout << "Nie znaleziono szukanej liczby!" << endl << endl;
- system("pause");
- }
- void tablica::createrand()
- {
- tab1 = new int[roz-1];
- cout << "Generowanie losowej struktury:" << endl;
- cout << "Podaj wielkosc struktury do losowego wygenerowania: ";
- cin >> roz;
- cout << endl;
- for ( int i=0 ; i<roz ; i++ )
- {
- tab1[i]=rand();
- cout << tab1[i] << " ";
- }
- cout << endl << endl;
- system("pause");
- }
- int main(int argc, char** argv)
- {
- srand( time( 0 ) );
- char zmienna;
- tablica tab;
- do
- {
- system( "cls" );
- cout << "Co chcesz zrobic?" << endl;
- cout << "1 - zbuduj z pliku" << endl;
- cout << "2 - usun element" << endl;
- cout << "3 - dodaj element" << endl;
- cout << "4 - znajdz element" << endl;
- cout << "5 - utworz losowo strukture" << endl;
- cout << "6 - wyswietl tablice" << endl << endl;
- cout << "Podaj opcje: " << endl;
- cin >> zmienna;
- cout << endl;
- switch (zmienna)
- {
- case '1':
- tab.read_from_file();
- break;
- case '2':
- tab.delele();
- break;
- case '3':
- tab.addele();
- break;
- case '4':
- tab.find();
- break;
- case '5':
- tab.createrand();
- break;
- case '6':
- tab.display();
- break;
- case 'k':
- break;
- default:
- cout << "Podano nieprawidlowa wartosc" << endl;
- }
- // system( "cls" );
- } while (zmienna != 'k');
- cout << "Koniec programu" << endl << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement