bug no inserir

1. bug no inserir

Robson Santana
robgolmais

(usa Outra)

Enviado em 12/06/2011 - 12:43h

Olá boa tarde, gostaria de saber se tem como alguém me ajudar a consertar o inserir uma vez que não está correndo a lista de buscar e somando as vagas.


#include <iostream>
#include<cstdlib>
using namespace std;

struct vagas {

string nomeEmpresa;
int numVagas;
string cursos;
};

struct candidatos {

string nomeCandidato;
string curso;
};

struct geral {

string nomeEmpresa;
string nomeCandidatos;
};


struct lista_vagas {
struct lista_vagas *ant;
vagas dadov;
struct lista_vagas *prox;
};

struct lista_cand {
struct lista_cand *ant;
candidatos dadoc;
struct lista_cand *prox;
};

struct lista_geral {
struct lista_geral *ant;
geral dadog;
struct lista_geral *prox;
};




lista_vagas * inicia_lista_vagas (void)
{
return NULL;
}

int lista_vazia (lista_vagas *lv)
{
if (lv == NULL)
return 1;
else
return 0;
}

lista_cand * inicia_lista_cand (void)
{
return NULL;
}

int lista_vazia (lista_cand *lc)
{
if (lc == NULL)
return 1;
else
return 0;
}

lista_geral * inicia_lista_geral (void)
{
return NULL;
}

int lista_vazia (lista_geral *lg)
{
if (lg == NULL)
return 1;
else
return 0;
}



lista_vagas * inserir (lista_vagas *lv, vagas elementov)
{
lista_vagas *n, *p;
int achou;

if (lista_vazia(lv) == 1)

{
n = new lista_vagas;
n->dadov.nomeEmpresa = elementov.nomeEmpresa;
n->dadov.cursos = elementov.cursos;
n->dadov.numVagas = elementov.numVagas;
n->ant = NULL;
n->prox = NULL;


cout << " " << endl;
cout << "Cliente " << elementov.nomeEmpresa << " inserido na lista" << endl;
system("pause");
return n;
}
else
{
p = lv;
achou = 0;
{
while (achou == 0)
{

if (p->dadov.nomeEmpresa == elementov.nomeEmpresa && p->dadov.cursos == elementov.cursos)
p = p->prox;
achou = 1;


if (p->prox == NULL)

achou = 2;


}


if (achou==1)

p->dadov.numVagas = (p->dadov.numVagas + elementov.numVagas);
{

cout << " " << endl;
cout << "Novas vagas no curso de " << elementov.cursos << " acrescentadas na Empresa " << elementov.nomeEmpresa << "." << endl;


system("pause");
return lv;

}


if (achou==2)

{

n = new lista_vagas;
n->dadov.nomeEmpresa = elementov.nomeEmpresa;
n->dadov.cursos = elementov.cursos;
n->dadov.numVagas = elementov.numVagas;

n->prox = p->prox;
p->prox= n->ant;
n->ant = p;
p->prox = n;



cout << " " << endl;
cout << "Empresa " << elementov.nomeEmpresa << " cadastrada com sucesso." << endl;
system("pause");
return lv;

}

}
}

}

void exibir (lista_vagas *lv)
{
lista_vagas *p;

p = lv;
if (lista_vazia(p) == 1)
cout << "Lista vazia" << endl;
else
while (p != NULL)
{
cout << "Nome da empresa: " << p->dadov.nomeEmpresa << endl;
cout << "Cursos : " << p->dadov.cursos << endl;
cout << "Vagas : " << p->dadov.numVagas << endl;
cout << "-----------------------------------------------------------" << endl;
p = p->prox;

}

system("pause");
}


lista_vagas * excluir (lista_vagas *lv, string nomeEmpresa, int numVagas, int opcao)
{
lista_vagas *p, *antes;

antes = NULL;
p = lv;

if (opcao == 1)
while (p != NULL && p->dadov.numVagas != numVagas)
{
antes = p;
p = p->prox;
}
else
while (p != NULL && p->dadov.nomeEmpresa != nomeEmpresa)
{
antes = p;
p = p->prox;
}

if (p == NULL)
{
if (opcao == 1)
cout << "Cliente com " << numVagas << " cadastradas" << endl;
else
cout << "Cliente " << nomeEmpresa << " nao encontrado" << endl;
system("pause");
return lv;
}
else
if (antes == NULL)
lv = p->prox;
else
{
antes->prox = p->prox;
if (p->prox != NULL)
p->prox->ant = antes;
delete p;
cout << "Cliente " << nomeEmpresa << " exlcuido" << endl;
system("pause");
return lv;
}

}

lista_cand *inserirCandidato (lista_cand *lc, candidatos elementoc)
{
lista_cand *n, *p;

n = new lista_cand;
n->dadoc.nomeCandidato = elementoc.nomeCandidato;
n->dadoc.curso = elementoc.curso;
n->ant = NULL;
n->prox = NULL;

if (lista_vazia(lc) == 1)
{
cout << "Cliente " << elementoc.nomeCandidato << " inserido na lista" << endl;
system("pause");
return n;
}

}



void exibirCandidato (lista_cand *lc)
{
lista_cand *p;

p = lc;
if (lista_vazia(p) == 1)
cout << "Lista vazia" << endl;
else
while (p != NULL)
{
cout << "Nome do Candidato: " << p->dadoc.nomeCandidato << endl;
cout << "Curso : " << p->dadoc.curso << endl;
cout << "-----------------------------------------------------------" << endl;
p = p->prox;

}

system("pause");
}




lista_cand *excluirCandidato (lista_cand *lc, candidatos elementoc)
{
lista_cand *p, *antes;

antes = NULL;
p = lc;


while (p != NULL && p->dadoc.nomeCandidato != elementoc.nomeCandidato)
{
antes = p;
p = p->prox;

}

if (p == NULL)
{
cout << "Candidato nao encontrado" << endl;
system("pause");
return lc;
}
else
if (antes == NULL)
lc = p->prox;
else
{
antes->prox = p->prox;
p->prox->ant = antes;
delete p;
cout << "Candidato " << elementoc.nomeCandidato << " exlcuido" << endl;
system("pause");
return lc;
}



}

int menu (void)
{
int opcao;

system("cls");
cout << "1 - Incluir vaga de estagio" << endl;
cout << "2 - Exibir vagas disponiveis" << endl;
cout << "3 - Excluir vaga de estagio" << endl;
cout << "4 - Incluir candidato" << endl;
cout << "5 - Exibir candidatos cadastrados" << endl;
cout << "6 - Excluir candidato" << endl;
cout << "0 - Sair" << endl;
cout << "Opcao: ";
cin >> opcao;
system("cls");
return opcao;
}

int main()
{
lista_vagas *lv;
lista_cand *lc;
lista_geral *lg;
int opcao, opcao_exclusao, numVagas_vagas;
vagas elementov;
candidatos elementoc;
geral elementog;
string nomeEmpresa_vagas, nomeCandidato, curso;

lv = inicia_lista_vagas();
lc = inicia_lista_cand();
lg = inicia_lista_geral();

opcao = -1;
while (opcao != 0)
{
opcao = menu();
if (opcao == 1)
{
cout << "Nome do cliente: ";
cin >> elementov.nomeEmpresa;
cout << "Cadastrar Curso: ";
cin >> elementov.cursos;
cout << "Cadastrar vagas: ";
cin >> elementov.numVagas;
lv = inserir(lv, elementov);
}

else
if (opcao == 2)
exibir(lv);


else
if (opcao == 3)
{
cout << "Excluir";
cin >> opcao_exclusao;
if (opcao_exclusao == 1)
{
cout << "Codigo do cliente: ";
cin >> numVagas_vagas;
}
else
{
cout << "Nome do cliente: ";
cin >> nomeEmpresa_vagas;
}
lv = excluir(lv, nomeEmpresa_vagas, numVagas_vagas, opcao_exclusao);
}


else
if (opcao == 4)
{
cout << "Nome do candidato: ";
cin >> elementoc.nomeCandidato;
cout << "Cadastrar Curso: ";
cin >> elementoc.curso;
lc = inserirCandidato(lc, elementoc);
}

else
if (opcao == 5)
exibirCandidato(lc);

else
if (opcao == 6)
{
cout << "Elemento: ";
cin >> elementoc.nomeCandidato;
lc = excluirCandidato(lc, elementoc);

}
}
system("pause");
}



  


2. Re: bug no inserir

Perfil removido
removido

(usa Nenhuma)

Enviado em 12/06/2011 - 16:33h

Olá amigo, você pode colocar o enunciado do programa, para poder entender melhor.
Outra coisa, tem um monte de if..else errado da uma olhada na estrutura.
tipo:
if(n==1)
n=2;
c++;

Tente arrumar o código a modo que você consiga interpreta-lo facilmente, isso ajuda a encontrar os erros mais rápido.

if(n==1){
n=2;
c++;
}




3. Re: bug no inserir

Perfil removido
removido

(usa Nenhuma)

Enviado em 12/06/2011 - 17:39h

Como deve-se imaginar você usa o Visual Studio, uma IDE windows, portanto eu não tenho como testar aki, segue o código alterado:

#include <iostream>
#include <cstdlib>
using namespace std;

struct vagas {
string nomeEmpresa;
int numVagas;
string cursos;
}

struct candidatos {
string nomeCandidato;
string curso;
}

struct geral {
string nomeEmpresa;
string nomeCandidatos;
}

struct lista_vagas {
struct lista_vagas *ant;
vagas dadov;
struct lista_vagas *prox;
}

struct lista_cand {
struct lista_cand *ant;
candidatos dadoc;
struct lista_cand *prox;
}

struct lista_geral {
struct lista_geral *ant;
geral dadog;
struct lista_geral *prox;
}

lista_vagas * inicia_lista_vagas (void){
return NULL;
};

int lista_vazia (lista_vagas *lv){
if (lv == NULL){
return 1;
}else{
return 0;
}
};

lista_cand * inicia_lista_cand (void){
return NULL;
};

int lista_vazia (lista_cand *lc){
if (lc == NULL){
return 1;
}else{
return 0;
}
};

lista_geral * inicia_lista_geral (void){
return NULL;
};

int lista_vazia (lista_geral *lg){
if (lg == NULL){
return 1;
}else{
return 0;
}
};

lista_vagas * inserir (lista_vagas *lv, vagas elementov){
lista_vagas *n, *p;
int achou;
if (lista_vazia(lv) == 1){
n = new lista_vagas;
n->dadov.nomeEmpresa = elementov.nomeEmpresa;
n->dadov.cursos = elementov.cursos;
n->dadov.numVagas = elementov.numVagas;
n->ant = NULL;
n->prox = NULL;

cout << " " << endl;
cout << "Cliente " << elementov.nomeEmpresa << " inserido na lista" << endl;
system("pause");
return n;
}else{
p = lv;
achou = 0;
}

while (achou == 0){

if (p->dadov.nomeEmpresa == elementov.nomeEmpresa && p->dadov.cursos == elementov.cursos){
p = p->prox;
achou = 1;
}

if (p->prox == NULL){
achou = 2;
}

if (achou==1){
p->dadov.numVagas = (p->dadov.numVagas + elementov.numVagas);

cout << " " << endl;
cout << "Novas vagas no curso de " << elementov.cursos << " acrescentadas na Empresa " << elementov.nomeEmpresa << "." << endl;

system("pause");
return lv;
}

if (achou==2){

n = new lista_vagas;
n->dadov.nomeEmpresa = elementov.nomeEmpresa;
n->dadov.cursos = elementov.cursos;
n->dadov.numVagas = elementov.numVagas;

n->prox = p->prox;
p->prox= n->ant;
n->ant = p;
p->prox = n;

cout << " " << endl;
cout << "Empresa " << elementov.nomeEmpresa << " cadastrada com sucesso." << endl;
system("pause");
return lv;
}
}
};

void exibir (lista_vagas *lv){
lista_vagas *p;
p = lv;
if (lista_vazia(p) == 1){
cout << "Lista vazia" << endl;
}else{
while (p != NULL){
cout << "Nome da empresa: " << p->dadov.nomeEmpresa << endl;
cout << "Cursos : " << p->dadov.cursos << endl;
cout << "Vagas : " << p->dadov.numVagas << endl;
cout << "-----------------------------------------------------------" << endl;
p = p->prox;
}
}
system("pause");
}

lista_vagas * excluir (lista_vagas *lv, string nomeEmpresa, int numVagas, int opcao){
lista_vagas *p, *antes;

antes = NULL;
p = lv;

if (opcao == 1){
while (p != NULL && p->dadov.numVagas != numVagas){
antes = p;
p = p->prox;
}
}else{
while (p != NULL && p->dadov.nomeEmpresa != nomeEmpresa){
antes = p;
p = p->prox;
}
}

if (p == NULL){
if (opcao == 1){
cout << "Cliente com " << numVagas << " cadastradas" << endl;
}else{
cout << "Cliente " << nomeEmpresa << " nao encontrado" << endl;
system("pause");
return lv;
}else if (antes == NULL){
lv = p->prox;
}else{
antes->prox = p->prox;
if (p->prox != NULL){
p->prox->ant = antes;
delete p;
cout << "Cliente " << nomeEmpresa << " exlcuido" << endl;
system("pause");
return lv;
}
}
}
};

lista_cand *inserirCandidato (lista_cand *lc, candidatos elementoc){
lista_cand *n, *p;

n = new lista_cand;
n->dadoc.nomeCandidato = elementoc.nomeCandidato;
n->dadoc.curso = elementoc.curso;
n->ant = NULL;
n->prox = NULL;

if (lista_vazia(lc) == 1){
cout << "Cliente " << elementoc.nomeCandidato << " inserido na lista" << endl;
system("pause");
return n;
}
};

void exibirCandidato (lista_cand *lc){
lista_cand *p;

p = lc;
if (lista_vazia(p) == 1){
cout << "Lista vazia" << endl;
}else{
while (p != NULL){
cout << "Nome do Candidato: " << p->dadoc.nomeCandidato << endl;
cout << "Curso : " << p->dadoc.curso << endl;
cout << "-----------------------------------------------------------" << endl;
p = p->prox;

}

system("pause");
}
};

lista_cand *excluirCandidato (lista_cand *lc, candidatos elementoc){
lista_cand *p, *antes;

antes = NULL;
p = lc;


while (p != NULL && p->dadoc.nomeCandidato != elementoc.nomeCandidato){
antes = p;
p = p->prox;
}

if (p == NULL){
cout << "Candidato nao encontrado" << endl;
system("pause");
return lc;
}else{
if (antes == NULL)
lc = p->prox;
}else{
antes->prox = p->prox;
p->prox->ant = antes;
delete p;
cout << "Candidato " << elementoc.nomeCandidato << " exlcuido" << endl;
system("pause");
return lc;
}
};

int menu (void){
int opcao;

system("cls");
cout << "1 - Incluir vaga de estagio" << endl;
cout << "2 - Exibir vagas disponiveis" << endl;
cout << "3 - Excluir vaga de estagio" << endl;
cout << "4 - Incluir candidato" << endl;
cout << "5 - Exibir candidatos cadastrados" << endl;
cout << "6 - Excluir candidato" << endl;
cout << "0 - Sair" << endl;
cout << "Opcao: ";
cin >> opcao;
system("cls");
return opcao;
};

int main(){
lista_vagas *lv;
lista_cand *lc;
lista_geral *lg;
int opcao, opcao_exclusao, numVagas_vagas;
vagas elementov;
candidatos elementoc;
geral elementog;
string nomeEmpresa_vagas, nomeCandidato, curso;

lv = inicia_lista_vagas();
lc = inicia_lista_cand();
lg = inicia_lista_geral();

opcao = -1;
while (opcao != 0){
opcao = menu();
if (opcao == 1){
cout << "Nome do cliente: ";
cin >> elementov.nomeEmpresa;
cout << "Cadastrar Curso: ";
cin >> elementov.cursos;
cout << "Cadastrar vagas: ";
cin >> elementov.numVagas;
lv = inserir(lv, elementov);
}else if (opcao == 2){
exibir(lv);
}
else if (opcao == 3){
cout << "Excluir";
cin >> opcao_exclusao;
if (opcao_exclusao == 1){
cout << "Codigo do cliente: ";
cin >> numVagas_vagas;
}else{
cout << "Nome do cliente: ";
cin >> nomeEmpresa_vagas;
}
lv = excluir(lv, nomeEmpresa_vagas, numVagas_vagas, opcao_exclusao);
}

else if (opcao == 4){
cout << "Nome do candidato: ";
cin >> elementoc.nomeCandidato;
cout << "Cadastrar Curso: ";
cin >> elementoc.curso;
lc = inserirCandidato(lc, elementoc);
}else if (opcao == 5){
exibirCandidato(lc);
}
else if (opcao == 6){
cout << "Elemento: ";
cin >> elementoc.nomeCandidato;
lc = excluirCandidato(lc, elementoc);
}
}
system("pause");
}


4. ainda dando bug no inserir

Robson Santana
robgolmais

(usa Outra)

Enviado em 12/06/2011 - 19:26h

Boa noite, mano valeu pela ajuda, eu uso o dev c++, o inserir ainda não funfa






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts