Advertisement
Guest User

Untitled

a guest
Mar 18th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.89 KB | None | 0 0
  1. #include "pch.h"
  2. #include <conio.h>
  3. #include <iostream>
  4. #include <string>
  5. #include <fstream>
  6.  
  7. using namespace std;
  8. int i;
  9.  
  10. struct pracownicy_restauracji //tworzę strukture, która przechowuje informacje
  11. {
  12. string stanowisko;
  13. string imie;
  14. string nazwisko;
  15. string wiek;
  16. string zarobki;
  17. } dane[75];
  18.  
  19.  
  20. void Wczytaj() //funkcja która wczytuje dane z zapisanego pliku
  21. {
  22. fstream plik;
  23. plik.open("plik.txt", ios::in);
  24. plik >> i;
  25. if (plik.good()==false) //sprawdzam czy plik istnieje
  26. {
  27. cout << "\nBrak pliku - koniec";
  28. system("pause");
  29. }
  30. else
  31. {
  32. int k = 0; //wprowadzam zmienną pomocniczą,
  33. //dzięki której pracownicy i ich dane zostaną wyświetleni w odpowiedniej kolejności
  34. do
  35. {
  36. plik >> dane[k].stanowisko;
  37. plik >> dane[k].imie;
  38. plik >> dane[k].nazwisko;
  39. plik >> dane[k].wiek;
  40. plik >> dane[k].zarobki;
  41. k++;
  42. } while (plik.good()==true);
  43. plik.close();
  44. cout << "\nDane wczytane pomyslnie";
  45. getchar();
  46.  
  47. }
  48. }
  49.  
  50. void Dodaj() //funkcja która wprowadza nowego pracownika do bazy danych
  51. {
  52. system("cls"); //polecenie wyczyszczające ekran
  53. cout << "\nStanowisko: ";
  54. cin >> dane[i].stanowisko;
  55. cout << "\nImie: ";
  56. cin >> dane[i].imie;
  57. cout << "\nNazwisko: ";
  58. cin >> dane[i].nazwisko;
  59. cout << "\nWiek: ";
  60. cin >> dane[i].wiek;
  61. cout << "\nZarobki: ";
  62. cin >> dane[i].zarobki;
  63. i++;
  64. getchar();
  65. }
  66.  
  67.  
  68. void Zapisz() //funkcja zapisująca dane do pliku
  69. {
  70. fstream plik;
  71. plik.open("plik.txt", ios::out | ios::app); //utworzenie pliku "plik.txt'
  72. //do którego będą zapisywane dane
  73. plik << i;
  74.  
  75. for (int k = 0; k < i; k++) //pętla zapisująca dane w odpowiedniej kolejności
  76. {
  77. plik << dane[k].stanowisko << "\n";
  78. plik << dane[k].imie << "\n";
  79. plik << dane[k].nazwisko << "\n";
  80. plik << dane[k].wiek << "\n";
  81. plik << dane[k].zarobki << "\n";
  82. }
  83. plik.close();
  84. system("cls");
  85. cout << "\nDane zapisane pomyslnie\n";
  86. system("pause");
  87.  
  88. }
  89.  
  90. void Edycja() //funkcja do edytowania zapisanych pracownikow
  91. {
  92.  
  93. int z;
  94. if (i != 0) //sprawdzenie czy jacyś pracownicy już zostali wprowadzeni do bazy danych
  95. {
  96. system("cls");
  97. cout << "\nPodaj numer zapisu przeznaczonego do edycji:\t ";
  98. cin >> z;
  99. z = z - 1;
  100.  
  101. if (z<0 || z > i) //jeśli wprowadzimy zły indeks pracownika program poinformuje
  102. //nas o błędzie
  103. {
  104. system("cls");
  105. cout << "\nBlad - brak danych\n";
  106. system("pause");
  107. }
  108. else
  109. {
  110. system("cls");
  111. cout << "\nPodaj stanowisko nowego pracownika:\t\n";
  112. cin >> dane[z].stanowisko;
  113. cout << "\nPodaj imie pracownika:\t";
  114. cin >> dane[z].imie;
  115. cout << "\nPodaj nazwisko pracownika:\t";
  116. cin >> dane[z].nazwisko;
  117. cout << "\nPodaj wiek pracownika:\t";
  118. cin >> dane[z].wiek;
  119. cout << "\nPodaj zarobki pracownika:\t";
  120. cin >> dane[z].zarobki;
  121. cout << "\nDane zmienione pomyslnie\n";
  122. getchar();
  123. Zapisz(); //program zastąpi stare dane nowymi
  124. }
  125. }
  126. else
  127. {
  128. system("cls");
  129. cout << "\nBlad - nie ma takiego zapisu w bazie\n";
  130. system("pause");
  131. }
  132. }
  133.  
  134. void Usun() //funkcja która usuwa wybranego pracownika z bazy danych
  135. {
  136. int z;
  137.  
  138.  
  139. cout << "\nPodaj numer zapisu ktory chcesz usunac:\t ";
  140. cin >> z;
  141. z = z - 1;
  142.  
  143. if (i != 0)
  144. {
  145. if (z > i)
  146. {
  147. cout << "\nBlad - nie ma takiego zapisu w bazie\n";
  148. getchar();
  149. }
  150. else
  151. {
  152. for (int k = z; k < i; k++)// pętla która porządkuje indeksy pozostałych pracowników
  153. {
  154. dane[k].stanowisko = dane[k + 1].stanowisko;
  155. dane[k].imie = dane[k + 1].imie;
  156. dane[k].nazwisko = dane[k + 1].nazwisko;
  157. dane[k].wiek = dane[k + 1].wiek;
  158. dane[k].zarobki = dane[k + 1].zarobki;
  159. }
  160. i--;
  161.  
  162. system("cls");
  163. cout << "\nDane usuniete pomyslnie\n";
  164. getchar();
  165. Zapisz();
  166. }
  167. }
  168. else
  169. {
  170. cout << "\nBlad - nie ma takiego zapisu w bazie\n";
  171. getchar();
  172.  
  173. }
  174. }
  175.  
  176. void Baza()//funkcja która wyświetla aktualną listę zapisanych pracowników
  177. {
  178. int k;
  179. system("cls");
  180. if (i != 0)
  181. {
  182. for (k = 0; k < i; k++)
  183. {
  184. cout << "Stanowisko:\t " << dane[k].stanowisko;
  185. cout << "\nImie:\t " << dane[k].imie;
  186. cout << "\nNazwisko:\t " << dane[k].nazwisko;
  187. cout << "\nWiek:\t " << dane[k].wiek;
  188. cout << "\nZarobki:\t" << dane[k].zarobki << " zl\n";
  189. }
  190. }
  191. else
  192. cout << "\nBlad - nie ma zapisu w bazie\n";
  193. system("pause");
  194. }
  195.  
  196.  
  197. int main() //główna funkcja która łączy wszystkie pozostałe w jedną całość
  198. {
  199. int a; //zmienne pomocnicze
  200. int x;
  201.  
  202. cout << "Dane: "; //ekran główny po włączeniu programu
  203. cout << "\n1. Wczytanie danych z pliku.txt";
  204. cout << "\n2. Utworzenie nowego pliku danych ";
  205. cout << "\n0. Zakoncz program";
  206. cout << "\nPodaj nr opcji: ";
  207. cin >> x;
  208. if (x == 1)
  209. {
  210. Wczytaj();
  211. getchar();
  212. system("cls");
  213. do
  214. {
  215. cout << "\n1. Dodaj nowe dane";
  216. cout << "\n2. Zapis danych";
  217. cout << "\n3. Edycja danych";
  218. cout << "\n4. Usun wpis z bazy";
  219. cout << "\n5. Odtworz zawartosc bazy danych";
  220. cout << "\n6. Wyszukaj po stanowisku";
  221. cout << "\n0. Zakoncz program ";
  222. cout << "\nOpcja nr: ";
  223. cin >> a;
  224. if (a > 6 || a < 0) //warunek który kończy pracę programu jeśli użytkownik
  225. //wybierze nieistniejącą opcję
  226. {
  227. system("cls");
  228. cout << "\nBlad danych - koniec\n";
  229. system("pause");
  230. return 0;
  231. };
  232.  
  233. switch (a)//funkcja switch wykonuje opcję wprowadzoną przez użytkownika
  234. {
  235. case 0: cout << "program zakonczony\n";
  236. system("pause");
  237. return 0;
  238. break;
  239. case 1: Dodaj();
  240. break;
  241. case 2: Zapisz();
  242. break;
  243. case 3: Edycja();
  244. break;
  245. case 4: Usun();
  246. break;
  247. case 5: Baza();
  248. break;
  249. }
  250.  
  251. system("cls");
  252. } while (a != 0);
  253. }
  254. if (x == 2) {
  255. system("cls");
  256. do
  257. {
  258. cout << "\n1. Dodaj nowe dane";
  259. cout << "\n2. Zapis danych";
  260. cout << "\n3. Edycja danych";
  261. cout << "\n4. Usun wpis z bazy";
  262. cout << "\n5. Odtworz zawartosc bazy danych";
  263. cout << "\n0. Zakoncz program ";
  264. cout << "\nOpcja nr: ";
  265. cin >> a;
  266. if (a > 5 || a < 0)
  267. {
  268. system("cls");
  269. cout << "\nBlad danych - koniec\n";
  270. system("pause");
  271. return 0;
  272. };
  273.  
  274. switch (a)
  275. {
  276. case 0: cout << "program zakonczony\n";
  277. system("pause");
  278. return 0;
  279. break;
  280. case 1: Dodaj();
  281. break;
  282. case 2: Zapisz();
  283. break;
  284. case 3: Edycja();
  285. break;
  286. case 4: Usun();
  287. break;
  288. case 5: Baza();
  289. break;
  290. }
  291.  
  292. system("cls");
  293. } while (a != 0);
  294. }
  295. if (x == 0) //po wybraniu opcji 0 program kończy pracę
  296. {
  297. cout << "Program zakonczony\n";
  298. system("pause");
  299. return 0;
  300. }
  301. if (x < 0 || x>2) //warunek który poprawi użytkownika jeśli wybierze nieistniejącą opcję
  302. {
  303. getchar();
  304. cout << "Podano zla liczbe, prosze wybrac liczbe z zakresu <0,2> \n";
  305. cout << "Nacisnij dowolny klawisz aby powtorzyc operacje";
  306. getchar();
  307. system("cls");
  308. main();
  309. }
  310. getchar();
  311. return 0;
  312. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement