Dev - C++ - Como pasar este programa a una clase

 
Vista:

Como pasar este programa a una clase

Publicado por Oscar Antonio (3 intervenciones) el 03/01/2017 15:35:05
Tengo el siguiente programa echo con struct, pero necesito hacerlo con clases, es para llevar el control de los relojes que entran en una relojeria; hay que listar los tipos de reloj, imprimir los reloj con igual hora de rotos, en el caso 4 los recepcionados entre un segmento de hora determinado, en el caso 5 cuantos relojes se recepcionaron de cada tipo y el caso 6 una lista ordenada descendente de las horas de llegadas de cada reloj
FAVOR ALGUIEN ME DA UNA MANO

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
#include <iostream>
#include <stdlib.h>
#include <string>
 
using namespace std;
 
//---------------------------------------------------------------------------
   struct relojeria {
      string nombre; //nombre del dueño del reloj
      char MReloj[10]; // marca del reloj
      int tr; // tipo de reloj
      float HoraR; // hora del reloj cdo se rompió
      float HoraLl; //hora de llegada a la relojeria
   } cliente[50];
 
   float B[50];
 
   void printTR(int); // imprime el tipo de reloj
   void idemHora(int);
   void printSegmento(int);
   void TipoReloj(int);
   void inarreglo(int); //introduce en un arreglo las horas de llegadas de los relojes
   void ordena(int); // ordena descendente las horas de llegadas de los relojes
   void imprimeLOD(int); // imprime a lista
 
int main ()  //*********PROGRMA PRINCIPAL**************//
{
    int i, opc;
    int c=0;
 
    do { /* Inicio del ciclo que imprime el menú*/
	    cout << "\n               MENU              \n******************************************\n*                                        *\n";
		cout << "* Que operacion desea realizar?          *\n* 1 = Insertar datos                     *\n* 2 = Tipos de Reloj                     *\n";
		cout << "* 3 = Reloj roto con igual Hora          *\n* 4 = Recepcionados entre las...         *\n";
		cout << "* 5 = Total por tipo de reloj            *\n* 6 = List. de hora desc (Reloj pulsera) *\n* 0 = Salir                              *\n";
		cout << "*                                        *\n******************************************\n";
	    cin >> opc;
	    switch (opc) {
	       case 1: //Insertar datos
			  if(c >= 50) // Verifica si hay espacio 
			     cout << "LA RELOJERIA ESTA EN INVENTARIO" << endl;
			  else  {
	   			cout << "Ingresa los datos del Reloj" << endl;
				cout << "Nombre del Cliente: "; cin >> cliente[c].nombre;
				cout << "Marca: "; cin >> cliente[c].MReloj;
				cout << "Tipo: (1)-Pulsera, (2)-Despertador, (3)-Pared => "; cin >> cliente[c].tr;
				cout << "Hora de rotura [h.m]: "; cin >> cliente[c].HoraR;
				cout << "Hora de llegada [h.m]: "; cin >> cliente[c].HoraLl;
				c++;
			    system("PAUSE"); cout << endl;
		      }
		   break;
		case 2: //Tipos de Reloj
		   	   printTR(c);
		   	   system("PAUSE");
	       break;
 		   case 3: // Reloj roto con igual Hora
		      idemHora(c);
	       break;
		   case 4: // Recepcionados entre dos horas dadas
		      printSegmento(c);
	       break;
		   case 5: //Total por tipo de reloj
		      TipoReloj(c);
	       break;
	        case 6: // Hora de los Reloj pulsera descendente
		      int i, j; i=j=0;
			  inarreglo(c); // meter en un registro la hora del reloj cdo se rompió
			  ordena(c); // lista ordenada descendente mediante algoritmo burbuja
			  imprimeLOD(c); // Imprime esa lista
		   break;
 
		   case 0: // Caso salir, no hace nada 
		      cout << "Finalizando programa" << endl;
		   break;
 
		   default: // Otra opcion: no válida
              cout << "Opcion desconocida!" << endl;
           break;
	    }
	} while (opc !=0 ); // El ciclo do-while se repite mientras la opción no sea salir (6) 
    return 0;
} //***********************FINALIZA PROGRMA PRINCIPAL********************************//
//--------------------------case 2----------------------------------------------
   void printTR(int f) {
   	  int i=0;
	  while(i < f) {
	     if (cliente[i].tr != 0) cout << "tipo>"<< cliente[i].tr<< endl;
		 i++;
	  }
   }
//--------------------------case 3----------------------------------------------
   void idemHora(int d) {
      int k; k=1;
	  for(int j = 0; j < d-1; j++) {
	     for(k = k+j; k < d; k++) {
		    if (cliente[j].HoraR == cliente[k].HoraR)
			   cout << "El reloj de "<< cliente[j].nombre << " tiene la misma hora ( " << cliente[j].HoraR << " ) que el reloj de " << cliente[k].nombre << endl;
		 }
		 k= j+1;
	  }
   }
 //--------------------------case 4----------------------------------------------
   void printSegmento(int d) {
      int cant, i; float h1, h2; cant= i= 0;
	  cout << "Entre la hora inical=> "; cin >> h1;
	  cout << "Entre la hora final=> "; cin >> h2;
	  while(i < d ) {
	     if (cliente[i].HoraLl >= h1 && cliente[i].HoraLl <= h2) cant++;
	     i++;
	  }
	  cout <<"Se recepcionaron en ese segmento de hora: " << cant << " Reloj(es)"<< endl;
	}
//-------------------------case 5----------------------------------------------	
	void TipoReloj(int d) {
	   int i, cp, cd, cpa; i= cp= cd= cpa= 0;
	   while(i <= d) {
		   if (cliente[i].tr == 1) cp++;
		   	   else if (cliente[i].tr == 2) cd++;
		   	   	   else if (cliente[i].tr == 3) cpa++;
		   i++ ;
		}
		cout << "Reloj Pulsera=> " << cp << endl;
		cout << "Reloj Despertador=> " << cd << endl;
		cout << "Reloj Pared=> " << cpa << endl;
	}
//-------------------------case 6----------------------------------------------   
   void inarreglo(int d) {
      int i, j; i=j=0;
      while(i < d ) {
         if (cliente[i].tr == 1 ) {
		    B[j]= cliente[i].HoraR; //cout << "Nombre: " << cliente[i].nombre << " Hora: " << B[j] << endl;
		    i++; j++;
		 }
		 else i++;
      }
   }
      void ordena( int e) { // Método de ordenación mediante burbuja                
      int temp;
      for ( int m = 0; m < e ; m++ ) {
 	     for ( int n = 0; n <= e; n++ ) {
    	    if ( B[n] < B[n + 1] ) {
			   temp = B[n]; //cout << "temp= " << temp << endl;
			   B[n] = B[n + 1]; //cout << "Bn= "<< B[n] << endl;
 		 	   B[n + 1] = temp; //cout << "Bn+1= " << B[n+1] << endl;
		    }
 	     }
      }
   }
      void imprimeLOD( int d ) {
	  cout << "Listado descendente: ";
	  for ( int i = 0; i < d; i++ ) {
	     cout << B[i] << "  ";
	  }
	  cout << endl;
   }
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 661
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Como pasar este programa a una clase

Publicado por agustin (522 intervenciones) el 04/01/2017 01:38:34
Yo cambiaria:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
struct relojeria {
      string nombre; //nombre del dueño del reloj
      char MReloj[10]; // marca del reloj
      int tr; // tipo de reloj
      float HoraR; // hora del reloj cdo se rompió
      float HoraLl; //hora de llegada a la relojeria
   } cliente[50];
 
   float B[50];
 
   void printTR(int); // imprime el tipo de reloj
   void idemHora(int);
   void printSegmento(int);
   void TipoReloj(int);
   void inarreglo(int); //introduce en un arreglo las horas de llegadas de los relojes
   void ordena(int); // ordena descendente las horas de llegadas de los relojes
   void imprimeLOD(int); // imprime a lista
Por:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class relojeria {
   private:
      string nombre; //nombre del dueño del reloj
      char MReloj[10]; // marca del reloj
      int tr; // tipo de reloj
      float HoraR; // hora del reloj cdo se rompió
      float HoraLl; //hora de llegada a la relojeria
      float B[50]; //esta línea debes de hacerlo de otra manera más acorde aunque en el móvil poco puedo ver
   public:
   void printTR(int); // imprime el tipo de reloj
   void idemHora(int);
   void printSegmento(int);
   void TipoReloj(int);
   void inarreglo(int); //introduce en un arreglo las horas de llegadas de los relojes
   void ordena(int); // ordena descendente las horas de llegadas de los relojes
   void imprimeLOD(int); // imprime a lista
   };
Luego en main por ejemplo haces:
1
relojeria cliente [50];
Y ya el resto seria prácticamente igual. Lo de float B[50] yo más que añadir un array a la clase usaría un puntero y a la hora de crear la clase le pasaría cómo parámetro el array para que el puntero apunte a el. Con eso se evitaría tener 50 arrays de 50 posiciones cada uno ya que todas las clases apuntaría al mismo array. No tengo pc cerca y de cabeza en un móvil se hace complicado jejeje.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como pasar este programa a una clase

Publicado por Oscar Antonio (3 intervenciones) el 04/01/2017 13:54:53
Gracias por tu ayuda Agustin
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar