Advertisement
Fede

Liste multiple

Oct 4th, 2012
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.84 KB | None | 0 0
  1. //
  2. //  main.cpp
  3. //  Liste multiple
  4. //
  5. //  Created by Federico Giuntoli 4H on 16/05/12.
  6. //  Copyright (c) 2012 __I.T.S. "Tullio Buzzi" AS. 2012/13__. All rights reserved.
  7. //
  8.  
  9. #include <iostream>
  10.  
  11. using namespace std;
  12.  
  13. struct lib {
  14.     char titolo[10];
  15.     lib *Prox;
  16. };
  17.  
  18. struct aut {
  19.     char nome[10];
  20.     lib *libro;
  21.     aut *Prox;
  22. };
  23.  
  24. struct edit {
  25.     char nome[10];
  26.     aut *autore;
  27.     edit *Prox;
  28. };
  29.  
  30. edit *creaE (edit *E);
  31. aut *creaA (aut *A);
  32. lib *creaL (lib *L);
  33. void visualizzaA(aut *A);
  34. void visualizzaE(edit *E);
  35. void visualizzaL(lib *L);
  36.  
  37.  
  38. int main(){
  39.    
  40.     edit *E=NULL;
  41.     bool a;
  42.    
  43.     do {
  44.         E=creaE(E);
  45.         cout << "vuoi inserire un altro editore? ";
  46.         cin >> a;
  47.     } while (a==true);
  48.    
  49.     visualizzaE(E);
  50.    
  51.     return 0;
  52. }
  53.  
  54. lib *creaL (lib *L){
  55.     lib *app = new lib();
  56.     cout << "\nInserisci titolo libro: ";
  57.     cin >> app->titolo;
  58.     app -> Prox=NULL;
  59.     if (L == NULL){
  60.         L=app;
  61.     }
  62.     else{
  63.         lib *app1=L;
  64.         while (app1 -> Prox!=NULL){
  65.             app1=app1->Prox;
  66.         }
  67.         app1->Prox=app;
  68.     }
  69.     return L;
  70. }
  71.  
  72. aut *creaA (aut *A){
  73.     aut *app = new aut();
  74.     cout << "\nInserisci nome autore: ";
  75.     cin >> app->nome;
  76.     app -> Prox=NULL;
  77.     bool a;
  78.    
  79.     lib *L = NULL;
  80.    
  81.     do {
  82.         L = creaL(L);
  83.         cout << "vuoi inserire un altro libro? ";
  84.         cin >> a;
  85.     } while (a==true);
  86.    
  87.         app->libro = L;
  88.    
  89.     if (A == NULL){
  90.         A=app;
  91.     }
  92.     else{
  93.         aut *app1=A;
  94.         while (app1 -> Prox!=NULL){
  95.             app1=app1->Prox;
  96.         }
  97.         app1->Prox=app;
  98.     }
  99.     return A;
  100. }
  101.  
  102.  
  103. edit *creaE (edit *E){
  104.     edit *app = new edit();
  105.     cout << "\nInserisci nome editore: ";
  106.     cin >> app->nome;
  107.     app -> Prox=NULL;
  108.     bool a;
  109.    
  110.     aut *A = NULL;
  111.    
  112.     do {
  113.         A = creaA(A);
  114.         cout << "vuoi inserire un altro autore? ";
  115.         cin >> a;
  116.     } while (a==true);
  117.    
  118.     app->autore = A;
  119.    
  120.     if (E == NULL){
  121.         E=app;
  122.     }
  123.     else{
  124.         edit *app1=E;
  125.         while (app1 -> Prox!=NULL){
  126.             app1=app1->Prox;
  127.         }
  128.         app1->Prox=app;
  129.     }
  130.     return E;
  131. }
  132.  
  133.  
  134.  
  135. void visualizzaE(edit *E) {
  136.     edit *app=E;
  137.    
  138.     while(app!=NULL){
  139.         cout <<"\n\t Nome editore: " << app->nome;
  140.         cout << "\n\n";
  141.         visualizzaA(app->autore);
  142.         app=app->Prox;
  143.     }
  144. }
  145.  
  146. void visualizzaA(aut *A) {
  147.     aut *app=A;
  148.    
  149.     while(app!=NULL){
  150.         cout <<"Nome Autore: " << app->nome;
  151.         cout << "\n\n";
  152.         visualizzaL(app->libro);
  153.         app=app->Prox;
  154.     }
  155. }
  156.  
  157. void visualizzaL(lib *A) {
  158.     lib *app=A;
  159.    
  160.     while(app!=NULL){
  161.         cout <<"Titolo Libro: " << app->titolo;
  162.         cout << "\n";
  163.         app=app->Prox;
  164.     }
  165. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement