TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

ESTRUTURAS DE DADOS UNIP - UNIVERSIDADE PAULISTA

Por:   •  12/5/2015  •  Trabalho acadêmico  •  1.675 Palavras (7 Páginas)  •  594 Visualizações

Página 1 de 7

 UNIVERCIDADE PAULISTA-UNIP[pic 1]

CAMPUS SÃO JOSÉ DO RIO PRETO-JK

ICET – Instituto de Ciências Exatas e Tecnológicas

Trabalho

de

Estruturas de Dados

DISCENTES:

MATHEUS AUGUSTO DA SILVA- (C10CCC-3)

MATHEUS OLIVEIRA DOURADO-(C14GCB-2)

GABRIEL CESAR ROSA FERREIRA(C00258-5)

THIAGO LUIZ DE MORAES(C12119-3)

DOCENTE: MICHAEL PONTES

Turma CC3P

Período : NOTURNO

O trabalho de Estrutura de Dados se resume em um cadastro de filmes usando a linguagem de programação C++.

“1” - nome, gênero, formato do vídeo, ano de lançamento, um código para o filme cadastrado.

[pic 2]

“2” - “Listar”, mostra na tela os filmes já cadastrados atualmente.

[pic 3]

“3” - informa ao usuário para digitar um nome de um filme já cadastrado anteriormente (obs: o nome digitado tem que estar de acordo com o nome do filme cadastrado, caso o nome do filme estiver digitado errado, o filme não será encontrado).

[pic 4]

“4” - esta opção exclui o registro escolhido já cadastrado.

[pic 5]

“5” - esta opção faz com que o usuário escolha e altere algum cadastrado.

[pic 6]

“6” - sair do programa salvando automaticamente os registros, quando o usuário abrir o programa novamente, os registros não são apagados do banco de dados do programa.

“7” – digita a opção escolhida.

                                             CODIGOS

#include

#include

#include

struct cliente {

int codigo, lancamento;

char nome[35], genero[35], midia[35];

struct cliente *proximo;

} *inicio, *ultimo, *novo; // cria 3 ponteiros q iram apontar para a struct.

typedef cliente client;

int cadastrado(char str[35], int k);

int inserir()

{

int j = 0;

char nome2[35];

client p; // crio um ponteiro dentro da função inserir q aponta para a struct(escopo dele se resume a essa funcao,q uandoe la eh finalizada, ele deixa de existir, ao contrario dos outros 3 (inicio, ultimo e novo).

novo = (client *)malloc(sizeof(client)); // armazena espaço na memória para a nova struct.

if(novo == NULL) {

printf("Erro ao tentar alocar memoria.\n");

return 0;

}

printf("\nDigite o codigo do Filme: ");

scanf("%d", &novo->codigo); //copia string q foi entrada pelo usuário no campo nome da struct apontada por novo(cliente)

printf("\nDigite o nome do novo Filme: ");

scanf("%s", &novo->nome); // atriubui ao campo codigo da struct client o valor q foi digitado pelo usuário

printf("\nDigite a Genero do Filme : ");

scanf("%s", &novo->genero);

printf("\nDigite o Tipo de Midia: ");

scanf("%s", &novo->midia);

printf("\nDigite o ano de Lancamento: ");

scanf("%d", &novo->lancamento);

if(cadastrado(novo->nome, novo->codigo) == 1){

printf("Erro ao tentar cadastrar Filme.\nCodigo ou nome já estão em uso.\n");

return 0;

}

novo->proximo = NULL; // garante q o campo proximo da struct client esteja NULL

if(inicio == NULL) /* verifica se o ponteiro para o primeiro elemento da lista foi setado

caso esse if seja verdadeiro, então significa q o ponteiro para a

'cabeça'(primeiro elemento) não foi setado, sendo assim, esses

dados q foram inseridos ainda agora passam a ser apontados pelo

ponteiro(do tpw struct) *inicio(q tem escopo global). */

{

inicio = novo; // atribui um valor para ser o primeiro elemento da lista.

ultimo = novo; // atribui para q o *ultimo aponte para inicio;

}

else // caso o ponteiro inicio nào seja null, logo significa q inicio jah está apontando para

// o primeiro elemento da lista.

{

ultimo->proximo = novo; /* caso esteja sendo a segunda vez q vc chamou essa função

o ponteiro ultimo, continua apontando para a mesma struct

q o ponteiro inicio apontada, sendo assim, mudamos o valor

da primeira struct q foi criar para apontar para a nova struct

q acabou se ser criada

*/

novo->proximo = NULL; /* garantimos q a struct q acabo de ser criada vai apontar

para um valor null, indicando ser o ultimo elemento da lista

*/

ultimo = novo; // as ultimas informacoes digitas são atribuidas ao ponteiro ultimo q tem escopo global,,

}

return 1;

}

int limparmemoria()

{

client *p, *p2;

p2 = p = inicio;

if( inicio != NULL ){ // so liberar se tiver apontando para algum lugar(conhecido(struct))

do {

p2 = p;

p = p->proximo; // aponta para o segundo elemento;

free(p2); // libera posição q p2 está usando

}while(p != NULL);

}

exit(0);

}

int listar()

{

client *p; //cria um ponteiro para a struct cliente

p = inicio; //o ponteiro p agora aponta para o mesmo local q o *inicio está apontando.

if(inicio == NULL){ // se algum usuário jah foi adicionado

printf("Nao há Filme adicionaros\n");

}

else

{

printf("\n\n*** LISTANDO FILMES CADASTRADOS  ***\n");

...

Baixar como (para membros premium)  txt (12.1 Kb)   pdf (179.3 Kb)   docx (68 Kb)  
Continuar por mais 6 páginas »
Disponível apenas no TrabalhosGratuitos.com