Advertisement
Guest User

Untitled

a guest
Nov 13th, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.68 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include "biblioteka_vrijeme.cc"
  4. #include <cmath>
  5. #include <cstdlib>
  6.  
  7. using namespace std;
  8.  
  9.  
  10. struct element {
  11. int sifra;
  12. char naziv[60];
  13. char smjer[50];
  14. int vrijeme;
  15. int red_br;
  16.  
  17. };
  18.  
  19. element student,student1;
  20. fstream objekt;
  21. int prost_broj;
  22.  
  23.  
  24. int prvi_prost(int x){
  25. int prost;
  26. for (int i=x-1;i>1;i--){
  27. prost = 1;
  28. for (int j=2;j<=sqrt(i);j++){
  29. if(i%j==0){
  30. prost = 0;
  31. break;
  32. }
  33. }
  34. if (prost) return i;
  35. }
  36. return 0;
  37. }
  38.  
  39. void kreiranje_datoteke() {
  40. int velicina_dat;
  41. student.sifra = 0;
  42. student.naziv[0] = '\0';
  43. student.smjer[0] = '\0';
  44. student.vrijeme = 0;
  45. cout << "Unesite velicinu datoteke: ";
  46. cin >> velicina_dat;
  47. prost_broj = prvi_prost(velicina_dat);
  48. cout << "Prvi manji prost broj je: " << prost_broj << endl;
  49. objekt.open("kculina.dat", ios::out | ios::binary);
  50. for (int i = 0; i<velicina_dat; i++) {
  51. student.red_br = i;
  52. objekt.write((char *) &student, sizeof(element));
  53. }
  54. objekt.close();
  55. }
  56.  
  57. void unos_datoteke() {
  58. vrijeme_pocetak();
  59. cout << "Sifra: ";
  60. cin >> student.sifra;
  61. cout << "Naziv: ";
  62. cin >> student.naziv;
  63. cout << "Smjer: ";
  64. cin >> student.smjer;
  65. vrijeme_kraj();
  66. student.vrijeme = vrijeme_proteklo()/1000;
  67. int rbz;
  68. rbz = student.sifra%prost_broj;
  69. objekt.open("kculina.dat", ios::in | ios::out | ios::binary);
  70. objekt.seekg(rbz * sizeof(element));
  71. do {
  72. objekt.read((char *) &student1, sizeof(element));
  73. } while(student1.sifra > 1);
  74. rbz = (objekt.tellg()/sizeof(element)) -1;
  75. objekt.seekp(rbz*sizeof(element));
  76. student.red_br = student1.red_br;
  77. objekt.write((char *)&student, sizeof(element));
  78. objekt.close();
  79. }
  80.  
  81.  
  82. void pretrazivanje() {
  83. int rbz;
  84. int pronadjeno = 0;
  85. int sifra;
  86. cout << "Unesi sifru koju zelis pretraziti: ";
  87. cin >> sifra;
  88. objekt.open("kculina.dat", ios::in | ios::binary);
  89. rbz = sifra%prost_broj;
  90. objekt.seekg(rbz * sizeof(element));
  91. do {
  92. objekt.read((char *) &student ,sizeof(element));
  93. if (objekt.eof()) break;
  94. if (student.sifra == sifra)
  95. {
  96. pronadjeno = 1;
  97. cout << "Sifra: " << student.sifra << endl;
  98. cout << "Naziv: " << student.naziv << endl;
  99. cout << "Smjer: " << student.smjer << endl;
  100. cout << "Redni broj: " << student.red_br << endl;
  101. cout << "Vrijeme: " << student.vrijeme << endl;
  102. break;
  103. }
  104. } while(student.sifra > 0);
  105. if (pronadjeno == 0) cout << "Nije pronadjen u datoteci!! " << endl;
  106. objekt.close();
  107.  
  108. }
  109.  
  110. void statistika() {
  111. int suma = 0;
  112. int br_praznih = 0;
  113. int br_zapisa = 0;
  114. objekt.open("kculina.dat", ios::in | ios::binary);
  115. while (1) {
  116.  
  117. objekt.read((char *) &student, sizeof(student));
  118. if (objekt.eof()) break;
  119. if (student.sifra == 0) br_praznih++;
  120. if (student.sifra != 0) {
  121. br_zapisa++;
  122. suma = suma + student.sifra;
  123. } }
  124. cout << "Broj praznih zapisa: " << br_praznih << endl;
  125. cout << "Broj zapisa: " << br_zapisa << endl;
  126. cout << "Suma sifri: " << suma;
  127. objekt.close();
  128.  
  129.  
  130.  
  131. }
  132. int main(){
  133. int izbor;
  134. do{
  135. cout << "1.Kreiranje datoteke praznih zapisa i racunanje prostog broja" << endl;
  136. cout << "2.Unos podataka u datoteku(uvazavajuci duplikate)" << endl;
  137. cout << "3.Pretrazivanje relativne datoteke uz prepoznavanje duplikata" << endl;
  138. cout << "4.Statistika" << endl;
  139. cout << "9.Izlaz iz programa" << endl;
  140. cout << "Unesite odabir: "; cin >> izbor; cout << endl;
  141. switch(izbor){
  142. case 1: kreiranje_datoteke(); cout << endl; break;
  143. case 2: unos_datoteke(); cout << endl; break;
  144. case 3: pretrazivanje(); cout << endl; break;
  145. case 4: statistika(); cout << endl; break;
  146. case 9: cout << "Izlaz iz programa!" << endl; break;
  147. }
  148. }while(izbor != 9);
  149.  
  150. system("pause");
  151. return 0;
  152. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement