Advertisement
Guest User

Untitled

a guest
May 27th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.25 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <vector>
  4. #include <stdlib.h>
  5. #include <string>
  6. #include <cstdio>
  7.  
  8. using namespace std;
  9.  
  10. struct Osoba
  11. {
  12. string imie;
  13. string nazwisko;
  14. string data_urodzenia;
  15. string wiek;
  16. string miasto_urodzenia;
  17. string miasto_zamieszkania;
  18. };
  19.  
  20. void Pytanie(Osoba osoba)
  21. {
  22. cout<<"Imie: "<<osoba.imie<<endl;
  23. cout<<"Nazwisko: "<<osoba.nazwisko<<endl;
  24. cout<<"Data Urodzenia: "<<osoba.data_urodzenia<<endl;
  25. cout<<"Wiek: " << osoba.wiek <<endl;
  26. cout<<"Miejsce Urodzenia: " << osoba.miasto_urodzenia <<endl;
  27. cout <<"Miejsce Zamieszkania: " << osoba.miasto_zamieszkania << endl;
  28. cout << endl;
  29. }
  30.  
  31.  
  32.  
  33. void wypisz_osoby()
  34. {
  35. Osoba osoba;
  36. vector<Osoba> vector_osoba;
  37. string linia;
  38. int nr_linii = 0;
  39.  
  40. fstream plik;
  41. plik.open("in.txt");
  42.  
  43. if(plik.is_open() == 1)
  44. {
  45. while (getline(plik, linia))
  46. {
  47. if(nr_linii > 5)
  48. nr_linii = 0;
  49.  
  50. switch (nr_linii)
  51. {
  52. case 0: osoba.imie=linia; break;
  53. case 1: osoba.nazwisko=linia; break;
  54. case 2: osoba.data_urodzenia=linia; break;
  55. case 3: osoba.wiek=linia; break;
  56. case 4: osoba.miasto_urodzenia=linia; break;
  57. case 5: osoba.miasto_zamieszkania=linia; break;
  58. }
  59.  
  60. if(nr_linii == 5)
  61. vector_osoba.push_back(osoba);
  62. nr_linii++;
  63. }
  64. }
  65. else {
  66. cout << "Blad! Nie mozna otworzyc pliku!" << endl;
  67. cin.get();
  68. exit(1);
  69. }
  70. plik.close();
  71.  
  72. for(unsigned int i = 0; i < vector_osoba.size(); i++)
  73. Pytanie(vector_osoba[i]);
  74.  
  75. cin.get();
  76. }
  77.  
  78.  
  79. void dodaj_osobe()
  80. {
  81. Osoba osoba;
  82. cout << "Podaj imie: "; cin>>osoba.imie;
  83. cout << "Podaj nazwisko: "; cin>>osoba.nazwisko;
  84. cout << "Podaj date urodzenia: "; cin>>osoba.data_urodzenia;
  85. cout << "Podaj wiek: "; cin>>osoba.wiek;
  86. cout << "Podaj miejsce urodzenia: "; cin>>osoba.miasto_urodzenia;
  87. cout << "Podaj miejsce zamieszkania: "; cin>>osoba.miasto_zamieszkania;
  88.  
  89. fstream plik;
  90. plik.open("in.txt",ios::out | ios::app);
  91.  
  92. plik<<osoba.imie<<endl;
  93. plik<<osoba.nazwisko<<endl;
  94. plik<<osoba.data_urodzenia<<endl;
  95. plik<<osoba.wiek<<endl;
  96. plik<<osoba.miasto_urodzenia<<endl;
  97. plik<<osoba.miasto_zamieszkania<<endl;
  98.  
  99. plik.close();
  100.  
  101. }
  102.  
  103. unsigned int ileLinii(){
  104. fstream plik;
  105. string tekst;
  106. unsigned int ileLinii=0;
  107. plik.open("in.txt",ios::in | ios::app);
  108. if(plik.good()){
  109.  
  110. while(!plik.eof()){
  111. getline(plik,tekst);
  112. ileLinii++;
  113. }
  114. }
  115.  
  116. plik.close();
  117. return ileLinii;
  118. }
  119.  
  120.  
  121. void przepisz(unsigned int linia, unsigned int ileLinii){
  122.  
  123. fstream plik;
  124. fstream plik2;
  125. string tekst;
  126. plik.open("in.txt");
  127. if (plik.good()){
  128. plik2.open("temp.txt"); //plik musi zostac najpeirw utworzony!
  129. if(plik2.good()){
  130.  
  131. for(unsigned int i=0;i<ileLinii;i++){
  132. plik>>tekst;
  133.  
  134. if((i<linia || i>linia+5)){
  135. plik2<<tekst;
  136. plik2<<"\n";
  137. }
  138.  
  139. }
  140. }
  141. }
  142. plik.close();
  143. plik2.close();
  144.  
  145. remove("in.txt");
  146.  
  147. plik.open("in.txt",ios::app);
  148. if (plik.good()){
  149. plik2.open("temp.txt"); //plik musi zostac najpeirw utworzony!
  150. if(plik2.good()){
  151.  
  152. while(getline(plik2,tekst)){
  153. plik<<tekst;
  154. plik<<"\n";
  155. }
  156. }
  157. }
  158. }
  159.  
  160.  
  161.  
  162.  
  163. void usun_osobe()
  164. {
  165. Osoba osoba;
  166. unsigned int linia=0;
  167. string imie, nazwisko, tekst;
  168. cout << "Podaj imie oraz nazwisko osoby ktora chcesz usunac: "; cin>>imie; cin>>nazwisko;
  169. cout<<"Szukana osoba to: "<<imie<<" "<<nazwisko<<endl;
  170.  
  171. fstream plik;
  172. plik.open("in.txt",ios::out | ios::in | ios::app);
  173. if(plik.good()== true){
  174.  
  175.  
  176. while (!plik.eof()){ // Od tego miejsca sprawdza w ktorej linijce wystapilo dane imie oraz nazwisko
  177.  
  178. plik>>tekst;
  179.  
  180. if (tekst==imie){
  181. cout<<"Znalazlem imie"<<endl;
  182.  
  183.  
  184. plik>>tekst;
  185. if(tekst==nazwisko){
  186. cout<<"Znalazlem nazwisko"<<endl;
  187. plik.close();
  188. przepisz(linia,ileLinii());
  189. return;
  190. }
  191. }
  192. linia++;
  193. } // Do tego miejsca
  194. }
  195. cout<<"Niestety. W bazie danych nie ma osoby o takim imieniu oraz nazwisku!"<<endl;
  196. plik.close();
  197. }
  198.  
  199.  
  200.  
  201. int main()
  202. {
  203. int liczba;
  204. for(;;){
  205. cout << "Wybierz usluge: \n 1- Wyswietl liste osob \n 2- Dodaj osobe \n 3- Usun osobe \n 4- Wyjdz \nWybrana usluga: ";
  206. cin >> liczba;
  207. switch( liczba )
  208. {
  209. case 1:
  210. wypisz_osoby();
  211. break;
  212. case 2:
  213. dodaj_osobe();
  214. break;
  215. case 3:
  216. usun_osobe();
  217. break;
  218. case 4:
  219. return 0;
  220. }
  221. system("Pause");
  222. system("cls");
  223. }
  224. return 0;
  225.  
  226. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement