Sou iniciante na Linguagem C e já pediram coisa da pesada (eu acho!!!)
É o seguinte gente o Professor pediu que criássemos um sistema de Gestão Patrimonial que permite relacionar todos os bens de uma organização a fim de garantir a sua integridade... e por ai vai!!!!!!!!!
Temos que desenvolver esse projeto em C seguindo a estrutura do código fonte do Anexo I.
No projeto tem um arquivo "entrada.txt (que eu não sei se é pra gente fazer manualmente ou o Programa do Anexo I faz sozinho). Enfim, além desse arquivo "entrada.txt" tem os arquivos "saida1.txt" e "saida2.txt"
A saída consiste na emissão de relatórios, descritos a seguir:
Relatório 1: arquivo texto com o nome saida1.txt contendo somente o número de patrimônio dos computadores (um por linha) que satisfaçam à condição de memória RAM inferior a um valor informado pelo usuário.
Relatório 2: arquivo texto com o nome saida2.txt contendo somente o número de patrimônio dos computadores (um por linha) que satisfaçam à condição de possuírem um aplicativo com uma determinada versão, dados informados pelo usuário.
E ESSA É A LINGUAGEM PRONTA FALTANDO APENAS A MINHA IMPLEMENTAÇÃO QUE EU NÃO ENTENDI NADA O QUE DEVO FAZER.
SE ALGUÉM PUDER ME AJUDAR, AGRADEÇO MUITO!!! E SE NÃO FOR MUITO EXPLICAR também O QUE NÃO ENTENDI.
Pergunta
Guest Clebson
Oi Gente!!!
Sou iniciante na Linguagem C e já pediram coisa da pesada (eu acho!!!)
É o seguinte gente o Professor pediu que criássemos um sistema de Gestão Patrimonial que permite relacionar todos os bens de uma organização a fim de garantir a sua integridade... e por ai vai!!!!!!!!!
Temos que desenvolver esse projeto em C seguindo a estrutura do código fonte do Anexo I.
No projeto tem um arquivo "entrada.txt (que eu não sei se é pra gente fazer manualmente ou o Programa do Anexo I faz sozinho). Enfim, além desse arquivo "entrada.txt" tem os arquivos "saida1.txt" e "saida2.txt"
A saída consiste na emissão de relatórios, descritos a seguir:
Relatório 1: arquivo texto com o nome saida1.txt contendo somente o número de patrimônio dos computadores (um por linha) que satisfaçam à condição de memória RAM inferior a um valor informado pelo usuário.
Relatório 2: arquivo texto com o nome saida2.txt contendo somente o número de patrimônio dos computadores (um por linha) que satisfaçam à condição de possuírem um aplicativo com uma determinada versão, dados informados pelo usuário.
E ESSA É A LINGUAGEM PRONTA FALTANDO APENAS A MINHA IMPLEMENTAÇÃO QUE EU NÃO ENTENDI NADA O QUE DEVO FAZER.
SE ALGUÉM PUDER ME AJUDAR, AGRADEÇO MUITO!!! E SE NÃO FOR MUITO EXPLICAR também O QUE NÃO ENTENDI.
LÁ VAI O CÓDIGO FONTE O PROGRAMA:
#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"); printf(" | |\n"); printf(" | UNIVERSIDADE DO TOCANTINS |\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\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]=''; printf("\n\tVersao : "); fflush(stdin); fgets(versao,TAM_STRING/2,stdin); versao[strlen(versao)-1]=''; 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'); }
Editado por kuroiAdicionar tag CODE
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.