Advertisement
Guest User

Untitled

a guest
Mar 26th, 2015
318
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.89 KB | None | 0 0
  1. // dzialekowski.cpp : Defines the entry point for the console application.
  2. //
  3.  
  4. #include <iostream>
  5. #include <fstream>
  6. #include <cstdlib>
  7. #include <string>
  8. #include <stdlib.h>
  9. #include <ctime>
  10.  
  11. /* run this program using the console pauser or add your own getch, system("pause") or input loop */
  12.  
  13. using namespace std;
  14.  
  15. class tablica
  16. {
  17. public:
  18.         int roz, ele, pozycja;
  19.         int *tab1;
  20.         void read_from_file();
  21.         void display();
  22.         void addele();
  23.         void delele();
  24.         void find();
  25.         void createrand();
  26. };
  27.  
  28. void tablica::read_from_file()
  29. {
  30.        
  31.         roz;
  32.         fstream plik;
  33.         int licznik = 0;
  34.  
  35.         plik.open("Dane1.txt");
  36.         string wiersz;
  37.  
  38.         getline(plik, wiersz);
  39.         roz = atoi(wiersz.c_str());
  40.  
  41.         tab1 = new int[roz];
  42.  
  43.         cout << "Rozmiar tablicy: " << roz << endl << endl;
  44.         cout << "Elementy tablicy:" << endl;
  45.  
  46.         while (!plik.eof())
  47.         {
  48.                 if (licznik == roz) break;
  49.  
  50.                 getline(plik, wiersz);
  51.                 tab1[licznik] = atoi(wiersz.c_str());
  52.                 cout << tab1[licznik] << endl;
  53.  
  54.                 licznik++;
  55.         }
  56.        
  57.         cout << endl;
  58.        
  59.         system("pause");
  60. }
  61.  
  62. void tablica::display()
  63. {
  64.    
  65.         for (int i = 0; i<roz; i++)
  66.         {
  67.                 cout << tab1[i] << endl;
  68.         }
  69.  
  70.         system("pause");
  71.  
  72. }
  73.  
  74. void tablica::delele()
  75. {
  76.     cout << "Ktory element chcesz usunac (podaj pozycje)?:  ";
  77.     cin >> pozycja;
  78.  
  79.         if (pozycja == 1)
  80.         {
  81.            
  82.             cout << "tab1" << endl;
  83.            
  84.             for (int i=0 ; i<roz-1 ; i++)
  85.             {
  86.                 tab1[i] = tab1[i+1];
  87.                 cout << tab1[i] << "   ";
  88.             }
  89.            
  90.             roz--;
  91.             cout << endl << endl;
  92.  
  93.         }
  94.         else if ( pozycja == roz )
  95.         {
  96.            
  97.             roz--;
  98.             int *tab2 = new int[roz];
  99.            
  100.             cout << endl << "tab2" << endl;
  101.            
  102.             for ( int i=0 ; i<roz ; i++ )
  103.             {
  104.                 tab2[i]=tab1[i];
  105.                 cout << tab2[i] << "  ";
  106.             }
  107.            
  108.             cout << endl << endl;
  109.            
  110.             tab1 = new int[roz];
  111.                
  112.             cout << "tab1" << endl;
  113.            
  114.             for ( int i=0 ; i<roz ; i++ )
  115.             {
  116.                 tab1[i]=tab2[i];
  117.                 cout << tab1[i] << "  ";
  118.             }
  119.            
  120.             cout << endl << endl;
  121.         }
  122.         else if ( pozycja>1 && pozycja<roz )
  123.         {
  124.             roz--;
  125.             int *tab2 = new int[roz];
  126.            
  127.             cout << endl << "lewa strona tab2:  ";
  128.            
  129.             for ( int i=0 ; i<pozycja-1 ; i++ )
  130.             {
  131.                 tab2[i] = tab1[i];
  132.                 cout << tab2[i] << "   ";
  133.             }
  134.            
  135.             cout << endl << "prawa strona tab2: ";
  136.            
  137.             for ( int i=pozycja-1 ; i<roz ; i++ )
  138.             {
  139.                 tab2[i] = tab1[i+1];
  140.                 cout << tab2[i] << "   ";
  141.             }
  142.            
  143.             tab1 = new int[roz];
  144.            
  145.             cout << endl << endl << "tab2" << endl;
  146.            
  147.             for ( int i=0 ; i<roz ; i++ )
  148.             {
  149.                 tab1[i]=tab2[i];
  150.                 cout << tab1[i] << "  ";
  151.             }
  152.            
  153.             cout << endl << endl;
  154.         }
  155.        
  156.         system("pause");
  157. }
  158.  
  159. void tablica::addele()
  160. {
  161.         roz++;
  162.         int *tab2 = new int[roz];
  163.  
  164.  
  165.         cout << "Podaj wartosc nowego elementu: ";
  166.         cin >> ele;
  167.  
  168.         cout << endl << "Na ktora pozycje chcesz go wstawic?: ";
  169.         cin >> pozycja;
  170.         cout << endl << "tab1" << endl;
  171.        
  172.        
  173.         if (pozycja == 1)
  174.         {
  175.             for (int i=0; i<roz-1; i++)
  176.             {
  177.                 tab2[i+1] = tab1[i];
  178.                 cout << tab1[i] << "  ";
  179.             }
  180.             cout << endl << endl;
  181.                
  182.             tab2[0] = ele;
  183.  
  184.             tab1 = new int[roz-1];
  185.                
  186.             cout << "tab2" << endl;
  187.                  
  188.             for (int i = 0; i<roz; i++)
  189.             {
  190.                 tab1[i] = tab2[i];
  191.                 cout << tab2[i] << "  ";
  192.             }
  193.            
  194.            
  195.             cout << endl << endl;  
  196.  
  197.         }
  198.        
  199.         else if ( pozycja == roz )
  200.         {
  201.             for ( int i=0 ; i<(roz-1) ; i++ )
  202.             {
  203.                 tab2[i] = tab1[i];
  204.                 cout << tab1[i] << "  ";
  205.             }
  206.            
  207.             cout << endl << endl;
  208.            
  209.             tab2[roz-1]=ele;
  210.            
  211.             tab1=new int[roz-1];
  212.            
  213.             cout << "tab2:" << endl;
  214.            
  215.             for ( int i=0 ; i<roz ; i++ )
  216.             {
  217.                 tab1[i]=tab2[i];
  218.                 cout << tab2[i] << "  ";
  219.             }
  220.            
  221.             cout << endl << endl;
  222.  
  223.         }
  224.         else if ( pozycja>1 && pozycja<roz )
  225.         {
  226.            
  227.             cout << endl << "lewa strona tab2:  ";
  228.            
  229.             for ( int i=0 ; i<pozycja-1 ; i++ )
  230.             {
  231.                 tab2[i] = tab1[i];
  232.                 cout << tab2[i] << "   ";
  233.             }
  234.            
  235.             cout << endl << "prawa strona tab2: ";
  236.            
  237.             for ( int i=pozycja ; i<roz ; i++ )
  238.             {
  239.                 tab2[i] = tab1[i-1];
  240.                 cout << tab2[i] << "   ";
  241.             }
  242.  
  243.             tab2[pozycja-1]=ele;
  244.            
  245.             cout << endl << "Dodany element:    " << tab2[pozycja-1] << endl << endl << "tab2" << endl;
  246.            
  247.             for ( int i=0 ; i<roz ; i++ )
  248.             {
  249.                 tab1[i]=tab2[i];
  250.                 cout << tab2[i] << "  ";
  251.             }
  252.            
  253.             cout << endl << endl;
  254.            
  255.            
  256.         }
  257.         else
  258.         {
  259.             cout << endl << "Podano nieprawidlowa pozycje!" << endl << endl;
  260.             roz--;
  261.         }
  262.        
  263.         system("pause");
  264. }
  265.  
  266. void tablica::find()
  267. {
  268.     cout << "Jaka liczbe chcesz znalezc?: ";
  269.     cin >> ele;
  270.     cout << endl;
  271.    
  272.     bool finder = false;
  273.    
  274.     for ( int i=0 ; i<roz ; i++ )
  275.     {
  276.         if ( tab1[i]==ele )
  277.         {
  278.             finder=true;
  279.             break;
  280.         }  
  281.     }
  282.    
  283.     if ( finder==true ) cout << "Znaleziono szukana liczbe!" << endl << endl;
  284.     else cout << "Nie znaleziono szukanej liczby!" << endl << endl;
  285.    
  286.     system("pause");
  287. }
  288.  
  289. void tablica::createrand()
  290. {
  291.     tab1 = new int[roz-1];
  292.     cout << "Generowanie losowej struktury:" << endl;
  293.     cout << "Podaj wielkosc struktury do losowego wygenerowania: ";
  294.     cin >> roz;
  295.    
  296.     cout << endl;
  297.    
  298.     for ( int i=0 ; i<roz ; i++ )
  299.     {
  300.         tab1[i]=rand();
  301.         cout << tab1[i] << "  ";
  302.     }
  303.    
  304.     cout << endl << endl;
  305.    
  306.     system("pause");
  307. }
  308.  
  309. int main(int argc, char** argv)
  310. {
  311.         srand( time( 0 ) );
  312.         char zmienna;
  313.         tablica tab;
  314.        
  315.         do
  316.         {
  317.             system( "cls" );
  318.            
  319.                 cout << "Co chcesz zrobic?" << endl;
  320.                 cout << "1 - zbuduj z pliku" << endl;
  321.                 cout << "2 - usun element" << endl;
  322.                 cout << "3 - dodaj element" << endl;
  323.                 cout << "4 - znajdz element" << endl;
  324.                 cout << "5 - utworz losowo strukture" << endl;
  325.                 cout << "6 - wyswietl tablice" << endl << endl;
  326.                 cout << "Podaj opcje: " << endl;
  327.  
  328.                 cin >> zmienna;
  329.                 cout << endl;
  330.  
  331.                 switch (zmienna)
  332.                 {
  333.                 case '1':
  334.                         tab.read_from_file();
  335.                         break;
  336.                 case '2':
  337.                         tab.delele();
  338.                         break;
  339.                 case '3':
  340.                         tab.addele();
  341.                         break;
  342.                 case '4':
  343.                         tab.find();
  344.                         break;
  345.                 case '5':
  346.                         tab.createrand();
  347.                         break;
  348.                 case '6':
  349.                         tab.display();
  350.                         break;
  351.                 case 'k':
  352.                         break;
  353.                 default:
  354.                         cout << "Podano nieprawidlowa wartosc" << endl;
  355.                 }
  356.  
  357.                 //      system( "cls" );
  358.  
  359.         } while (zmienna != 'k');
  360.  
  361.         cout << "Koniec programu" << endl << endl;
  362.         return 0;
  363. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement