Universidad Nacional de Trujillo Ingeniería de Sistemas

Algoritmos y Estructuras de Datos Arreglos con Clases y Formularios en C++

ARREGLOS CON CLASES Y FORMULARIOS EN C++
1. Programa para ingresar N notas en un arreglo y reportar la nota más alta. 1.1. Crear un nuevo proyecto. 1.2. En Tipos de Proyecto, seleccionar Visual C++  CLR 1.3. En Plantillas, seleccionar Aplicación de Windows Forms

1.4. Se observa la siguiente ventana.

En el extremo izquierdo se muestra la ventana del Explorador de soluciones, en el extremo derecho se muestran las ventanas del Cuadro de herramientas y Propiedades, y en la parte central se encuentra el formulario (Vista de Diseño) En la ventana Cuadro de herramientas, se encuentran los objetos que se van a colocar sobre el formulario, para lo cual se selecciona un objeto (se hace clic sobre él) y luego se coloca en el Ing. Zoraida Yanet Vidal Melgarejo, Mg. -1-

establecer las siguientes propiedades. Objeto label1 textBox1 label2 button1 label2 textBox2 button2 listBox1 button3 Propiedad Text Name Text Name MaxLength Text Name Text Name Text Name Text Name MaxLength Text Name Name Enabled Text Name Text Name ReadOnly TextAlign Text Name Text Name Valor Cantidad de notas a ingresar: lblElementos <en blanco> txtElementos 2 Nota: lblNota &Aceptar btnAceptar Nota: lblNota <en blanco> txtNota 2 &Ingresar btnIngresar lstLista False Nota &más alta btnAlta <en blanco> txtAlta True Center &Nuevo txtNuevo &Salir txtSalir textBox3 button4 button5 Ing. TextBox Label Button ListBox TextBox Button 1. 1.5. Zoraida Yanet Vidal Melgarejo. Mg. -2- . En el formulario colocar los siguientes objetos. Para cada uno de los objetos.Universidad Nacional de Trujillo Ingeniería de Sistemas Algoritmos y Estructuras de Datos Arreglos con Clases y Formularios en C++ formulario. En la ventana de Propiedades podemos asignar o modificar las características de los objetos que se encuentran sobre el formulario.6.

Seleccionar Inline. Zoraida Yanet Vidal Melgarejo. seleccionar Agregar  Clase. Seleccionar C++  Clase de C++ y luego clic en el botón Agregar 1. Digitar el nombre de la clase. 1. Clic derecho sobre el nombre del proyecto. Clic en el botón Finalizar. Ing. -3- .9. en este caso Notas. Mg.8.7.Universidad Nacional de Trujillo Ingeniería de Sistemas Algoritmos y Estructuras de Datos Arreglos con Clases y Formularios en C++ 1.

} } bool agregar(int dato) { int h = pos. MessageBoxButtons::OK. Notas(int t) { pos=0. -4- . using namespace System. Completar el código según se muestra a continuación: #pragma once using namespace System::Windows::Forms. "Error". Algoritmos y Estructuras de Datos Arreglos con Clases y Formularios en C++ 1.10. MessageBoxButtons::OK. } bool cantidadNotas(int tam) { if(tam>0 && tam<=TAM) { return true. Mg. const int TAM = 20. "Error". } else { MessageBox::Show("El valor ingresado no es valido". Zoraida Yanet Vidal Melgarejo. int pos. ref class Notas { public: int *listaNotas.Universidad Nacional de Trujillo Ingeniería de Sistemas 1. } else { MessageBox::Show("El valor ingresado no es valido". return false. n=t. MessageBoxIcon::Error).11. if(pos<n) { if(dato>=0 && dato<=20) { listaNotas[pos++]=dato. listaNotas = new int[t]. MessageBoxIcon::Error). int n. Se observa el siguiente código autogenerado. Ing.

Mg.12. -5- .Universidad Nacional de Trujillo Ingeniería de Sistemas } return true. for(int i=0. } } void imprimir(ListBox^ lista) { lista->Items->Clear(). i++) if(listaNotas[i] > alta) alta = listaNotas[i]. Algoritmos y Estructuras de Datos Arreglos con Clases y Formularios en C++ } else { MessageBox::Show("Espacio insuficiente". "Arreglo lleno". y agregar las líneas señaladas: Agregar texto Agregar texto Ing. MessageBoxIcon::Exclamation). i++) { String^ linea=gcnew String(""). return alta. for(int i=0.h. i<pos. MessageBoxButtons::OK. 1. lista->Items->Add(linea). Zoraida Yanet Vidal Melgarejo. } }. linea+=Convert::ToString(listaNotas[i]). return false. i<pos. Seleccionar la pestaña Form1. } } int notaMasAlta() { int alta=listaNotas[0].

Completar el código según se muestra a continuación: private: System::Void btnAceptar_Click(System::Object^ System::EventArgs^ e) { bool rpta. y hacer doble clic sobre el botón Ingresar. 1.Universidad Nacional de Trujillo Ingeniería de Sistemas Algoritmos y Estructuras de Datos Arreglos con Clases y Formularios en C++ 1. if(Nota->agregar(t)) { txtNota->Clear(). txtElementos->Enabled=false. -6- . txtNota->Focus(). btnIngresar->Enabled=false. private: System::Void btnIngresar_Click(System::Object^ System::EventArgs^ e) { int t = Convert::ToInt32(txtNota->Text). txtNota->Focus(). btnAceptar->Enabled=false. Seleccionar la pestaña Form1. 1.h [Diseño]. } } sender.h [Diseño]. txtNota->Enabled=false.14. y hacer doble clic sobre el botón Aceptar. } else { txtElementos->Clear(). } else { txtNota->Clear(). Mg. Nota->imprimir(lstLista). int t = Convert::ToInt32(txtElementos->Text). Ing. txtElementos->Focus().15. rpta = Nota->cantidadNotas(t).13. Seleccionar la pestaña Form1. if(rpta) { Nota = gcnew Notas(t). Zoraida Yanet Vidal Melgarejo. } } sender.

private: System::Void btnAlta_Click(System::Object^ System::EventArgs^ e) { int alta = Nota->notaMasAlta(). btnIngresar->Enabled=true. btnAlta->Enabled=true. y hacer doble clic sobre el botón Nota más alta. txtNota->Enabled=true. Seleccionar la pestaña Form1. } sender. } }. 1. lstLista->Items->Clear(). txtAlta->Text = Convert::ToString(alta). Seleccionar la pestaña Form1. y hacer doble clic sobre el botón Salir. -7- . btnAceptar->Enabled=true. txtAlta->Clear(). txtElementos->Enabled=true.h [Diseño]. //Fin de la clase Form1 } //Fin de namespace FrmArreglo1 sender. private: System::Void btnSalir_Click(System::Object^ System::EventArgs^ e) { Close(). Mg. y hacer doble clic sobre el botón Nuevo.17. Zoraida Yanet Vidal Melgarejo. Ing. private: System::Void btnNuevo_Click(System::Object^ System::EventArgs^ e) { txtElementos->Clear(). txtAlta->Enabled=true.h [Diseño]. 1. } sender.Universidad Nacional de Trujillo Ingeniería de Sistemas Algoritmos y Estructuras de Datos Arreglos con Clases y Formularios en C++ 1. Seleccionar la pestaña Form1.18.h [Diseño].16. txtElementos->Focus().

Sign up to vote on this title
UsefulNot useful