Ola pessoal e ai td tranquilo???...bom primeira coisa eu queria agradecer por vocês tarem me ajudando ... e dizer q esse grupo ta legal...bom o q eu puder ajudar....
eu to fazendo uma lista de exercicio da minha professora pra ficar crack na prova...mais empaquei na hora de deixar o meu programa em ordem alfabetica e também na hora de deletar dados...lembrando q o q eu to fazendo agora é lista....
o problema ta aqui .. fiz ele no devcpp..c alguém puder me ajudar
/*5- Criar um programa que manipule uma lista encadeada, contendo informações
sobre pacientes (nome do paciente, nome do médico, data de nascimento, sexo). Este
programa deverá implementar as seguintes funções:
Inserir elementos.
Mostrar elementos na ordem de cadastramento.
Mostrar elementos em ordem crescente (ordenar pelo nome do paciente)
Mostrar elementos em ordem decrescente (ordenar pelo nome do paciente)
Excluir pacientes individualmente.
Excluir pacientes por médico .
Observações:
os elementos podem ser inseridos sem qualquer ordenação; quando a lista for
mostrada em ordem crescente ou decrescente deve-se utilizar alguma forma que não
destrua a ordem original de cadastramento; para realizar a exclusão de pacientes
individualmente, deve-se informar o nome do paciente que se deseja remover;
para realizar a exclusão de pacientes por médico, deve-se informar o nome do
médico cujos pacientes serão excluídos da lista.*/
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <string.h>
using namespace std;
class hospital{
private:
char nomep[50];
char nomem[50];
char data_nasc[10];
char sexo;
hospital *prox;
public:
hospital *inserir ( hospital *i );
void mostrar (hospital *i);
void ordemcres ( hospital *i );
};
int main()
{ hospital *i;
int op;
i = NULL;
do{ system("cls");
cout << "\n(1)-CADASTRAR PACIENTES";
cout << "\n(2)-MOSTRAR ELEMENTOS NA ORDEM";
cout << "\n(3)-MOSTRAR ELEMENTOS POR ORDEM ALFABETICA CRESCENTE";
cout << "\n(4)-MOSTARR ELEMENTOS POR ORDEM ALFABETICA DECRESCENTE";
cout << "\n(4)-EXCLUIR PACIENTES";
cout << "\n(5)-EXCLUIR PACIENTES POR MEDICO";
cout << "\n(6)-FINALIZAR PROGRAMA";
cout << "\n\nNUMERO: ";
cin >> op;
getchar();
switch(op)
{
case 1: system("cls");
i = i -> inserir(i);
break;
case 2: system("cls");
i -> mostrar(i);
break;
case 3: system("cls");
i -> ordemcres(i);
break;
}
}while(op != 6);
return 0;
}
hospital *hospital::inserir( hospital *i)
{ hospital *novo;
hospital *aux;
novo = new hospital;
cout << "\nNOME DO PACIENTE: ";
gets(novo -> nomep);
cout << "\nNOME DO MEDICO: ";
gets(novo -> nomem);
cout << "\nDATA DE NASCIMENTO: ";
gets(novo -> data_nasc);
cout << "\nSEXO: ";
cin >> novo -> sexo;
novo -> prox = NULL;
if(i == NULL)
i = novo;
else
{ aux = i;
while( aux -> prox != NULL)
aux -> prox;
aux -> prox = novo;
}
return i;
}
void hospital::mostrar( hospital *i)
{ hospital *aux;
aux = i;
while( aux != NULL)//porque eu não consegui fazer com o printf??
{ cout << "\nNOME: "<< aux -> nomep;
cout << "\nNOME DO MEDICO: "<< aux -> nomem;
cout << "\nDATA DE NASCIMENTO: "<<aux -> data_nasc<<endl<<endl;
Pergunta
Guest rickab7
Ola pessoal e ai td tranquilo???...bom primeira coisa eu queria agradecer por vocês tarem me ajudando ... e dizer q esse grupo ta legal...bom o q eu puder ajudar....
eu to fazendo uma lista de exercicio da minha professora pra ficar crack na prova...mais empaquei na hora de deixar o meu programa em ordem alfabetica e também na hora de deletar dados...lembrando q o q eu to fazendo agora é lista....
o problema ta aqui .. fiz ele no devcpp..c alguém puder me ajudar
/*5- Criar um programa que manipule uma lista encadeada, contendo informações
sobre pacientes (nome do paciente, nome do médico, data de nascimento, sexo). Este
programa deverá implementar as seguintes funções:
Inserir elementos.
Mostrar elementos na ordem de cadastramento.
Mostrar elementos em ordem crescente (ordenar pelo nome do paciente)
Mostrar elementos em ordem decrescente (ordenar pelo nome do paciente)
Excluir pacientes individualmente.
Excluir pacientes por médico .
Observações:
os elementos podem ser inseridos sem qualquer ordenação; quando a lista for
mostrada em ordem crescente ou decrescente deve-se utilizar alguma forma que não
destrua a ordem original de cadastramento; para realizar a exclusão de pacientes
individualmente, deve-se informar o nome do paciente que se deseja remover;
para realizar a exclusão de pacientes por médico, deve-se informar o nome do
médico cujos pacientes serão excluídos da lista.*/
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <string.h>
using namespace std;
class hospital{
private:
char nomep[50];
char nomem[50];
char data_nasc[10];
char sexo;
hospital *prox;
public:
hospital *inserir ( hospital *i );
void mostrar (hospital *i);
void ordemcres ( hospital *i );
};
int main()
{ hospital *i;
int op;
i = NULL;
do{ system("cls");
cout << "\n(1)-CADASTRAR PACIENTES";
cout << "\n(2)-MOSTRAR ELEMENTOS NA ORDEM";
cout << "\n(3)-MOSTRAR ELEMENTOS POR ORDEM ALFABETICA CRESCENTE";
cout << "\n(4)-MOSTARR ELEMENTOS POR ORDEM ALFABETICA DECRESCENTE";
cout << "\n(4)-EXCLUIR PACIENTES";
cout << "\n(5)-EXCLUIR PACIENTES POR MEDICO";
cout << "\n(6)-FINALIZAR PROGRAMA";
cout << "\n\nNUMERO: ";
cin >> op;
getchar();
switch(op)
{
case 1: system("cls");
i = i -> inserir(i);
break;
case 2: system("cls");
i -> mostrar(i);
break;
case 3: system("cls");
i -> ordemcres(i);
break;
}
}while(op != 6);
return 0;
}
hospital *hospital::inserir( hospital *i)
{ hospital *novo;
hospital *aux;
novo = new hospital;
cout << "\nNOME DO PACIENTE: ";
gets(novo -> nomep);
cout << "\nNOME DO MEDICO: ";
gets(novo -> nomem);
cout << "\nDATA DE NASCIMENTO: ";
gets(novo -> data_nasc);
cout << "\nSEXO: ";
cin >> novo -> sexo;
novo -> prox = NULL;
if(i == NULL)
i = novo;
else
{ aux = i;
while( aux -> prox != NULL)
aux -> prox;
aux -> prox = novo;
}
return i;
}
void hospital::mostrar( hospital *i)
{ hospital *aux;
aux = i;
while( aux != NULL)//porque eu não consegui fazer com o printf??
{ cout << "\nNOME: "<< aux -> nomep;
cout << "\nNOME DO MEDICO: "<< aux -> nomem;
cout << "\nDATA DE NASCIMENTO: "<<aux -> data_nasc<<endl<<endl;
aux = aux -> prox;
}
getch();
}
void hospital::ordemcres( hospital *i)
{ hospital *aux;
hospital *aux2;
aux = i;
aux2 = i;
char auxnome[50];
while(aux != NULL)
{
while(aux2 != NULL)
{ if( strcmp(aux -> nomep, aux2->nomep)>=0)
strcpy(auxnome, aux2->nomep);
aux2 = aux2 -> prox;
}
printf("NOME: %s", auxnome);
aux = aux -> prox;
}
getch();
}
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.