Advertisement
Guest User

Untitled

a guest
May 27th, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.34 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.  
  124. cout<<"Test!"<<endl; //test
  125. fstream plik;
  126. fstream plik2;
  127. string tekst;
  128. plik.open("in.txt");
  129. if (plik.good()){
  130. plik2.open("temp.txt"); //plik musi zostac najpeirw utworzony!
  131. if(plik2.good()){
  132.  
  133. for(unsigned int i=0;i<ileLinii;i++){
  134. plik>>tekst;
  135.  
  136. if((i<linia || i>linia+5)){
  137. plik2<<tekst;
  138. plik2<<"\n";
  139. }
  140.  
  141. }
  142. }
  143. }
  144. plik.close();
  145. plik2.close();
  146.  
  147. remove("in.txt");
  148.  
  149. plik.open("in.txt",ios::app);
  150. if (plik.good()){
  151. plik2.open("temp.txt"); //plik musi zostac najpeirw utworzony!
  152. if(plik2.good()){
  153.  
  154. while(getline(plik2,tekst)){
  155. plik<<tekst;
  156. plik<<"\n";
  157. }
  158. }
  159. }
  160. }
  161.  
  162.  
  163.  
  164.  
  165. void usun_osobe()
  166. {
  167. Osoba osoba;
  168. unsigned int linia=0;
  169. string imie, nazwisko, tekst;
  170. cout << "Podaj imie oraz nazwisko osoby ktora chcesz usunac: "; cin>>imie; cin>>nazwisko;
  171. cout<<"Szukana osoba to: "<<imie<<" "<<nazwisko<<endl;
  172.  
  173. fstream plik;
  174. plik.open("in.txt",ios::out | ios::in | ios::app);
  175. if(plik.good()== true){
  176.  
  177.  
  178. while (!plik.eof()){ // Od tego miejsca sprawdza w ktorej linijce wystapilo dane imie oraz nazwisko
  179.  
  180. plik>>tekst;
  181.  
  182. if (tekst==imie){
  183. cout<<"Znalazlem imie"<<endl;
  184.  
  185.  
  186. plik>>tekst;
  187. if(tekst==nazwisko){
  188. cout<<"Znalazlem nazwisko"<<endl;
  189. cout<<"Linijka="<<linia<<endl;
  190. plik.close();
  191. przepisz(linia,ileLinii());
  192. return;
  193. }
  194. }
  195. linia++;
  196. } // Do tego miejsca
  197. }
  198. cout<<"Niestety. W bazie danych nie ma osoby o takim imieniu oraz nazwisku!"<<endl;
  199. plik.close();
  200. }
  201.  
  202.  
  203.  
  204. int main()
  205. {
  206. int liczba;
  207. for(;;){
  208. cout << "Wybierz usluge: \n 1- Wyswietl liste osob \n 2- Dodaj osobe \n 3- Usun osobe \n 4- Wyjdz \nWybrana usluga: ";
  209. cin >> liczba;
  210. switch( liczba )
  211. {
  212. case 1:
  213. wypisz_osoby();
  214. break;
  215. case 2:
  216. dodaj_osobe();
  217. break;
  218. case 3:
  219. usun_osobe();
  220. break;
  221. case 4:
  222. return 0;
  223. }
  224. system("Pause");
  225. system("cls");
  226. }
  227. return 0;
  228.  
  229. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement