Advertisement
Guest User

Untitled

a guest
Mar 1st, 2015
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.15 KB | None | 0 0
  1. #include <iostream>
  2. #include <sstream>
  3. #include <stdio.h>
  4. #include <fstream>
  5. #include <string>
  6.  
  7. using namespace std;
  8. template <typename TYP>
  9. class Tablica
  10. {
  11. int mRozmiar;
  12. TYP* pTablica;
  13. Tablica() = delete;
  14. public:
  15. Tablica(int rozmiar)
  16. : mRozmiar(rozmiar)
  17. {
  18. pTablica = new TYP[rozmiar];
  19. }
  20. bool WczytajTablice(std::istream &strumienWej)
  21. {
  22. TYP doWczytania;
  23. int iterator = 0;
  24. while (iterator < mRozmiar && strumienWej >> doWczytania){
  25. pTablica[iterator] = doWczytania; ++iterator;
  26. }
  27. return iterator == mRozmiar;
  28. }
  29.  
  30. void WypiszTablice(std::ostream &strumienWyj)
  31. {
  32. for (auto i = 0; i < mRozmiar; ++i)
  33. {
  34. strumienWyj << pTablica[i]<<" ";
  35. }
  36.  
  37. }
  38.  
  39. ~Tablica(){
  40. delete[] pTablica;
  41. }
  42. bool ZapiszDoPliku(std::string nazwa, bool czyBinarny = false)
  43. {
  44. auto binarny = czyBinarny ? ios::binary : 0;
  45. std::fstream plikWyjsciowy(nazwa.c_str(), ios::out | binarny);
  46.  
  47. if (plikWyjsciowy.is_open())
  48. {
  49. WypiszTablice(plikWyjsciowy);
  50. plikWyjsciowy.close();
  51. return true;
  52. }
  53. else
  54. {
  55. return false;
  56. }
  57.  
  58. }
  59.  
  60. bool WczytajZPliku(std::string nazwa,bool czyBinarny = false)
  61. {
  62. auto binarny = czyBinarny ? ios::binary : 0;
  63. std::fstream plikWyjsciowy(nazwa.c_str(), ios::in | binarny);
  64. if (plikWyjsciowy.is_open())
  65. {
  66. return WczytajTablice(plikWyjsciowy);
  67. }
  68. else
  69. {
  70. return false;
  71. }
  72.  
  73. }
  74.  
  75. bool ZapiszDoPlikuBinarnego(std::string nazwa)
  76. {
  77. return ZapiszDoPliku(nazwa, true);
  78. }
  79.  
  80. bool WczytajDoPlikuBinarnego(std::string nazwa)
  81. {
  82. return WczytajZPliku(nazwa, true)
  83. }
  84.  
  85. };
  86.  
  87.  
  88. void menu()
  89. {
  90. int opcja;
  91. do
  92. {
  93. cout << "1.Wczytanie tablicy z konsoli" << endl;
  94. cout << "2.Wyswietlenie tablicy" << endl;
  95. cout << "3.Wczytywanie z pliku tekstowego" << endl;
  96. cout << "4.Zapisywanie do pliku tekstowego" << endl;
  97. cout << "5.Wczytywanie z pliku binarnego" << endl;
  98. cout << "6.Zapisywanie do pliku binarnego" << endl;
  99. cout << "7.Wypelnianie tablicy" << endl;
  100. cout << "8.Tworzenie dynamicznej kopii + wyswietlenie kopii" << endl;
  101. cout << "0.Koniec" << endl;
  102. cout << "Wybierz opcje: ";
  103. cin >> opcja;
  104.  
  105.  
  106. switch (opcja){
  107. case 0:
  108. break;
  109. case 1:
  110.  
  111. break;
  112. }
  113. } while (opcja != 0);
  114. }
  115.  
  116. int main()
  117. {
  118. {
  119. Tablica<int> tab(3);
  120. std::stringstream test("3 5 7");
  121. auto wynik = tab.WczytajTablice(test);
  122.  
  123. if (wynik == true)
  124. {
  125. std::cout << "Test 1 PASS" << std::endl;
  126. }
  127. else
  128. {
  129. std::cout << "Test 1 padl" << std::endl;
  130. }
  131.  
  132. }
  133.  
  134. {
  135. Tablica<float> tab(3);
  136. std::stringstream test("3 5 7 5");
  137. auto wynik = tab.WczytajTablice(test);
  138.  
  139. if (wynik == true)
  140. {
  141. std::cout << "Test 2 PASS" << std::endl;
  142. }
  143. else
  144. {
  145. std::cout << "Test 2 padl" << std::endl;
  146. }
  147. }
  148.  
  149. {
  150. Tablica<int> tab(3);
  151. std::stringstream test("3 5");
  152. auto wynik = tab.WczytajTablice(test);
  153.  
  154. if (wynik == false)
  155. {
  156. std::cout << "Test 3 PASS" << std::endl;
  157. }
  158. else
  159. {
  160. std::cout << "Test 3 padl" << std::endl;
  161. }
  162. }
  163.  
  164. {
  165. Tablica<int> tab(3);
  166. std::stringstream test("3 4 5");
  167. tab.WczytajTablice(test);
  168. std::stringstream wyjscie;
  169. tab.WypiszTablice(wyjscie);
  170.  
  171. if (wyjscie.str() == "3 4 5 ")
  172. {
  173. std::cout << "Test 4 PASS" << std::endl;
  174. }
  175. else
  176. {
  177. std::cout << "Test 4 padl" << std::endl;
  178. }
  179. }
  180.  
  181. {
  182. {
  183. Tablica<int> tab(3);
  184. //std::stringstream test("3 4 5");
  185. //tab.WczytajTablice(test);
  186. tab.WczytajZPliku("plik1.txt", false);
  187. std::stringstream wyjscie;
  188. tab.WypiszTablice(wyjscie);
  189.  
  190. if (wyjscie.str() == "3 4 5 ")
  191. {
  192. std::cout << "Test 5 PASS" << std::endl;
  193. }
  194. else
  195. {
  196. std::cout << "Test 5 padl" << std::endl;
  197. }
  198. }
  199. {
  200. Tablica<int> tab(3);
  201. std::stringstream test("3 4 5");
  202. tab.WczytajTablice(test);
  203. std::string nazwaPliku("test6.dat");
  204.  
  205. tab.ZapiszDoPliku(nazwaPliku);
  206. Tablica<int> tab2(3);
  207. tab2.WczytajZPliku(nazwaPliku);
  208. std::stringstream wyjscie;
  209. tab2.WypiszTablice(wyjscie);
  210.  
  211. if (wyjscie.str() == "3 4 5 ")
  212. {
  213. std::cout << "Test 6 PASS" << std::endl;
  214. }
  215. else
  216. {
  217. std::cout << "Test 6 padl" << std::endl;
  218. }
  219. }
  220. }
  221. {
  222. char c;
  223. std::cin >> c;
  224. }
  225. return 0;
  226. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement