wisnael
(usa Outra)
Enviado em 30/10/2008 - 23:02h
Por gentileza alguém poderia me dar uma luz nessa questão?
Não estou conseguindo fazer esse trabalho pra o 2° período em Analise , e preciso entregar semana que vem dia 6 .
TAREFA Desenvolver em linguagem C, seguindo estrutura do código fonte do anexo I, um sistema para gerenciar o patrimônio de computadores de uma organização.
ENTRADA Consiste em um arquivo texto com o nome entrada.txt contendo uma linguagem de marcação textual descrita no anexo II. No anexo III há um exemplo de arquivo de entrada. SAÍDA 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.
#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 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 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\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]='{TTEXTO}';
printf("\n\tVersao : ");
fflush(stdin);
fgets(versao,TAM_STRING/2,stdin);
versao[strlen(versao)-1]='{TTEXTO}';
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');
}
OBRIgado desde já !!!