Advertisement
Guest User

Untitled

a guest
May 19th, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.81 KB | None | 0 0
  1. #include <stdio.h>
  2. #define LIBRARIE "librarie.txt"
  3. #define FISIERDATE "date.db"
  4. #include <GL/GLUT.h>
  5.  
  6. int numarareCarti();
  7. int verificareBiblioteca();
  8. int bun_venit();
  9. int cereParola();
  10. int adaugareCarte();
  11. int afisareLista();
  12. int cautareCarte();
  13. void grafica();
  14. int informatiiGrafic();
  15. char parola[32] = "muie";
  16. struct carti{
  17. char nume[32];
  18. char autor[32];
  19. int secol;
  20. };
  21. struct carti virtuale;
  22.  
  23. int main(int argc, char** argv){
  24. verificareBiblioteca();
  25. cereParola();
  26.  
  27. glutInit(&argc, argv);
  28. glutInitWindowSize(1000, 600);
  29. glutInitWindowPosition(50, 50);
  30. glutCreateWindow("STATISTICA DUPA SECOL (GRAFIC)");
  31. glutDisplayFunc(grafica);
  32. glutMainLoop();
  33. return 0;
  34. }
  35.  
  36. int verificareBiblioteca(){
  37. int raspuns = 0;
  38. FILE *librarie;
  39. librarie = fopen(LIBRARIE, "r+");
  40. if (!librarie){
  41. printf("Libraria pentru biblioteca este inexistenta\nDoriti sa creati una (1-da;0-nu) ?\n");
  42. fflush(stdout);
  43. scanf("%d", &raspuns);
  44. if (raspuns == 1){
  45. librarie = fopen(LIBRARIE, "w");
  46. printf("Libraria a fost creata\n");
  47. printf("Terminare program\n"); //debug
  48. return 0;
  49. } else {
  50. printf("Terminare program\n");
  51. return 0;
  52. }
  53. }
  54. raspuns = 0;
  55. FILE *fisierdate;
  56. fisierdate = fopen(FISIERDATE, "r+");
  57. if (!fisierdate){
  58. printf("Baza de date pentru biblioteca este inexistenta\nDoriti sa creati una (1-da;0-nu) ?\n");
  59. fflush(stdout);
  60. scanf("%d", &raspuns);
  61. if (raspuns == 1){
  62. fisierdate = fopen(FISIERDATE, "w");
  63. fisierdate = fopen(FISIERDATE, "r+");
  64. fprintf(fisierdate, "%s", parola);
  65. printf("Baza de date a fost creata\n");
  66. return 0;
  67. } else {
  68. printf("Shut down");
  69. return 0;
  70. }
  71. }
  72. return 1;
  73. }
  74.  
  75. int numarareCarti(){
  76. int linii = 0;
  77. FILE *librarie;
  78. librarie = fopen("librarie.txt", "r+");
  79. char numarare;
  80. while((numarare=fgetc(librarie))!=EOF){
  81. if(numarare=='\n'){
  82. linii++;
  83. }
  84. }
  85. return linii;
  86. }
  87.  
  88. int bun_venit(){
  89. int raspuns;
  90. printf("Momentan avem %d de carti!\n", numarareCarti());
  91. printf("\nOptiuni: \n");
  92. printf("1. Adaugare carti\n");
  93. printf("2. Cautare carte\n");
  94. printf("3. Afisare lista\n");
  95. printf("4. Statistica dupa secol (grafic)\n");
  96. printf("5. Terminare program\n");
  97. printf("6. Informatii Grafic\n");
  98. printf("\n Alegerea ta: ");
  99. fflush(stdout);
  100. scanf("%d", &raspuns);
  101. switch(raspuns){
  102. case 1:
  103. adaugareCarte();
  104. break;
  105. case 2:
  106. cautareCarte();
  107. break;
  108. case 3:
  109. afisareLista();
  110. break;
  111. case 4:
  112. grafica();
  113. break;
  114. case 5:
  115. printf("Program terminat\n");
  116. break;
  117. case 6:
  118. informatiiGrafic();
  119. break;
  120. default:
  121. printf("Valoare gresita\n");
  122. break;
  123. }
  124. return 1;
  125. }
  126.  
  127. int cereParola(){
  128. char parolaCitita[32];
  129. char parolaCeruta[32];
  130. int verificareParola;
  131. FILE *fisierdate;
  132. fisierdate = fopen(FISIERDATE, "r");
  133. fscanf(fisierdate, "%s", parolaCitita);
  134. printf("Bun venit in libraria virtuala\n");
  135. printf("Introduceti parola: ");
  136. fflush(stdout);
  137. scanf("%s", parolaCeruta);
  138. verificareParola = strcmp(parolaCitita, parolaCeruta);
  139. if (verificareParola == 0){
  140. bun_venit();
  141. } else {
  142. printf("Parola este gresita\n");
  143. return 0;
  144. }
  145. return 1;
  146. }
  147.  
  148. int adaugareCarte(){
  149. FILE *librarie;
  150. printf("Nume: ");
  151. fflush(stdout);
  152. scanf("%s", virtuale.nume);
  153. printf("Autor: ");
  154. fflush(stdout);
  155. scanf("%s", virtuale.autor);
  156. printf("Secol: ");
  157. fflush(stdout);
  158. scanf("%d", &virtuale.secol);
  159. librarie = fopen(LIBRARIE, "a");
  160. fprintf(librarie, "%s %s %d\n", virtuale.nume, virtuale.autor, virtuale.secol);
  161. fclose(librarie);
  162. printf("Cartea a fost adaugata\n");
  163. bun_venit();
  164. return 1;
  165. }
  166.  
  167. int afisareLista(){
  168. int raspuns;
  169. FILE *librarie;
  170. librarie = fopen(LIBRARIE, "r");
  171. for(int i=1; i<=numarareCarti(); i++){
  172. printf("#%d: ", i);
  173. fflush(stdout);
  174. fscanf(librarie ,"%s %s %d", virtuale.nume, virtuale.autor, &virtuale.secol);
  175. printf("%s %s %d\n", virtuale.nume, virtuale.autor, virtuale.secol);
  176. }
  177. fclose(librarie);
  178. printf("Doresti sa revii?: ");
  179. fflush(stdout);
  180. scanf("%d", &raspuns);
  181. if (raspuns == 1){
  182. bun_venit();
  183. } else {
  184. return 0;
  185. }
  186. return 1;
  187. }
  188.  
  189. int cautareCarte(){
  190. int raspunsSecol;
  191. int numarare = 0;
  192. FILE *librarie;
  193. librarie = fopen(LIBRARIE, "r");
  194. printf("Ce secol de carti cauti: \n");
  195. fflush(stdout);
  196. scanf("%d", &raspunsSecol);
  197. for(int i=0; i<numarareCarti(); i++){
  198. fscanf(librarie ,"%s %s %d", virtuale.nume, virtuale.autor, &virtuale.secol);
  199. if(raspunsSecol == virtuale.secol){
  200. printf("Numele cartii: %s , Autorul: %s\n", virtuale.nume, virtuale.autor);
  201. numarare++;
  202. }
  203. }
  204. printf("Exista %d carti\n", numarare);
  205. fclose(librarie);
  206. return 1;
  207. }
  208.  
  209. int informatiiGrafic(){
  210. int carti[21];
  211. carti[15] = 0;
  212. carti[16] = 0;
  213. carti[17] = 0;
  214. carti[18] = 0;
  215. carti[19] = 0;
  216. carti[20] = 0;
  217. carti[21] = 0;
  218. FILE *librarie;
  219. for(int secol=14;secol<=21;secol++){
  220. librarie = fopen(LIBRARIE, "r");
  221. for(int i=0; i<numarareCarti();i++){
  222. fscanf(librarie ,"%s %s %d", virtuale.nume, virtuale.autor, &virtuale.secol);
  223. if(virtuale.secol == secol){
  224. carti[secol]++;
  225. }
  226. }
  227. printf("Secolul %d are %d carti\n", secol, carti[secol]);
  228. fclose(librarie);
  229. }
  230. return 1;
  231. }
  232.  
  233. void grafica(){
  234. FILE *librarie;
  235. librarie = fopen(LIBRARIE, "r");
  236. glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
  237. glClear(GL_COLOR_BUFFER_BIT);
  238. glBegin(GL_LINES);
  239. glColor3f(1.0f, 1.0f, 1.0f);
  240. glVertex3f(-1.0,-1.0,0.0);
  241. //
  242. int carti[21];
  243. carti[15] = 0;
  244. carti[16] = 0;
  245. carti[17] = 0;
  246. carti[18] = 0;
  247. carti[19] = 0;
  248. carti[20] = 0;
  249. carti[21] = 0;
  250. for(int secol=14;secol<=21;secol++){
  251. float distX = 0.33;
  252. float nouaCoordX = -1;
  253. librarie = fopen(LIBRARIE, "r");
  254. for(int i=0; i<numarareCarti();i++){
  255. fscanf(librarie ,"%s %s %d", virtuale.nume, virtuale.autor, &virtuale.secol);
  256. if(virtuale.secol == secol){
  257. carti[secol]++;
  258. }
  259. }
  260. //printf("Secolul %d are %d carti\n", secol, carti[secol]);
  261. nouaCoordX = nouaCoordX + distX;
  262. printf("%.2f\n", nouaCoordX);
  263. glVertex3f(nouaCoordX,carti[secol],0.0);
  264.  
  265. fclose(librarie);
  266. }
  267. //
  268. glEnd();
  269. glFlush();
  270.  
  271. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement