Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - leopaez

#1
Hola a todos, el programa es desarrollado en visual studio, windows Forms. Lo que se desea es buscar un registro para despues borrarlo. Las demas intrucciones; guardar y buscar estan ya desarrolladas. Solo faltaria eliminar.

Código (csharp) [Seleccionar]
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Fase3_LeoPaez
{

    public partial class Form1 : Form
    {
        ArrayList Personas = new ArrayList();
        public Form1()
        {
            InitializeComponent();
            Inhabilitar();
        }

        private void registarToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (txtCedula.Text == "")
            {
                eperror.SetError(txtCedula, "Debe ingresar un numero de cedula");
                txtCedula.Focus();
                return;
            }
            eperror.SetError(txtCedula, "");

            decimal num;
            if (!Decimal.TryParse(txtCedula.Text, out num))
            {
                eperror.SetError(txtCedula, "Debe ingresar un valor numerico");
                txtCedula.Focus();
                return;
            }
            eperror.SetError(txtCedula, "");

            if(Existe(txtCedula.Text))
            {
                eperror.SetError(txtCedula, "Esta cedula ya ha sido registrada");
                txtCedula.Focus();
                return;
            }

            if (txtNombre.Text == "")
            {
                eperror.SetError(txtNombre, "Debe ingresar un Nombre");
                txtNombre.Focus();
                return;
            }
            eperror.SetError(txtNombre, "");

            if (txtCorreo.Text == "")
            {
                eperror.SetError(txtCorreo, "Debe ingresar un correo");
                txtCorreo.Focus();
                return;
            }
            eperror.SetError(txtCorreo, "");

            decimal numero;
            if (!Decimal.TryParse(txtEdad.Text, out numero))
            {
                eperror.SetError(txtEdad, "Debe ingresar un valor numerico");
                txtEdad.Focus();
                return;
            }
            eperror.SetError(txtEdad, "");

            Persona_Leo miPersona = new Persona_Leo();
            miPersona.Cedula = Decimal.Parse(txtCedula.Text);
            miPersona.Nombre = txtNombre.Text;
            miPersona.Email = txtCorreo.Text;
            miPersona.Edad = Decimal.Parse(txtEdad.Text);
            Personas.Add(miPersona);

            dgvDatos.DataSource = null;
            dgvDatos.DataSource = Personas;

            Limpiar();
            txtCedula.Focus();
           



        }

        private bool Existe(string Cedula)
        {
          foreach (Persona_Leo Persona in Personas)
            {
                if (Persona.Cedula.ToString() == Cedula) return true;
            }
            return false;
        }

        public void Limpiar()
        {
            txtCedula.Clear();
            txtNombre.Clear();
            txtCorreo.Clear();
            txtEdad.Clear();
        }

        public void Inhabilitar()
        {
            eliminarToolStripMenuItem.Enabled = false;
         }




        private void salirToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void eliminarToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (Personas.Count != 0)
            {
               
                               
                MessageBox.Show("Se elimino el registro", "Atención");
                Limpiar();
            }
            else
            {
                MessageBox.Show("La lista esta vacia", "Atención");
                Limpiar();
            }
        }

        private void buscarToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (txtCedula.Text == "")
            {
                eperror.SetError(txtCedula, "Debe ingresar una cedula");
                txtCedula.Focus();
                return;
            }
            eperror.SetError(txtCedula, "");

            Persona_Leo miPersona = Obtener(txtCedula.Text);
            if (miPersona == null)
            {
                eperror.SetError(txtCedula, "El Trabajador no existe");
                txtCedula.Focus();
                return;
            }
            eperror.SetError(txtCedula, "");

            txtCedula.Text = miPersona.Cedula.ToString();
            txtNombre.Text = miPersona.Nombre;
            txtCorreo.Text = miPersona.Email;
            txtEdad.Text = miPersona.Edad.ToString();
            eliminarToolStripMenuItem.Enabled = true;
        }

            private Persona_Leo Obtener(String Cedula)
        {
            foreach (Persona_Leo miPersona in Personas)
            {
                if (miPersona.Cedula.ToString() == Cedula) return miPersona;
            }
            return null;
        }

        private void limpiarToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Limpiar();
        }

       
    }
   
}


#2
Gracias a todos aquellos que hacen posible este espacio. Deseo realizar un programa sencillo en Lenguaje C; Se pide que se introduzcan 2 números y se realizan operaciones entre ellos suma, diferencia del mayor menos el menor, producto y cociente del mayor entre el menor. Tengo un problema. Cuando los numeros son iguales no me aparece el resultado de la resta el cual es CERO. Estoy trabajando en DEVC++.

[code=ada]/* Un programa que compara dos numeros, instruccion if operadores
de relación y operadores de igualdad en C */
#include <stdio.h>
/* La funcion main inicia la ejecucion del programa*/
int main()
{
int numero1; /* se define la variable para el primer # */
int numero2; /* se define la variable para el segundo # */
int suma;       /* se define la variable para el resultado de la suma */
int resta;      /* se define la variable para el resultado de la resta */
int producto;   /* se define la variable para el resultado del producto */
int cociente;   /* se define la variable para el resultado de la división */


     
printf("\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \n");
printf("            PROGRAMA QUE REALIZA OPERACIONES ENTRE 2 NUMEROS \n");
printf("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \n");
printf("\nPor favor introduzca el primer numero \n");
scanf("%d", &numero1);
printf("Por favor introduzca el segundo numero \n");
scanf("%d", &numero2);
if (numero1 == numero2)
{
suma=numero1+numero2;
resta=numero1-numero2;
producto=numero1*numero2;
cociente=numero1/numero2;
        }
if (numero1 >numero2)
    {
    suma=numero1+numero2;
resta=numero1-numero2;
producto=numero1*numero2;
cociente=numero1/numero2;
                }
       if (numero2 >numero1)
                {         
                    suma=numero1+numero2;
                    resta=numero2-numero1;
                    producto=numero1*numero2;
                    cociente=numero2/numero1; 
                }
       
       printf ("La suma es %.d\n", suma); 
       printf ("La resta es %.d\n", resta);
       printf ("El produco es %.d\n", producto);
       printf ("El cociente es %.d\n", cociente);   
               
system("pause"); /* indica que el programa termino con éxito */
}/* Fin de la fución main */
[/code]
#3
Cordial saludo, por favor. Se tiene 2 arreglos uno para estudiantes y otro para notas, se desea organizar la información extrayendo los estudiantes junto con sus notas que perdieron la materia (notas <3). Se utiliza el metodo burbuja, el problema es cuando existen 2 notas con el mismo valor, en ese caso aparecerian no 2 veces sino 4 veces. Como se podria realizar ? De atemano muchas gracias.

Código (cpp) [Seleccionar]
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cstring>


using namespace std;

void registrarDatos(); //Funcion para registrar los datos
void mostrarDatos(); //Funcion para mostrar los datos
void   estudiantesPerdieron(); //Funcion para mostrar los estudiantes que perdieron el curso
void promedioNotas();     //Funcion para imprimir el articuo de mayor valor y su valor

int opcion, i, j, n;     //Declaracion de variables
string *a=NULL;
float *b=NULL;
float *auxiliarPerdieron=NULL;
int numeroPerdieron;





int main()
{
system("color 3f"); //Asignación color de fondo
       system("CLS");       //Limpiar pantalla
                   
                   
       do     //realizar mientras sea diferente de 6
{
system("CLS");

cout<<"Programa que permite registrar N numero de estudiantes"<<endl;
cout<<"con su respectiva nota final, listar los que perdieron"<<endl;
cout<<"y sacar el promedio"<<endl<<endl;
cout<<endl<<"OPCIONES"<<endl; //Opciones
cout<<"1. REGISTRAR DATOS"<<endl;          
cout<<"2. LISTAR DATOS"<<endl;
cout<<"3. LISTA DE ESTUDIANTES QUE  PERDIERON EL CURSO"<<endl;
cout<<"4. PROMEDIO DE NOTAS DEL CURSO"<<endl;
cout<<"5. SALIR DEL PROGRAMA"<<endl<<endl;
cout<<"Digite la opcion ";
cin >>opcion;
while(opcion>=6) //Ciclo while opciones incorrectas
{
cout<<"INGRESE UN NUMERO VALIDO POR FAVOR ";
cin>>opcion;
   }

switch(opcion) //llamadas a funciones            
{
case 1:
system("cls"); //Limpiar pantalla
registrarDatos(); //llamada a funcion registrar datos
            break;
case 2:
system("cls"); //Limpiar pantalla
mostrarDatos(); //llamada a funcion mostrar datos
break;
case 3:
system("cls"); //Limpiar pantalla
estudiantesPerdieron(); //llamada a funcion estudiantes perdieron
            break;
case 4:
system("cls"); //Limpiar pantalla
promedioNotas();    //llamada a funcion promedio de notas
break;
case 5:
delete [] a;
system("cls");
exit(0);
   break;
}

cout<<endl;
system("pause");

}
while(opcion!=5);
}

   
void  registrarDatos()
{

cout << "Por favor ingrese la cantidad de estudiantes a registrar: "<<endl;
cin>>n;
a = new string[n];
b = new float[n];
for(i = 0; i < n; i++)
     
 {
         cout <<endl<<"******* Estudiante " << i + 1 << "********:"<<endl;
 cout << "Nombre: ";
         fflush(stdin);
         getline (cin, a[i]);
     cout << "Nota final: ";
     cin>>b[i];
                 
      }
}
   
 
void mostrarDatos ()
{  
cout << "La informacion de los estudiantes  registrados son los siguientes:"<<endl;
       for(i = 0; i < n; i++)
    {
         cout << "\n******* Estudiante " << i + 1 << "********:\n";
         cout << "Nombre:" <<a[i]<<endl;
         cout << "Nota final: " <<b[i]<<endl;
      }
       
   }
     
     
      void estudiantesPerdieron ()
{  
 
  cout << "La informacion de los estudiantes  que perdieron la materia son los siguientes:"<<endl;
      cout << "Los estudiantes registrados son: "<<n<<" ";
auxiliarPerdieron = new float[n];
numeroPerdieron=0;
       for(i = 0; i < n; i++)
    {
         if (b[i]<3)
         {
 auxiliarPerdieron[numeroPerdieron]=b[i];
 numeroPerdieron++;
 }
       
      }
      cout<<"perdieron "<<numeroPerdieron<<" estudiantes" <<endl;
      for (i=0; i<numeroPerdieron; i++)
                                 
  {
  for (j=0; j<n; j++)
 {
  if (auxiliarPerdieron[i]==b[j])
 {
 cout<<"Nombre "<<a[j]<<" Nota "<<b[j]<<" "<<endl;
 }
 }
 }
 
    }
 
 

      void promedioNotas()
{
  cout << "En construccion:"<<endl;
}

     
#4
Nuevamente, muy buenos días y muchas gracias a quienes hacen posible estos espacios, terminando mi trabajo se me presenta un nuevo inconveniente; deseo extraer de un arreglo tipo float a otro arreglo las notas menores que 3, el código compila bien, pero al ejecutarlo y querer visualizar los datos el nuevo arreglo no me muestra los datos de forma correcta, caso contrario me muestra un 1.56181e-038. Que no fue el numero que saque del otro arreglo.

Código (cpp) [Seleccionar]
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cstring>


using namespace std;

void registrarDatos(); //Funcion para registrar los datos
void mostrarDatos(); //Funcion para mostrar los datos
void  estudiantesPerdieron(); //Funcion para mostrar los estudiantes que perdieron el curso
void promedioNotas();    //Funcion para imprimir el articuo de mayor valor y su valor

int opcion, i, j, n;      //Declaracion de variables
string *a=NULL;
float *b=NULL;
float *auxiliarPerdieron=NULL;
int numeroPerdieron;





int main()
{
system("color 3f"); //Asignación color de fondo
        system("CLS");        //Limpiar pantalla
                     
                   
        do      //realizar mientras sea diferente de 6
{
system("CLS");
cout<<"Programa que permite registrar N numero de estudiantes"<<endl;
cout<<"con su respectiva nota final, listar los que perdieron"<<endl;
cout<<"y sacar el promedio"<<endl<<endl;
cout<<endl<<"OPCIONES"<<endl; //Opciones
cout<<"1. REGISTRAR DATOS"<<endl;           
cout<<"2. LISTAR DATOS"<<endl;
cout<<"3. LISTA DE ESTUDIANTES QUE  PERDIERON EL CURSO"<<endl;
cout<<"4. PROMEDIO DE NOTAS DEL CURSO"<<endl;
cout<<"5. SALIR DEL PROGRAMA"<<endl<<endl;
cout<<"Digite la opcion ";
cin >>opcion;
while(opcion>=6) //Ciclo while opciones incorrectas
{
cout<<"INGRESE UN NUMERO VALIDO POR FAVOR ";
cin>>opcion;
    }

switch(opcion) //llamadas a funciones           
{
case 1:
system("cls"); //Limpiar pantalla
registrarDatos(); //llamada a funcion registrar datos
              break;
case 2:
system("cls"); //Limpiar pantalla
mostrarDatos(); //llamada a funcion mostrar datos
break;
case 3:
system("cls"); //Limpiar pantalla
estudiantesPerdieron(); //llamada a funcion estudiantes perdieron
              break;
case 4:
system("cls"); //Limpiar pantalla
promedioNotas();     //llamada a funcion promedio de notas
break;
case 5:
delete [] a;
system("cls");
exit(0);
    break;
}

cout<<endl;
system("pause");

}
while(opcion!=5);
}

   
void  registrarDatos()
{

cout << "Por favor ingrese la cantidad de estudiantes a registrar: "<<endl;
cin>>n;
a = new string[n];
b = new float[n];
for(i = 0; i < n; i++)
       
  {
          cout <<endl<<"******* Estudiante " << i + 1 << "********:"<<endl;
  cout << "Nombre: ";
          fflush(stdin);
          getline (cin, a[i]);
      cout << "Nota final: ";
      cin>>b[i];
                   
        }
}
   
   
void mostrarDatos ()

cout << "La informacion de los estudiantes  registrados son los siguientes:"<<endl;
        for(i = 0; i < n; i++)
       {
          cout << "\n******* Estudiante " << i + 1 << "********:\n";
          cout << "Nombre:" <<a[i]<<endl;
          cout << "Nota final: " <<b[i]<<endl;
       }
       
    }
     
     
       void estudiantesPerdieron ()

   
   cout << "La informacion de los estudiantes  que perdieron la materia son los siguientes:"<<endl;
       cout << "Los estudiantes registrados son: "<<n<<" ";
auxiliarPerdieron = new float[n];
numeroPerdieron=0;
        for(i = 0; i < n; i++)
       {
          if (b[i]<3)
          {
  auxiliarPerdieron[numeroPerdieron]=b[i];
  numeroPerdieron++;
  }
       
       }
       cout<<"perdieron "<<numeroPerdieron<<" estudiantes";
       auxiliarPerdieron = new float[numeroPerdieron];
       for(j = 0; j < numeroPerdieron; j++)
       
  {
          cout <<endl<<"******* Estudiantes que perdieron ********:"<<endl;
 
      cout << "Nota final: " <<auxiliarPerdieron[j]<<endl;
                   
        }
       
       
       
    }
   
   
   
       void promedioNotas()
{
   cout << "En construccion:"<<endl;
}


Tambien si me pueden colaborar no se como estraer las notas menores que 3 con sus respectivos estudiantes.
#5
Programación C/C++ / Arreglo dinamico string
9 Diciembre 2016, 12:41 PM
Muy buenos días, tengo un problema al querer desarrollar un programa en C++ que me permita guardar N cantidad de estudiantes en un arreglo tipo string, la cantidad de estudiantes a guardar debe ser digitada por  el usuario cada vez que se ejecuta el programa. El programa compila bien no presenta errores pero al ajecutarlo despues de ingresar el  segundo nombre se presenta un error. Copio el codigo espero e puedan ayudar.

Código (cpp) [Seleccionar]
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cstring>

using namespace std;

int n, i, j;
string *a=new string[n];


int main()
{
cout << "Por favor ingrese la cantidad de estudiantes a registrar: "<<endl;
   cin>>n;
   for(i = 0; i <n; i++)
    {
         cout << "Nombre: ";
         cin.ignore(256,'\n');
         getline (cin, a[i]);
                           
      }
     
return 0;

}



Mod: Los códigos deben ir en etiquetas GeSHi