none
Conclusao do Script RRS feed

  • Pergunta

  •  

    Boa noite pessoal !!!

     

    Estou precisando concluir o cod abaixo que foi solicitado no trabalho, e sou mais do pricipiante, por favor alguem pode me ajudar ?

     

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>

    #define TAM_STRING 30

    FILE *entrada;

    typedef struct
    {
        int dia;
        int mes;
        int ano;       
    } data;

    typedef struct opcionais_hardware
    {
        char nome[TAM_STRING];
        char descricao[TAM_STRING*2];
        struct opcionais_hardware *proximo;
    } opcionais_hardware;

    typedef struct aplicativos
    {
        char nome[TAM_STRING];   
        char versao[TAM_STRING/2];
        data data_instalacao;
        struct aplicativos *proximo;
    } aplicativos;

    typedef struct
    {
        char fabricante[TAM_STRING/2];
        char modelo[TAM_STRING/2];
        float clock;       
    } processador;

    typedef struct
    {
        processador cpu;
        int memoria;
        int hd;
        opcionais_hardware *op_hw;   
    } hardware;

    typedef struct
    {
        char nome[TAM_STRING];
        char versao[TAM_STRING/2];
        data data_instalacao;
        char senha[TAM_STRING];
    } sistema_operacional;

    typedef struct
    {
        sistema_operacional so;
        aplicativos *app;
    } software;

    typedef struct
    {
        char setor[TAM_STRING];
        char responsavel[TAM_STRING];
        int patrimonio;       
    } logistica;

    typedef struct computador
    {
        hardware hw;
        software sw;
        logistica logt;
    } computador;

    typedef struct no_computador
    {
        computador *pc;
        struct no_computador *proximo;
    } no_computador;

    typedef struct lista
    {
        no_computador *inicio;
        no_computador *fim;
    } lista;

    lista *lerArquivo(char endereco[])
    {
       lista *l=NULL;
      
       //implemente aqui

       return l;
    }

    void escreverSaida1(lista *l,char endereco[],int memoria)
    {

       //implemente aqui
      
    }

    void escreverSaida2(lista *l,char endereco[],char nome[],char versao[])
    {

       //implemente aqui

    }

    void imprimir(lista *l)
    {
         no_computador *aux=l->inicio;
         while (aux!=NULL)
         {
         printf("fabricante: %s\n",aux->pc->hw.cpu.fabricante);
         printf("modelo: %s\n",aux->pc->hw.cpu.modelo);
         printf("clock: %f\n",aux->pc->hw.cpu.clock);    
         printf("memoria: %d\n",aux->pc->hw.memoria);
         printf("hd: %d\n",aux->pc->hw.hd);
         opcionais_hardware *aux1=aux->pc->hw.op_hw;
         while (aux1!=NULL)
         {
             printf("opcional: %s %s\n",aux1->nome,aux1->descricao);    
             aux1=aux1->proximo;
         }
         printf("s.o.: %s\n",aux->pc->sw.so.nome);    
         printf("versao: %s\n",aux->pc->sw.so.versao); 
         printf("instalacao: %d/%d/%d\n",aux->pc->sw.so.data_instalacao.dia,aux->pc->sw.so.data_instalacao.mes,aux->pc->sw.so.data_instalacao.ano);    
         printf("senha: %s\n",aux->pc->sw.so.senha); 
         aplicativos *aux2=aux->pc->sw.app; 
         while (aux2!=NULL)
         {
             printf("aplicativos: %s %s %d/%d/%d\n",aux2->nome,aux2->versao,aux2->data_instalacao.dia,aux2->data_instalacao.mes,aux2->data_instalacao.ano);    
             aux2=aux2->proximo;
         }
         printf("setor: %s\n",aux->pc->logt.setor);     
         printf("responsavel: %s\n",aux->pc->logt.responsavel); 
         printf("patrimonio: %d\n\n",aux->pc->logt.patrimonio);           
         aux=aux->proximo;
         }
    }

    void menu()
    {
        system("cls");
        printf("\n  |------------------------------------------------|\n");
        printf("  |                                                |\n");   
        printf("  |            UNIVERSIDADE              |\n");
        printf("  |                                                |\n");
        printf("  |------------------------------------------------|\n");
        printf("  |                                                |\n");
        printf("  |    <1> Abrir \"entrada.txt\"                     |\n");   
        printf("  |    <2> Imprimir                                |\n");   
        printf("  |    <3> Relatorio 1 (\"saida1.txt\")              |\n");   
        printf("  |    <4> Relatorio 2 (\"saida2.txt\")              |\n");   
        printf("  |    <5> Sair                                    |\n");   
        printf("  |                                                |\n");   
        printf("  |------------------------------------------------|\n\n");   
        printf("\t\tOpcao: ");   
    }

    int main()
    {
        lista *l=NULL;
        char opcao;
        do
        {
            menu();
            fflush(stdin);
            opcao=getchar();
            switch(opcao)
            {
                 case '1':
                     l=lerArquivo("entrada.txt");
                     system("cls");
                     printf("\n\tArquivo aberto com sucesso!\n\n\n");
                     system("pause");
                     break;
                 case '2':
                     system("cls");
                     if (l!=NULL)
                         imprimir(l);
                     else
                         printf("\n\tLista vazia!\n\n\n");
                     system("pause");
                     break;
                 case '3':
                     system("cls");
                     if (l!=NULL)
                     {
                         int memoria;
                         printf("\n\n\tMemoria menor que : ");
                         scanf("%d",&memoria);
                         escreverSaida1(l,"saida1.txt",memoria);
                         printf("\n\tRelatorio 1 emitido com sucesso!\n\n\n");
                     }
                     else
                         printf("\n\tNao foi possivel emitir relatorio 1!\n\n\n");                 
                     system("pause");
                     break;
                 case '4':
                     system("cls");
                     if (l!=NULL)
                     {
                         char nome[TAM_STRING];
                         char versao[TAM_STRING/2];
                         printf("\n\n\tNome : ");
                         fflush(stdin);
                         fgets(nome,TAM_STRING,stdin);
                         nome[strlen(nome)-1]='\0';
                         printf("\n\tVersao : ");
                         fflush(stdin);
                         fgets(versao,TAM_STRING/2,stdin);
                         versao[strlen(versao)-1]='\0';
                         escreverSaida2(l,"saida2.txt",nome,versao);
                         printf("\n\tRelatorio 2 emitido com sucesso!\n\n\n");
                     }
                     else
                         printf("\n\tNao foi possivel emitir relatorio 2!\n\n\n");
                     system("pause");
                     break;
                 default:                        
                     if (opcao!='5')
                         continue;
            }
        } while(opcao!='5');
    }

     

    quinta-feira, 6 de novembro de 2008 00:41

Todas as Respostas