Advertisement
Guest User

Untitled

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