Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ayuda con una clase

Estas en el tema de Ayuda con una clase en el foro de C/C++ en Foros del Web. Hola, bueno la pregunta que boi a hacer no esta relacionada del todo con codigo en si, sino en el diseño, me gustaria hacer para ...
  #1 (permalink)  
Antiguo 22/08/2008, 02:11
Avatar de Fayca  
Fecha de Ingreso: abril-2008
Mensajes: 164
Antigüedad: 16 años, 1 mes
Puntos: 2
Ayuda con una clase

Hola, bueno la pregunta que boi a hacer no esta relacionada del todo con
codigo en si, sino en el diseño, me gustaria hacer para una clase representar bases
datos por ejemplo una agenda. quisiera que la clase fuera generica que la
pudiera usar en cualquier programa. mi pregunta es encuanto el diseño de
la clase como me recomiendan hacerla por ejemplo lo que yebo pensado hasta
ahorita es esto:

Código:
class cells;
{
    public:
        std::string titles;           //Genra los titulos
        void reset();                 //Regresa todo a la misma forma que cuando se declaro cells
        std::string title(int index); //Regresa la cadena del titulo deseado
        void add(int index);          //Ingresa un nuevo elemento
        void write();                 //Muestra en pantalla la tabla generada
    private:
        std::string *Titles;          //Guarda un array con titulos el array es generado con memoria dinamica.
        std::string *Cells;           //Genera un array con Todos los datos que seran mostrados x, y igual se hace con memoria dinamica 
};
Un ejemplo de la salida que deso seria esta

Código:
+----------------------------------------------------------------+
|@@@@@@@@@@@@@@> Agenda personal de: Fayca <@@@@@@@@@@@@@@@@@@@@@|
+----------------------------------------------------------------+
|    Nombre    | Correo electrónico | Telefono |    Dirección    |
+--------------+--------------------+----------+-----------------+
|Caleb Ramirez |[email protected]    |          |                 |
+--------------+--------------------+----------+-----------------+
|Fabiola       |FabiolaDeRamirez@gm-|          | Por ahi         |
|Peralez       |ail                 |          |                 |
|Peralez       |                    |          |                 |
+--------------+--------------------+----------+-----------------+
|Gizleberto    |[email protected]     |33333333  |Por ahi tambien  |
|Caleb         |                    |          |Vivo             |
+--------------+--------------------+----------+-----------------+
se supone que yo a la clase solo le paso los datos y la clase se encarga
de darle ese estilo de tabla que es util para mostrar una base de datos
de una forma entendible y presentable, entonces cuales serian sus sugerencias en cuanto al diseño de la clase?

pd: si existe lla una clase que lo hagana abisen jeje que no quiero reinventar la rueda
sino examinarla, comprenderla y talbes mejorarla
  #2 (permalink)  
Antiguo 22/08/2008, 04:30
Avatar de Mort20  
Fecha de Ingreso: junio-2008
Ubicación: Roca Casterly
Mensajes: 141
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: Ayuda con una clase

Primero, no entiendo como declaras la función add(); para añadir las cosas, quiero decir, si sólo tienes un parámetro, ¿cómo le pasas los demás? Entiendo que el index te indica si se agrega un título, un nombre... Pero, ¿el otro parámetro dónde lo recoges?

Luego, creo que sería más apropiado que tu clase sólo contenga una única agenda. En el main() (o dónde sea) haces un vector de objetos de esa clase.
El problema mayor de lo que yo digo (que no veo que tu modelo no lo tenga) es cómo buscar la agenda de un X concreto. Lo que a mi se me ocurre es que les pongas un id "ordenado", me explico:
tenemos la persona A y la persona B. Alfabéticamente A va a antes de B. Cómo sólo son 2, A tendrá el id 0 (1-1) y B el id 1 (2-1). Si añadimos AA, que irá alfabéticamente antes de B, con una búsqueda dicótomica (por ejemplo) vamos buscando el lugar dónde encaja según el nombre. Desplazamos todos los demás y lo insertamos - lo que sería la segunda parte de la ordenación por inserción -.

Para lo primero yo creo que es preferible tener una función por cada campo, una de añadir/quitar(un parámetro bool, si es 0 añades, si es 1 quitas) y otra de consultar.

P.D: puedes usar la plantilla vector, que personalmente me gusta mucho, parecida a tus arrays que también permite hacerlos de un número indeterminado: http://cppreference.com/cppvector/index.html
__________________
Un Lannister siempre cumple sus promesas
  #3 (permalink)  
Antiguo 22/08/2008, 05:14
Avatar de Fayca  
Fecha de Ingreso: abril-2008
Mensajes: 164
Antigüedad: 16 años, 1 mes
Puntos: 2
Respuesta: Ayuda con una clase

Hola gracias por las recomendaciones,
lo de la agenda fue un ejemplo lo que yo quiero hacer realmente es un objeto generico donde pueda visualisar bases de datos por ejemplo en visual basic el control flexgrid para poder mostrar datos en una tabla
si tienes razon pusa mal add(),
un ejemplo de como quiero usarla seria asi:
abro una base de datos bolco todos sus datos al objeto,
cierro la base de datos, y de ahi en adelante la gestiono la base de datos con el objeto cells, lo del indexado creeo que se generaria solo insertando datos
el indice 0 seria el indece 0 en el array, aunque seria una buena idea agregar una
opcion que ordene alfabeticamente segun los campos de un titulo
quedaria algo asi

Código:
class cells;
{
    public:
        std::string titles;                       //Genera los titulos
        void reset;                               //Regresa todo al principio
        std::string title(int index);             //Regresa la cadena del titulo deseao
        void add(int index, std::string content); //Ingresa un nuevo elemento
        void write();                             //Muestra en pantalla la tabla generada
        void sorted(int index);                   //Ordena una fila
    private:
        std::string *Titles;                      //Guarda un array con los titulos
        std::string *Cells;                       //Guarda el array con los datos
};
gracias por el tiempo que es valioso

pd: jamas e usado vectores y no se muy bien como funcionen aunque boi a berlos talbes pudieran servir
  #4 (permalink)  
Antiguo 22/08/2008, 06:24
Avatar de Fayca  
Fecha de Ingreso: abril-2008
Mensajes: 164
Antigüedad: 16 años, 1 mes
Puntos: 2
Respuesta: Ayuda con una clase

Hola a todos creeo que e remplasado el diseño de la clase por otro haber que opinan por este
si serviria:
Código:
class cells
{
    public:
        int Col;                                  //Establece la columna actual
        int Row;                                  //Establece la fila actual
        int BackColor;                            //Establece el color de fondo
        int FontColor;                            //Establece el color de la letra
        void Text(std::string text);              //Inserta texto en el area actual
    private:
        std::string *Cells;                       //Guarda el array con los datos[][]
};
funcionaria asi:
por ejemplo si quiero insertar en la tabla texto en x=0,y=0, osea en la esquina superior izquierda seria algo asi
Cells.col = 0;
Cells.Row = 0;
Cells.Text("Estoi insertando texto en x = 0, y = 0");
lo de BackColor, y FontColor seria con codi ASCII
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:37.