Advertisement
Dario95

Untitled

Feb 19th, 2015
250
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.12 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. typedef struct{
  5. int anno[100];
  6. int mese[100];
  7. int giorno[100]
  8. }data;
  9. typedef struct{
  10. char nome_film[100];
  11. char regista[100];
  12. char nomeprestito[100];
  13. data dataprestito;
  14. }film;
  15.  
  16. int inseriscidati(film a[], int n);
  17. int stampa(film a[], int n);
  18. int ordina(film a[], int n, int scelta);
  19.  
  20.  
  21. /* run this program using the console pauser or add your own getch, system("pause") or input loop */
  22.  
  23. int main(int argc, char *argv[]) {
  24. int s, ndvd, r, ordine;
  25. film dvd[200];
  26. do{
  27.  
  28. printf("1. Per inserire i dati sul dvd prestato\n");
  29. printf("2. Per visualizzare i dati sui dvd prestati\n");
  30. printf("3. Per ordinare i dvd per nome del regista o per data del prestito\n");
  31. scanf("%d", &s);
  32. switch(s){
  33. case 1: printf("Di quani dvd si vuole inserire i dati?\n");
  34. scanf("%d", &ndvd);
  35. r = inseriscidati(dvd, ndvd);
  36. break;
  37. case 2: printf("I dati presenti in memoria sono i seguenti:\n");
  38. r = stampa(dvd, ndvd);
  39. break;
  40. case 3: printf("Premere 1 se si vuole ordinare per data di prestito\n");
  41. scanf("%d", &ordine);
  42. r = ordina(dvd, ndvd, ordine);
  43. break;
  44. }
  45. }while(r==1);
  46.  
  47.  
  48. return 0;
  49. }
  50. int inseriscidati(film a[], int n){
  51. int i = 0, menu;
  52. for(i = 0; i < n; i++){
  53. printf("Inserire titolo dvd\n");
  54. fflush( stdin );
  55. gets(a[i].nome_film);
  56. printf("Inserire regista dvd\n");
  57. gets(a[i].regista);
  58. printf("Inserire data del prestito.\nAnno:\nMese:\nGiorno:\n");
  59. scanf("%d%d%d", &a[i].dataprestito.anno, &a[i].dataprestito.mese, &a[i].dataprestito.giorno);
  60. printf("Inserire nome del prestatario\n");
  61. gets(a[i].nomeprestito);
  62. printf("\n\n");
  63. }
  64. printf("FIne acquisizione dati\n");
  65. printf("Per tornare al menu' premere 1, altrimenti 0 per uscire\n");
  66. scanf("%d", &menu);
  67. return menu;
  68. }
  69.  
  70. int stampa(film a[], int n){
  71. int i = 0, menu = 0;
  72. for(i=0; i<n; i++){
  73.  
  74. printf("%s", a[i].nome_film);
  75. printf("%s ", a[i].regista);
  76. printf("%s ", a[i].dataprestito);
  77. printf("%s ", a[i].nomeprestito);
  78. printf("\n");
  79. }
  80. printf("Fine dei dati in memoria\nPer tornare al menu' premere 1, altrimenri 0 per uscire\n");
  81. scanf("%d", &menu);
  82. return menu;
  83. }
  84.  
  85. int ordina(film a[], int n, int scelta){
  86. film blocked;
  87. int i, l = 0;
  88. if(scelta == 1){
  89. for(i=0; i <n; i++){
  90. if(a[i].dataprestito.anno > a[i+1].dataprestito.anno){
  91. blocked = a[i].dataprestito.anno;
  92. a[i].dataprestito.anno = a[i+1].dataprestito.anno;
  93. a[i+1].dataprestito.anno = blocked;
  94. }
  95. if(a[i].dataprestito.anno == a[i+1].dataprestito.anno && a[i].dataprestito.mese > a[i+1].dataprestito.anno){
  96. blocked = a[i].dataprestito.mese;
  97. a[i].dataprestito.mese = a[i+1].dataprestito.mese;
  98. a[i+1].dataprestito.mese = blocked;
  99.  
  100. }
  101. if(a[i].dataprestito.anno == a[i+1].dataprestito.anno && a[i].dataprestito.mese == a[i+1].dataprestito.anno && a[i].dataprestito.giorno > a[i+1].dataprestito.giorno ){
  102. blocked = a[i].dataprestito.giorno;
  103. a[i].dataprestito.giorno = a[i+1].dataprestito.giorno;
  104. a[i+1].dataprestito.giorno = blocked;
  105. }
  106.  
  107. stampa(a, n);
  108. }
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement