By Maex.

        Se trata de la forma más  versatil de trabajar con fichas de información.  Veamos como  se definen  y posteriormente 

comentaremos todos los aspectos relevantes de ellas.

        struct [Nombre_de_la_estructura]
                {
                        tipo1   campo1;
                        tipo2   campo2;
                        .
                        .
                        tipoN   campoN;
                } [variable];

        La palabra clave struct  define una estructura. Por tratarse de un tipo  de datos puede utilizarse directamente  para definir una variable. La  variable aparece entre corchetes  puesto que puede ser omitida.  Si se  especifica una  variable, estaremos  definiendo una

variable cuyo tipo será la estructura que la precede. Si la variable no es indicada definimos un nuevo tipo de datos (struct Nombre_de_la_estructura), que podremos utilizar posteriormente. Si es el nombre de la estructura lo que se omite, tendremos que especificar obligatoriamente una variable que tendrá esa estructura y no podremos definir otras variables con esa estructura sin tener que volver a especificar todos los campos. Lo que se encuentra dentro de las llaves es una definición típica de variables con su tipo y su identificador. Todo esto puede parecer un poco confuso pero lo aclararemos con unos ejemplos.

        struct punto
                {
                        float   x;
                        float   y;
                        int     color;
                } punto_de_fuga;

        Aquí estamos  definiendo una variable  llamada punto_de_fuga cuyo tipo es una estructura de datos  formada por tres campos y a la que  hemos  llamado  punto.  Dos  de  ellos  son  de  tipo  float  y representan las coordenadas del punto,  el tercer valor es un entero que indica  el color de ese  punto. En este caso  hemos definido una variable y una estructura. Al disponer de un identificador para esta última podemos definir nuevas variables de esta estructura.

        struct punto    origen1;
        struct punto    final1;

        Donde origen1  y final1 son  variables de tipo  struct punto que   hemos  definido   anteriormente.  Si   en  la   definición  de punto_de_fuga  no  se  hubiese  incluído  un  identificador  para la estructura (en  este caso el  identificador es punto),  no podríamos definir  nuevas  variables  con  esa  estructura  ya  que no estaría identificada por ningún nombre.

        También podríamos  haber excluído el  nombre de la  variable (punto_de_fuga).  En  este  caso   lo  que  definiríamos  sería  una estructura llamada punto que pasaría  a ser un nuevo tipo disponible por  el usuario.  Así los  tipos de  variables de  que dispondríamos ahora serían:

        int
        float
        double
        char
        struct punto

        Por  tanto podríamos  definir cualquier  variable con  estos tipos o incluso definir matriz de estos tipos.

        struct punto    matriz_de_puntos[30];

        Así estaríamos  definiendo una matriz de  30 elementos en la que cada elemento es una struct punto con sus tres campos.

        Lo  que ahora  nos interesa  es saber  como referenciar esos campos  y  acceder  o  modificar,   por  tanto  la  información  que contienen. Esto se consigue separando  el identificador del campo de la variable mediante un punto.

ARTÌCULO ENVIADO POR GUSTAVO GONZALEZ LINARES

ESTUDIANTE DE INGENIERÌA EN SISTEMAS, TECNOLOGICO DE VALLE DE BRAVO


El siguiente programa està hecho en Visual Basic y maneja estructuras, por lo tanto, tal programa puede ser implementado en cualquier otro lenguaje como JAVA

Private Type Ficha

   nombre As String * 40
   nota As Single

End Type Private alumno(20) As Ficha Dim n As Integer Dim cadena As String Private Sub Aceptar_Click()

   Dim i As Integer
   Dim j As Integer
   i = Indice.Text
   With alumno(i)
      .nombre = Text2.Text
      .nota = Text3.Text
   cadena = “alumno (“ & i & “)” & “  “ & alumno(i).nombre & “calificacion” & “ “ & alumno(i).nota
   End With
   Lista.Add Item? cadena, (j)
   Text2.Text = “ “
   Text3.Text = “ “
   If i = n Then
      Text2.Visible = False
      Text3.Visible = False
      Aceptar.Visible = False
      aviso.Visible = True
      Label3.Visible = False
      Label4.Visible = False
      Label2.Visible = False
      Otro_dato.Visible = True
      Exit Sub
   End If
   j = j + 1
   i = i + 1
   Indice.Text = i
   Text2.Set Focus?

End Sub Private Sub Command1_Click()

   n = Input Box?(“Ingrese numero de registros”)
   Text2.Set Focus

End Sub Private Sub Command2_Click()

   Dim x As Integer
   cadena = “¿Seguro que desea borrar el registro” & Lista.List Index? & “?”
   Msg Box (cadena), , “¡Mensaje!”
   x = Lista.List Index
   Lista.Remove Item? (x)

End Sub Private Sub Command3_Click()

   For i = 1 To n
      cadena = “alumno (“ & i & “)” & “   “ & “Nombre” & “  “ & alumno(i).nombre & “calificacion” & “ “ & alumno(i).nota
      Msg Box (cadena), , “Registros del vector”
   Next i

End Sub

Private Sub Form_Load()

   Dim n As Integer, i As Integer
   Dim s As Integer, k As Integer
   aviso.Visible = False
   Indice.Text = 1
   Text2.Text = “ “
   Text3.Text = “ “

End Sub Private Sub Ordenar_Click()

   Dim aux As Ficha
   i = Indice.Text
   While (s = 1) And (k > 1)
      s = 0
      For i = 2 To k
         If alumno(i - 1).nombre > alumno(i).nombre Then
            aux = alumno(i - 1)
            alumno(i - 1) = alumno(i)
            alumno(i) = aux
            s = 1
         End If
      Next i
    Wend
    For i = 0 To n
       Lista.List(i) = “ “
    Next i
    For i = 0 To n
       Lista.List(i) = alumno(i).nombre
       Lista.List(i) = alumno(i).nota
    Next i

End Sub

Programa que utiliza paquetes y procesa los datos de un empleado, ademas de utilizar estructuras. Por:Gustavo Gonzalez Linares

//Paquete Fecha?.java package paquetito; import javax.swing.J Option Pane; public class Fecha {

    private int dia;
    private int mes;
    private int anio;
    public Fecha ()
    {
        int d=introducirDia();
        int m=introducirMes();
        int a=introducirAnio();
        validarTodo(d,m,a);
    }
    public void validarTodo(int dia, int mes, int anio)
    {
        this.dia=validarDia(dia);
        this.mes=validarMes(mes);
        this.anio=anio;
    }
    public int validarDia(int day)
    {
        if(day>0 && day<31)
            return day;
        else
        {
            J Option Pane.showMessageDialog(null,”Dìa incorrecto, escriba otro dìa”, “ERROR”,J Option Pane.INFORMATION_MESSAGE);
            int d=introducirDia();
            return d;
        }
    }
    public int validarMes(int month)
    {
        if(month>0 && month<13)
            return month;
        else
        {
            J Option Pane.showMessageDialog(null,”Mes incorrecto, escriba otro mes”, “ERROR”,J Option Pane.INFORMATION_MESSAGE);
            int m=introducirMes();
            return m;
        }
    }
    public int introducirDia()
    {
        String dia=J Option Pane.showInputDialog(“Ingrese el dìa”);
        int d=Integer.parseInt(dia);
        return d;
    }
    public int introducirMes()
    {
        String mes=J Option Pane.showInputDialog(“Ingrese el mes”);
        int m=Integer.parseInt(mes);
        return m;
    }
    public int introducirAnio()
    {
        String anio=J Option Pane.showInputDialog(“Ingrese el año”);
        int a=Integer.parseInt(anio);
        return a;
    }
    public String aCadena()
    {
        return dia+” “+”/”+mes+” “+”/”+anio;
    }
    public int obtenerDia()
    {
        return dia;
    }
    public int obtenerMes()
    {
        return mes;
    }
    public int obtenerAnio()
    {
        return anio;
    }

}

package paquetito; import paquetito.Fecha; import javax.swing.J Option Pane; public class Empleado {

    private String nombre;
    private String fechaDeNacimiento;
    private String fechaDeIngreso;
    public Empleado()
    {
        nombre=introducirNombre();
        J Option Pane.showMessageDialog(null,”Ingrese fecha de naciomiento:”,”DATOS”,J Option Pane.INFORMATION_MESSAGE);
        Fecha Nacimiento=new Fecha();
        J Option Pane.showMessageDialog(null,”Introduzca fecha de ingreso:”,”DATOS”,J Option Pane.INFORMATION_MESSAGE);
        Fecha Ingreso=new Fecha();
        fechaDeNacimiento=Nacimiento.aCadena();
        fechaDeIngreso=Ingreso.aCadena();
    }
    public String introducirNombre()
    {
        String nom=J Option Pane.showInputDialog(“Ingrese su nombre”);
        return nom;
    }
    public String aCadenaEmpleado()
    {
        return “El nombre del empleado es:”+” “+nombre+”\n”+
               “Su fecha de nacimiento es:”+” “+fechaDeNacimiento+”\n”+
               “Su fecha de ingreso es:”+” “+fechaDeIngreso;
    }

} //Paquete principal import paquetito.Empleado; import paquetito.Fecha; import javax.swing.J Option Pane; class Prueba Empleado//La clase crea un vector de {//tipo empleado y de esta manera se crea una serie de

    public static void main(String args[])//objetos del 
    {//mismo tipo
        Empleado vectorE[]=new Empleado[5];
        for(int i=0;i<vectorE.length;i++)
        {
           vectorE[i]=new Empleado();
           J Option Pane.showMessageDialog(null,vectorE[i].aCadenaEmpleado(),”DATOS DEL EMPLEADO”,J Option Pane.INFORMATION_MESSAGE);
        }
    }

}


Google