Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.90 KB | None | 0 0
  1. /*Srbovan Nenad
  2. grupa 6.1
  3. Problema 1 liste*/
  4.  
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <string.h>
  8.  
  9. typedef struct bibliotecar {
  10. char titluCarte[30];
  11. char autorCarte[30];
  12. char numeCititor[30];
  13. char adresaCititor[30];
  14. int termen;
  15. struct bibliotecar *urm;
  16. }bibliotecar;
  17.  
  18. bibliotecar *prim;
  19. bibliotecar *p;
  20. bibliotecar *q;
  21.  
  22. void vidare()
  23. {
  24. while (prim)
  25. {
  26. for (p = prim; p->urm != NULL; p = p->urm);
  27. free(p->urm);
  28. p->urm = NULL;
  29. }
  30. free(prim);
  31. }
  32.  
  33. void imprumutNou(const char titluCarte[30], const char autorCarte[30], const char numeCititor[30], const char adresaCititor[30], int termen)
  34. {
  35. for (p = prim; p != NULL; p = p->urm)
  36. {
  37. if (strcmp(numeCititor, p->numeCititor) == 0)
  38. {
  39. printf("nu se poate imprumuta cartea");
  40. return;
  41. }
  42. }
  43. q = (bibliotecar*)malloc(sizeof(bibliotecar));
  44. strcpy_s(q->titluCarte, titluCarte);
  45. strcpy_s(q->autorCarte, autorCarte);
  46. strcpy_s(q->numeCititor, numeCititor);
  47. strcpy_s(q->adresaCititor, adresaCititor);
  48. q->termen = termen;
  49. q->urm = prim;
  50. prim = q;
  51. }
  52.  
  53. void actualizare()
  54. {
  55. for (p = prim; p != NULL; p = p->urm)
  56. {
  57. if (p->termen != 0)
  58. {
  59. p->termen--;
  60. }
  61. else
  62. {
  63. printf("%s", p->numeCititor);
  64. }
  65. }
  66. }
  67.  
  68. void returnare(const char numeCititor[30])
  69. {
  70. if (prim == NULL)
  71. {
  72. return;
  73. }
  74. else
  75. {
  76. for (p = prim; p->urm != NULL; p = p->urm)
  77. {
  78. q = p->urm;
  79. if (strcmp(numeCititor, q->numeCititor) == 0)
  80. {
  81. p->urm = q->urm;
  82. free(q);
  83. }
  84. }
  85. }
  86. }
  87.  
  88. void afisare()
  89. {
  90. for (p = prim; p != NULL; p = p->urm)
  91. {
  92. printf("%s\t", p->titluCarte);
  93. printf("%s\t", p->autorCarte);
  94. printf("%s\t", p->numeCititor);
  95. printf("%s\t", p->adresaCititor);
  96. printf("%d\t", p->termen);
  97. printf("\n");
  98. }
  99. }
  100.  
  101. int main()
  102. {
  103. /*vidare();
  104. imprumutNou("carte0", "autor0", "nume0", "adresa0", 20);
  105. imprumutNou("carte1", "autor1", "nume1", "adresa1", 19);
  106. imprumutNou("carte2", "autor2", "nume2", "adresa2", 18);
  107. imprumutNou("carte3", "autor3", "nume3", "adresa3", 17);
  108. actualizare();
  109. afisare();
  110. returnare("nume2");
  111. returnare("nume1");
  112. printf("\n");
  113. afisare();*/
  114.  
  115. int ok = 1, termen;
  116. char titluCarte[30], autorCarte[30], numeCititor[30], adresaCititor[30];
  117. while (ok)
  118. {
  119. printf("Alegeti optiunea: \n");
  120. printf("0 Oprire \n");
  121. printf("1 Vidare lista \n");
  122. printf("2 Imprumut carte \n");
  123. printf("3 Actualizare lista \n");
  124. printf("4 Returnare carte \n");
  125. printf("5 Afisare lista \n");
  126. printf("Optiunea este: \n");
  127. scanf_s("%d", &ok);
  128. printf("\n\n");
  129.  
  130. switch (ok)
  131. {
  132. case 1: {
  133. printf("Vidare lista.\n");
  134. vidare();
  135. break;
  136. }
  137. case 2: {
  138. printf("Imprumut carte.\n");
  139. getchar();
  140.  
  141. //printf("Introduceti titlul cartii: ");
  142. fgets(titluCarte, sizeof(titluCarte), stdin);
  143.  
  144. //printf("Introduceti autorul cartii: ");
  145. fgets(autorCarte, sizeof(autorCarte), stdin);
  146.  
  147. //printf("Introduceti numele cititorului: ");
  148. fgets(numeCititor, sizeof(numeCititor), stdin);
  149.  
  150. //printf("Introduceti adresa cititorului: ");
  151. fgets(adresaCititor, sizeof(adresaCititor), stdin);
  152.  
  153. //printf("Introduceti termenul de returnare: ");
  154. scanf_s("%d", &termen);
  155.  
  156. imprumutNou(titluCarte, autorCarte, numeCititor, adresaCititor, termen);
  157. break;
  158. }
  159. case 3: {
  160. printf("Actualizare lista.\n");
  161. actualizare();
  162. break;
  163. }
  164. case 4: {
  165. printf("Returnare carte.\n");
  166. printf("Introduceti numele cititorului:\n");
  167. fgets(numeCititor, 30, stdin);
  168. returnare(numeCititor);
  169. break;
  170. }
  171. case 5: {
  172. printf("Afisare lista.\n");
  173. afisare();
  174. break;
  175. }
  176. default: printf("Nu ati introdus o valoare corecta.");
  177. }
  178. }
  179. getchar();
  180. return 0;
  181. }
  182.  
  183.  
  184.  
  185. /*
  186. Srbovan Nenad
  187. grupa 6.1
  188. Problema 2 liste
  189. */
  190. #include <stdio.h>
  191. #include <stdlib.h>
  192. #include <String.h>
  193.  
  194. typedef struct posta
  195. {
  196. int prioritate;
  197. char destinatar[30];
  198. char continut[30];
  199. struct posta *urm;
  200. }posta;
  201.  
  202. posta *prim;
  203. posta *ultim;
  204. posta *p;
  205. posta *q;
  206.  
  207. void initializare()
  208. {
  209. while (prim)
  210. {
  211. for (p = prim; p->urm != NULL; p = p->urm);
  212. free(p->urm);
  213. p->urm = NULL;
  214. }
  215. free(prim);
  216. printf("Cutia postala este goala.\n\n");
  217. }
  218.  
  219. void trimitere_mesaj(int prioritate, const char destinatar[30], const char continut[30])
  220. {
  221. if (prioritate == 1)
  222. {
  223. q = (posta*)malloc(sizeof(posta));
  224. strcpy_s(q->destinatar, destinatar);
  225. strcpy_s(q->continut, continut);
  226. q->prioritate = prioritate;
  227. q->urm = prim;
  228. prim = q;
  229. }
  230. else
  231. {
  232. if (prioritate == 0)
  233. {
  234. //for (p = prim; p->urm != NULL; p = p->urm);
  235.  
  236. /*q = (posta*)malloc(sizeof(posta));
  237. q = p->urm;
  238. strcpy_s(q->destinatar, destinatar);
  239. strcpy_s(q->continut, continut);
  240. q->prioritate = prioritate;
  241. q->urm = NULL;*/
  242. p = prim;
  243. while (p->urm != NULL) {
  244. p = p->urm;
  245. }
  246. q = p->urm;
  247. q = (posta*)malloc(sizeof(posta));
  248. strcpy_s(q->destinatar, destinatar);
  249. strcpy_s(q->continut, continut);
  250. q->prioritate = prioritate;
  251. q->urm = NULL;
  252. }
  253. }
  254. }
  255.  
  256. void primire_mesaj(const char destinatar[30])
  257. {
  258. if (prim == NULL)
  259. {
  260. return;
  261. }
  262. else
  263. {
  264. for (p = prim; p->urm != NULL; p = p->urm)
  265. {
  266. q = p->urm;
  267. if (strcmp(q->destinatar, destinatar) == 0)
  268. {
  269. printf("Continutul mesajului este: %s\t", q->continut);
  270. printf("Prioritatea mesajului este: %d\t\n", q->prioritate);
  271. q = q->urm;
  272. free(q);
  273. }
  274. }
  275. }
  276. }
  277.  
  278. void afisare()
  279. {
  280. for (p = prim; p != NULL; p = p->urm)
  281. {
  282. printf("Destinatarul mesajului este: %s\t", p->destinatar);
  283. printf("Continutul mesajului este: %s\t", p->continut);
  284. printf("Prioritatea mesajului este: %d\t", p->prioritate);
  285. printf("\n");
  286. }
  287. }
  288.  
  289. int main()
  290. {
  291. initializare();
  292. trimitere_mesaj(1, "destinatar0", "continut0");
  293. trimitere_mesaj(1, "destinatar1", "continut1");
  294. trimitere_mesaj(0, "destinatar2", "continut2");
  295. afisare();
  296. printf("\n");
  297. primire_mesaj("destinatar0");
  298. afisare();
  299. getchar();
  300. return 0;
  301. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement