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