Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - guirudj007

#1
Que tal amigos, ustedes que son expertos en la materia tal vez me salven de sacarme un cero en mi proyecto, estoy haciendo un sistema de gimnasio, por ahora solo tiene las opciones de ingresar y mostrar datos de empleados o clientes, pero aqui viene el problema, como es un ingreso regular debo trabajar con archivos, el problema se da al enviar los datos ingresados al archivo, ya que en este se guarda solo basura... les dejaré el codigo para ver si detectan el error, estaré muy agradecido si pudieran ayudarme...

Lo realicé en BorlandC++ 5.0.2

Citar#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
int tecla, tecla2, tecla3;
typedef struct
      {
      char apellido1[15];
      char apellido2[15];
      char nombre1[15];
      char nombre2[15];
      int cedula[10];
      }identidad;

typedef struct
      {
      int convencional[9];
      int celular[10];
      char correo[50];
      }contacto;

typedef struct
      {
      char ciudad[20];
      char sector[20];
      char calle1[20];
      char calle2[20];
      int ncasa;
      }direccion;

typedef struct
      {
      identidad i;
      contacto c;
      direccion d;
      }persona;


   typedef struct
      {
      char nom_gym[20];
      char convencional[9];
      char celular[11];
      char correo[50];
      direccion d;
      }gym;

class cliente
      {
      private:
         persona cli;
      public:
         cliente();
         void ingreso_identidad(identidad h1);
         void ingreso_contacto(contacto h2);
         void ingreso_direccion(direccion h3);
         friend void ingreso_per(cliente &h4);
         void mostrar_identidad(identidad g1);
         void mostrar_contacto(contacto g2);
         void mostrar_direccion(direccion g3);
         friend void mostrar_cli(cliente g4);
         ~cliente();
      }; cliente::cliente(){}
class empleado
      {
      private:
         persona emp;
      public:
         empleado();
         void ingreso_identidad(identidad h1);
         void ingreso_contacto(contacto h2);
         void ingreso_direccion(direccion h3);
         friend void ingreso_per(empleado &h4);
         void mostrar_identidad(identidad g1);
         void mostrar_contacto(contacto g2);
         void mostrar_direccion(direccion g3);
         friend void mostrar_emp(empleado g4);
         ~empleado();
      }; empleado::empleado(){}


void cliente::ingreso_identidad(identidad h1)
{
printf("PRIMER  APELLIDO :\t");gets(h1.apellido1);
printf("SEGUNDO APELLIDO :\t");gets(h1.apellido2);
printf("PRIMER  NOMBRE   :\t");gets(h1.nombre1);
printf("SEGUNDO NOMBRE   :\t");gets(h1.nombre2);
printf("CEDULA           :\t");
for(int i=0;i<10;i++){
do{tecla=getch();}while(tecla<48 && tecla>57);
h1.cedula=tecla-48;
printf("%d",h1.cedula);}}


void cliente::ingreso_contacto(contacto h2)
{printf("\nCONVENCIONAL: ");
for(int i=0;i<9;i++){
do{tecla=getch();}while(tecla<48 && tecla>57);
h2.convencional=tecla-48;
printf("%d",h2.convencional);}
printf("\nCELULAR: ");
for(int e=0;e<10;e++){
do{tecla=getch();}while(tecla<48 && tecla>57);
h2.celular[e]=tecla-48;
printf("%d",h2.celular[e]);}
printf("\nEMAIL:  ");cin>>h2.correo;}

void cliente::ingreso_direccion(direccion h3)
{
printf("\nCIUDAD: ");gets(h3.ciudad);
printf("SECTOR: ");gets(h3.sector);
printf("CALLE PRINCIPAL: ");gets(h3.calle1);
printf("CALLE INTERSECCION: ");gets(h3.calle2);
printf("NUMERO DE CASA: ");cin>>h3.ncasa;
}

void ingreso_per(cliente &h4)
{
h4.ingreso_identidad(h4.cli.i);
h4.ingreso_contacto(h4.cli.c);
h4.ingreso_direccion(h4.cli.d);
}

cliente::~cliente(){}

void empleado::ingreso_identidad(identidad h1)
{
printf("PRIMER  APELLIDO : ");gets(h1.apellido1);
printf("SEGUNDO APELLIDO : ");gets(h1.apellido2);
printf("PRIMER  NOMBRE   : ");gets(h1.nombre1);
printf("SEGUNDO NOMBRE   : ");gets(h1.nombre2);
printf("CEDULA           : ");
for(int i=0;i<10;i++){
do{tecla=getch();}while(tecla<48 && tecla>57);
h1.cedula=tecla-48;
printf("%d",h1.cedula);
}}

void empleado::ingreso_contacto(contacto h2)
{printf("\nCONVENCIONAL: ");
for(int i=0;i<9;i++){
do{tecla=getch();}while(tecla<48 && tecla>57);
h2.convencional=tecla-48;
printf("%d",h2.convencional);
}

printf("\nCELULAR          :\t");
for(int e=0;e<10;e++){
do{tecla=getch();}while(tecla<48 && tecla>57);
h2.celular[e]=tecla-48;
printf("%d",h2.celular[e]);}
printf("\nEMAIL:  ");cin>>h2.correo;}

void empleado::ingreso_direccion(direccion h3)
{
printf("\nCIUDAD: ");gets(h3.ciudad);
printf("SECTOR: ");gets(h3.sector);
printf("CALLE PRINCIPAL: ");gets(h3.calle1);
printf("CALLE INTERSECCION: ");gets(h3.calle2);
printf("NUMERO DE CASA: ");cin>>h3.ncasa;

}

void ingreso_per(empleado &h4)
{
h4.ingreso_identidad(h4.emp.i);
h4.ingreso_contacto(h4.emp.c);
h4.ingreso_direccion(h4.emp.d);
}

empleado::~empleado(){}
//Funciones para Mostrar
void mostrar_identidad(identidad g1){
printf("PRIMER  APELLIDO :\t");printf(g1.apellido1);
printf("SEGUNDO APELLIDO :\t");printf(g1.apellido2);
printf("PRIMER  NOMBRE   :\t");printf(g1.nombre1);
printf("SEGUNDO NOMBRE   :\t");printf(g1.nombre2);
printf("CEDULA           :\t");
printf("%d",g1.cedula);}

void mostrar_contacto(contacto g2){
printf("\nCONVENCIONAL: ");
printf("%d",g2.convencional);
printf("\nCELULAR: ");
printf("%d",g2.celular);
printf("\nEMAIL:  ");cout<<g2.correo;
}

void mostrar_direccion(direccion g3){
printf("\nCIUDAD: ");cout<<g3.ciudad;
printf("SECTOR: ");cout<<g3.sector;
printf("CALLE PRINCIPAL: ");cout<<g3.calle1;
printf("CALLE INTERSECCION: ");cout<<g3.calle2;
printf("NUMERO DE CASA: ");printf("%d",g3.ncasa);
}

void mostrar_cli(cliente g4){
mostrar_identidad(g4.cli.i);
mostrar_contacto(g4.cli.c);
mostrar_direccion(g4.cli.d);
         }
void mostrar_emp(empleado g4){
mostrar_identidad(g4.emp.i);
mostrar_contacto(g4.emp.c);
mostrar_direccion(g4.emp.d);
}

void borrar_datos(){
          gotoxy(1,4);cout<<"                                                                                                                          ";
          gotoxy(1,5);cout<<"                                                                                                                         ";
          gotoxy(1,6);cout<<"                                                                                                                         ";
          gotoxy(1,7);cout<<"                                                                                                                         ";
          gotoxy(1,8);cout<<"                                                                                                                         ";
          gotoxy(1,9);cout<<"                                                                                                                         ";
         gotoxy(1,10);cout<<"                                                                                                                         ";
          gotoxy(1,11);cout<<"                                                                                                                         ";
          gotoxy(1,12);cout<<"                                                                                                                         ";
          gotoxy(1,13);cout<<"                                                                                                                         ";
          gotoxy(1,14);cout<<"                                                                                                                         ";
          gotoxy(1,15);cout<<"                                                                                                                         ";
          gotoxy(1,16);cout<<"                                                                                                                         ";
          gotoxy(1,17);cout<<"                                                                                                                         ";
          gotoxy(1,18);cout<<"                                                                                                                         ";
          gotoxy(1,19);cout<<"                                                                                                                         ";
          gotoxy(1,20);cout<<"                                                                                                                         ";
          gotoxy(1,21);cout<<"                                                                                                                         ";
          gotoxy(1,22);cout<<"                                                                                                                         ";
          gotoxy(1,23);cout<<"                                                                                                                         ";
          gotoxy(1,24);cout<<"                                                                                                                         ";
          gotoxy(1,25);cout<<"                                                                                                                         ";
          gotoxy(1,26);cout<<"                                                                                                                         ";
          gotoxy(1,27);cout<<"                                                                                                                         ";
          gotoxy(1,28);cout<<"                                                                                                                         ";
          gotoxy(1,29);cout<<"                                                                                                                         ";
          gotoxy(1,30);cout<<"                                                                                                                         ";


}

void gym_mostrar(gym &v){
clrscr();
cout<<"\t"<<v.nom_gym<<endl;
cout<<"\nDireccion:\n"<<endl;
cout<<v.d.ciudad<<" - "<<v.d.sector<<endl;
cout<<v.d.calle1<<" y "<<v.d.calle2<<"No. "<<v.d.ncasa<<endl;
cout<<"\nContacto:\n"<<endl;
cout<<"Telefono: "<<v.convencional<<endl;
cout<<"Celular: "<<v.celular<<endl;
cout<<"Email: "<<v.correo<<endl;
}

void gym_salir(gym &v){
clrscr();
cout<<"\t"<<v.nom_gym<<endl;
cout<<"\nDireccion:\n"<<endl;
cout<<v.d.ciudad<<" - "<<v.d.sector<<endl;
cout<<v.d.calle1<<" y "<<v.d.calle2<<"No. "<<v.d.ncasa<<endl;
cout<<"\nContacto:\n"<<endl;
cout<<"Telefono: "<<v.convencional<<endl;
cout<<"Celular: "<<v.celular<<endl;
cout<<"Email: "<<v.correo<<endl;
cout<<"\n\nPulse una tecla para Salir...";
}

void main()
{ FILE *pa;
  gym g;
  cliente c;
  empleado e;
  strcpy(g.nom_gym,"    TempleGYM");
  strcpy(g.convencional,"052563549");
  strcpy(g.celular,"0967004356");
  strcpy(g.correo,"templegym@mail.com");
  strcpy(g.d.ciudad,"Portoviejo");
  strcpy(g.d.sector,"Los Bosques");
  strcpy(g.d.calle1,"Av Manabi");
  strcpy(g.d.calle2,"Tennis Club ");
  g.d.ncasa=34;
    system("cls");
  //MENU
char menu[5][15]={"Registrar","Mostrar","Buscar","Eliminar","Salir"};
  int tecla,col=2,i,indice=0;
  gym_mostrar(g);
  cout<<"\nPresione una Tecla para continuar...";
  getch();
  clrscr();
  for (i=0;i<5;i++){
   gotoxy(col,2);cprintf("%s",menu);
   col+=15;}
  col=2;i=1;
   do{
      do{_setcursortype(_NOCURSOR);
    textbackground(6);
    gotoxy(col,2);cprintf("%s",menu[indice]);
    tecla=getch();
      }while(tecla!=77 && tecla != 75 && tecla!=13);
      textbackground(0);
      gotoxy(col,2);cprintf("%s",menu[indice]);
      switch(tecla){
      case 77: if (indice==4){col=2;indice=0;}
          else {col+=15;indice++;}
          break;
      case 75: if (indice==0){col=62;indice=4;}
          else {col-=15;indice--;}
          break;
      case 13: _setcursortype(_NORMALCURSOR);
          if (indice==0){
          gotoxy(1,4);
          cout<<"Presione <E> si desea ingresar un empleado o <C> si desea ingresar un cliente"<<endl;
          tecla2=getch();
          switch(tecla2){
          case 67:{pa = fopen("Clientes.bin","ab+");
          ingreso_per(c);
         fwrite(&c,sizeof(cliente),1,pa);
         fclose(pa);
         cout<<"\nPulse una tecla para continuar";getch();borrar_datos();};
         break;
         case 99:{pa = fopen("Clientes.bin","ab+");
          ingreso_per(c);
         fwrite(&c,sizeof(cliente),1,pa);
         fclose(pa);
         cout<<"\nPulse una tecla para continuar";getch();borrar_datos();};
         break;
         case 69:{pa = fopen("Empleados.bin","ab+");
          ingreso_per(e);
         fwrite(&e,sizeof(empleado),1,pa);
         fclose(pa);cout<<"\nPulse una tecla para continuar";getch();borrar_datos();};
         break;
         case 101:{pa = fopen("Empleados.bin","ab+");
          ingreso_per(e);
         fwrite(&e,sizeof(empleado),1,pa);
         fclose(pa);cout<<"\nPulse una tecla para continuar";getch();borrar_datos();};
         break;
         default:{printf("Opcion incorrecta.");getch(); gym_mostrar(g);getch();clrscr();}
         };}
          if (indice==1)
          {
          gotoxy(1,4);
          cout<<"Presione <E> si desea mostrar a los empleados o <C> si desea mostrar a los clientes"<<endl;
          tecla3=getch();
          switch(tecla3){
          case 67:
          {
          pa = fopen("Clientes.bin","rb");
          fread(&c,sizeof(cliente),1,pa);
          mostrar_cli(c);
          getch();
          fclose(pa);cout<<"\nPulse una tecla para continuar";getch();borrar_datos();
          };
         break;
         case 99:
         {
         pa = fopen("Clientes.bin","rb");
          fread(&c,sizeof(cliente),1,pa);
          mostrar_cli(c);
          getch();
          fclose(pa);cout<<"\nPulse una tecla para continuar";getch();borrar_datos();
         };
         break;
         case 69:
         {
         pa = fopen("Empleados.bin","rb");
          fread(&e,sizeof(empleado),1,pa);
          mostrar_emp(e);
          getch();
          fclose(pa);cout<<"\nPulse una tecla para continuar";getch();borrar_datos();
         };
         break;
         case 101:
         {   
         pa = fopen("Empleados.bin","rb");
         fread(&e,sizeof(empleado),1,pa);
          mostrar_emp(e);
          getch();
          fclose(pa);cout<<"\nPulse una tecla para continuar";getch();borrar_datos();
         }   
         };   
         }
          if (indice==2)
          {
          gotoxy(1,4);
          cout<<"En Construccion";cout<<"\nPulse una tecla para continuar";getch();borrar_datos();
           }
          if (indice==3)
          {
          gotoxy(1,4);
          cout<<"En Construccion";cout<<"\nPulse una tecla para continuar";getch();borrar_datos();
          }
          if (indice==4){gym_salir(g); getch();i=0;
          }
      }
   }while(i);
}
#2
El ejercicio es el siguiente
Desarrolle un programa que permita registrar la atención médica de N pacientes que tiene un seguro de salud, se pide crear una estructura para la clínica que permita registrar el nombre y la dirección, otra estructura que sirva para registrar tanto a los médico como para los pacientes (nombre y especialidad_tratamiento), y una tercera estructura que registre la unión de las dos estructuras anteriores, que incluya información de la clínica, médico y paciente, además se debe registrar el costo de atención, el programa antes de finalizar debe mostrar el total a pagar por los costos de atención a los clientes.

es con estructuras pero casi no entendi muy bien esa clase.. hice uno pero solo para un paciente... de este ejercicio
"Desarrolle un programa que permita registrar la atención médica de un paciente que tiene un seguro de salud, se pide crear una estructura para la clínica que permita registrar el nombre y la dirección, otra estructura que sirva para registrar tanto al médico como para al paciente (nombre y especialidad_tratamiento), y una tercera estructura que registre la unión de las dos estructuras anteriores, que incluya información de la clínica, médico y paciente, además se debe registrar el costo de atención."
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct dat_clinica{
char *nombrec;
char  *direccion;};
struct medi_paci{
char  *nombrep;
char *tratamiento;
char *nombrem;
char *especialidad;};
struct dato_cli{
float costo;
dat_clinica clinica;
medi_paci datospaci;};
void main()
{dato_cli datmd;
system("cls");
printf("Ingrese Nombre de la clinica:\n");
gets(datmd.clinica.nombrec);
printf("Direccion: \n");
gets(datmd.clinica.direccion);
printf("Ingrese nombre del paciente: \n");
gets(datmd.datospaci.nombrep);
printf("Tratamiento\n");
gets(datmd.datospaci.tratamiento);
printf("Ingrese nombre del medico: \n");
gets(datmd.datospaci.nombrem);
printf("Especialidad\n");
gets(datmd.datospaci.especialidad);
printf("Ingrese costo de la atecion: \n ");
scanf("%f",&datmd.costo);
system("cls");
printf("\tDatos Medicos\n");
printf("\Nombre de la clinica: %s\n",datmd.clinica.nombrec);
printf("\Direccion de la clinica: %s\n",datmd.clinica.direccion);
printf("\Nombre del paciente: %s\n",datmd.datospaci.nombrep);
printf("\Tratamiento requerido: %s\n",datmd.datospaci.tratamiento);
printf("\Nombre del medico: %s\n",datmd.datospaci.nombrem);
printf("\Especilizado en: %s\n",datmd.datospaci.especialidad);
printf("\Costo total: %6.3f\n",datmd.costo);
system("pause");}


si me sale bien, pero pueden ayudarme a hacerlo para varios pacientes, por favor. =D
Gracias desde ya

MOD EDIT: Agregado de etiquetas GeSHi