Está en la página 1de 7

Universidad Nacional de Trujillo Ingeniera 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 ms alta. 1.1. Crear un nuevo proyecto. 1.2. En Tipos de Proyecto, seleccionar Visual C++ CLR 1.3. En Plantillas, seleccionar Aplicacin 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 Diseo) 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-

Universidad Nacional de Trujillo Ingeniera 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 caractersticas de los objetos que se encuentran sobre el formulario. 1.5. En el formulario colocar los siguientes objetos.
TextBox

Label Button

ListBox TextBox

Button

1.6. Para cada uno de los objetos, 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 &ms alta btnAlta <en blanco> txtAlta True Center &Nuevo txtNuevo &Salir txtSalir

textBox3

button4 button5

Ing. Zoraida Yanet Vidal Melgarejo, Mg.

-2-

Universidad Nacional de Trujillo Ingeniera de Sistemas

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

1.7. Clic derecho sobre el nombre del proyecto, seleccionar Agregar Clase.

1.8. Seleccionar C++ Clase de C++ y luego clic en el botn Agregar

1.9. Digitar el nombre de la clase, en este caso Notas. Seleccionar Inline. Clic en el botn Finalizar.

Ing. Zoraida Yanet Vidal Melgarejo, Mg.

-3-

Universidad Nacional de Trujillo Ingeniera de Sistemas 1.10. Se observa el siguiente cdigo autogenerado.

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

1.11. Completar el cdigo segn se muestra a continuacin:


#pragma once using namespace System::Windows::Forms; using namespace System; const int TAM = 20; ref class Notas { public: int *listaNotas; int n; int pos; Notas(int t) { pos=0; n=t; listaNotas = new int[t]; } bool cantidadNotas(int tam) { if(tam>0 && tam<=TAM) { return true; } else { MessageBox::Show("El valor ingresado no es valido", "Error", MessageBoxButtons::OK, MessageBoxIcon::Error); return false; } } bool agregar(int dato) { int h = pos; if(pos<n) { if(dato>=0 && dato<=20) { listaNotas[pos++]=dato; } else { MessageBox::Show("El valor ingresado no es valido", "Error", MessageBoxButtons::OK, MessageBoxIcon::Error);

Ing. Zoraida Yanet Vidal Melgarejo, Mg.

-4-

Universidad Nacional de Trujillo Ingeniera de Sistemas


} return true;

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

} else { MessageBox::Show("Espacio insuficiente", "Arreglo lleno", MessageBoxButtons::OK, MessageBoxIcon::Exclamation); return false; } } void imprimir(ListBox^ lista) { lista->Items->Clear(); for(int i=0; i<pos; i++) { String^ linea=gcnew String(""); linea+=Convert::ToString(listaNotas[i]); lista->Items->Add(linea); } } int notaMasAlta() { int alta=listaNotas[0]; for(int i=0; i<pos; i++) if(listaNotas[i] > alta) alta = listaNotas[i]; return alta; } };

1.12. Seleccionar la pestaa Form1.h, y agregar las lneas sealadas:

Agregar texto

Agregar texto

Ing. Zoraida Yanet Vidal Melgarejo, Mg.

-5-

Universidad Nacional de Trujillo Ingeniera de Sistemas

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

1.13. Seleccionar la pestaa Form1.h [Diseo], y hacer doble clic sobre el botn Aceptar.

1.14. Completar el cdigo segn se muestra a continuacin:


private: System::Void btnAceptar_Click(System::Object^ System::EventArgs^ e) { bool rpta; int t = Convert::ToInt32(txtElementos->Text); rpta = Nota->cantidadNotas(t); if(rpta) { Nota = gcnew Notas(t); txtElementos->Enabled=false; btnAceptar->Enabled=false; txtNota->Focus(); } else { txtElementos->Clear(); txtElementos->Focus(); } } sender,

1.15. Seleccionar la pestaa Form1.h [Diseo], y hacer doble clic sobre el botn Ingresar.
private: System::Void btnIngresar_Click(System::Object^ System::EventArgs^ e) { int t = Convert::ToInt32(txtNota->Text); if(Nota->agregar(t)) { txtNota->Clear(); txtNota->Focus(); Nota->imprimir(lstLista); } else { txtNota->Clear(); txtNota->Enabled=false; btnIngresar->Enabled=false; } } sender,

Ing. Zoraida Yanet Vidal Melgarejo, Mg.

-6-

Universidad Nacional de Trujillo Ingeniera de Sistemas

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

1.16. Seleccionar la pestaa Form1.h [Diseo], y hacer doble clic sobre el botn Nota ms alta.
private: System::Void btnAlta_Click(System::Object^ System::EventArgs^ e) { int alta = Nota->notaMasAlta(); txtAlta->Text = Convert::ToString(alta); } sender,

1.17. Seleccionar la pestaa Form1.h [Diseo], y hacer doble clic sobre el botn Nuevo.
private: System::Void btnNuevo_Click(System::Object^ System::EventArgs^ e) { txtElementos->Clear(); txtElementos->Enabled=true; txtNota->Enabled=true; txtAlta->Clear(); txtAlta->Enabled=true; btnAceptar->Enabled=true; btnAlta->Enabled=true; btnIngresar->Enabled=true; lstLista->Items->Clear(); txtElementos->Focus(); } sender,

1.18. Seleccionar la pestaa Form1.h [Diseo], y hacer doble clic sobre el botn Salir.
private: System::Void btnSalir_Click(System::Object^ System::EventArgs^ e) { Close(); } }; //Fin de la clase Form1 } //Fin de namespace FrmArreglo1 sender,

Ing. Zoraida Yanet Vidal Melgarejo, Mg.

-7-

También podría gustarte