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-

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. Mg. -2- . TextBox Label Button ListBox TextBox Button 1.Universidad Nacional de Trujillo Ingeniería de Sistemas Algoritmos y Estructuras de Datos Arreglos con Clases y Formularios en C++ formulario.6. 1. establecer las siguientes propiedades. Zoraida Yanet Vidal Melgarejo. En la ventana de Propiedades podemos asignar o modificar las características de los objetos que se encuentran sobre el formulario.5. En el formulario colocar los siguientes objetos. Para cada uno de los objetos.

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful