AYUDA un problemilla con una practica
Debemos almacenar la infomacion de la inscripcion de los participantes de un torneo de parchis,esa información es
Nombre
Fecha nacimiento
Domincilio
Dni
Numero de equipo
Categoría
Donde numero de equipo va a ser un entero positivo que identificara el equipo al k pertenece.de cada eqpuipo van al torneo dos representantes, el principal y un suplente
La categoría es un carácter a (alevin de 11 a 12 años),I (infantil 13 a 14 años ),C(cadete de 15 a 16 años )j(juvenil de 17 a 18 años )s(señor de 19 a 39 años )v(veterano a de 40 a 60años) la manera de organizar estos datos va a ser por categoría y dentro de cada una de ellas por orden alfabetico de nombre
1 implementar la estructura de datos que soporte dicha información
2operacion para insertar un nuevo elemento en la estructura
3 modulo que dado el dni devuelva su equipo y su categoría
4listar por pantalla todos los participantes por categoría
5volcar en un fichero el nombre de todos los participantes ordenados x categoría
6eliminar los datos de un participante que especifica el usuario
7mostrar los equipos que solo tienen un participante
en c++
Nombre
Fecha nacimiento
Domincilio
Dni
Numero de equipo
Categoría
Donde numero de equipo va a ser un entero positivo que identificara el equipo al k pertenece.de cada eqpuipo van al torneo dos representantes, el principal y un suplente
La categoría es un carácter a (alevin de 11 a 12 años),I (infantil 13 a 14 años ),C(cadete de 15 a 16 años )j(juvenil de 17 a 18 años )s(señor de 19 a 39 años )v(veterano a de 40 a 60años) la manera de organizar estos datos va a ser por categoría y dentro de cada una de ellas por orden alfabetico de nombre
1 implementar la estructura de datos que soporte dicha información
2operacion para insertar un nuevo elemento en la estructura
3 modulo que dado el dni devuelva su equipo y su categoría
4listar por pantalla todos los participantes por categoría
5volcar en un fichero el nombre de todos los participantes ordenados x categoría
6eliminar los datos de un participante que especifica el usuario
7mostrar los equipos que solo tienen un participante
en c++
Tienes que declararte una clase o una estructura (lo que estés usando) para almacenar los datos. Si sabes algo de clases yo las usaría porque almacenarías datos y métodos.
struct datos
{
char nombre[51];
char fecha[9];
char domicilio[51];
char DNI[10];
struct datos
{
char nombre[51];
char fecha[9];
char domicilio[51];
char DNI[10];
lo siento, termino lo que te estaba contando
struct datos
{
char nombre[51];
char fecha[9];
char domicilio[51];
char DNI[10];
int num_equip;
char categoria;
}
Te tienes que declarar una lista:
struct lista
{
datos un_dato;
lista *sig;
}
y el puntero inicial de la lista
lista *ppio;
Inicialízale a null, es importante;
ppio =NULL;
El resto es tratamiento puro y duro de listas que puedes encontrar en cualquier manual. De inserción y el borrado de la lista puedes encontrar en este foro algún ejemplo.
Lo que si te voy a poner es el código para el almacenamiento en un fichero
#include "fstream.h"
void guardar(lista **ppio)
{
ofstream fp("mifich.dat, ios::out | ios::binary | ios::app);
if (!fp) return;
lista actual;
actual = *ppio;
while (actual)
{
fp.write((char *) &actual->un_dato.nombre, sizeof dato.nombre);
//si el sizeof te da guerra, puedes poner 51, que es el tamaño del campo
}
fp.close();
}
Saldrían ordenados por categorías porque tu lista está ya ordenada por este campo.
struct datos
{
char nombre[51];
char fecha[9];
char domicilio[51];
char DNI[10];
int num_equip;
char categoria;
}
Te tienes que declarar una lista:
struct lista
{
datos un_dato;
lista *sig;
}
y el puntero inicial de la lista
lista *ppio;
Inicialízale a null, es importante;
ppio =NULL;
El resto es tratamiento puro y duro de listas que puedes encontrar en cualquier manual. De inserción y el borrado de la lista puedes encontrar en este foro algún ejemplo.
Lo que si te voy a poner es el código para el almacenamiento en un fichero
#include "fstream.h"
void guardar(lista **ppio)
{
ofstream fp("mifich.dat, ios::out | ios::binary | ios::app);
if (!fp) return;
lista actual;
actual = *ppio;
while (actual)
{
fp.write((char *) &actual->un_dato.nombre, sizeof dato.nombre);
//si el sizeof te da guerra, puedes poner 51, que es el tamaño del campo
}
fp.close();
}
Saldrían ordenados por categorías porque tu lista está ya ordenada por este campo.
