I have this problem with a program that I am doing, the goal is after having registered several cyclists in the program and have saved their data, register activities to these cyclists and that each activity belongs to a single cyclist and then be able to have the option to export the cyclist with his activities in an html file. I will leave the complete code of the menus, the case "1" of the aggregation of activities and the export in html is highlighted. Thanks
public static void Main(){
manejadorCiclistas mC = new manejadorCiclistas();
manejadorActividades mA = new manejadorActividades();
bool contiprograma = true;
string seleccion = "";
List<Ciclista> All = null;
List<Actividad> todo = null;
while(contiprograma)
{
Console.Clear();
Console.WriteLine("Programa que guarda datos de Ciclistas. (Cantidad de Ciclistas "+mC.totalciclis()+")"+ " (Cantidad de Actividades "+mA.totalactis()+")");
Console.WriteLine();
Console.WriteLine("1. Gestionar Ciclistas");
Console.WriteLine("2. Gestionar Actividades");
Console.WriteLine("3. Reportes");
Console.WriteLine("4. Salir");
Console.WriteLine();
Console.Write("Seleccione la opcion deseada: ");
seleccion = Console.ReadLine();
switch(seleccion)
{
case "1":
bool contiprograma2 = true;
while(contiprograma2)
{
Console.Clear();
Console.WriteLine("Gestion de Ciclistas");
Console.WriteLine();
Console.WriteLine("1. Agregar Ciclistas");
Console.WriteLine("2. Modificar Ciclistas");
Console.WriteLine("3. Eliminar Ciclistas");
Console.WriteLine("4. Volver a Menu Principal ");
Console.WriteLine();
Console.Write("Seleccione la opcion deseada: ");
seleccion = Console.ReadLine();
switch(seleccion)
{
case "1":
Ciclista cicli = new Ciclista();
Console.Clear();
Console.WriteLine("Agregar Nuevo Ciclista");
Console.WriteLine();
Console.Write("Ingrese la Cedula: ");
cicli.cedula = Console.ReadLine();
Console.Write("Ingrese el Nombre: ");
cicli.nombre = Console.ReadLine();
Console.Write("Ingrese el Apellido: ");
cicli.apellido = Console.ReadLine();
Console.Write("Ingrese su Dia de nacimiento: ");
int.TryParse(Console.ReadLine(), out cicli.dia);
Console.Write("Ingrese su Mes de nacimiento: ");
int.TryParse(Console.ReadLine(), out cicli.mes);
Console.Write("Ingrese su Anio de nacimiento: ");
cicli.anio = Console.ReadLine();
Console.Write("Ingrese el Tipo de Sangre: ");
cicli.tiposangre = Console.ReadLine();
Console.Write("Ingrese el Size de Bicicleta: ");
cicli.sizebici = Console.ReadLine();
Console.Write("Ingrese el Size de Uniforme: ");
cicli.sizeuniforme = Console.ReadLine();
Console.Write("Ingrese el Telefono: ");
cicli.telefono = Console.ReadLine();
Console.Write("Ingrese el Celular: ");
cicli.celular = Console.ReadLine();
Console.Write("Ingrese el Email: ");
cicli.email = Console.ReadLine();
Console.Write("Ingrese la Direccion: ");
cicli.direccion = Console.ReadLine();
Console.Write("Ingrese una Persona de Contacto: ");
cicli.percontacto = Console.ReadLine();
Console.Write("Ingrese el Telefono del Contacto: ");
cicli.telecontacto = Console.ReadLine();
mC.agregarCiclistas(cicli);
Console.Clear();
break;
case "2":
if(mC.totalciclis() > 0)
{
Console.Clear();
Console.WriteLine("Ciclistas agregados");
All = mC.obtenerCiclistas();
Console.WriteLine();
int n1 = 1;
foreach(Ciclista ciclis in All){
Console.WriteLine(n1+"-"+ciclis.nombre);
n1++;
}
Console.WriteLine();
Console.Write("Ingrese el numero del ciclista que desea modificar: ");
int n = 0;
int.TryParse(Console.ReadLine(), out n);
if(n <= mC.totalciclis()){
mC.borrarCiclistas(n-1);
Console.WriteLine();
Ciclista ciclit = new Ciclista();
Console.Clear();
Console.WriteLine("Introducir nuevos datos de Ciclista");
Console.WriteLine();
Console.Write("Ingrese la Cedula: ");
ciclit.cedula = Console.ReadLine();
Console.Write("Ingrese el Nombre: ");
ciclit.nombre = Console.ReadLine();
Console.Write("Ingrese el Apellido: ");
ciclit.apellido = Console.ReadLine();
Console.Write("Ingrese su Dia de nacimiento: ");
int.TryParse(Console.ReadLine(), out ciclit.dia);
Console.Write("Ingrese su Mes de nacimiento: ");
int.TryParse(Console.ReadLine(), out ciclit.mes);
Console.Write("Ingrese su Anio de nacimiento: ");
ciclit.anio = Console.ReadLine();
Console.Write("Ingrese el Tipo de Sangre: ");
ciclit.tiposangre = Console.ReadLine();
Console.Write("Ingrese el Size de Bicicleta: ");
ciclit.sizebici = Console.ReadLine();
Console.Write("Ingrese el Size de Uniforme: ");
ciclit.sizeuniforme = Console.ReadLine();
Console.Write("Ingrese el Telefono: ");
ciclit.telefono = Console.ReadLine();
Console.Write("Ingrese el Celular: ");
ciclit.celular = Console.ReadLine();
Console.Write("Ingrese el Email: ");
ciclit.email = Console.ReadLine();
Console.Write("Ingrese la Direccion: ");
ciclit.direccion = Console.ReadLine();
Console.Write("Ingrese una Persona de Contacto: ");
ciclit.percontacto = Console.ReadLine();
Console.Write("Ingrese el Telefono del Contacto: ");
ciclit.telecontacto = Console.ReadLine();
mC.agregarCiclistas(ciclit);
Console.Clear();
}else{
Console.WriteLine();
Console.Write("No existe el ciclista numero "+n);
Console.ReadKey();
}
}else{
Console.WriteLine();
Console.Write("Necesita agregar almenos un Ciclista");
Console.ReadKey();
}
break;
case "3":
if(mC.totalciclis() > 0)
{
Console.Clear();
Console.WriteLine("Ciclistas agregados");
All = mC.obtenerCiclistas();
Console.WriteLine();
int n1 = 1;
foreach(Ciclista ciclis in All){
Console.WriteLine(n1+"-"+ciclis.nombre);
n1++;
}
Console.WriteLine();
Console.Write("Ingrese el numero del ciclista que desea eliminar: ");
int n = 0;
int.TryParse(Console.ReadLine(), out n);
if(n <= mC.totalciclis()){
mC.borrarCiclistas(n-1);
Console.WriteLine();
Console.WriteLine("Ciclista Eliminado");
Console.ReadKey();
}else{
Console.WriteLine();
Console.Write("No existe el ciclista numero "+n);
Console.ReadKey();
}
}else{
Console.WriteLine();
Console.Write("Necesita agregar almenos un Ciclista");
Console.ReadKey();
}
break;
case "4":
Console.WriteLine();
FileStream streamout = new FileStream("DatosCicli.dat", FileMode.Create);
BinaryFormatter formaterout = new BinaryFormatter();
formaterout.Serialize(streamout, mC);
streamout.Close();
Console.Clear();
contiprograma2 = false;
break;
default:
Console.WriteLine();
Console.WriteLine(seleccion + " No es una opcion de seleccion");
Console.ReadKey();
break;
}
}
break;
case "2":
bool contiprograma3 = true;
while(contiprograma3){
Console.Clear();
Console.WriteLine("Gestion de Actividades");
Console.WriteLine();
Console.WriteLine("1. Agregar Actividad");
Console.WriteLine("2. Volver a Menu Principal ");
Console.WriteLine();
Console.Write("Seleccione la opcion deseada: ");
seleccion = Console.ReadLine();
switch(seleccion){
case "1":
Console.Clear();
Console.WriteLine("Ciclistas agregados");
All = mC.obtenerCiclistas();
Console.WriteLine();
int n1 = 1;
foreach(Ciclista ciclis in All){
Console.WriteLine(n1+"-"+ciclis.nombre);
n1++;
}
Console.WriteLine();
Console.Write("Ingrese el numero del ciclista que desea agregar actividad: ");
int n = 0;
int.TryParse(Console.ReadLine(), out n);
Actividad acti = new Actividad();
Ciclista cicli = new Ciclista();
All = mC.obtenerCiclistas();
Console.Clear();
Console.Write("Ingrese el Nombre del Ciclista: ");
acti.ciclista = Console.ReadLine();
Console.Write("Ingrese la Fecha de Actividad: ");
acti.fechaact = Console.ReadLine();
Console.Write("Ingrese la Distancia: ");
acti.distancia = Console.ReadLine();
Console.Write("Ingrese el Lugar de la Activiad: ");
acti.lugar = Console.ReadLine();
Console.Write("Ingrese la Dificultad de la Actividad: ");
acti.dificultad = Console.ReadLine();
mA.agregarActividades(acti);
Console.Clear();
break;
**This is bold**
case "2":
Console.WriteLine();
FileStream streamout = new FileStream("DatosACT.dat", FileMode.Create);
BinaryFormatter formaterout = new BinaryFormatter();
formaterout.Serialize(streamout, mA);
streamout.Close();
Console.Clear();
contiprograma3 = false;
break;
default:
Console.WriteLine();
Console.WriteLine(seleccion + " No es una opcion de seleccion");
Console.ReadKey();
break;
}
}
break;
case"3":
bool contiprograma4 = true;
while(contiprograma4){
Console.Clear();
Console.WriteLine("Gestion de Reportes");
Console.WriteLine();
Console.WriteLine("1. Listado de Ciclistas");
Console.WriteLine("2. Listado de Actividades");
Console.WriteLine("3. Listado de Ciclistas con Signo Zodiacal");
Console.WriteLine("4. Exportar Ciclista");
Console.WriteLine("5. Volver al Menu Principal");
Console.WriteLine();
Console.Write("Seleccione la opcion deseada: ");
seleccion = Console.ReadLine();
switch(seleccion){
case "1":
Console.Clear();
Console.WriteLine("Lista de Ciclistas");
All = mC.obtenerCiclistas();
Console.WriteLine();
int n1 = 1;
foreach(Ciclista ciclis in All){
Console.WriteLine(n1+"-"+ciclis.nombre);
n1++;
}
Console.ReadKey();
break;
case "2":
Console.Clear();
Console.WriteLine("Lista de Actividades");
todo = mA.obtenerActividades();
Console.WriteLine();
n1 = 1;
foreach(Actividad actis in todo){
Console.WriteLine(n1+"-"+actis.lugar);
n1++;
}
Console.ReadKey();
break;
case "3":
Console.Clear();
Console.WriteLine("Signos Zodiacales de los Ciclistas");
Console.WriteLine();
All = mC.obtenerCiclistas();
for(int z = 0; z < All.Count; z++ ){
switch(All[z].mes){
case 1:
if(All[z].dia >= 20)
Console.Write("El signo Zodiacal de "+All[z].nombre+" es Acuario");
else
Console.Write("El signo Zodiacal de "+All[z].nombre+" es Capricornio");
break;
case 2:
if(All[z].dia <= 18)
Console.Write("El signo Zodiacal de "+All[z].nombre+" es Acuario");
else
Console.Write("El signo Zodiacal de "+All[z].nombre+" es Piscis");
break;
case 3:
if(All[z].dia <= 20)
Console.Write("El signo Zodiacal de "+All[z].nombre+" es Piscis");
else
Console.Write("El signo Zodiacal de "+All[z].nombre+" es Aries");
break;
case 4:
if(All[z].dia <= 20)
Console.Write("El signo Zodiacal de "+All[z].nombre+" es Aries");
else
Console.Write("El signo Zodiacal de "+All[z].nombre+" es Tauro");
break;
case 5:
if(All[z].dia <= 20)
Console.Write("El signo Zodiacal de "+All[z].nombre+" es Tauro");
else
Console.Write("El signo Zodiacal de "+All[z].nombre+" es Geminis");
break;
case 6:
if(All[z].dia <= 20)
Console.Write("El signo Zodiacal de "+All[z].nombre+" es Geminis");
else
Console.Write("El signo Zodiacal de "+All[z].nombre+" es Cancer");
break;
case 7:
if(All[z].dia <= 21)
Console.Write("El signo Zodiacal de "+All[z].nombre+" es Cancer");
else
Console.Write("El signo Zodiacal de "+All[z].nombre+" es Leo");
break;
case 8:
if(All[z].dia <= 21)
Console.Write("El signo Zodiacal de "+All[z].nombre+" es Leo");
else
Console.Write("El signo Zodiacal de "+All[z].nombre+" es Virgo");
break;
case 9:
if(All[z].dia <= 22)
Console.Write("El signo Zodiacal de "+All[z].nombre+" es Vrigo");
else
Console.Write("El signo Zodiacal de "+All[z].nombre+" es Libra");
break;
case 10:
if(All[z].dia <= 22)
Console.Write("El signo Zodiacal de "+All[z].nombre+" es Libra");
else
Console.Write("El signo Zodiacal de "+All[z].nombre+" es Escorpio");
break;
case 11:
if(All[z].dia <= 22)
Console.Write("El signo Zodiacal de "+All[z].nombre+" es Escorpio");
else
Console.Write("El signo Zodiacal de "+All[z].nombre+" es Sagitario");
break;
case 12:
if(All[z].dia <= 20)
Console.Write("El signo Zodiacal de "+All[z].nombre+" es Sagitario");
else
Console.Write("El signo Zodiacal de "+All[z].nombre+" es Capricornio");
break;
}
Console.WriteLine();
Console.WriteLine();
}
Console.ReadKey();
break;
**This is bold**
case "4":
string carpeta = "C:\FELIZ";
if (Directory.Exists(carpeta) == false){
Directory.CreateDirectory(carpeta);
}
Console.Clear();
Console.WriteLine("Exportar Ciclistas");
All = mC.obtenerCiclistas();
todo = mA.obtenerActividades();
Console.WriteLine();
n1 = 1;
foreach(Ciclista ciclis in All){
Console.WriteLine(n1+"-"+ciclis.nombre);
n1++;
}
Console.WriteLine();
Console.Write("Ingrese el numero del ciclista que desea Exportar: ");
int n = 0;
int.TryParse(Console.ReadLine(), out n);
n1 = 1;
if(n <= mC.totalciclis()){
for(int x = 0; x < All.Count; x++){
string informacion = "<html>"+
"<head>"+
"</head>"+
"<body style>"+
"<table border='1'><tr><th>Cedula</th><td>"+All[x].cedula+
"</td></tr><tr><th>Nombre</th><td>"+All[x].nombre+
"</td></tr><tr><th>Apellido</th><td>"+All[x].apellido+
"</td></tr><tr><th>FechaNacimiento</th><td>"+All[x].dia+All[x].mes+All[x].anio+
"</td></tr><tr><th>TipoSangre</th><td>"+All[x].tiposangre+
"</td></tr><tr><th>SizeBicicleta</th><td>"+All[x].sizebici+
"</td></tr><tr><th>SizeUniforme</th><td>"+All[x].sizeuniforme+
"</td></tr><tr><th>Telefono</th><td>"+All[x].telefono+
"</td></tr><tr><th>Celular</th><td>"+All[x].celular+
"</td></tr><tr><th>Email</th><td>"+All[x].email+
"</td></tr><tr><th>Direccion</th><td>"+All[x].direccion+
"</td></tr><tr><th>PersonaContacto</th><td>"+All[x].percontacto+
"</td></tr><tr><th>TelefonoContacto</th><td>"+All[x].telecontacto+
"</td></tr><tr><th>Ciclista</th><td>"+todo[x].ciclista+
"</td></tr><tr><th>FechaActividad</th><td>"+todo[x].fechaact+
"</td></tr><tr><th>DistanciaActividad</th><td>"+todo[x].distancia+
"</td></tr><tr><th>LugarActividad</th><td>"+todo[x].lugar+
"</td></tr><tr><th>DificultadActividad</th><td>"+todo[x].dificultad+
"</td></tr></table></body>";
File.WriteAllText("c:\FELIZ\"+All[x].cedula+".html", informacion);
}
}else{
Console.WriteLine();
Console.Write("No existe el ciclista numero "+n);
Console.ReadKey();
}
break;
case "5":
Console.Clear();
contiprograma4 = false;
break;
default:
Console.WriteLine();
Console.WriteLine(seleccion + " No es una opcion de seleccion");
Console.ReadKey();
break;
}
}
break;
case "4":
Console.WriteLine();
Console.Write("Vuelva pronto");
Console.ReadKey();
contiprograma = false;
break;
default:
Console.WriteLine();
Console.WriteLine(seleccion + " No es una opcion de seleccion");
Console.ReadKey();
break;
}
}
}
}
Here is the code of the data of the cyclists and activities that are instantiated in the main one.
[Serializable]
public class Ciclista{
public string cedula;
public string nombre;
public string apellido;
public int dia;
public int mes;
public string anio;
public string tiposangre;
public string sizebici;
public string sizeuniforme;
public string telefono;
public string celular;
public string email;
public string direccion;
public string percontacto;
public string telecontacto;
}
[Serializable]
public class manejadorCiclistas{
private List<Ciclista> All = new List<Ciclista>();
public void agregarCiclistas(Ciclista cicli){
All.Add(cicli);
}
public int totalciclis(){
return All.Count;
}
public void borrarCiclistas(int n1){
All.RemoveAt(n1);
}
public List<Ciclista> obtenerCiclistas(){
return All;
}
}
[Serializable]
public class Actividad{
public string ciclista;
public string fechaact;
public string distancia;
public string lugar;
public string dificultad;
}
[Serializable]
public class manejadorActividades{
private List<Actividad> todo = new List<Actividad>();
public void agregarActividades(Actividad acti){
todo.Add(acti);
}
public int totalactis(){
return todo.Count;
}
public List<Actividad> obtenerActividades(){
return todo;
}
}