[ Foro de C ]
Necesito ayuda, tengo que hacer que cada menu de paciente, empleado, y consulta al buscar despliegue un menu en donde de opcion al usuario a modificar los datos, alguien me ayudaria con eso, no se como hacerlo, aqui mi codigo:
Pd: El usuario es: ADMIN
y la contraseña: 123
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#define usuario "ADMIN"
#define clave "123"
#define TAM 20
int opc,b;
int opcP=0,acumP=0,contP,bandP;//VARIABLES DE PACIENTES
int opcE=0,acumE=0,contE,bandE;//VARIABLES PARA EL EMPLEADO
int opcC=0,acumC=0,contC,bandC;
int opcM=0,acumM=0,contM,bandM;
int auxE;//VARIABLES PARA EMPLEADO
char auxP[30];
char auxC[40];
//ESTRUCTURAS DE CAPTURA
struct Alta_empleado{
int numEmp;
char nombre[50],fechaI[12],categoria[20],estudios[20],horario[10],ubicacion[20];
}empleados[TAM];
struct paciente{
int edad,telefono;
char sexo[10];
char nombre[50],RFC[20],tipoPaci[20],CURP[25],domicilio[50];
}pacientes[TAM];
struct consulta{
int talla,peso, presarte,periabd;
char ID[40];
char nommedic[50],RFC[20],fecha[20],sintpaci[100];
}consulta[TAM];
//FUNCIONES DE EMPLEADO Y MENU DE EMPLEADO
void captura_empleado()
{
printf("\n\n\t * CAPTURA DE REGISTRO * ");
do{
printf("\n\n\t Numero de empleado:");
scanf("%d",&empleados[acumE].numEmp);
for(int i=0;i<acumE;i++){
if(empleados[acumE].numEmp==empleados[i].numEmp){
b=1;
printf("\n\tel registro ya existe.");
system("cls");
break;
}else{
b=2;
}}
}while(b==1);
printf("\n\t Nombre:");
fflush(stdin);
gets(empleados[acumE].nombre);
printf("\n\t Fecha de ingreso:");
fflush(stdin);
gets(empleados[acumE].fechaI);
printf("\n\t Categoria:");
fflush(stdin);
gets(empleados[acumE].categoria);
printf("\n\t Estudios:");
fflush(stdin);
gets(empleados[acumE].estudios);
printf("\n\t Horario:");
fflush(stdin);
gets(empleados[acumE].horario);
printf("\n\t Ubicacion:");
fflush(stdin);
gets(empleados[acumE].ubicacion);
acumE++;
printf("\n\t");
system("PAUSE");
system("cls");
}
void mostrar_empleado()
{
for(contE=0;contE<acumE;contE++){
printf("\n\n\t * MOSTRAR REGISTRO * ");
printf("\n\t Registro %d",contE+1);
printf("\n\t Numero de empleado: %d",empleados[contE].numEmp);
printf("\n\t Nombre: %s",empleados[contE].nombre);
printf("\n\t Fecha de ingreso: %s",empleados[contE].fechaI);
printf("\n\t Categoria: %s",empleados[contE].categoria);
printf("\n\t Estudios: %s",empleados[contE].estudios);
printf("\n\t Horario: %s",empleados[contE].horario);
printf("\n\t Ubicacion: %s",empleados[contE].ubicacion);
}
printf("\n\t");
system("PAUSE");
system("cls");
}
void buscar_empleado()
{
bandE=0;
printf("\n\n\t * BUSCAR REGISTRO * ");
printf("\n\n\t Ingresa el numero de empleado: ");
fflush(stdin);
scanf("%d",&auxE);
for(contE=0;contE<acumE;contE++){
if(auxE==empleados[contE].numEmp){
bandE+=1; //Aqui se comparan datos con la funcion strcmp
printf("\n\t Registro %d",contE+1);
printf("\n\t Numero de empleado: %d",empleados[contE].numEmp);
printf("\n\t Nombre: %s",empleados[contE].nombre);
printf("\n\t Fecha de ingreso: %s",empleados[contE].fechaI);
printf("\n\t Categoria: %s",empleados[contE].categoria);
printf("\n\t Estudios: %s",empleados[contE].estudios);
printf("\n\t Horario: %s",empleados[contE].horario);
printf("\n\t Ubicacion: %s",empleados[contE].ubicacion);
submenu_buscar();
}
}
if(bandE==0){
printf("No existe en el registro\n\t");
}
printf("\n\t");
system("PAUSE");
system("cls");
}
int submenu_empleado()
{
do{
printf("\n\t1)Dar de alta empleado\n\t2)Visualizar empleado\n\t3)Buscar empleado\n\t0)Regresar al menu principal\n\t Opcion:");
fflush(stdin);
scanf("%d",&opcE);
switch(opcE){
case 0:{
system("cls");
}
break;
case 1:{
captura_empleado();
}
break;
case 2:{
mostrar_empleado();
}
break;
case 3:{
buscar_empleado();
}
break;
}
}while(opcE!=0);
return (opcE);
}
//MENUS
int menu_principal()
{
printf("\n\t1)Empleado\n\t2)Paciente\n\t3)Consulta\n\t0)Salir\n\t Opcion:");
scanf("%d",&opc);
return(opc);
}
//capturar paciente
void captura_paciente()
{
printf("\n\n\t * CAPTURA DE REGISTRO * ");
printf("\n\t Nombre: ");
fflush(stdin);
gets(pacientes[acumP].nombre);
printf("\n\t edad: ");
fflush(stdin);
scanf("%d",&pacientes[acumP].edad);
printf("\n\t Sexo: ");
fflush(stdin);
gets(pacientes[acumP].sexo);
do{
printf("\n\n\t Numero de RFC: ");
fflush(stdin);
gets(pacientes[acumP].RFC);
for(int i=0;i<acumP;i++){
if(strcmp(pacientes[acumP].RFC,pacientes[i].RFC)==0){
b=1;
printf("\n\tEl RFC ya existe.");
system("cls");
break;
}else{
b=2;
}}
}while(b==1);
printf("\n\t Tipo de paciente: ");
fflush(stdin);
gets(pacientes[acumP].tipoPaci);
printf("\n\t CURP: ");
fflush(stdin);
gets(pacientes[acumP].CURP);
printf("\n\t Domicilio: ");
fflush(stdin);
gets(pacientes[acumP].domicilio);
printf("\n\t Telefono: ");
fflush(stdin);
scanf("%d",&pacientes[acumP].telefono);
acumP++;
}
//mostrar paciente
void mostrar_paciente()
{
for(contP=0;contP<acumP;contP++){
printf("\n\n\t * MOSTRAR REGISTRO * ");
printf("\n\t Registro %d",contP+1);
printf("\n\t Numero de nombre: %s",pacientes[contP].nombre);
printf("\n\t Edad: %d",pacientes[contP].edad);
printf("\n\t Sexo: %s",pacientes[contP].sexo);
printf("\n\t Numero de RFC: %s",pacientes[contP].RFC);
printf("\n\t Tipo de paciente: %s",pacientes[contP].tipoPaci);
printf("\n\t CURP: %s",pacientes[contP].CURP);
printf("\n\t Domicilio: %s",pacientes[contP].domicilio);
printf("\n\t Telefono; %d", pacientes[contP].telefono);
}
printf("\n\t");
system("PAUSE");
system("cls");
}
//buscar paciente
void buscar_paciente()
{
bandP=0;
printf("\n\n\t * BUSCAR REGISTRO * ");
printf("\n\n\t Ingresa el RFC del paciente a buscar: ");
fflush(stdin);
gets(auxP);
for(contP=0;contP<=acumP;contP++){
if(strcmp(auxP,pacientes[contP].RFC)==0){
bandP+=1; //Aqui se comparan datos con la funcion strcmp
printf("\n\t Registro %d",contP+1);
printf("\n\t Numero de nombre: %s",pacientes[contP].nombre);
printf("\n\t Edad: %d",pacientes[contP].edad);
printf("\n\t Sexo: %s",pacientes[contP].sexo);
printf("\n\t Numero de RFC: %d",pacientes[contP].RFC);
printf("\n\t Tipo de paciente: %s",pacientes[contP].tipoPaci);
printf("\n\t CURP: %s",pacientes[contP].CURP);
printf("\n\t Domicilio: %s",pacientes[contP].domicilio);
printf("\n\t Telefono; %d\n", pacientes[contP].telefono);
}
}
if(bandP==0){
printf("No existe en el registro\n\t");
}
printf("\n\t");
system("PAUSE");
system("cls");
}
//Clientes
int submenu_paciente()
{do{
system("cls");
printf("\n\t1)Dar de alta paciente\n\t2)Visualizar pacientes\n\t3)Buscar paciente\n\t0)Regresar al menu principal\n\t Opcion:");
fflush(stdin);
scanf("%d",&opcP);
switch(opcP){
case 0:{
system("cls");
}
break;
case 1:{
captura_paciente();
}
break;
case 2:{
mostrar_paciente();
}
break;
case 3:{
buscar_paciente();
}
break;
}
}while(opcP!=0);
return (opcP);
}
//CONSULTAS
void captura_consulta()
{
printf("\n\n\t * CAPTURA DE REGISTRO * ");
printf("\n\t ID: ");
fflush(stdin);
gets(consulta[acumC].ID);
printf("\n\t RFC (registrado): ");
fflush(stdin);
gets(consulta[acumC].RFC);
for(int i=0;i<=acumC;i++){
if(strcmp(consulta[acumC].RFC,pacientes[i].RFC)==0){
b=1;
break;
}else{
b=3;
printf("\n\tEl RFC no existe.");
getch();
system("cls");
}}
if(b==1){
printf("\n\t Nombre del medico (registrado): ");
fflush(stdin);
gets(consulta[acumC].nommedic);
for(int i=0;i<=acumE;i++){
if(strcmp(consulta[acumC].nommedic,empleados[i].nombre)==0){
b=1;
break;
}else{
b=3;
printf("\n\tEl registro no esta en existencia.");
getch();
system("cls");
}}
if(b==1){
printf("\n\t FECHA (dd//mm//aaaa): ");
fflush(stdin);
gets(consulta[acumC].fecha);
printf("\n\t TALLA: ");
fflush(stdin);
scanf("%d",&consulta[acumC].talla);
printf("\n\t PESO: ");
fflush(stdin);
scanf("%d",&consulta[acumC].peso);
printf("\n\t Presion arterial: ");
fflush(stdin);
scanf("%d",&consulta[acumC].presarte);
printf("\n\t Perimetro abdominal: ");
fflush(stdin);
scanf("%d",&consulta[acumC].periabd);
printf("\n\t Sintomas del paciente: ");
fflush(stdin);
gets(consulta[acumC].sintpaci);
acumC++;}}
}
//mostrar paciente
void mostrar_consulta()
{
for(contC=0;contC<acumC;contC++){
printf("\n\n\t * MOSTRAR REGISTRO * ");
printf("\n\t Registro %d",contC+1);
printf("\n\t ID: %s",consulta[contC].ID);
printf("\n\t RFC: %s",consulta[contC].RFC);
printf("\n\t Nombre del medico: %s",consulta[contC].nommedic);
printf("\n\t Fecha: %s",consulta[contC].fecha);
printf("\n\t Talla: %d",consulta[contC].talla);
printf("\n\t Peso: %d",consulta[contC].peso);
printf("\n\t Presion arterial: %d",consulta[contC].presarte);
printf("\n\t Perimetro abdominal: %d", consulta[contC].periabd);
printf("\n\t Sintomas del paciente: %s", consulta[contC].sintpaci);
}
printf("\n\t");
system("PAUSE");
system("cls");
}
//buscar paciente
void buscar_consulta()
{
bandC=0;
printf("\n\n\t * BUSCAR REGISTRO * ");
printf("\n\n\t Ingresa el ID del paciente a buscar: ");
fflush(stdin);
gets(auxC);
for(contC=0;contC<=acumC;contC++){
if(strcmp(auxC,consulta[contC].ID)==0){
bandC+=1; //Aqui se comparan datos con la funcion strcmp
printf("\n\n\t * REGISTRO * ");
printf("\n\t Registro %d",contC+1);
printf("\n\t ID: %s",consulta[contC].ID);
printf("\n\t RFC: %s",consulta[contC].RFC);
printf("\n\t Nombre del medico: %s",consulta[contC].nommedic);
printf("\n\t Fecha: %s",consulta[contC].fecha);
printf("\n\t Talla: %d",consulta[contC].talla);
printf("\n\t Peso: %d",consulta[contC].peso);
printf("\n\t Presion arterial: %d",consulta[contC].presarte);
printf("\n\t Perimetro abdominal: %d", consulta[contC].periabd);
printf("\n\t Sintomas del paciente: %s", consulta[contC].sintpaci);
submenu_buscar();
}
}
if(bandC==0){
printf("No existe en el registro\n\t");
}
printf("\n\t");
system("PAUSE");
system("cls");
}
void modificar_consulta()
{
int indice_modificado,modifica;
printf("\n\t Nombre del medico (registrado): ");
fflush(stdin);
scanf("%i",&indice_modificado);
printf("\n\tDeseas modificar:\n\t1)Nombre del empleado\n\t2)Fecha de ingreso\n\t3)Categoria\n\t4)Estudios\n\t5)Horario\n\t6)Ubicacion");
printf("\n\tOpcion: ");
fflush(stdin);
scanf("%i",&modifica);
switch(modifica)
{
case 1:printf("\n\tEl nombre del empleado: ");
fflush(stdin);
gets(empleados[indice_modificado-1].nombre);
break;
case 2:printf("\n\tFecha de ingreso: ");
fflush(stdin);
gets(empleados[indice_modificado-1].fechaI);
break;
case 3:printf("\n\Categoria: ");
fflush(stdin);
gets(empleados[indice_modificado-1].categoria);
break;
case 4:printf("\n\tEstudios: ");
fflush(stdin);
gets(empleados[indice_modificado-1].estudios);
break;
case 5:printf("\n\tHorario: ");
fflush(stdin);
gets(empleados[indice_modificado-1].horario);
break;
case 6:printf("\n\tUbicacion: ");
fflush(stdin);
gets(empleados[indice_modificado-1].ubicacion);
break;
default:printf("\n\tOpcion equivocada \n");
}
}
int submenu_buscar()
{do{
system("cls");
printf("\n\t1)Modificar datos del empleado\n\t2)Modificar datos del paciente\n\t1)Modificar datos de la consulta\n\t0)Regresar al menu anterior\n\t Opcion:");
fflush(stdin);
scanf("%d",&opcM);
switch(opcM){
case 1:{
modificar_consulta();
system("cls");
}
break;
case 0:{
submenu_consulta();
}
break;
default:
break;
}
}while(opcM!=0);
return (opcM);
}
//Clientes
int submenu_consulta()
{do{
system("cls");
printf("\n\t1)Anotar consulta\n\t2)Visualizar Consultas\n\t3)Buscar consultas\n\t0)Regresar al menu principal\n\t Opcion:");
fflush(stdin);
scanf("%d",&opcC);
switch(opcC){
case 0:{
system("cls");
}
break;
case 1:{
captura_consulta();
}
break;
case 2:{
mostrar_consulta();
}
break;
case 3:{
buscar_consulta();
}
break;
}
}while(opcC!=0);
return (opcC);
}
//FUNCION PRINCIPAL.
int main()
{
char usuario2[7];
char clave2[4];
char caracter;
int i,bandera,intentos,c=0;
int Salir=1,p,e;
do{
i=0;
printf("\n\tIngrese su usuario:");
fflush(stdin);
scanf("%s",&usuario2);
printf("\n\tIngrese su clave: ");
while(caracter=getch()){
if(caracter== 13){
clave2[i]='\0';
break;
}
else{
printf("*");
clave2[i]=caracter;
i++;
}
}
if(strcmp(clave2, clave)== 0 && strcmp(usuario2,usuario)==0){
bandera=1;
break;
}
else{
printf("\n\tUsuario o contrase%ca incorrecta\n\t",164);
intentos++;
bandera=0;
getchar();
fflush(stdin);
}
}while(intentos<3);
if(bandera==1){
for(c=0,p=0,e=0;Salir==1;){
system("cls");
printf("\n\tBienvenido, eliga una opcion:");
menu_principal();
system("cls");
switch(opc){
case 1:{
system("cls");
submenu_empleado();
}
break;
case 2:{
system("cls");
submenu_paciente();
break;
}
case 3:{
system("cls");
submenu_consulta();
break;
}
case 0:{
printf("\n\t *ADIOS*");
Salir=0;}
break;
}
}
}
else
printf("\n\t Tus intentos se acabaron.");
return 0;
}
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)