C/Visual C - Arreglos y estructuras

 
Vista:

Arreglos y estructuras

Publicado por Camila (1 intervención) el 19/12/2005 23:32:08
Hola, tengo que diseñar un programa que permita lo siguiente: El usuario indica la cantidad de oficinas y sus respectivos nombres (strings) y para cada oficina se deben agregar los trabajadores correspondientes con sus datos.

Primero tengo un arreglo dinamico bidimencional que me permite almacenar los nombres de las oficinas y una estrucctura que almacena los datos de los trabajadores pero NO SE como hacer que para cada oficina se pueda agregar un trabajador en particular. Pense en un arreglo de arreglos pero no se como utilizarlo. Cualquier ayuda es bienvenida.

Codigo del arreglo bidimensional para las oficinas::

// Da memoria para las oficinas, con un n y m leidos del usuario.

char **DaMemoria2 (int n, int m)
{
char **aux;
aux = (char **) malloc (n* sizeof(char *));
for (i=0; i<n; i++)
{
aux [i] = (char *) malloc (m* sizeof(char));
}
if (aux [i] == NULL)
{
printf("\nMemoria insuficiente, cierre algunas aplicaciones y vuelva a intentar");
exit (0);
}
else
return aux;
}

// Libera memoria de las oficinas.

void LiberaMemoria2 (char **A, int n, int m)
{
for (i=0; i<n; i++)
free (A [i]);
free (A);
}

// Llena con los datos (oficinas) ingresados.

void Ingreso_Asig (char **A, int n)
{
for (i=0; i<n; i++)
{
printf ("\nIngrese asignatura [%d]: ", i+1);
scanf ("%s", A [i]);
}
}

// Muestra la lista de oficinas.

void Lista_Asig (char **A, int n)
{
printf ("\nSelecione una asignatura:\n");
for (i=0; i<n; i++)
{
printf ("%d.- %s\n", i+1, A [i]);
}
}


Codigo de la estructura de los trabajadores:

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

struct Nodo{
char Nombre[50];
char Apellido[50];
char RUT[9];
int edad;
};

typedef struct Nodo tNodo;

tNodo *Lista;
int n;

void DaMemoriaLista(void) {
Lista = (tNodo *)malloc(n*sizeof(tNodo));
}

void LiberaMemoriaLista(void) {
free(Lista);
}

void IngresaInformacionLista(void) {
int i;

for(i=0;i<n;i++)
{
printf("\nIngrese Nombre: ");
scanf("%s",Lista[i].Nombre);
printf("\nIngrese Apellido: ");
scanf("%s",Lista[i].Apellido);
printf("\nIngrese RUT: ");
scanf("%s",Lista[i].RUT);
printf("\nIngrese edad: ");
scanf("%d", &Lista[i].edad);
}
}

void ImprimeInformacionLista(void) {
int i;

for(i=0;i<n;i++)
{
printf("\nNombre: %s", Lista[i].Nombre);
printf("\nApellido: %s", Lista[i].Apellido);
printf("\nRUT: %s", Lista[i].RUT);
printf("\nedad: %d", Lista[i].edad);
printf("\n\n");
}
}
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