Advertisement
Guest User

Untitled

a guest
Jan 25th, 2020
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.35 KB | None | 0 0
  1. //Fie structura muzica, descrisa de: nume cantec, nume artist, durata in secunde, anul aparitiei.
  2. //Sa se realizeze un meniu interactiv:
  3. //1. Inserarea muzicilor intr-o lista;
  4. //2. Afisarea ordonata a cantecelelor dupa durata;
  5. //3. Stergerea unui cantec cautat dupa artist;
  6. //4. Salvarea intr-un fisier text cu numele "melodii vechi" cu anul aparitiei mai mic decat cel precizat de utilizator;
  7. //5. Cautarea si afisarea melodiilor dupa numele si durata precizata de utilizator;
  8. //0. Iesire;
  9. #define _CRT_SECURE_NO_WARNINGS
  10. #include <stdlib.h>
  11. #include <stdlib.h>
  12. #include <string.h>
  13. typedef struct muzica
  14. {
  15. char nume[20];
  16. char artist[20];
  17. int an;
  18. int durata;
  19. struct muzica* urm;
  20. }nod;
  21.  
  22. //1.inserarea muzicilor intr-o lista
  23. nod* adaugare(char nume[20], char artist[20], int an, int durata)
  24. {
  25. nod * p, * q;
  26. p = (nod*)malloc(sizeof(nod));
  27. strcpy(p->nume, nume);
  28. strcpy(p->artist, artist);
  29. p->an = an;
  30. p->durata = durata;
  31. p->urm = NULL;
  32. if(p==NULL)
  33. {
  34. printf("eroare \n");
  35. exit(0);
  36. }
  37. if (prim == NULL)
  38. return p;
  39. else
  40. if (prim->durata > p->durata)
  41. {
  42. p->urm = prim;
  43. return p;
  44.  
  45. }
  46.  
  47. else
  48. {
  49. q = prim;
  50. while (q != NULL && q->urm->durata < p->durata)
  51. q = q->urm;
  52. p->urm = q->urm;
  53. q->urm = p;
  54. return prim;
  55. }
  56. }
  57. //2. Afisarea ordonata a cantecului dupa durata
  58. void afisare(nod* prim)
  59. {
  60. nod* q;
  61. for(q=prim; q!=NULL; q=q->urm)
  62. {
  63. printf("%s %s %d %d ", q->nume, q->artist, q->durata, q ->an);
  64. }
  65. }
  66. //3. Stergerea unui cantec cautat dupa artist
  67. nod* stergere(nod* prim, char artist[20])
  68. {
  69. nod* p, * q;
  70. if (prim != NULL)
  71. {
  72. if (strcmp(prim->artist, artist) == 0)
  73. {
  74. q = prim;
  75. prim = prim->urm;
  76. free(q);
  77. return (prim);
  78. }
  79. q = prim;
  80. while (q->urm != NULL && strcmp(q->urm->artist, artist) != 0)
  81. q = q->urm;
  82. if (q->urm != NULL && strcmp(q->artist, artist) == 0)
  83. {
  84. p = q->urm;
  85. q->urm = q->urm->urm;
  86. free(p);
  87. }
  88. return prim;
  89. }
  90. else
  91. return prim;
  92. }
  93. //4. Salvarea intr-un fisier text cu numele "melodii vechi" cu anul aparitiei mai mic decat cel precizat de utilizator
  94.  
  95. salvare(nod *prim, int an)
  96. {
  97.  
  98. FILE* f;
  99. nod* q;
  100. f = fopen("melodii_vechi.txt", "wt");
  101. if (f == NULL)
  102. {
  103. printf("Eroare!");
  104. }
  105. else
  106. {
  107. for (q = prim; q != NULL; q = q->urm)
  108. if (q->an < an)
  109. fprintf(" %s %s %d %d", q->nume, q->artist, q->an, q->durata);
  110. }
  111. fclose(f);
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement