Escolar Documentos
Profissional Documentos
Cultura Documentos
Trabalho Prático
Sistema de Gerenciamento Cultural
Dener Alves
Ítalo Magalhães
Lucas Monteiro
Sumário
1. Introdução …................................... 2
2. Implementação …........................... 3
3. Analise de Complexidade …..........11
4. Testes ….......................................... 13
5. Conclusão …................................... 14
6. Referências …................................. 15
Universidade Federal de São João del-Rei
Departamento de Ciência da Computação - DCOMP
1. Introdução
Este trabalho tem como objetivo desenvolver uma solução para o problema de
Sistema de Gerenciamento Cultural para a cidade de São João del Rei, com objetivo de
organizar melhor tais eventos,na qual uma pessoa participa. A solução proposta foi
implementada utilizando-se de Tipos Abstratos de Dados(TAD) ARRAYS e STRUCTS para
a manipulação da Agenda.
A implementação do algoritmo é baseada em conceitos de ordenação utilizando
vetores estáticos,devido a maior facilidade de implementação. Apesar de ser mais
trabalhoso manipular arrays estáticos, o trabalho já estipulava uma certa quantidade de
agendas, além de permitir ao programador definir o número de compromisso que cada
agenda iria possuir.
Universidade Federal de São João del-Rei
Departamento de Ciência da Computação - DCOMP
2.Implementação
Nesta secção destina-se a esclarecer a lógica implementada no programa e todas as
estratégias adotadas. Primeiramente traçamos uma metodologia de programar e testar,
acada parte do programa finalizada, eram realizados uma série de testes para a verificação
do funcionamento do sistema.
Estruturas de Dados
1.Vetor Agendas
Foi criado um vetor denominado “Agendas” contendo 5 agendas, uma para cada
usuário como proposto no Trabalho. Em cada posição do Vetor seria salvo um
Espetáculo composto por uma estrutura denominada “t_espetaculo”.Ao todo cada
agenda possui 12 espetáculos, totalizando 60 espetáculos nas 5 agendas. A figura
abaixo explicita melhor o Sistema.
2.Estrutura Agenda
}t_agenda;
3.Estrutura Espetáculo
}t_espetaculo;
4.Funções e Procedimentos
4.1 AGENDA:
Universidade Federal de São João del-Rei
Departamento de Ciência da Computação - DCOMP
4.1.1) int criaAgenda (t_agenda *agenda, int id, char *nome, int ano)
Cria uma nova agenda com o nome do usuário e o ano da agenda e não retorna
nada.
4.1.2) int recuperaAgenda (t_agenda *agenda, int dia, int mes, int ano)
É passado uma data e também a agenda para função,ela percorre em cada agenda
os 12 espetáculos ou (Compromissos), e retorna a partir de uma data digitada pelo
usuário a quantidade de compromissos que esta na Agenda.
4.1.3) int insereCompromisso (t_agenda *agenda, int tipo, int dia, int mes,
int ano,int hora, int min, int duracao, float valor, char *nome)
“RetornaStatus” para ver quais status está com a opção ”Deu Ruim”,após isso ela
atribui prioridade aos compromissos que iniciam primeiro.
Ela retorna o numero de espetáculos que possui “status 0=DEU RUIM” ,ou seja os
4.1.11)imprimeCustoTotal()
4.2 ESPETÁCULO:
4.2.1) int inicializaEspetaculo (t_espetaculo *espetaculo, int tipo, int dia, int
mes, int ano, int hora, int min, int duracao, float valor, char *nome)
4.3)AUXILIARES
As funções auxiliares foram funções que foram utilizadas para ajudar a manipular as
funções que compõem “ESPETACULO.C” e “AGENDA.C”.
Essa função recebe a agenda e zera todos os campos da agenda antes de criar uma
agenda,fazendo com que na criação de uma agenda não fique guardado lixo de
memória no vetor.
Universidade Federal de São João del-Rei
Departamento de Ciência da Computação - DCOMP
com que quando uma agenda for criada, na opção “Digite um ano para agenda” ela
não armazene um lixo de memória.
Esta função tem objetivo de fazer com que o usuário digite um id válido para
agenda,fazendo isso quando for solicitado uma das outras opções que necessite do
“id” o usuário não corre o risco de digitar algo inválido.
• TEATRO 1
• SHOW 2
• CINEMA 2
• EVENTO 3
Ela troca os valores de um espetáculo com outro na qual ela é chamada dentro da
função “ResolveConflito”.
5.Programa Principal
3.Análise de Complexidade
A análise de complexidade será feita em função da variável n que representa o
número de elementos do vetor.
3.1.1) imprimeEspetaculo
Essas funções possuem apenas um loop que executa n vezes. Em cada interação
são executados apenas comandos de impressão, que tem ordem de complexidade
constante. Logo O(n).
3.1.3) criaAgenda
3.1.4)imprimirDuracao,imprimirHorario,imprimirTipo,imprimirStatus, imprim
eCompromissosCancelados,imprimeCompromissosACumprir,
retornaNCompromissos .
3.1.5) recuperaAgenda
3.2.1)insereCompromisso
3.2.2)removeCompromisso
também o custo desses compromissos,isso faz com que ela possui uma ordem de
complexidade O(n)=n na qual n é a quantidade de compromissos cadastrados.
3.2.5)retornaValorIngresso,temConflito,atribuiStatus,imprimeEspetaculo, zer
arAgenda,verificaIDagenda,zeraAno_ag,verificaIDagenda,verificaAno,cadastr
arDuracao,inserePrioridade,trocaValores,converteTempo,trocaStatus,
verificaCompromisso
4.Testes
5.Conclusão
6-Referências