Advertisement
rooq37

Wskazniki

Jan 16th, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.40 KB | None | 0 0
  1. //#include "stdafx.h"
  2. #include <iostream>
  3. #include <conio.h>
  4. #include <string>
  5. #include <fstream>
  6. #include <time.h>
  7. #include <cstdlib>
  8.  
  9. using namespace std;
  10.  
  11. struct osoba
  12. {
  13. string imie, nazwisko, ulica, numer, kod, miejscowosc, kraj;
  14. };
  15.  
  16. void Dodaj(short * iloscOsob, osoba * tablicaOsob);
  17. void Zobacz(short * iloscOsob, osoba * tablicaOsob);
  18. void Zapisz(short * ileRazyOtwarty, short * iloscOsob, osoba * tablicaOsob);
  19. void Wczytaj(short * ileRazyOtwarty, short * iloscOsob, osoba * tablicaOsob);
  20. void Usun(short * iloscOsob, osoba * tablicaOsob);
  21. void Edytuj(short * iloscOsob, osoba * tablicaOsob);
  22. void Sortuj(short * iloscOsob, osoba * tablicaOsob);
  23.  
  24. int main()
  25. {
  26. short *ilosc_osob = new short(0); // zmienna ilosci osob
  27. short *ile_razy_otwarty = new short(0); // zmienna ilosci otwarc programu
  28. osoba *tablica_osob = new osoba[100]; //tablica struktur
  29.  
  30.  
  31. cout << " BAZA DANYCH" << endl;
  32. cout << "\n\n\n";
  33.  
  34. char wybor;
  35.  
  36. Wczytaj(ile_razy_otwarty, ilosc_osob, tablica_osob);
  37.  
  38. (*ile_razy_otwarty)++;
  39. cout << "Program otwarto " << (*ile_razy_otwarty) << " raz" << endl;
  40.  
  41. do
  42. {
  43. cout << "\n\n\n";
  44. cout << "Osob w bazie: " << (*ilosc_osob) << endl;
  45. cout << "\n\n";
  46. cout << "Wybierz co chesz zrobic:" << endl;
  47. cout << "1. Dodaj osobe " << endl;
  48. cout << "2. Zobacz wszystkie osoby " << endl;
  49. cout << "3. Usun osobe " << endl;
  50. cout << "4. Edytuj osobe " << endl;
  51. cout << "5. Sortuj dane " << endl;
  52. cout << "ESC koniec dzialania programu" << endl;
  53.  
  54. wybor = _getch();
  55.  
  56. switch (wybor)
  57. {
  58. case 49: Dodaj(ilosc_osob, tablica_osob);
  59. break;
  60. case 50: Zobacz(ilosc_osob, tablica_osob);
  61. break;
  62. case 51: Usun(ilosc_osob, tablica_osob);
  63. break;
  64. case 52: Edytuj(ilosc_osob, tablica_osob);
  65. break;
  66. case 53: Sortuj(ilosc_osob, tablica_osob);
  67. break;
  68. }
  69. } while (wybor != 27);
  70.  
  71. Zapisz(ile_razy_otwarty, ilosc_osob, tablica_osob);
  72.  
  73. return 0;
  74. // system("pause");
  75. } // koniec main
  76.  
  77. void Wczytaj(short * ileRazyOtwarty, short * iloscOsob, osoba * tablicaOsob)
  78. {
  79. ifstream plik("osoba.txt", ios::in);
  80.  
  81. plik >> *ileRazyOtwarty;
  82. plik >> *iloscOsob;
  83.  
  84. short j = 0;
  85. string temp;
  86.  
  87. do
  88. {
  89. getline(plik, temp);
  90. while (temp == " " || temp == "" && !plik.eof()) {
  91. getline(plik, temp);
  92. }
  93. tablicaOsob[j].imie = temp;
  94. getline(plik, tablicaOsob[j].nazwisko);
  95. getline(plik, tablicaOsob[j].ulica);
  96. getline(plik, tablicaOsob[j].numer);
  97. getline(plik, tablicaOsob[j].kod);
  98. getline(plik, tablicaOsob[j].miejscowosc);
  99. getline(plik, tablicaOsob[j].kraj);
  100.  
  101. j++;
  102. } while (!plik.eof());
  103. }
  104.  
  105. void Zapisz(short * ileRazyOtwarty, short * iloscOsob, osoba * tablicaOsob)
  106. {
  107. ofstream plik("osoba.txt", ios::out | ios::trunc);
  108.  
  109. plik << *ileRazyOtwarty << "\n";
  110. plik << *iloscOsob << "\n";
  111.  
  112. for (short j = 0; j < *iloscOsob; j++)
  113. {
  114. plik << " " << endl;
  115. plik << tablicaOsob[j].imie << endl;
  116. plik << tablicaOsob[j].nazwisko << endl;
  117. plik << tablicaOsob[j].ulica << endl;
  118. plik << tablicaOsob[j].numer << endl;
  119. plik << tablicaOsob[j].kod << endl;
  120. plik << tablicaOsob[j].miejscowosc << endl;
  121. plik << tablicaOsob[j].kraj << endl;
  122. }
  123.  
  124. }
  125.  
  126.  
  127. void Dodaj(short * iloscOsob, osoba * tablicaOsob)
  128. {
  129. cout << "Imie: \n";
  130. //cin >> tablica_osob[ilosc_osob].imie;
  131. getline(cin, tablicaOsob[*iloscOsob].imie);
  132.  
  133. cout << "Nazwisko: \n";
  134. //cin >> tablica_osob[ilosc_osob].nazwisko;
  135. getline(cin, tablicaOsob[*iloscOsob].nazwisko);
  136.  
  137. cout << "Ulica: \n";
  138. //cin >> tablica_osob[ilosc_osob].ulica;
  139. getline(cin, tablicaOsob[*iloscOsob].ulica);
  140.  
  141. cout << "Numer domu: \n";
  142. //cin >> tablica_osob[ilosc_osob].numer;
  143. getline(cin, tablicaOsob[*iloscOsob].numer);
  144.  
  145. cout << "Kod pocztowy: \n";
  146. //cin >> tablica_osob[ilosc_osob].kod;
  147. getline(cin, tablicaOsob[*iloscOsob].kod);
  148.  
  149. cout << "Miejscowosc: \n";
  150. //cin >> tablica_osob[ilosc_osob].miejscowosc;
  151. getline(cin, tablicaOsob[*iloscOsob].miejscowosc);
  152.  
  153. cout << "Kraj: \n";
  154. //cin >> tablica_osob[ilosc_osob].kraj;
  155. getline(cin, tablicaOsob[*iloscOsob].kraj);
  156.  
  157. cin.ignore();
  158.  
  159. (*iloscOsob)++;
  160.  
  161. cout << "Dodano" << endl;
  162. }
  163.  
  164. void Zobacz(short * iloscOsob, osoba * tablicaOsob)
  165. {
  166. if ((*iloscOsob) != 0) // i>0
  167. {
  168. for (short j = 0; j < (*iloscOsob); j++) //kolejne zmienne
  169. {
  170. cout << " " << endl;
  171. cout << " Osoba nr " << j + 1 << ": " << endl;
  172. cout << " Imie: " << tablicaOsob[j].imie << endl;
  173. cout << " Nazwisko: " << tablicaOsob[j].nazwisko << endl;
  174. cout << " Ulica: " << tablicaOsob[j].ulica << endl;
  175. cout << " Numer domu: " << tablicaOsob[j].numer << endl;
  176. cout << " Kod pocztowy: " << tablicaOsob[j].kod << endl;
  177. cout << " Miejscowosc: " << tablicaOsob[j].miejscowosc << endl;
  178. cout << " Kraj: " << tablicaOsob[j].kraj << endl;
  179. cout << " " << endl;
  180. }
  181. }
  182. else
  183. cout << "Nie ma zadnych osob w bazie!";
  184. }
  185.  
  186. void Usun(short * iloscOsob, osoba * tablicaOsob)
  187. {
  188. short kogo;
  189.  
  190. if (*iloscOsob != 0)
  191. {
  192. cout << "Podaj numer osoby ktora chcesz usunac: ";
  193. cin >> kogo;
  194. cin.ignore();
  195.  
  196. if (kogo > (*iloscOsob))
  197.  
  198. cout << "Brak osoby o takim numerze";
  199.  
  200. else
  201. {
  202. for (short k = kogo; k < (*iloscOsob); k++)
  203. {
  204. tablicaOsob[k - 1].imie = tablicaOsob[k].imie;
  205. tablicaOsob[k - 1].nazwisko = tablicaOsob[k].nazwisko;
  206. tablicaOsob[k - 1].ulica = tablicaOsob[k].ulica;
  207. tablicaOsob[k - 1].numer = tablicaOsob[k].numer;
  208. tablicaOsob[k - 1].kod = tablicaOsob[k].kod;
  209. tablicaOsob[k - 1].miejscowosc = tablicaOsob[k].miejscowosc;
  210. tablicaOsob[k - 1].kraj = tablicaOsob[k].kraj;
  211. }
  212. (*iloscOsob)--;
  213.  
  214. cout << "Osoba o numerze " << kogo << " zostala usunieta!";
  215. cout << " " << endl;
  216. }
  217.  
  218. }
  219. else
  220. {
  221. cout << "Brak osoby w bazie!! Wcisnij ENTER!";
  222. }
  223. }
  224.  
  225. void Edytuj(short * iloscOsob, osoba * tablicaOsob)
  226. {
  227. int kogo;
  228.  
  229. if ((*iloscOsob) != 0)
  230. {
  231. cout << "Podaj numer osoby ktora chcesz edytowac: ";
  232. cin >> kogo;
  233. cin.ignore();
  234.  
  235. if (kogo > (*iloscOsob))
  236. cout << "Brak osoby o takim numerze";
  237. else
  238. {
  239. cout << " " << endl;
  240. cout << "Podaj imie osoby: \n";
  241. cin >> tablicaOsob[kogo - 1].imie;
  242. cout << "Podaj nazwisko osoby: \n";
  243. cin >> tablicaOsob[kogo - 1].nazwisko;
  244. cout << "Podaj ulice: \n";
  245. cin >> tablicaOsob[kogo - 1].ulica;
  246. cout << "Podaj numer domu: \n";
  247. cin >> tablicaOsob[kogo - 1].numer;
  248. cout << "Podaj kod pocztowy: \n";
  249. cin >> tablicaOsob[kogo - 1].kod;
  250. cout << "Podaj miejscowosc: \n";
  251. cin >> tablicaOsob[kogo - 1].miejscowosc;
  252. cout << "Podaj kraj: \n";
  253. cin >> tablicaOsob[kogo - 1].kraj;
  254.  
  255. cout << "Osoba o numerze " << kogo << " zostala zedytowana!";
  256. cout << " " << endl;
  257. }
  258.  
  259. }
  260. else
  261. {
  262. cout << "Nie ma tej osoby w bazie!! Wcisnij ENTER!";
  263. }
  264. }
  265.  
  266. void Sortuj(short * iloscOsob, osoba * tablicaOsob)
  267. {
  268. cout << " \n \n \n";
  269. cout << "Wybierz kryterium sortowania" << endl;
  270. cout << "61. Imie" << endl;
  271. cout << "62. Nazwisko" << endl;
  272. cout << "63. Ulica" << endl;
  273. cout << "64. Numer domu" << endl;
  274. cout << "65. Kod pocztowy" << endl;
  275. cout << "66. Miejscowosc" << endl;
  276. cout << "67. Kraj" << endl;
  277.  
  278. int pytanie1;
  279. cin >> pytanie1;
  280. int a, b;
  281. int tempNr1, tempNr2;
  282. string string_a, string_b;
  283. osoba t;
  284. for (a = (*iloscOsob) - 2; a >= 0; a--)
  285. {
  286. for (b = 0; b <= a; b++)
  287. {
  288. if (pytanie1 == 61) string_a = tablicaOsob[b].imie, string_b = tablicaOsob[b + 1].imie;
  289. else if (pytanie1 == 62) string_a = tablicaOsob[b].nazwisko, string_b = tablicaOsob[b + 1].nazwisko;
  290. else if (pytanie1 == 63) string_a = tablicaOsob[b].ulica, string_b = tablicaOsob[b + 1].ulica;
  291. else if (pytanie1 == 64) string_a = tablicaOsob[b].numer, string_b = tablicaOsob[b + 1].numer;
  292. else if (pytanie1 == 65) string_a = tablicaOsob[b].kod, string_b = tablicaOsob[b + 1].kod;
  293. else if (pytanie1 == 66) string_a = tablicaOsob[b].miejscowosc, string_b = tablicaOsob[b + 1].miejscowosc;
  294. else if (pytanie1 == 67) string_a = tablicaOsob[b].kraj, string_b = tablicaOsob[b + 1].kraj;
  295. if (string_a>string_b && pytanie1!=64 && pytanie1!=65)
  296. {
  297. t = tablicaOsob[b];
  298. tablicaOsob[b] = tablicaOsob[b + 1];
  299. tablicaOsob[b + 1] = t;
  300. }
  301. else if (pytanie1 == 64 || pytanie1 == 65) {
  302. tempNr1 = stoi(string_a.c_str());
  303. tempNr2 = stoi(string_b.c_str());
  304. if (tempNr1 > tempNr2) {
  305. t = tablicaOsob[b];
  306. tablicaOsob[b] = tablicaOsob[b + 1];
  307. tablicaOsob[b + 1] = t;
  308. }
  309. }
  310. }
  311. // sortowanie babelkowe
  312. }
  313. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement