Advertisement
Guest User

Struct_2

a guest
Apr 10th, 2020
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.07 KB | None | 0 0
  1. /*
  2.  * sursa.c
  3.  *
  4.  *  Created on: Apr 7, 2020
  5.  *      Author: Takamura
  6.  */
  7.  
  8.  
  9. #include<stdio.h>
  10. #include<string.h>
  11.  
  12. int main()
  13. {
  14. int i, contor=0;
  15. int nr_carti=0, index_carti;
  16. // declarearea structurii de date pentru memorarea informatiilor referitoare la carti
  17. struct carte
  18. {
  19.     char nume_a[15];
  20.     char prenume_a[15];
  21.     char titlul[4][15];
  22.     int nr_pg;
  23.     int nr_cap;
  24.     float pret_cTVA;
  25.     float pret_fTVA;
  26.     char ISBN[14];
  27. }; // atentie ! dupa declararea structuri trebuie adaugat ";"
  28. // declaram o variabila simpla de tip struct carte
  29. //int valoare=10;
  30. struct carte carti[20]; // declaram un vector de tip struct carte pentru memorarea a maxim 20 de carti
  31. struct carte aux; // declaram variabila auxiliara utilizata pentru sortarea cartilor
  32.  
  33. printf("Indicati numarul de carti pe care doriti sa le specificati:");
  34. fflush(stdout);
  35. scanf("%d",&nr_carti);
  36.  
  37. for(index_carti=0;index_carti<nr_carti;index_carti++)
  38. {
  39. // citirea de la tastatura a informatiilor referitoare la cartea 1
  40. printf("Indicati ISBN-ul cartii %d:",index_carti);
  41. fflush(stdout);
  42. scanf("%s",carti[index_carti].ISBN);
  43. printf("Indicati numele autorului pentru cartea %d:",index_carti);
  44. fflush(stdout);
  45. scanf("%s",carti[index_carti].nume_a);
  46. printf("Indicati prenumele autorului pentru cartea %d:",index_carti);
  47. fflush(stdout);
  48. scanf("%s",carti[index_carti].prenume_a);
  49.  
  50. printf("Indicati din cate cuvinte este compus titlul cartii %d:",index_carti);
  51. fflush(stdout);
  52. scanf("%d",&contor);
  53. printf("Indicati titlul cartii %d:",index_carti);
  54. fflush(stdout);
  55. for(i=0;i<contor;i++)
  56. {
  57.     printf("Indicati cuvantul %d in titlul carti %d:\n",i+1,index_carti);
  58.     fflush(stdout);
  59.     scanf("%s",carti[index_carti].titlul[i]);
  60. }
  61. printf("Alegeti numarul de pagini pentru cartea %d:",index_carti);
  62. fflush(stdout);
  63. scanf("%d",&carti[index_carti].nr_pg);// varianta 2 citim de la tastatura valoarea si o memoram in membrul din struct carte
  64.  
  65. printf("Indicati numarul de capitole pentru cartea %d:",index_carti);
  66. fflush(stdout);
  67. scanf("%d",&carti[index_carti].nr_cap);
  68. printf("Indicati pretul cu TVA pentru cartea %d:",index_carti);
  69. fflush(stdout);
  70. scanf("%f",&carti[index_carti].pret_cTVA);
  71.  
  72. }
  73. // calculam pretul fara TVA pentru fiecare carte indicata
  74.  
  75. for(index_carti=0;index_carti<nr_carti;index_carti++)
  76. {
  77. carti[index_carti].pret_fTVA=carti[index_carti].pret_cTVA-carti[index_carti].pret_cTVA*0.19;
  78. }
  79.  
  80.  
  81. // afisarea pe consola a informatiilor memorate in structura de date de tip carte pentru cartile indicate
  82.  
  83. for(index_carti=0;index_carti<nr_carti;index_carti++)
  84. {
  85.  
  86. printf("Titlul cartii %d:",index_carti+1);
  87. for(i=0;i<contor;i++)
  88. {
  89.     printf("%s ",carti[index_carti].titlul[i]);
  90.     fflush(stdout);
  91. }
  92. printf("\n");
  93. fflush(stdout);
  94. printf("Autorul cartii %d: %s %s\n",index_carti+1,carti[index_carti].nume_a,carti[index_carti].prenume_a);
  95. fflush(stdout);
  96. printf("ISBN-ul cartii %d: %s\n",index_carti+1,carti[index_carti].ISBN);
  97. fflush(stdout);
  98. printf("Numarul de pagini al cartii %d: %d\n",index_carti+1,carti[index_carti].nr_pg);
  99. fflush(stdout);
  100. printf("Numarul de capitole al cartii %d: %d\n",index_carti+1,carti[index_carti].nr_cap);
  101. fflush(stdout);
  102. printf("Pretul cu TVA al cartii %d: %.2f\n",index_carti+1, carti[index_carti].pret_cTVA);
  103. fflush(stdout);
  104. printf("Pretul fara TVA al cartii %d: %.2f\n",index_carti+1,carti[index_carti].pret_fTVA);
  105. fflush(stdout);
  106. printf("\n");
  107. }
  108.  
  109. int index_carti_2=0;
  110. // sortarea cartilor crescator in functie de numarul de pagini.
  111. for(index_carti=0;index_carti<nr_carti;index_carti++)
  112. {
  113.     for(index_carti_2=0;index_carti_2<nr_carti;index_carti_2++)
  114.     {
  115.             if( carti[index_carti].nr_pg<carti[index_carti_2].nr_pg)
  116.             {
  117.                 aux = carti[index_carti];
  118.                 carti[index_carti]=carti[index_carti_2];
  119.                 carti[index_carti_2]=aux;
  120.             }
  121.     }
  122. }
  123.  
  124.  
  125. // sortarea cartilor alfabetic in functie de numele autorului.
  126. for(index_carti=0;index_carti<nr_carti;index_carti++)
  127. {
  128.     for(index_carti_2=0;index_carti_2<nr_carti;index_carti_2++)
  129.     {
  130.             if( strcmp(carti[index_carti].nume_a, carti[index_carti_2].nume_a)<0)
  131.             {
  132.                 aux = carti[index_carti];
  133.                 carti[index_carti]=carti[index_carti_2];
  134.                 carti[index_carti_2]=aux;
  135.             }
  136.     }
  137. }
  138.  
  139.  
  140.  
  141. // afisarea cartilor sortate crescator pe consola
  142.  
  143. for(index_carti=0;index_carti<nr_carti;index_carti++)
  144. {
  145.  
  146. printf("Titlul cartii %d:",index_carti+1);
  147. for(i=0;i<contor;i++)
  148. {
  149.     printf("%s ",carti[index_carti].titlul[i]);
  150.     fflush(stdout);
  151. }
  152. printf("\n");
  153. fflush(stdout);
  154. printf("Autorul cartii %d: %s %s\n",index_carti+1,carti[index_carti].nume_a,carti[index_carti].prenume_a);
  155. fflush(stdout);
  156. printf("ISBN-ul cartii %d: %s\n",index_carti+1,carti[index_carti].ISBN);
  157. fflush(stdout);
  158. printf("Numarul de pagini al cartii %d: %d\n",index_carti+1,carti[index_carti].nr_pg);
  159. fflush(stdout);
  160. printf("Numarul de capitole al cartii %d: %d\n",index_carti+1,carti[index_carti].nr_cap);
  161. fflush(stdout);
  162. printf("Pretul cu TVA al cartii %d: %.2f\n",index_carti+1, carti[index_carti].pret_cTVA);
  163. fflush(stdout);
  164. printf("Pretul fara TVA al cartii %d: %.2f\n",index_carti+1,carti[index_carti].pret_fTVA);
  165. fflush(stdout);
  166. printf("\n");
  167. }
  168.  
  169. return 0;
  170. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement