Advertisement
Guest User

Untitled

a guest
May 28th, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 20.46 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "structs.h"
  4. #include <string.h>
  5. #define SIZE_STRING 40
  6. #define SIZE_LONG 32
  7. #define SIZE_DATE 10
  8.  
  9. Cliente procura_listaClientes(listaClientes lista);
  10. void limpaEcra(){
  11.     int i=0;
  12.     for(i=0;i<100;i++){
  13.         printf("\n");
  14.     }
  15. }
  16.  
  17. listaClientes criaListaClientes(){
  18.     listaClientes aux;
  19.     Cliente no;
  20.     aux = (listaClientes) malloc(sizeof(No_Cliente));
  21.     if(aux!=NULL){
  22.         aux->cliente = no;
  23.         aux->next = NULL;
  24.     }
  25.     return aux;
  26. }
  27. listaViagens criaListaViagens(){
  28.     listaViagens aux;
  29.     Viagem no;
  30.     aux = (listaViagens) malloc(sizeof(No_Viagem));
  31.     if(aux!=NULL){
  32.         aux->viagem = no;
  33.         aux->next = NULL;
  34.     }
  35.     return aux;
  36. }
  37. int listaClientes_vazia(listaClientes lista)
  38. {
  39.     return (lista->next == NULL ? 1 : 0);
  40. }
  41. int listaViagens_vazia(listaViagens lista)
  42. {
  43.     return (lista->next == NULL ? 1 : 0);
  44. }
  45. void destroi_listaClientes(listaClientes lista){
  46.     listaClientes temp_ptr;
  47.     while(listaClientes_vazia(lista) == 0){
  48.         temp_ptr = lista;
  49.         lista = lista->next;
  50.         free(temp_ptr);
  51.     }
  52.     free(lista);
  53. }
  54. void destroi_listaViagens(listaViagens lista){
  55.         listaViagens temp_ptr;
  56.     while(listaViagens_vazia(lista) == 0){
  57.         temp_ptr = lista;
  58.         lista = lista->next;
  59.         free(temp_ptr);
  60.     }
  61.     free(lista);
  62. }
  63.  
  64.  
  65.  
  66. void insereListaViagens(listaViagens lista,Viagem viagem){
  67.     listaViagens novo;
  68.     listaViagens ptr =lista;
  69.     novo=(listaViagens)malloc(sizeof(No_Viagem));
  70.     while(ptr->next!=NULL){
  71.         ptr=ptr->next;
  72.     }
  73.     novo->viagem=viagem;
  74.     ptr->next=novo;
  75.     novo->next=NULL;
  76. }
  77.  
  78. void insereListaClientes(listaClientes lista,Cliente cliente){
  79.     listaClientes novo;
  80.     listaClientes ptr =lista;
  81.     novo=(listaClientes)malloc(sizeof(No_Cliente));
  82.     while(ptr->next!=NULL){
  83.         ptr=ptr->next;
  84.     }
  85.     novo->cliente=cliente;
  86.     ptr->next=novo;
  87.     novo->next=NULL;
  88. }
  89.  
  90. int procura_listaClientes3(listaClientes lista,long cc){
  91.     Cliente cliente;
  92.     listaClientes atual = lista->next;
  93.     while (atual!=NULL){
  94.             if(atual->cliente.cc == cc){
  95.                 return 1;
  96.             }
  97.  
  98.         atual = atual->next;
  99.     }
  100.     return 0;
  101. }
  102.  
  103. int confirma_CC(long CC, listaClientes listaclientes){
  104.     int max=9;
  105.     int digitos=0;
  106.     long aux = CC;
  107.     while(aux!=0){
  108.         aux/=10;
  109.         digitos++;
  110.     }
  111.     if (digitos==max){
  112.         if(procura_listaClientes3(listaclientes, CC)==1){
  113.             printf("Cliente ja registado.Por favor insira um CC diferente.\n");
  114.             return 0;
  115.         }
  116.         else
  117.             printf("Cliente registado com sucesso.\n");
  118.             return 1;
  119.     }
  120.     else{
  121.         printf("CC invalido.Por favor insira um CC diferente.\n");
  122.         return 0;
  123.     }
  124. }
  125.  
  126.  
  127. int confirmaCC_igual(char CC[], listaClientes cliente){
  128.     listaClientes aux;
  129.     aux = cliente->next;
  130.     while(aux!=NULL){
  131.         if(strcmp(aux->cliente.cc, CC)==0){
  132.             printf("O CC introduzido ja se encontra atribuido a um cliente, verifique de novo:\n");
  133.             return 0;
  134.         }
  135.         aux = aux->next;
  136.     }
  137.     return 1;
  138. }
  139.  
  140. //não sei se assim funciona, ou se até está bem escrito ou não, mas acho que a ideia é mais ou menos esta
  141. int confirma_CC_2(char CC[] , listaClientes cliente){
  142.     int i;
  143.     fflush(stdin);
  144.     for(i=0; i < 8; i++){/* CC tem obrigatoriamente 8 digitos*/
  145.         if((CC[i]<48) || (CC[i]>=58)){ /* detetar simbolos e numeros */
  146.             printf("Caracteres nao sao validos.");
  147.             return 0;
  148.         }
  149.         else if((strlen(CC))!=8){ /*verificar se tem 8 digitos EDIT: só precisas de verificar uma vez, escusas de verificar sempre que corre o ciclos*/
  150.             printf("Por favor introduza outro CC");
  151.             return 0;
  152.         }
  153.  
  154.     }
  155.     confirmaCC_igual(CC, cliente);
  156.  
  157. }
  158.  
  159. int confirma_nome(char nome[]){
  160.     int i;
  161.     fflush(stdin);
  162.     for(i=0; i < strlen(nome); i++){
  163.         if((nome[i]>=48) && (nome[i]<=58)){
  164.             printf("Numeros nao sao validos.Introduza uma nome valido por favor.\n");
  165.             return 0;
  166.         }
  167.  
  168.     }
  169.     return 1;
  170. }
  171.  
  172. Cliente criaCliente(listaClientes listaclientes){
  173.     Cliente cliente;
  174.     gets(cliente.nome);
  175.     do{
  176.         printf("Nome:");
  177.         gets(cliente.nome);
  178.     }while(confirma_nome(cliente.nome)!=1);
  179.    do{
  180.         printf("\nCC:");
  181.         scanf("%ld",&cliente.cc);
  182.         //scanf("%ld",&cliente.cc);
  183.     }while(confirma_CC(cliente.cc, listaclientes)!=1);
  184.     //while(confirma_CC(cliente.cc,listaclientes)!= 1);
  185.     return cliente;
  186. }
  187. listaClientes init_listaClientes(){
  188.     FILE *ficheiro;
  189.     Cliente cliente;
  190.     listaClientes novo=criaListaClientes();
  191.     ficheiro=fopen("/Users/Goncalopinto/Desktop/ProjetoPPP/ProjetoPPP/AgenciaViagens/clientes.txt", "r");
  192.     while(fscanf(ficheiro,"%[^*]*%ld\n",cliente.nome,&cliente.cc)==2){
  193.         insereListaClientes(novo,cliente);
  194.     }
  195.     fclose(ficheiro);
  196.     return novo;
  197. }
  198. Cliente procura_listaClientes2(listaClientes lista,long cc){
  199.     Cliente cliente;
  200.     listaClientes atual = lista->next;
  201.     while (atual!=NULL){
  202.             if(atual->cliente.cc == cc){
  203.                 return atual->cliente;
  204.             }
  205.         atual = atual->next;
  206.     }
  207.     printf("Cliente nao existente!\n");
  208.     return cliente;
  209. }
  210. listaViagens init_listaViagens(listaClientes listaclientes){
  211.     FILE *ficheiro;
  212.     Viagem viagem;
  213.     Cliente cliente,cliente2;
  214.     int i,j;
  215.     listaViagens novo = criaListaViagens();
  216.     ficheiro = fopen("/Users/Goncalopinto/Desktop/ProjetoPPP/ProjetoPPP/AgenciaViagens/viagens.txt","r");
  217.     while(fscanf(ficheiro,"%d*%[^*]*%[^*]*%d-%d-%d*%d:%d*%d*%d*%f*%d*%d*",&viagem.codigo,viagem.origem,viagem.destino,&viagem.data.dia,&viagem.data.mes,&viagem.data.ano,&viagem.data.hora,&viagem.data.minuto,&viagem.duracao,&viagem.capacidade,&viagem.preco,&viagem.numListaReservas,&viagem.numListaEspera)==13){
  218.        viagem.listaReservas = criaListaClientes();
  219.         viagem.listaEspera = criaListaClientes();
  220.         for(i=0;i<viagem.numListaReservas;i++){
  221.             if(fscanf(ficheiro,"%ld:",&cliente.cc)==1){
  222.                 cliente2 = procura_listaClientes2(listaclientes,cliente.cc);
  223.                 insereListaClientes(viagem.listaReservas,cliente2);
  224.             }
  225.         }
  226.         if(fprintf(ficheiro,"*")){
  227.             for(j=0;j<viagem.numListaEspera;j++){
  228.                  if(fscanf(ficheiro,"%ld:",&cliente.cc)==1){
  229.                     cliente2 = procura_listaClientes2(listaclientes,cliente.cc);
  230.                     insereListaClientes(viagem.listaEspera,cliente2);
  231.                 }
  232.             }
  233.         }
  234.         insereListaViagens(novo,viagem);
  235.         fscanf(ficheiro,"\n");
  236.     }
  237.     fclose(ficheiro);
  238.     return novo;
  239.  
  240. }
  241. void savelistaClientes(listaClientes listaclientes){
  242.     FILE *ficheiro;
  243.     listaClientes p = listaclientes->next;
  244.     ficheiro = fopen("/Users/Goncalopinto/Desktop/ProjetoPPP/ProjetoPPP/AgenciaViagens/clientes.txt","w");
  245.     while(p!=NULL){
  246.         fprintf(ficheiro,"%s*%ld\n",p->cliente.nome,p->cliente.cc);
  247.         p = p->next;
  248.     }
  249.     fclose(ficheiro);
  250.  
  251. }
  252. void savelistaViagens(listaViagens listaviagens){
  253.     FILE *ficheiro;
  254.     listaViagens p = listaviagens->next;
  255.     listaClientes reservas;
  256.     listaClientes espera;
  257.     ficheiro = fopen("/Users/Goncalopinto/Desktop/ProjetoPPP/ProjetoPPP/AgenciaViagens/viagens.txt","w");
  258.     while(p!=NULL){
  259.             reservas = p->viagem.listaReservas;
  260.             reservas = reservas->next;
  261.             espera = p->viagem.listaEspera;
  262.             espera = espera->next;
  263.         fprintf(ficheiro,"%d*%s*%s*%d-%d-%d*%d:%d*%d*%d*%.2f*%d*%d*",p->viagem.codigo,p->viagem.origem,p->viagem.destino,p->viagem.data.dia,p->viagem.data.mes,p->viagem.data.ano,p->viagem.data.hora,p->viagem.data.minuto,p->viagem.duracao,p->viagem.capacidade,p->viagem.preco,p->viagem.numListaReservas,p->viagem.numListaEspera);
  264.         while(reservas!=NULL){
  265.             fprintf(ficheiro,"%ld:",reservas->cliente.cc);
  266.             reservas= reservas->next;
  267.         }
  268.         fprintf(ficheiro,"*");
  269.         while(espera!=NULL){
  270.             fprintf(ficheiro,"%ld:",espera->cliente.cc);
  271.             espera = espera->next;
  272.         }
  273.         fprintf(ficheiro,"\n");
  274.         p=p->next;
  275.     }
  276.     fclose(ficheiro);
  277. }
  278. void imprimeLista_viagens(listaViagens listaviagens){
  279.     listaViagens p;
  280.     p=listaviagens->next;
  281.     while(p!=NULL){
  282.         printf("Codigo: %d\nOrigem: %s\nDestino: %s\nCapacidade: %d\nDuracao: %d\nPreco: %.2f\nData: %d-%d-%d\nHoras: %d:%d\nListaReservas:%d\nListaEspera:%d\n\n\n",p->viagem.codigo,p->viagem.origem,p->viagem.destino,p->viagem.capacidade,p->viagem.duracao,p->viagem.preco,p->viagem.data.dia,p->viagem.data.mes,p->viagem.data.ano,p->viagem.data.hora,p->viagem.data.minuto,p->viagem.numListaReservas,p->viagem.numListaEspera);
  283.         p=p->next;
  284.     }
  285. }
  286. void imprimeListaClientes(listaClientes listaclientes){
  287.     listaClientes p;
  288.     p=listaclientes->next;
  289.     while(p!=NULL){
  290.         printf("%s %ld\n",p->cliente.nome,p->cliente.cc);
  291.         p=p->next;
  292.  
  293.     }
  294. }
  295. int confirma_cidades(char cidade[]){
  296.     int i;
  297.     fflush(stdin);
  298.     for(i=0; i < strlen(cidade); i++){
  299.         if((cidade[i]>=48) && (cidade[i]<=58)){
  300.             printf("Numeros nao sao validos.Introduza uma cidade valida por favor.\n");
  301.             return 0;
  302.         }
  303.  
  304.     }
  305.     return 1;
  306. }
  307.  
  308. Viagem criaViagem(){
  309.     Viagem viagem;
  310.     printf("Introduza o codigo da viagem:");
  311.     scanf("%d",&viagem.codigo);
  312.     fflush(stdin);
  313.     do{
  314.         printf("Introduzir origem:");
  315.         scanf("%s",viagem.origem);
  316.     }while(confirma_cidades(viagem.origem)!=1);
  317.     do{
  318.         printf("Introduzir destino:");
  319.         scanf("%s",viagem.destino);
  320.     }while(confirma_cidades(viagem.destino)!=1);
  321.     printf("\nData(dd-mm-aa):");
  322.     scanf("%d-%d-%d",&viagem.data.dia,&viagem.data.mes,&viagem.data.ano);
  323.     printf("\nHora(hh:mm):");
  324.     scanf("%d:%d",&viagem.data.hora,&viagem.data.minuto);
  325.     printf("\nCapacidade:");
  326.     scanf("%d",&viagem.capacidade);
  327.     printf("\nDuracao(minutos):");
  328.     scanf("%d",&viagem.duracao);
  329.     printf("\nPreco:");
  330.     scanf("%f",&viagem.preco);
  331.     viagem.numListaEspera = 0;
  332.     viagem.numListaReservas = 0;
  333.     viagem.listaEspera = criaListaClientes();
  334.     viagem.listaReservas = criaListaClientes();
  335.     return viagem;
  336. }
  337.  
  338. int confirma_codigo(char codigo[]){
  339.     int i;
  340.     fflush(stdin);
  341.     for(i=0; i < strlen(codigo); i++){
  342.         if((codigo[i]<48) || (codigo[i]>=58)){
  343.             printf("Caracteres nao sao validos.Introduza um numero por favor.\n");
  344.             return 0;
  345.         }
  346.  
  347.     }
  348.     return 1;
  349. }
  350.  
  351. void reservaViagem(listaClientes listaclientes, listaViagens listaviagens){
  352.     char codigo[20];
  353.     Cliente cliente = procura_listaClientes(listaclientes);
  354.     listaViagens p;
  355.     do{
  356.         printf("Codigo:");
  357.         scanf("%s",codigo);
  358.     }while(confirma_codigo(codigo)!=1);
  359.     p=listaviagens->next;
  360.     while(p!=NULL){
  361.         if(p->viagem.codigo==atoi(codigo) && p->viagem.capacidade>0){
  362.             p->viagem.capacidade--;
  363.             p->viagem.numListaReservas++;
  364.             insereListaClientes(p->viagem.listaReservas,cliente);
  365.  
  366.         }
  367.         else if(p->viagem.codigo==atoi(codigo) && p->viagem.capacidade==0){
  368.             p->viagem.numListaEspera++;
  369.             insereListaClientes(p->viagem.listaEspera,cliente);
  370.         }
  371.         p=p->next;
  372.     }
  373. }
  374.  
  375.  
  376. void imprimeReservasViagem(listaViagens listaviagens){
  377.     char codigo[20];
  378.     listaViagens p;
  379.     do{
  380.         printf("Codigo:");
  381.         scanf("%s",codigo);
  382.     }while(confirma_codigo(codigo)!=1);
  383.  
  384.     p=listaviagens->next;
  385.     while(p!=NULL){
  386.         if(p->viagem.codigo==atoi(codigo)){
  387.            imprimeListaClientes(p->viagem.listaReservas);
  388.         }
  389.         p=p->next;
  390.     }
  391. }
  392. void imprimeEsperaViagem(listaViagens listaviagens){
  393.     char codigo[20];
  394.     listaViagens p;
  395.     do{
  396.         printf("Codigo:");
  397.         scanf("%s",codigo);
  398.     }while(confirma_codigo(codigo)!=1);
  399.     p=listaviagens->next;
  400.     while(p!=NULL){
  401.         if(p->viagem.codigo==atoi(codigo)){
  402.            imprimeListaClientes(p->viagem.listaEspera);
  403.         }
  404.         p=p->next;
  405.     }
  406. }
  407. Cliente procura_listaClientes(listaClientes lista){
  408.     long cc;
  409.     Cliente cliente;
  410.     listaClientes atual = lista->next;
  411.     printf("Introduza o seu CC:");
  412.     scanf("%ld",&cc);
  413.     while (atual!=NULL){
  414.             if(atual->cliente.cc == cc){
  415.                 return atual->cliente;
  416.             }
  417.         atual = atual->next;
  418.     }
  419.     printf("Cliente nao existente!\n");
  420.     return cliente;
  421. }
  422.  
  423.  
  424. listaViagens procuraDestinto(listaViagens lista){
  425.     char destino[40];
  426.     int i =0;
  427.     listaViagens atual = lista->next;
  428.     listaViagens aux = criaListaViagens();
  429.     do{
  430.         printf("Introduzir destino:");
  431.         scanf("%s",destino);
  432.     }while(confirma_cidades(destino)!=1);
  433.     while (atual!=NULL){
  434.             if(strcmp(atual->viagem.destino,destino)==0){
  435.                 insereListaViagens(aux,atual->viagem);
  436.                 i=1;
  437.             }
  438.         atual = atual->next;
  439.     }
  440.     if(!i){
  441.             printf("Viagem nao existente!\n\n");
  442.     }
  443.     return aux;
  444. }
  445.  
  446. int comparadata(Data *data1,Data *data2){
  447.     if (data1->ano>data2->ano){
  448.         return 1;
  449.     }
  450.     else if(data1->ano<data2->ano){
  451.         return -1;
  452.     }
  453.     else{
  454.         if (data1->mes>data2->mes){
  455.             return 1;
  456.         }
  457.         else if (data1->mes<data2->mes){
  458.             return -1;
  459.         }
  460.         else if (data1->dia>data2->dia){
  461.             return 1;
  462.         }
  463.         else if(data1->dia<data2->dia){
  464.             return -1;
  465.         }
  466.         else if(data1->hora>data2->hora){
  467.             return 1;
  468.         }
  469.         else if(data2->hora<data2->hora){
  470.             return -1;
  471.         }
  472.         else if(data1->minuto>data2->minuto){
  473.             return 1;
  474.         }
  475.         else if(data2->minuto<data2->minuto){
  476.             return -1;
  477.         }
  478.         else{
  479.             return 0;
  480.         }
  481.  
  482.     }
  483. }
  484.  
  485.  
  486. void  inserirViagemOrdenado(listaViagens lista,Viagem viagem){
  487.    listaViagens novo;
  488.    listaViagens ant,act;
  489.    act = lista->next;
  490.    novo=(listaViagens)malloc(sizeof(No_Viagem));
  491.    novo->viagem=viagem;
  492.    ant=lista;
  493.    act=lista->next;
  494.    while(act!=NULL && comparadata(&(act->viagem.data),&(novo->viagem.data))==-1){
  495.         ant=ant->next;
  496.         act=act->next;
  497.  
  498.    }
  499.    ant->next=novo;
  500.    novo->next=act;
  501.  
  502. }
  503. listaViagens vigensDoCliente(listaViagens lista,listaClientes listaclientes){
  504.     Cliente cliente=procura_listaClientes(listaclientes);
  505.     listaViagens atual = lista->next;
  506.     listaViagens aux =criaListaViagens();
  507.     listaClientes reservas;
  508.     while (atual!=NULL){
  509.             reservas = atual->viagem.listaReservas;
  510.             reservas = reservas->next;
  511.             while(reservas!=NULL){
  512.                 if(reservas->cliente.cc == cliente.cc){
  513.                     inserirViagemOrdenado(aux,atual->viagem);
  514.                 }
  515.                 reservas = reservas->next;
  516.             }
  517.         atual = atual->next;
  518.     }
  519.     return aux;
  520.  
  521. }
  522. void cancelaEspera(listaViagens listaviagens,int codigo,Cliente cliente){
  523.     listaViagens p = listaviagens->next;
  524.     listaClientes ant,atual;
  525.     while(p!=NULL){
  526.         if(p->viagem.codigo == codigo){
  527.             ant = p->viagem.listaEspera;
  528.             atual = ant->next;
  529.             while(atual!=NULL&&atual->cliente.cc!=cliente.cc){
  530.                 atual=atual->next;
  531.                 ant=ant->next;
  532.             }
  533.             if(atual!=NULL){
  534.                 ant->next=atual->next;
  535.                 free(atual);
  536.             }
  537.         }
  538.  
  539.         p = p->next;
  540.     }
  541.  
  542.  
  543. }
  544. void colocaReserva(int codigo, listaViagens listaviagens){
  545.     listaViagens p = listaviagens->next;
  546.     listaClientes reservas,espera;
  547.     while(p!=NULL){
  548.         if(p-> viagem.codigo == codigo){
  549.             reservas = p->viagem.listaReservas;
  550.             espera = p->viagem.listaEspera;
  551.             espera = espera->next;
  552.             insereListaClientes(reservas,espera->cliente);
  553.             cancelaEspera(listaviagens,p->viagem.codigo,espera->cliente);
  554.             p->viagem.numListaEspera--;
  555.             p->viagem.numListaReservas++;
  556.         }
  557.         p=p->next;
  558.     }
  559.  
  560.  
  561. }
  562.  
  563. void cancelaReserva(listaClientes lista,listaViagens lista2){
  564.     char codigo[20];
  565.     Cliente cliente=procura_listaClientes(lista);
  566.     listaViagens atual = lista2->next;
  567.     listaClientes ant;
  568.     listaClientes atual2;
  569.     listaClientes espera;
  570.     do{
  571.         printf("Codigo da viagem que pretende cancelar:");
  572.         scanf("%s",codigo);
  573.     }while(confirma_codigo(codigo)!=1);
  574.     while (atual!=NULL){
  575.         if(atual->viagem.codigo == atoi(codigo)){
  576.             ant = atual->viagem.listaReservas;
  577.             atual2=ant->next;
  578.             espera = atual->viagem.listaEspera->next;
  579.             while(atual2!=NULL&&atual2->cliente.cc!=cliente.cc){
  580.                 atual2=atual2->next;
  581.                 ant=ant->next;
  582.  
  583.             }
  584.             if(atual2!=NULL){
  585.                 ant->next=atual2->next;
  586.                 free(atual2);
  587.                 if(espera == NULL){
  588.                     atual->viagem.capacidade++;
  589.                     atual->viagem.numListaReservas--;
  590.                 }
  591.                 else{
  592.                     colocaReserva(atual->viagem.codigo,lista2);
  593.                 }
  594.  
  595.             }
  596.         }
  597.             atual=atual->next;
  598.     }
  599. }
  600.  
  601. void menu(listaClientes listaclientes, listaViagens listaviagens){
  602.     char escolha[2],escolha2[2];
  603.     printf("\t\t\tPrincipios Programacao Procedimental\n\t\t\t\t  Agencia Viagens\n");
  604.     printf("\t\t\t    Copyright© Martins&Pinto\n\n\n\n");
  605.     printf(" \tMenu Inicial: \n\n\t1)Criar Cliente\n \t2)Criar Viagem\n \t3)Reservar Viagem\n \t4)Listar Clientes\n \t5)Listar Viagens\n \t6)Listar Reservas\n \t7)Salvar\n \t8)Viagens do cliente\n \t9)Cancelar reserva\n \t10)Listar Esperas\n \t11)Sair\n\n\tEscolha: ");
  606.     scanf("%s",escolha);
  607.     switch(atoi(escolha)){
  608.         case 1:
  609.                 limpaEcra();
  610.                 insereListaClientes(listaclientes,criaCliente(listaclientes));
  611.                 limpaEcra();
  612.                 menu(listaclientes,listaviagens);
  613.             break;
  614.         case 2: limpaEcra();
  615.                 insereListaViagens(listaviagens,criaViagem());
  616.                 limpaEcra();
  617.                 menu(listaclientes,listaviagens);
  618.             break;
  619.         case 3:
  620.             reservaViagem(listaclientes,listaviagens);
  621.             menu(listaclientes,listaviagens);
  622.             break;
  623.  
  624.         case 4:
  625.             imprimeListaClientes(listaclientes);
  626.             menu(listaclientes,listaviagens);
  627.             break;
  628.  
  629.         case 5:
  630.             limpaEcra();
  631.             printf("\n\n\tListar Viagens:\n\n\t1)Todas\n\t2)Por destino\n\n\tEscolha:");
  632.             scanf("%s",escolha2);
  633.             switch(atoi(escolha2)){
  634.                 case 1:             imprimeLista_viagens(listaviagens);
  635.                             break;
  636.                 case 2:
  637.                             imprimeLista_viagens(procuraDestinto(listaviagens));
  638.                             break;
  639.                 default: printf("Escolha invalida. Tente Novamente.\n");
  640.  
  641.             }
  642.             menu(listaclientes,listaviagens);
  643.             break;
  644.         case 6:
  645.                 imprimeReservasViagem(listaviagens);
  646.                 menu(listaclientes,listaviagens);
  647.                 break;
  648.         case 7:
  649.                 savelistaClientes(listaclientes);
  650.                 savelistaViagens(listaviagens);
  651.                 menu(listaclientes,listaviagens);
  652.                 break;
  653.  
  654.         case 8:
  655.             imprimeLista_viagens(vigensDoCliente(listaviagens,listaclientes));
  656.             menu(listaclientes,listaviagens);
  657.             break;
  658.         case 9:
  659.              cancelaReserva(listaclientes,listaviagens);
  660.              menu(listaclientes,listaviagens);
  661.              break;
  662.         case 10:
  663.                 imprimeEsperaViagem(listaviagens);
  664.                 menu(listaclientes,listaviagens);
  665.                 break;
  666.         case 11:
  667.                 exit(0);
  668.         default:
  669.                 printf("\tEscolha invalida.Tente Novamente.\n\n");
  670.                 menu(listaclientes,listaviagens);
  671.         break;
  672.     }
  673. }
  674.  
  675. int main()
  676. {
  677.     listaClientes listaclientes = init_listaClientes();
  678.     listaViagens listaviagens = init_listaViagens(listaclientes);
  679.     menu(listaclientes,listaviagens);
  680.     destroi_listaClientes(listaclientes);
  681.     destroi_listaViagens(listaviagens);
  682.     return 0;
  683. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement