#include<stdio.h>
#include<string.h>
struct data {
int dia;
int mes;
int ano;
};
struct paciente {
int cod_paciente;
char nome[81];
char endereco[81];
char convenio[81];
int rg;
int cpf;
int idade;
int telefone;
struct data dia;
};
struct medico {
int cod_medico;
char nome[81];
char especialidade[21];
int rg;
int cpf;
int idade;
int telefone;
struct data dia;
};
struct consulta {
int cod_consulta;
int cod_medico;
int cod_paciente;
char diagnostico[201];
char motivo[100];
struct data dia;
};
struct resultado {
int cod_resultado;
int cod_paciente;
int cod_exame;
int data;
char descricao[201];
struct data dia;
};
struct exame {
int cod_exame;
int cod_consulta;
char tipo[201];
struct data dia;
};
main()
{
struct paciente lista_paciente[1000];
struct medico lista_medico[100];
struct consulta lista_consulta[200];
struct resultado lista_resultado[1000];
struct exame lista_exame[500];
int indice_paciente;
int indice_medico;
int indice_consulta;
int indice_resultado;
int indice_exame;
int opcao;
int i;
char temp[256];
char buffer[256];
int k;
indice_paciente = 0;
indice_medico = 0;
indice_consulta = 0;
indice_resultado = 0;
indice_exame = 0;
while(1) {
puts("__________________________________________________________________");
puts("\t\tSISTEMA DE CLINICA MEDICA\n");
puts(" 1 - Cadastrar Paciente");
puts(" 2 - Listar Pacientes");
puts(" 3 - Cadastrar Medico");
puts(" 4 - Listar Medicos");
puts(" 5 - Dar entrada na Consulta");
puts(" 6 - Listar Consulta");
puts(" 7 - Entrar com o Resultado");
puts(" 8 - Listar Resultados");
puts(" 9 - Entre com o Exame");
puts("10 - Listar Exames");
puts("11 - Procurar Paciente");
puts("12 - Procurar Medico");
puts("13 - Alterar Cadastro de Paciente");
puts("14 - Alterar Cadastro de Medico");
puts("15 - Remover Paciente");
puts("16 - Remover Medico");
puts("99 - Sair");
puts("__________________________________________________________________");
printf("\nEscolha a opcao para continuar: ");
scanf("%d",&opcao);
getchar();
system("cls");
switch(opcao) {
case 1: // Cadastrar Paciente
lista_paciente[indice_paciente].cod_paciente = indice_paciente + 1;
printf("Digite o Nome: ");
gets(lista_paciente[indice_paciente].nome);
printf("Digite o Endereco: ");
gets(lista_paciente[indice_paciente].endereco);
printf("Digite o Convenio: ");
gets(lista_paciente[indice_paciente].convenio);
printf("Digite a Identidade: ");
scanf("%d",&lista_paciente[indice_paciente].rg);
printf("Digite o CPF: ");
scanf("%d",&lista_paciente[indice_paciente].cpf);
printf("Digite a Idade: ");
scanf("%d",&lista_paciente[indice_paciente].idade);
printf("Digite o Telefone: ");
scanf("%d",&lista_paciente[indice_paciente].telefone);
indice_paciente = indice_paciente + 1;
puts("\n\n----->Paciente Cadastrado com Sucesso<-----\n");
puts("\n\nTecle enter para sair...");
break;
case 2: // Listar Pacientes
puts("\n__________________________________________________________________");
printf("\t\tLISTA DE PACIENTES");
printf("\nCodigo | Nome | Endereco | CPF | Telefone");
puts("\n__________________________________________________________________");
for(i = 0; i < indice_paciente; i++) {
printf("%d %s %s %d %d", lista_paciente[i].cod_paciente, lista_paciente[i].nome, lista_paciente[i].endereco, lista_paciente[i].cpf, lista_paciente[i].telefone);
puts("\n__________________________________________________________________");
}
puts("\n\nTecle enter para sair...");
break;
case 3: // Cadastrar Medico
lista_medico[indice_medico].cod_medico = indice_medico + 1;
printf("Digite o Nome: ");
gets(lista_medico[indice_medico].nome);
printf("Digite a Especialidade: ");
gets(lista_medico[indice_medico].especialidade);
printf("Digite a Identidade: ");
scanf("%d",&lista_medico[indice_medico].rg);
printf("Digite o CPF: ");
scanf("%d",&lista_medico[indice_medico].cpf);
printf("Digite a Idade: ");
scanf("%d",&lista_medico[indice_medico].idade);
fflush(stdin);
printf("Digite o Telefone: ");
scanf("%d",&lista_medico[indice_medico].telefone);
indice_medico = indice_medico + 1;
puts("\n\n----->Medico Cadastrado com Sucesso<-----\n");
puts("\n\nTecle enter para sair...");
break;
case 4: // Listar Medicos
puts("\n__________________________________________________________________");
printf("\t\tLISTA DE MEDICOS");
printf("\nCodigo | Nome | Especialidade | Telefone ");
puts("\n__________________________________________________________________");
for(i = 0; i < indice_medico; i++) {
printf("%d %s %s %d ", lista_medico[i].cod_medico, lista_medico[i].nome, lista_medico[i].especialidade, lista_medico[i].telefone);
puts("\n__________________________________________________________________");
}
puts("\n\nTecle enter para sair...");
break;
case 5: // Dar entrada na Consulta
if(indice_paciente == 0) {
puts("Cadastre um Paciente!!!");
break;
}
if(indice_medico == 0) {
puts("Cadastre um Medico!!!");
break;
}
do {
for(i = 0; i < indice_paciente; i++) {
printf("\t%d - %s - \n", lista_paciente[i].cod_paciente, lista_paciente[i].nome);
}
puts("Digite o Codigo do Paciente: ");
scanf("%d",&lista_paciente[indice_paciente].cod_paciente);
for(i = 0; i < indice_paciente; i++) {
if(lista_paciente[i].cod_paciente == lista_paciente[indice_paciente].cod_paciente)
break;
}
} while(i == indice_paciente);
do {
for(i = 0; i < indice_medico; i++) {
printf("\t%d - %s - \n", lista_medico[i].cod_medico, lista_medico[i].nome);
}
puts("Digite o Codigo do Medico: ");
scanf("%d",&lista_medico[indice_medico].cod_medico);
for(i = 0; i < indice_medico; i++) {
if(lista_medico[i].cod_medico == lista_medico[indice_medico].cod_medico)
break;
}
} while(i == indice_medico);
lista_consulta[indice_consulta].cod_consulta = indice_consulta + 1;
printf("Digite o Motivo da Consulta: ");
gets(lista_consulta[indice_consulta].motivo);
printf("Digite o Diagnostico: ");
gets(lista_consulta[indice_consulta].diagnostico);
indice_consulta = indice_consulta + 1;
puts("\n\n----->Consulta Cadastrada com Sucesso<-----\n");
puts("\n\nTecle enter para sair...");
break;
case 6: // Listar Consulta
puts("\n__________________________________________________________________");
printf("\t\tLISTA DE CONSULTAS");
printf("\nCodigo | Motivo da Consulta | Diagnostico");
puts("\n__________________________________________________________________");
for(i = 0; i < indice_consulta; i++) {
printf("%d %s %s", lista_consulta[i].cod_consulta, lista_consulta[i].motivo, lista_consulta[i].diagnostico);
puts("\n__________________________________________________________________");
}
puts("\n\nTecle enter para sair...");
break;
case 7: // Entrar com o Resultado
if(indice_paciente == 0) {
puts("Cadastre um Paciente!!!");
break;
}
if(indice_medico == 0) {
puts("Cadastre um Medico!!!");
break;
}
do {
for(i = 0; i < indice_paciente; i++) {
printf("\t%d - %s - \n", lista_paciente[i].cod_paciente, lista_paciente[i].nome);
}
puts("Digite o Codigo do Paciente: ");
scanf("%d",&lista_paciente[indice_paciente].cod_paciente);
for(i = 0; i < indice_paciente; i++) {
if(lista_paciente[i].cod_paciente == lista_paciente[indice_paciente].cod_paciente)
break;
}
} while(i == indice_paciente);
do {
for(i = 0; i < indice_medico; i++) {
printf("\t%d - %s - \n", lista_medico[i].cod_medico, lista_medico[i].nome);
}
puts("Digite o Codigo do Medico: ");
scanf("%d",&lista_medico[indice_medico].cod_medico);
for(i = 0; i < indice_medico; i++) {
if(lista_medico[i].cod_medico == lista_medico[indice_medico].cod_medico)
break;
}
} while(i == indice_medico);
lista_resultado[indice_resultado].cod_resultado = indice_resultado + 1;
printf("Digite o Resultado do Exame: ");
gets(lista_resultado[indice_resultado].descricao);
printf("Digite a Data do Resultado: ");
scanf("%d",&lista_resultado[indice_resultado].data);
fflush(stdin);
indice_resultado = indice_resultado + 1;
puts("\n\n----->Resultado Cadastrado com Sucesso<-----\n");
puts("\n\nTecle enter para sair...");
break;
case 8: // Listar Resultados
puts("\n__________________________________________________________________");
printf("\t\tLISTA DE RESULTADOS");
printf("\nCodigo | Resultado do Exame | Data");
puts("\n__________________________________________________________________");
for(i = 0; i < indice_resultado; i++) {
printf("%d %s %d", lista_resultado[i].cod_resultado, lista_resultado[i].descricao, lista_resultado[i].data);
puts("\n__________________________________________________________________");
}
puts("\n\nTecle enter para sair...");
break;
case 9: // Entre com o Exame
lista_exame[indice_exame].cod_exame = indice_exame + 1;
printf("Digite o Tipo de Exame: ");
gets(lista_exame[indice_exame].tipo);
indice_exame = indice_exame + 1;
puts("\n\n----->Exame Cadastrado com Sucesso<-----\n");
puts("\n\nTecle enter para sair...");
break;
case 10: // Listar Exames
puts("\n__________________________________________________________________");
printf("\t\tLISTA DE EXAMES");
printf("\nCodigo | Resultado do Exame");
puts("\n__________________________________________________________________");
for(i = 0; i < indice_exame; i++) {
printf("%d %s", lista_exame[i].cod_exame, lista_exame[i].tipo);
puts("\n__________________________________________________________________");
}
puts("\n\nTecle enter para sair...");
break;
case 11: // Procurar Paciente
printf("\nDigite o Nome para Buscar Paciente: ");
gets(temp);
for(i = 0; i < indice_paciente; i++) {
if(strcmpi(lista_paciente[i].nome, temp) == 0) {
printf("%d - ",&lista_paciente[indice_paciente].cod_paciente);
getchar();
printf("%s", lista_paciente[indice_paciente].nome);
printf("%s", lista_paciente[indice_paciente].endereco);
printf("%s", lista_paciente[indice_paciente].convenio);
printf("%d", lista_paciente[indice_paciente].rg);
printf("%d", lista_paciente[indice_paciente].cpf);
printf("%d", lista_paciente[indice_paciente].idade);
printf("%d", lista_paciente[indice_paciente].telefone);
puts("\n\n----->Nome Encontrado com Sucesso<-----\n");
puts("\n\nTecle enter para sair...");
break;
} //fim do if
} //fim do for
break;
case 12: // Procurar Medico
printf("\nDigite o Nome para Buscar: ");
gets(temp);
for(i = 0; i < indice_paciente; i++) {
if(strcmpi(lista_paciente[i].nome, temp) == 0) {
printf("%d - ",&lista_paciente[indice_paciente].cod_paciente);
getchar();
printf("%s", lista_paciente[indice_paciente].nome);
printf("%s", lista_paciente[indice_paciente].endereco);
printf("%s", lista_paciente[indice_paciente].convenio);
printf("%d", lista_paciente[indice_paciente].rg);
printf("%d", lista_paciente[indice_paciente].cpf);
printf("%d", lista_paciente[indice_paciente].idade);
printf("%d", lista_paciente[indice_paciente].telefone);
puts("\n\n----->Nome Encontrado com Sucesso<-----\n");
puts("\n\nTecle enter para sair...");
break;
} //fim do if
} //fim do for
break;
case 13: // Alterar Cadastro de Paciente
printf("\nDigite o Nome para Alterar Paciente: ");
gets(temp);
for(i = 0; i < indice_paciente; i++) {
if(strcmpi(lista_paciente[i].nome, temp) == 0) {
printf("Altere o Nome [%s]: ", lista_paciente[i].nome);
gets(buffer);
if(strlen(buffer) > 0) {
strcpy(lista_paciente[i].nome, buffer);
}
printf("Altere a Endereco [%s]: ", lista_paciente[i].endereco);
gets(buffer);
if(strlen(buffer) > 0) {
strcpy(lista_paciente[i].endereco, buffer);
}
printf("Altere o Convenio [%s]: ", lista_paciente[i].convenio);
gets(buffer);
if(strlen(buffer) > 0) {
strcpy(lista_paciente[i].convenio, buffer);
}
printf("Altere o Telefone [%d]: ", lista_paciente[i].telefone);
gets(buffer);
if(strlen(buffer) > 0) {
lista_paciente[i].telefone = atoi(buffer);
}
printf("Altere o Idade [%d]: ", lista_paciente[i].idade);
gets(buffer);
if(strlen(buffer) > 0) {
lista_paciente[i].idade = atoi(buffer);
}
}
}
break;
case 14: // Alterar Cadastro de Medico
printf("\nDigite o Nome para Alterar Medico: ");
gets(temp);
for(i = 0; i < indice_medico; i++) {
if(strcmpi(lista_medico[i].nome, temp) == 0) {
printf("Altere o Nome [%s]: ", lista_medico[i].nome);
gets(buffer);
if(strlen(buffer) > 0) {
strcpy(lista_medico[i].nome, buffer);
}
printf("Altere o Especialidade [%s]: ", lista_medico[i].especialidade);
gets(buffer);
if(strlen(buffer) > 0) {
strcpy(lista_medico[i].especialidade, buffer);
}
printf("Altere o Telefone [%d]: ", lista_medico[i].telefone);
gets(buffer);
if(strlen(buffer) > 0) {
lista_medico[i].telefone = atoi(buffer);
}
printf("Altere a Idade [%d]: ", lista_medico[i].idade);
gets(buffer);
if(strlen(buffer) > 0) {
lista_medico[i].telefone = atoi(buffer);
}
}
}
break;
case 15: // Remover Paciente
printf("\nDigite o Nome do Paciente que deve ser Removido: ");
gets(temp);
for(i = 0; i < indice_paciente; i++) {
if(strcmpi(lista_paciente[i].nome, temp)==0) {
printf("Remova o Paciente [%s]: ", lista_paciente[i].nome);
gets(buffer);
if(strlen(buffer) > 0) {
strcpy(lista_paciente[i].nome, buffer);
}
for(k = 1; k < indice_paciente; k++) {
lista_paciente[k] = lista_paciente[k+1];
}
indice_paciente--;
}
}
break;
case 16: // Remover Medico
printf("\nDigite o Nome do Medico que deve ser Removido: ");
gets(temp);
for(i = 0; i < indice_medico; i++) {
if(strcmpi(lista_medico[i].nome, temp)==0) {
printf("Remova o Medico [%s]: ", lista_medico[i].nome);
gets(buffer);
if(strlen(buffer) > 0) {
strcpy(lista_medico[i].nome, buffer);
}
for(k = 1; k < indice_medico; k++) {
lista_medico[k] = lista_medico[k+1];
}
indice_medico--;
}
}
break;
case 99: // Sair
return(0);
default: // Opcao Invalida
puts("Opcao Invalida");
puts("\n\nTecle enter para sair...");
} //fecha o switch
system("pause>>null");
system("cls");
} //fecha o while
} //fecha o main