• Nenhum resultado encontrado

UNIVERSIDADE DO TOCANTINS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PRÁTICA EM PROGRAMAÇÃO DE SISTEMAS ESTUDO DE CASO I

N/A
N/A
Protected

Academic year: 2021

Share "UNIVERSIDADE DO TOCANTINS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PRÁTICA EM PROGRAMAÇÃO DE SISTEMAS ESTUDO DE CASO I"

Copied!
10
0
0

Texto

(1)

ESTUDO DE CASO I

Um sistema de gestão patrimonial permite relacionar todos os bens de uma organização a fim de garantir sua integridade patrimonial. Esse tipo de sistema tem como finalidade automatizar o controle de todos os bens permanentes de uma organização.

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. Além disso, redigir um texto descrevendo sucintamente (máximo de 300 palavras) quais as técnicas das disciplinas do primeiro ano do curso foram utilizadas neste estudo de caso.

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.

(2)

ANEXO I

#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;

(3)

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; }

(4)

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; } }

(5)

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)

(6)

{

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'); }

(7)

ANEXO II

Descrição do arquivo de entrada

O arquivo de entrada organiza os dados com uso de tag de formatação (marcação). Cada tag é delimitada pelos sinais “<” para abertura da tag e “>” para seu fechamento. Para toda tag de abertura obrigatoriamente deve existir uma tag de fechamento. A tag de fechamento é caracterizada com o uso do sinal “/” logo após a abertura da tag como, por exemplo, “</ ... >”.

Entre cada tag de abertura e fechamento há a informação referente ao que representa a tag, como por exemplo, “<TAG>Informacao</TAG>”.

No arquivo de entrada há uma tag principal que representa um computador, ou seja, a tag “<computador>” que é fechada pela marcação “</computador>”. Essa marcação principal possui três informações principais que caracterizam um computador, que são: hardware, software e logística.

A caracterização do hardware do computador é descrita a seguir:

A marcação processador possui os campos para sua caracterização, como fabricante, onde deve delimitar a informação do nome do fabricante do processador do computador em questão (por exemplo: Intel). Também possui a marcação que delimita o modelo do processador (por exemplo: Core 2 Duo). E, por fim, a marcação da informação de freqüência do clock do processador (por exemplo: 2.5).

A tag memoria é destinada à delimitação da informação referente à quantidade de memória RAM em megabytes existente no computador (por exemplo: 2048).

A marcação hd delimita a informação referente à quantidade de memória de armazenamento em gigabytes existente no computador (por exemplo: 250).

A marcação opcionais_hardware possui dois campos, uma tag nome com a função de delimitar o nome de um dispositivo adicional existente no computador (por exemplo: Placa de video) e o campo descricao que contém a descrição do dispositivo (por

(8)

exemplo: NVIDIA 9600 GT). Um mesmo computador pode possuir quantas marcações opcionais_hardware forem necessárias, inclusive nenhuma.

A caracterização do software instalado no computador é descrita a seguir:

O campo sistema_operacional possui as marcações nome, que indica o nome do Sistema Operacional instalado no computador (por exemplo: Windows); a tag versao delimita a versão do sistema operacional instalado (por exemplo: Vista), o campo data_instalacao contém o dia/mês/ano da instalação do computador e, por fim, o campo senha que expressa a senha do usuário administrador do sistema operacional instalado.

A marcação aplicativos é destinada para indicar os aplicativos instalados no computador. Um computador pode possuir nenhum, um ou vários aplicativos instalados. Cada aplicativo deve possuir um nome, campo nome (por exemplo: Br.office); a versão do software através do campo versao (por exemplo: 3.0); e a data de instalação do aplicativo, através do campo data_instalacao que representa dia/mês/ano.

A caracterização do local onde o computador está sendo utilizado e seu responsável é realizada através do campo logistica, que por sua vez possui as tag setor, que informa de fato o setor/departamento da organização onde o computador está alocado; o campo responsavel que delimita o nome do responsável pelo equipamento (pessoa física). E, por fim, o campo patrimonio que informa o identificador do patrimônio do computador (um número inteiro).

(9)

ANEXO III

<computador> <hardware> <processador> <fabricante>Intel</fabricante> <modelo>Core 2 Duo</modelo> <clock>2.5</clock> </processador> <memoria>2048</memoria> <hd>250</hd> <opcionais> <nome>Placa de video</nome> <descricao>NVIDIA 9600 GT</descricao> </opcionais> <opcionais> <nome>Placa de captura</nome> <descricao>Pinacle</descricao> </opcionais> <opcionais> <nome>Webcam</nome> <descricao>Microsoft 1.3 MP</descricao> </opcionais> </hardware> <software> <sistema_operacional> <nome>Microsoft Windows</nome> <versao>Vista</versao> <data_instalacao> <dia>16</dia> <mes>10</mes> <ano>2008</ano> </data_instalacao> <senha>123mudar</senha> </sistema_operacional> <aplicativos> <nome>Br.office</nome> <versao>3.0</versao> <data_instalacao> <dia>16</dia> <mes>10</mes> <ano>2008</ano>

(10)

</data_instalacao> </aplicativos> <aplicativos> <nome>Adobe Reader</nome> <versao>9.0</versao> <data_instalacao> <dia>17</dia> <mes>10</mes> <ano>2008</ano> </data_instalacao> </aplicativos> </software> <logistica> <setor>DTIC</setor> <responsavel>Joana Maria</responsavel> <patrimonio>20333</patrimonio> </logistica> </computador>

Referências

Documentos relacionados

Nesse sentido, Ridola (2014) afirma o Estado possui como dever, perante a sociedade, a criação de condições que permitam o devido exercício da dignidade.. Entretanto,

Mais uma característica importante do parque habitacional português prende-se com a pouca atractividade do mercado de arrendamento, que pode ser explicada pela falta de procura

A presente dissertação é desenvolvida no âmbito do Mestrado Profissional em Gestão e Avaliação da Educação (PPGP) do Centro de Políticas Públicas e Avaliação

De acordo com o Consed (2011), o cursista deve ter em mente os pressupostos básicos que sustentam a formulação do Progestão, tanto do ponto de vista do gerenciamento

Muito embora, no que diz respeito à visão global da evasão do sistema de ensino superior, o reingresso dos evadidos do BACH em graduações, dentro e fora da

No entanto, para aperfeiçoar uma equipe de trabalho comprometida com a qualidade e produtividade é necessário motivação, e, satisfação, através de incentivos e política de

O que prevalece é a busca de lucros cada vez maiores, não importando que para isso ela tenha de subornar, colocar centenas de lobistas no Congresso de seus países,

O objetivo deste trabalho foi validar a aplicação do Female Sexual Function Index (FSFI) em uma amostra de mulheres de casais inférteis que desejam engravidar e de mulheres