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-

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

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

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

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

Seleccionar la pestaña Form1.13. if(rpta) { Nota = gcnew Notas(t). } } sender. y hacer doble clic sobre el botón Ingresar. txtNota->Focus(). -6- . btnAceptar->Enabled=false. } else { txtNota->Clear(). } } sender. Zoraida Yanet Vidal Melgarejo.h [Diseño]. txtNota->Enabled=false.15. Completar el código según se muestra a continuación: private: System::Void btnAceptar_Click(System::Object^ System::EventArgs^ e) { bool rpta. Ing. rpta = Nota->cantidadNotas(t). 1. 1. } else { txtElementos->Clear(). txtElementos->Enabled=false. Mg. btnIngresar->Enabled=false. Seleccionar la pestaña Form1.h [Diseño].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(). private: System::Void btnIngresar_Click(System::Object^ System::EventArgs^ e) { int t = Convert::ToInt32(txtNota->Text). txtNota->Focus(). if(Nota->agregar(t)) { txtNota->Clear(). y hacer doble clic sobre el botón Aceptar.14. Nota->imprimir(lstLista).

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

Sign up to vote on this title
UsefulNot useful