Professional Documents
Culture Documents
Est gua de estudios esta dirigida a los estudiantes del cuarto ciclo de Ingeniera Electrnica y el quinto ciclo de Ingeniera Mecnica, el mismo que se desarrollar en 17 semanas segn se expresa en el Silabo correspondiente
!on esta gua se pretende contribuir en sembrar una semilla del conocimiento para cosec"ar la inteligencia de la esperan#a
$ni%ersidad &acional 'San (uis )on#aga* de Ica +acultad de Ingeniera Mecnica y El,ctrica Escuela de Ingeniera Electrnica
IVEE
Manual Tutorial
CLASE 1
TEORIA DE OBJETOS
Lenguaje de Programacin II
se puedan manipular como unidades bsicas (os detalles de la implementacin se encuentran dentro de la clase, mientras que desde el exterior, un ob0eto ser simplemente una entidad que responde a una serie de mensa0es pblicos 3tambi,n denominados inter/a# de la clase4 )eren!ia Es el mecanismo que nos permite crear clases deri%adas 3especiali#acin4 a partir de clases bases 3generali#acin4 Es decir, podramos tener la clase 2Empleado2 3clase base4 y la clase 2:endedor2 deri%ando de la anterior $na librera de clases 3como la M+!4 no es ms que un con0unto de de/iniciones de clases interconectadas por mltiples relaciones de "erencia Poli or*is o Esta caracterstica nos permite disponer de mltiples implementaciones de un mismo m,todo de clase, dependiendo de la clase en la que se realice Es decir, podemos acceder a una %ariedad de m,todos distintos 3con el mismo nombre4 mediante el mismo mecanismo de acceso En !77 el polimor/ismo se consigue mediante la de/inicin de clases deri%adas, /unciones %irtuales y el uso de punteros a ob0etos
.tros dos conceptos muy importantes en la -.. son relati%os a la creacin y destruccin de ob0etos En lengua0es estructurados con%encionales, cuando se de/ine una %ariable se le reser%a espacio en memoria y, si no se iniciali#a expresamente, se "ace por de/ecto 3por e0emplo, en ! una %ariable global siempre se iniciali#a a ;, pero una automtica no, por lo que si no se iniciali#a expresamente su contenido inicial ser basura4< por otra parte, cuando se destruye una %ariable 3por que se abandona el mbito de su de/inicin = scope =4 se libera la memoria que estaba ocupando Si a"ora "acemos el paralelismo obligado entre %ariables y ob0etos para los lengua0es -.. nos daremos cuenta de que deben existir procedimientos especiales de construccin y destruccin de ob0etos En concreto, cada clase tiene dos /unciones miembro especiales denominadas constructor y destructor
Constru!tor => +uncin miembro que es automticamente in%ocada cada %e# que se de/ine un ob0eto, su ob0eti%o es la iniciali#acin del mismo ?oma el mismo nombre que la clase, puede recibir parmetros y podemos tener %arios constructores de/inidos Destru!tor => +uncin miembro in%ocada automticamente cada %e# que se destruye un ob0eto Su ob0eti%o es reali#ar operaciones como liberacin de memoria, cerrar /ic"eros abiertos, etc ?oma el mismo nombre de la clase comen#ado primero por el carcter 2@2, no toma parmetros y no admite la sobrecarga 3slo puede existir uno en cada clase4
En muc"os casos, para las clases ms sencillas, podemos encontrar clases que no tienen constructor o destructor, ninguno de los dos En !77, siempre existen
por
de/ecto
que
reali#an
una
+.
El
El modelo de programacin propuesto por 5indo6s es totalmente di/erente al modelo de e0ecucin secuencial de 8.S Bl ser 5indo6s un entorno multitarea los programas tienen que estar preparados para compartir los recursos de la computadora 3procesador, memoria, teclado, ratn C4 Esto supone que 5indo6s "a de disponer de m,todos que permitan suspender tareas para acti%ar otras en /uncin de las circunstancias del momento 3por e0emplo, por accin del usuario4 -ero por parte de las aplicaciones, este "ec"o supone que "an de cooperar en la comparticin de esos recursos (as aplicaciones 5indo6s se limitan a 2esperar2 mensa0es procedentes del sistema, procesarlos y %ol%er al estado de espera Este modelo de programacin se conoce como 2orientado al e%ento2 Mensa%e Es una noti/icacin a la aplicacin de que "a ocurrido algo de inter,s y que por lo tanto debe de reali#arse alguna accin espec/ica El origen del mensa0e puede ser el usuario 3"aciendo clicD con el ratn dentro e una %entana4, la propia aplicacin 3mandndose un mensa0e a si misma4 o 5indo6s 3pidiendo, por e0emplo, que se repinte la %entana tras ocultarse otra que tu%iese delante4 8ado que la unidad mnima de e0ecucin en 5indo6s es una %entana, los mensa0es %an realmente dirigidos a ellas Ventana . (ro!e#i iento #e /entana En 5indo6s, una aplicacin se representa /sicamente por su %entana principal 3aunque despu,s pueda desplegar di%ersas %entanas "i0as4 !ada una de esas %entanas dispone de una serie de propiedades y un cdigo asociado 3lo que concuerda con el principio de la -.., en el concepto de ob0eto4 Bl cdigo asociado a cada %entana se le denomina procedimiento de %entana Es una /uncin que recibe los mensa0es, los procesa y de%uel%e el control a 5indo6s para quedar en espera .tra de las caractersticas espec/icas de 5indo6s /rente a 8.S es el uso de recursos por parte de las aplicaciones, como son iconos, mens, mapas de bits, cursores, plantillas de dilogos, etc (as aplicaciones 5indo6s disponen por tanto de recursos 3gr/icos generalmente4 propios almacenados en lo que se llama el /ic"ero de recursos4 El proceso de construccin de programas en 5indo6s incorpora una /ase adicional al compilado y enla#ado de los mdulos ob0eto y las libreras Eay un proceso /inal de compilacin y de enla#ado 3bind4 del /ic"ero de recursos
0.
!uando se crea un nue%o proyecto 3desde la opcin '&ue%o* del men '+ic"ero* aparece un dilogo que nos permite especi/icar que se cree un nue%o 6orDspace4, lo primero que solicita el sistema es determinar el tipo de ob0eti%o que se persigue con este proyecto 8estacar las siguientes posibilidades1 Bplicacin 3 EFE4 basada en la M+! 3M+! Bpp5i#ard4
Lenguaje de Programacin II
(ibrera de enlace dinmico 3 8((4 basada en la M+! 3M+! Bpp5i#ard4 Bplicacin 3 EFE4 estndar para 5indo6s 3basada en el S8G4 (ibrera de enlace dinmico 3 8((4 3basada en el S8G4 Bplicacin 3 EFE4 modelo 8.S 3!onsole application4 (ibrera esttica 3 (IH4
!omo ya "emos destacado anteriormente, el ob0eti%o del presente curso es el mane0o de la librera M+!, por lo que nos centraremos bsicamente en el primer punto 3la construccin de una 8(( con M+! es totalmente similar4
EL 1E2ERADOR DE APLICACIO2ES.
Ia sabemos que :isual !77, apoyado en la potencia de la M+!, es capa# de con%ertirse en un generador de aplicaciones -ara ello dispone de dos "erramientas integradas complementarias1 A((,i3ar#, que es el generador de aplicaciones propiamente dic"o !on ,l podremos generar esqueletos de programas para 5indo6s basados en la M+! Class,i3ar#, "erramienta de mantenimiento de los programas generados con la anterior -ermite a9adir o eliminar clases, modi/icar los comportamientos de las mismas, etc -ero el cdigo generado mediante este m,todo presenta una comple0idad a9adida a la natural de cualquier programa< 0unto con el cdigo !A!77 y el de la M+! aparecen lneas 3generalmente entre comentarios4 que son totalmente necesarias para el /uncionamiento de las dos "erramientas anteriores, modi/icar cualquiera de esas lneas de cdigo dar muc"os problemas a la "ora de utili#ar !lass5i#ard para modi/icarlo 8e todas maneras, este 'de/ecto* es bastante popular entre los usuarios de cualquier generador de cdigo, para cualquier lengua0e El /ormato general de los proyectos generados con estas "erramientas suele tener las siguientes caractersticas1 !ada clase de nuestro programa dispondr de dos /ic"eros1 $n /ic"ero de cabecera 3extensiones " o "pp4 y un /ic"ero de implementacin 3 cpp4 El /ic"ero de cabecera contiene la de/inicin de la clase 3de/iniciones de sus miembros datos y /unciones = los mensa0es =4, mientras que el /ic"ero /uente contiene la implementacin de esas /unciones miembro 3los m,todos de la clase4 $n /ic"ero de recursos 3extensin opcional rc4, aunque ,ste es
Mdulos ob0etos 3 ob04 y libreras estticas 3 lib4 necesarias para crear nuestro programa
Re*eren!ia #e la ,e$ Site "ttp1AA0ungla dit upm esA@0srAoopAc77A "ttp1AA0ungla dit upm esA@0srAoopAc77Asld;;1 "tm
Lenguaje de Programacin II
$ni%ersidad &acional 'San (uis )on#aga* de Ica +acultad de Ingeniera Mecnica y El,ctrica Escuela de Ingeniera Electrnica
IVEE
CLASE +
VE2TA2A DE DIALO1O Q4E I21RESA 2OMBRE DEL 4S4ARIO 5 CLAVE 8esarrollar una aplicacin que permita crear una %entana basada en dilogo, donde se tenga que ingresar un nombre de usuario y su cla%e El siguiente e0ercicio tendr el nombre Bpp;J KK+ileA&e6AM+! Bpp5i#ard3exe4A-royect &ameLBpp;JA (ocation L 81MI:EEMBpp;JA.D>>
KKStep1L8ialog HasedA&ext>> KKStepNLO8 controlsABcti%eF controlsA&ext>> KKStepOLM+! StandardAIes -leaceABs a s"ared 8((A&ext>> KKStepPL+inis"A.D>> Seleccione los controles creados por el asistente y eliminelos $bique los controles indicados1 N etiquetas N ca0as de texto 1 !ontrol picture
Modi/ique la posicin de los controles "asta que su aplicacin tenga la apariencia que se muestra en la %entana siguiente1
Pro(ie#a#es I8 I8 I8 I8
!omo Importar una Imagen -ara poder insertar el icono llamado 'SEC4R67.i!o*, se proceder de la siguiente manera1 Eacer cliD derec"o sobre la carpeta Icon !lic en Import
$bicar la carpeta BMP en la siguiente ruta !1M:!R;, seleccionar el icono indicado y dar clic en Import El paso siguiente cosiste en cambiar las propiedades de los controles indicados para esto seleccione el control !lic derec"o sobre el men contextual, eli0a la opcin Pro(erties tal como se muestra a continuacin
Lenguaje de Programacin II
Control I88QB--;JQ8IB(.) I8!QS?B?I! I8!QS?B?I!314 I8!QE8I?1 I8!QE8I?N I8!QH$??.&1 I8!QH$??.&N I8!QS?B?I! 3picture4
Valor Seguridad del sistema $suario !la%e I8!Q$S$BSI. I8!Q!(B:E true I8!QB!E-?BS TBceptar I8!Q!B&!E(BS T!ancelar I8!QS?B?I! Icon I8IQI!.&1
$na %e# terminada la /ase de dise9o, e0ecute la aplicacin, obtendr la siguiente %entana
!omo agregar cdigo a la aplicacin1 Eacer clic derec"o sobre el botn Bceptar y del men contextual seleccione !lass5i#ard
8e la %entana M+! !lass5i#ard Seleccione la pesta9a Member :ariable, seleccione el ob0eto I8!Q$S$BSI., seguidamente "aga clic en el botn Bdd %ariable, reali#ar los cambios obser%ados en la siguiente %entana
8e la %entana M+! !lass5i#ard seleccione la presta9a Message Maps, asegrese que est, seleccionado el .b0ect I8!QB!E-?BS, a continuacin seleccione del cuadro de lista Messages, el mensa0e denominado H&Q!(I!GE8 luego d, un clic en el botn Bdd +unctionC
10
Lenguaje de Programacin II
8ar un clic en el botn .D, a continuacin "acer clic en el botn Edit !lde (uego escriba la siguiente codi/icacin1 :oid !Bpp;J8lg11Inaceptar34 U $pdate8ata3?S$E4 < Set5indo6?ext3*$suario1 * 7 mQ$suario4<4 V +inalmente e0ecute la aplicacin, al escribir en la ca0a de texto de usuario y dar clic en Bceptar obser%ar que la barra de ttulo cambia y a"ora muestra un mensa0e que indique el $suario y el nombre ingresado
11
12
Lenguaje de Programacin II
$ni%ersidad &acional 'San (uis )on#aga* de Ica +acultad de Ingeniera Mecnica y El,ctrica Escuela de Ingeniera Electrnica
IVEE
CLASE 0
VE2TA2A DE DIALO1O Q4E I21RESA 2OMBRE DEL 4S4ARIO 5 CLAVE ACTIVA2DO 5 DESACTIVA2DO EL BOTO2 DE COMA2DO ACEPTAR 8esarrollar este e0ercicio con las mismas caractersticas del e0ercicio que se reali# anteriormente Esta %e# se "abilitar el botn de comando aceptar al ingresar texto en ambas ca0as de texto El siguiente e0ercicio tendr el nombre Bpp;R KK+ileA&e6AM+! Bpp5i#ard3exe4A-royect &ameLBpp;JA (ocation L 81MI:EEMBpp;RA.D>>
KKStep1L8ialog HasedA&ext>> KKStepNLO8 controlsABcti%eF controlsA&ext>> KKStepOLM+! StandardAIes -leaceABs a s"ared 8((A&ext>> KKStepPL+inis"A.D>> Seleccione los controles creados por el asistente y elimnelos $bique los controles indicados, como el que se indica en el gr/ico1 N etiquetas N ca0as de texto 1 !ontrol picture
13
&o ol%idar de importar el cono llamado SE!$S;W I!. O$%eto : 8ilogo Etiqueta1 EtiquetaN !0a ?exto !0a ?exto H !omand1 Control I88QB--;RQ8IB(.) I8!QS?B?I! I8!QS?B?I!314 I8!QE8I?1 I8!QE8I?N I8!QH$??.&1 Pro(ie#a#es !aption !aption !aption I8 I8 -ass6ord I8 !aption 8e/ault button 8isabled I8 !aption I8 ?ype Image Valor Seguridad del sistema $suario !la%e I8!Q$S$BSI. I8!Q!(B:E true I8!QB!E-?BS TBceptar !"ecD !"ecD I8!Q!B&!E(BS T!ancelar I8!QS?B?I! Icon I8IQI!.&1
H !omandN )r/ico
Co o I (ortar una I agen -ara poder insertar el icono llamado ' SEC4RL.i!o*, se proceder de la siguiente manera1 Eacer cliD derec"o sobre la carpeta Icon !lic en Import
14
Lenguaje de Programacin II
$bicar la el icono 'SE!$S( I!.*, buscarlo con el explorador e indicarle la ruta correspondiente, seleccionar el icono indicado y dar clic en Import Para i (ortar el I!ono8 El paso siguiente consiste en cambiar las propiedades de los controles del ob0eto gr/ico indicado, para esto seleccione el control con el !lic derec"o sobre el men contextual, eli0a la opcin Pro(erties tal como se muestra a continuacin
$na %e# terminada la /ase de dise9o, e0ecute la aplicacin, obtendr la siguiente %entana
!on el clic derec"o sobre la ca0a de texto $suario y del men contextual seleccione !lass5i#ard 3ctrl 754
15
8e la %entana M+! !lass5i#ard seleccione la pesta9a Members :ariables, asegrese que este seleccionado el .b0ect I8!Q$S$BSI. clic en el botn A## /aria$le.. asignarle el nombre mQ$suario de tipo !String de la misma /orma "ace lo mismo para el ob0ect I8!Q!(B:E el nombre de la %ariable mQ!la%e y el ob0ect I8!QB!-?BS el nombre de la %ariable miembro mQBceptar 8e tipo !ontrol !Hutton, /inalmente clic en el notn O9
$na %e# de/inida la :ariable miembro "acer clic sobre la ca0a de texto de usuario 3IDC:4S4ARIO4, se presentar la siguiente pantalla clic en el botn O9
16
Lenguaje de Programacin II
B"ora escriba la siguiente codi/icacin /oi# !Bpp;R8lg11.n!"ange$suario34 U AA ?.8.1 I/ t"is is a SI!EE8I? control, t"e control 6ill not AA send t"is noti/ication unless you o%erride t"e AA!8ialog11.nInit8ialog34 AA /unction and call !Sic"Edit!trl34 SetE%entMasD34 AA 6it" t"e E&MQ!EB&)E /lag .Sed into t"e masD AA ?.8.1 Bdd your control noti/ication "andler code "ere $pdate8ata3?S$E4< i/ 3mQ$suario IsEmpty34 XX mQ!la%e IsEmpty344 mQBceptar Enable5indo63/alse4< else mQBceptar Enable5indo63true4< V !omo en el caso anterior a"ora "acemos doble clic sobre la ca0a de texto !la%e 3I8!Q!(B:E4 y Escribir la siguiente codi/icacin /oi# !Bpp;R8lg11.n!"ange!la%e34 U AA ?.8.1 I/ t"is is a SI!EE8I? control, t"e control 6ill not AA send t"is noti/ication unless you o%erride t"e AA!8ialog11.nInit8ialog34 AA /unction and call !Sic"Edit!trl34 SetE%entMasD34 AA 6it" t"e E&MQ!EB&)E /lag .Sed into t"e masD AA ?.8.1 Bdd your control noti/ication "andler code "ere $pdate8ata3?S$E4< i/ 3mQ$suario IsEmpty34 XX mQ!la%e IsEmpty344 mQBceptar Enable5indo63/alse4< else mQBceptar Enable5indo63true4< V Bl e0ecutar la aplicacin obtendr la siguiente imagen
17
Bl ingresar el nombre del usuario y la cla%e respecti%a, obser%ar como se "abilita el botn Bceptar1 Bl e0ecutar la aplicacin se obser%a de la siguiente manera1 34
18
Lenguaje de Programacin II
$ni%ersidad &acional 'San (uis )on#aga* de Ica +acultad de Ingeniera Mecnica y El,ctrica Escuela de Ingeniera Electrnica
SeguidamenteC KKStep1L8ialog HasedA&ext>> KKStepNLO8 controlsABcti%eF controlsA&ext>> KKStepOLM+! StandardAIes -leaceABs a s"ared 8((A&ext>> KKStepPL+inis"A.D>> Seleccione los controles creados por el asistente y eliminelos $bique los controles indicados1 J etiquetas J ca0as de texto O Hotones de comandos
19
Control I88QB--;7Q8IB(.) I8!QS?B?I! I8!QS?B?I! I8!QS?B?I! I8!QS?B?I! I8!QS?B?I! I8!QE8I?1 I8!QE8I?N I8!QE8I?O I8!QE8I?P I8!QE8I?J I8!QH$??.&1 I8!QH$??.&N I8!QH$??.&O 3N4 3O4 3P4 3J4
Pro(ie#a#es !aption !aption !aption !aption !aption !aption I8 &umber I8 &umber I8 &umber I8 &umber I8 Sead=only I8 !aption I8 !aption I8 !aption
Valor Sistema de &otas &ota 1 &ota N &ota O &ota P -romedio I8!Q&.?B1 ?rue I8!Q&.?BN ?rue I8!Q&.?BO ?rue I8!Q&.?BP ?rue I8!Q-S.ME8I. ?rue I8!Q!B(!$(BS T!alcular I8!Q&$E:. T&ue%o I8!QSB(IS TSalir
2ota1 (as propiedades &umber y Sead=only de las ca0as de texto se encuentran en la /ic"a Styles de la %entana de propiedades Modi/icar la posicin de los controles "asta que su aplicacin tenga la apariencia que se muestra en la %entana siguiente1
(uego asigne una %ariable del tipo double a cada una de las ca0as de texto 3&ota 1, &ota N, &ota O, &ota P y -romedio4 tal como se muestra en la siguiente pantalla del !lass 5i#ard1 KKctrl 75 A I8!Q&.?B1 A Bdd :ariable>>
20
Lenguaje de Programacin II
!uando agregue cada una de las %ariables, debe indicarle que %alores mnimo y mximo se pueden mostrar en dic"as ca0as de texto, en nuestro caso la nota mnima es ; y la mxima es N; -ara esto simplemente digite los %alores situndose en cada uno de los I8s de las ca0as de texto tal como se muestra en el siguiente gr/ico1
21
Valor M=ni o ; ; ; ;
Valor M>?i o N; N; N; N;
B"ora "ay que agregar una /uncin pblica en el programa para que de%uel%a el promedio de las tres notas mayores, para "acer esto siga los siguientes pasos1 1 En la pesta9a !lass:ie6 de la %entana de Entorno de traba0o, "aga clic derec"o en la clase !Bpp;78lg y eli0a la opcin Bdd Member +untion1
22
Lenguaje de Programacin II
(uego le mostrar la siguiente %entana en la que deber indicar el tipo de dato de la /uncin y su declaracin Escriba el nombre de la +uncin que ser promedio del tipo double y como parmetros las P notas de tipo double Esto deber escribir en la declaracin de la /uncin1 (ro e#io@#ou$le n1A #ou$le n+A #ou$le n0A #ou$le n;B
En la %entana de 5orDspace usted %er la /uncin agregada 0unto con los dems elementos1
23
B"ora procedemos a escribir la codi/icacin para nuestra /uncin Esta deber retornar el promedio de las tres mayores notas1 double !Bpp;78lg11promedio3double n1, double nN, double nO, => double nP4 U double min < minLn1 < i/ 3nNKmin4 min L nN< i/ 3nOKmin4 min L nO< i/ 3nPKmin4 min L nP< return 33n1 7 nN 7 nO 7 nP4 Y min4 A O< V
Escriba el cdigo para el botn !alcular de manera que tome las cuatro notas ingresadas y que escriba el promedio llamado a la /uncin creada -rimero "aga doble clic al botn en tiempo de dise9o para crear la nue%a /uncin miembro con el nombre de .n-romedio34<
B"ora digite las siguientes lneas1 :oid !Bpp;78lg11.n!alcular34 U $pdate8ata3true4< mQ-romedio L promedio3mQ&ota1, mQ&otaN, mQ&otaO, mQ&otaP4< $pdate8ata3/alse4< V
24
Lenguaje de Programacin II
(uego escribimos el cdigo para que al presionar el botn &ue%o, las ca0as de texto %uel%an a un %alor de ; para esto primero "aga un doble clic para crear la nue%a /uncin miembro con el nombre de On 2ue/o1
C y escriba la codi/icacin siguiente1 %oid !Bpp;78lg11.n&ue%o34 U mQ&ota1 L mQ&otaN L mQ&otaO L mQ&otaP L mQ-romedio L ;< $pdate8ata3/alse4< V +inalmente cree la /uncin miembro que se e0ecutar la "acer clic en el botn Salir Eaga doble clic al botn para que se cree automticamente la /uncin OnSalir@B.
Escribir la lnea de cdigo1 :oid !Bpp;78lg11.nSalir34 U t"is=>8estroy5indo634< V Bl e0ecutar /inalmente la aplicacin se obser%ar la siguiente %entana 1 3 4
( ) : !arrasco Mu9o# Zoel !reacin de -rogramas con :isual !77 Ed $&I N;;N -g 1NP
25
$ni%ersidad &acional 'San (uis )on#aga* de Ica +acultad de Ingeniera Mecnica y El,ctrica Escuela de Ingeniera Electrnica
IVEE
OPERACIO2ES BASICASA 4SO DEL COMA2DO RATIO B4TTOM
!rear una %entana basada en dilogo utili#ando el M+! Bpp5i#ard en la que se pida el ingreso de N nmeros y se pueda seleccionar una de las cuatro operaciones bsicas 3Suma, Sesta Multiplicacin y 8i%isin4 utili#ando radio butons 8eber almacenar la aplicacin con el nombre de A((67. KK+ileA&e6AM+! Bpp5i#ard3exe4A-royect &ameLBpp;WA (ocation L !1MI:EEMBpp;WA.D>>
CLASE 6C
Seguidamente KKStep1L8ialog HasedA&ext>> KKStepNLO8 controlsABcti%eF controlsA&ext>> KKStepOLM+! StandardAIes -leaceABs a s"ared 8((A&ext>> KKStepPL+inis"A.D>> Seleccione los controles creados por el asistente y eliminelos $bique los controles indicados1 P etiquetas O ca0as de texto
26
Lenguaje de Programacin II
P botones de opcin 1 ca0a de grupo 1 Hotn de comando Pro(ie#a#es !aption !aption !aption !aption !aption !aption I8 &umber I8 &umber I8 Sead=only &umber I8 )roup !aption I8 !aption I8 !aption I8 !aption I8 !aption 8e/ault button Valor .peraciones Hsicas .peraciones Hsicas &meroQ;1 &meroQ;N Sesultado '* I8!Q&$MES.1 ?rue I8!Q&$MES.N ?rue I8!QSES$(?B8. ?rue ?rue I8!QS$MB ?rue TSuma I8!QSES?B TSesta I8!QM$(?I-(I!B!I.& TMultiplica I8!Q8I:ISI.& T8i%isin I8!Q!B(!$(BS T!alcular ?rue
Control I88QB--;WQ8IB(.) I8!QS?B?I! I8!QS?B?I! 3N4 I8!QS?B?I! 3O4 I8!QS?B?I! 3P4 I8!QS?B?I! 3/rame4 I8!QE8I?1 I8!QE8I?N I8!QE8I?O
I8!QSB8I.1
2ota1 (as propiedades &umber, de/aul button y Sead=only de las ca0as de texto se encuentran en la /ic"a Styles de la %entana de propiedades Modi/ique la %entana en tiempo de dise9o, la apariencia de la %entana deber ser similar a esta1
27
B"ora %amos "a proceder a crear %ariables miembros para las ca0as de texto de la siguiente manera, in%oque al !lass 5i#ard y en la /ic"a Me $er Varia$les1 KK!trl 75 A I8!Q&$MES.1 A Bdd :ariable>> Control IDs I8!Q&$MES.1 I8!Q&$MES.N I8!QSES$(?B8. I8!QS$MB Ti(o double double double int 2o $re Varia$le mQ&umero1 mQ&umeroN mQSesultado mQ.peracion
B"ora si procedemos a escribir el cdigo para que nuestra aplicacin /uncione ?odo cdigo ir en el botn !alcular !ree la /uncin miembro para el botn llamada .n!alcular34 dando doble clic al botn de comando en el dilogo,
28
Lenguaje de Programacin II
B"ora digite la siguiente codi/icacin1 :oid !BppoW8lg11.n!alcular34 U AABctuali#amos los datos de las %ariables $pdate8ata 3true4< AAElegimos la operacin de acuerdo a lo que el usuario AA"aya seleccionado desde los radio buttons s6itc" 3mQ.peracion4 U case ;1 mQSesultado L mQ&umero1 7 mQ&umeroN< breaD< case 11 mQSesultado L mQ&umero1 = mQ&umeroN< breaD< case N1 mQSesultado L mQ&umero1 [ mQ&umeroN< breaD< case O1 i/ 3mQ&umeroN \L;4 mQSesultado L mQ&umero1 A mQ&umeroN< else U MessageHox3'8i%isin por => !ero*, 'Error*, MHQ.G X MHQI!.&S?.-4< mQ&umero1 L mQ&umeroN L mQSesultado L ;< V breaD< V $pdate8ata3/alse4< V B"ora para "acer que la operacin predeterminada sea Suma, escribiremos unas lneas de cdigo en la /uncin OnInitDialog de la clase CA((s67Dlg1
29
8espu,s de ubicarse en la /uncin "aga doble clic y modi/ique el contenido predeterminado a lo siguiente1 H..( !Bpp;W8lg11.nInit8ialog34 U !8ialog11.nInit8ialog341 AASet t"e icon /or t"is dialog ?"e /rame6orD does t"is AAautomatically AA 6"en t"e application]s main 6indo6 is not a dialog SetIcon3mQ"Icon, ?S$E4< AA Set big icon SetIcon3mQ"Icon, +B(SE4< AA Set small icon AA En%iamos el /oco a la primera operacin 3Suma4 mQ.peracion L ;< $pdate8ata3/alse4< return /alse< V
-resione las ?eclas ctrl 7 +J para e0ecutar la aplicacin y %er una %entana similar a esta1
30
Lenguaje de Programacin II
?BSEB1 14 N4 Bgregar un radio buttom que calcule la potencia donde el nmero 1 es la Hase y nmero ;N es el exponente Bgregar dos ca0as de edicin 3E8I?H.F4 y otro radio buttom que calcule el /actorial del nmero ;1 y el nmero ;N
31
$ni%ersidad &acional 'San (uis )on#aga* de Ica +acultad de Ingeniera Mecnica y El,ctrica Escuela de Ingeniera Electrnica
BOLETA DE PA1O 4SO DEL COMA2DO C)EC9 . SALIDA DE TEETO COMO VARIABLE -rctica1 Simulacin de una Holeta de -ago de un ?raba0ador
!rear una :entana basada en dilogo utili#ando el M+! Bpp5i#ard que simule una boleta de pago en la que se pida que se ingrese el nombre del traba0ador, sus "oras traba0adas, "oras extras, categora 3Maestro, ./icial -en4 y descuentos 3B+- y EsSalud4 B"ora asigne el nombre de la aplicacin B--1; y presione el botn .G, tal como se muestra a continuacin
CLASE 6D
El pago por "ora segn categora es el siguiente1 Maestro 1 SA W ;; ./icial 1 SA R ;; -en 1 SA J ;; (os descuentos sern como sigue1 B+1 El 1;^ del sueldo bruto EsSalud 1 El O^ del sueldo bruto
32
Lenguaje de Programacin II
El pago por "oras extras ser el P;^ ms del pago por "ora normal El sueldo bruto ser las "oras normales multiplicado por el pago por "oras ms el pago por "oras extras correspondientes El sueldo neto ser el sueldo bruto menos los descuentos )enerar los controles indicados1 J etiquetas O ca0as de texto N ca0as de grupo O botones de opcin N casillas de %eri/icacin 1 botn de comando Pro(ie#a#es !aption !aption !aption !aption !aption I8 !aption Horder !aption !aption I8 I8 I8 I8 !aption )roup I8 !aption I8 !aption I8 !aption I8 !aption I8 !aption 8e/ault button Valor Holeta de -ago &ombre del ?raba0ador Eoras &ormales Eoras Extras Sesultados I8!QSES$(?B8.S '* ?rue !ategoras 8escuentos I8!QE.SBSEF?SBS I8!QE.SBS&.SMB(ES I8!Q&.MHSES I8!QMBES?S. &Maestro ?rue I8!Q.+I!IB( &./icial I8!Q-E.& T-en I8!QB+&B+I8!QESSB($8 &EsSalud I8!Q!B(!$(BS &!alcular ?rue
Control I88QB--1;Q8IB(.) I8!QS?B?I! I8!QS?B?I! 314 I8!QS?B?I! 3N4 I8!QS?B?I! 3O4 I8!QS?B?I! 3P4 I8!QS?B?I! 3/rame14 I8!QS?B?I! 3/rameN4 I8!QE8I?1 I8!QE8I?N I8!QE8I?O I8!QSB8I.1 I8!QSB8I.N I8!QSB8I.O I8!Q!EE!G1 I8!Q!EE!GN I8!QH$??.&1
33
B"ora procederemos a crear las %ariables miembros para los controles creados de la siguiente manera1 Control I8!QB+I8!QESSB($8 I8!QE.SBSEF?SBS I8!QE.SBS&.SMB(ES I8!QMBES?S. I8!Q&.MHSES I8!QSES$(?B8.S Categor=a :alue :alue :alue :alue :alue :alue :alue Ti(o H..( H..( int int int !String !String 2o $re Varia$le mQB+m=EsSalud mQEorasExtras mQEoras&ormales mQ!ategora mQ&ombres mQSesultados
34
Lenguaje de Programacin II
(os %alores mnimos y mximos para las %ariables mQEoras&ormales sern de ; y PW respecti%amente
mQEorasExtras
B"ora agregue la /uncin miembro .n!alcular34 para el botn de comando !alcular 3I8!Q!B(!$(BS41
En la /uncin creada agregue las siguientes lneas de cdigo para los clculos1 :oid !app1;8lg11.n!alcular34 U $pdate8ata3true4< double pagoEora L ; ;;, extra L ; ;; s6itc" 3mQ!ategoria4 U case ;1 pagoEora L W< breaD< case 11 pagoEora L R< breaD< case N1 pagoEora L J< V extra L 3pagoEora [ 1 P4 [ mQEorasExtras< double descuento1 L ; ;;, descuentoN L ; ;;< c"ar cad_1J`< mQSesultados L 'Holeta de pago del traba0ador1 * 7 mQ&ombres 7 'Mn*< itoa3mQEoras&ormales,cad,1;4< mQSesultados L mQSesultados 7 'Eoras ?raba0adas1 * 7 cad 7 'Mn*< itoa3mQEorasExtras,cad,1;4< mQSesultados L mQSesultados 7 'Eoras Extras1 * 7 cad 7 'Mn*< double sueldoHruto L ; ;;< sueldoHruto L 3mQEoras&ormales [ pagoEora4 7 extra< gc%t3sueldoHruto, R, cad4< mQSesultados L mQSesultados 7 'Sueldo Hruto 1 * 7 cad 7 'Mn*< double descuentoB+- L ; ;;, descuentoEsSalud L ; ;;< i/ 3mQB+-4 ) m_EsSalud) { m_Resultados = m_Resultados + Descuentos !n"# i$ %m_&'P) { descuento&'P = ()* + sueldo,ruto#
35
gc-t%descuento&'P. /. cad)# m_Resultados = m_Resultados + &'P "+ cad + !n"# 0 i$ %m_EsSalud) { descuentoEsSalud = ()(1 + sueldo,ruto# gc-t%descuentoEsSalud. /. cad)# m_Resultados = m_Resultados + EsSalud "+ cad + !n"# 0 0 double sueldo&eto L ; ;;< sueldo&eto L sueldo&eto Y 3descuentoB+- 7 descuentoEsSalud4< gc-t%sueldo2eto. /. cad)# m_Resultados = m_Resultados + Sueldo 2eto "+ cad + !n"# $pdate8ata3/alse4< V B"ora para "acer que la categora predeterminada sea Maestro, modi/ique la /uncin OnInitDialog@B de la clase CA((16Dlg de la siguiente manera1 H..( !Bpp1;8lg11.nInit8ialog34 U !8ialog11.nInit8ialog341 AA 6"en t"e apllication]s main 6indo6s is not dialog AA como la aplicaciones no son %entanas de dialogos SetIcon3mQ"Icon,?S$E4< AA Set big icon SetIcon3mQ"Icon,+B(SE4< AA Set small icon )et8lgItem3I8!Q&.MHSES4=>Set+ocus34< mQ!ategoria L ;< $pdate8ata3/alse4< return /alse< V -resione las teclas !?S( 7 +J para e0ecutar la aplicacin y %er una %entana similar a esta1
36
Lenguaje de Programacin II
?BSEB1 14 Bgregar dos comandos c"ecD para descuentos por I): 31a^4 y de !asa !omercial 31;^4, respecti%amente
37
$ni%ersidad &acional 'San (uis )on#aga* de Ica +acultad de Ingeniera Mecnica y El,ctrica Escuela de Ingeniera Electrnica
CLASE 6F
Seguidamente KKStep1L8ialog HasedA&ext>> KKStepNLO8 controlsABcti%eF controlsA&ext>> KKStepOLM+! StandardAIes -leaceABs a s"ared 8((A&ext>> KKStepPL+inis"A.D>> Seleccione los controles creados por el asistente y elimnelos
38
Lenguaje de Programacin II
$bicar los controles indicados1 P Etiquetas P !a0as de ?exto P !ontroles Spin 1 Hotn de comando !uadro de propiedades de los ob0etos1 Control I88QB--1PQ8IB(.) I8!QS?B?I! I8!QS?B?I! 314 I8!QS?B?I! 3N4 I8!QS?B?I! 3O4 I8!QE8I?1 I8!QE8I?N I8!QE8I?O I8!QE8I?O Pro(ie#a#es !aption !aption !aption !aption !aption I8 &umber I8 &umber I8 &umber I8 &umber Sead=.nly I8 Buto buddy Set buddy integer Blignment I8 Buto buddy Set buddy integer Blignment I8 Buto buddy Set buddy integer Blignment I8 !aption Valor $sando el !ontrol Spin Ingrese &ota 1 Ingrese &ota N Ingrese &ota O -romedio I8!Q&.?B1 ?rue I8!Q&.?BN true I8!Q&.?BO true I8!Q-S.ME8I. true true I8!QS-I&Q&.?B1 true true Sig"t I8!QS-I&Q&.?BN true true Sig"t I8!QS-I&Q&.?BO true true Sig"t I8!Q!B(!$(BS T!alcular
I8!QS-I&1
I8!QS-I&N
I8!QS-I&O
I8!QH$??.&1
2ota1
Es importante a9adir primero la ca0a de texto, seguidamente a9adir el control Spin respecti%o al control, caso contrario no %a "a incrementar decrementar el control Spin
39
B"ora procederemos a crear las %ariables miembros para los controles creados 3ca0as de texto4 de la siguiente manera1 Control I8!Q&.?B1 I8!Q&.?BN I8!Q&.?BO I8!Q-S.ME8I. Categor=a :alue :alue :alue :alue Ti(o double double double double 2o $re Varia$le mQnota1 mQnotaN mQnotaO mQ-romedio
El rango de %alidacin para las %ariables debe de ser de ; a N;1 Control I8!QS-I&Q&.?B1 I8!Q S-I&Q&.?BN I8!Q S-I&Q&.?BO Categor=a !ontrol !ontrol !ontrol Ti(o !SpinHutton!trl !SpinHutton!trl !SpinHutton!trl 2o $re Varia$le mQSpin&ota1 mQSpin&otaN mQSpin&otaO
40
Lenguaje de Programacin II
Modi/icar a"ora el e%ento OnInitDialog@B de la calse CA((1;Dlg de la siguiente manera1 H..( !Bpp1P8lg11.nInit8ialog34 U !8ialog11.nInit8ialog34< AA Set t"e icon /or t"is dialog ?"e /rame6orD does t"is AA automatically AA 6"en t"e apllication]s main 6indo6s is nor a dialog SetIcon3mQ"Icon, ?S$E4< AA Set big icon SetIcon3mQ"Icon, +B(SE4< AA Set small icon AA Indicamos el rango de nmeros y asignamos a cada control AA Spin el recurso de cada Edit Hox mQSpin&ota1 mQSpin&ota1 mQSpin&otaN mQSpin&otaN mQSpin&otaO mQSpin&otaO SetSange3;,N;4< Set-os3I8!Q&.?B14< SetSange3;,N;4< Set-os3I8!Q&.?BN4< SetSange3;,N;4< Set-os3I8!Q&.?BO4<
AA Iniciali#amos las %ariables a !ero mQ&ota1 L mQ&otaN L mQ&otaO L ;< $pdate8ata3+B(SE4< return ?S$E< AA return ?S$E unless you set t"e /ocus to a control V Bgregue el e%ento clic al botn I8!Q!B(!$(BS e inserte la siguiente codi/icacin 3Eacer doble clic en el botn !alcular41
41
%oid !Bpp1P8lg11.n!alcular34 U $pdate8ata3?S$E4< double min< min L mQ&ota1< i/ 3mQ&otaNK min4 min L mQ&otaN< i/ 3mQ&otaOK min4 min L mQ&otaO< mQ-romedio L 33mQ&ota1 7 mQ&otaN 7 mQ&otaO4 = min4 A N< $pdate8ata3+B(SE4< V
-resione las teclas !?S( 7 +J para e0ecutar la aplicacin y %er una %entana similar a esta1
42
Lenguaje de Programacin II Automticamente selecciona la ventana previa como ventana buddy al botn del Spin Hace que el Spin Control incremente y decremente el contenido de la venta buddy como los cambios de la posicin actual Uno de Unattached, e!t o "i#ht, controla la locali$acin del botn Spin%
TAREA8 ;14 Eacer la misma aplicacin incluyendo J notas y promediar las O notas ms altas Se/erencia1 Zoel !arrasco Mu9o# :IS$B( !77 -gs 171=17J
43
$ni%ersidad &acional 'San (uis )on#aga* de Ica +acultad de Ingeniera Mecnica y El,ctrica Escuela de Ingeniera Electrnica
CLASE 67
Seguidamente KKStep1L8ialog HasedA&ext>> KKStepNL 8esacti%ar los controles 3BboutAO8 controlsABcti%eF controls4A&ext>> KKStepOLM+! StandardAIes -leaceABs a s"ared 8((A&ext>> KKStepPL+inis"A.D>> Seleccione los controles creados por el asistente y elimnelos
44
Lenguaje de Programacin II
!uadro de propiedades de los ob0etos1 Control I88QB--+.SMBSQ8IB(.) I8!QH$??.&1 I8!QH$??.&N I8!QH$??.&O Pro(ie#a#es !aption I8 !aption I8 !aption I8 !aption Valor +ormas I8!Q(I&EB T(inea I8!QSE!?B&)$(. TSectangulo I8!QE(I-SE TElipse
(o que sigue a continuacin es diagramar la inter/a# que nos ayudar a dibu0ar nuestras /ormas para eso "acemos lo siguiente1 Horramos el botn Bceptar, de0amos el botn !ancelar debe quedar el 3I8!B&!E(4, pero cambiamos el !aption por 'TSalir* Seleccionamos el botn Hutton y dibu0amos tres de esos controles y un control )roup Hox y agrupamos estos tres controles como se muestra la /igura1
!omo no %amos "a necesitar el cdigo que se muestra en la /uncin .n-aint34 as que la borraremos pero solo el contenido de tal manera que nos quede cmo sigue1
45
%oid !Bpp+ormas8lg11.n-aint34 U V -ero como dibu0amos, para esto crearemos nuestra propia /uncin de dibu0o que se llamar #i$u%a@int ?1A int .1A int ?+A int .+B de tipo /oi#A las %ariables que tienen como parmetros nos ser%ir para dar las coordenadas de dibu0o de la /orma que eli0amos, entonces copiamos la siguiente codi/icacin1
%oid !Bpp+ormas8lg11dibu0a3int x1, int xN, int y1, int yN4 U !-aint8! dib3t"is4< !Sect rec< )et!lientSect3Trec4< s6itc"3clase4 U case 11 dib Mo%e?o3x1,y14< dib (ine?o3xN,yN4< breaD< case N1 dib Sectangle3x1,y1,xN,yN4< breaD< case O1 dib Ellipse3x1,y1,xN,yN4< breaD< V V -odemos obser%ar que en el cdigo existe una %ariable llamada !lase la cual nos indicar que tipo de /orma se dibu0ar, entonces debemos declararla esta %ariable y lo "aremos presionando el botn derec"o del mouse sobre !B--+.SMBS8lg y escogiendo la opcin A## Me $er Varia$leA esta %ariable ser de tipo int. (o que sigue ser declarar las %ariables que nos ser%irn para almacenar los puntos seleccionados por el mouse al "acer clic sobre el rea del dibu0o, ,stas
46
Lenguaje de Programacin II
%ariables se llaman punto1 y puntoN y sern de tipo !-oint, la declaracin de estas %ariables es de manera similar a las %ariables anteriores B"ora debemos indicarle que debemos usar el mouse a nuestra con%eniencia, para eso "acemos un clic sobre el botn derec"o del mouse sobre CAPP<ORMASDlg y elegimos la opcin A## ,in#o-s Message )an#lerA en el listado &e6 5indo6s messageAe%ents , seleccionamos ,M:LB4TTO2DO, y presionamos el botn A## an# E#it, a"ora nos queda agregar la siguiente codi/icacin %oid !Bpp+ormas8lg11.n(Hutton8o6n3$I&? n+lags, !-oint point4 U AA ?.8.1 Bdd your message "andler code "ere andAor call de/ault i/ 3contLL;4 In%alidate3/alse4< cont77< i/ 3contLL14 punto1Lpoint< else U i/ 3contLLN4 U puntoNLpoint< dibu0a3punto1 x, punto1 y, puntoN x, puntoN y4< contL;< V V !8ialog11.n(Hutton8o6n3n+lags, point4< V
47
8e manera similar a las otras %ariables debemos declarar la %ariable !ount de tipo int, una %e# "ec"o esto debemos de iniciali#arla para eso "acemos doble clic sobre el constructor y a9adimos el cdigo que se indica a continuacin1
48
Lenguaje de Programacin II
!Bpp+ormas8lg11!Bpp+ormas8lg3!5nd[ p-arent A[L&$(([A4 1 !8ialog3!Bpp+ormas8lg11I88, p-arent4 U AAUUB+FQ8B?BQI&I?3!Bpp+ormas8lg4 AA &.?E1 t"e !lass5i#ard 6ill add member initiali#ation "ere AAVVB+FQ8B?BQI&I? AA &ote t"at (oadIcon does not require a subsequent 8estroyIcon in 5inON mQ"Icon L B/x)etBpp34=>(oadIcon3I8SQMBI&+SBME4< AAIniciali#acin de la %ariable cont contL;< V Esta %ariable nos indica si "acemos el primer clicD con el mouse 3contL14, almacenamos este puno en punto1, pero si es el segundo punto 3contLN4, se almacena este punto en punto N y luego dibu0a la /orma indicada, es all donde usamos las %ariables que tiene la /uncin dibu0a34, la cual recibe cuatro parmetros B"ora "acemos soble clic sobre el botn I8!Q(inea esto crear una /uncin .n(inea, de manera similar "acemos con los siguientes botones, para introducir la siguiente codi/icacin1
%oid !Bpp+ormas8lg11.n(inea34 U AA ?.8.1 Bdd your control noti/ication "andler code "ere claseL1< contL;< V %oid !Bpp+ormas8lg11.nSectangulo34 U AA ?.8.1 Bdd your control noti/ication "andler code "ere claseLN< contL;< V
49
%oid !Bpp+ormas8lg11.nEllipse34 U AA ?.8.1 Bdd your control noti/ication "andler code "ere claseLO< contL;< V
(uego al e0ecutar esta aplicacin obtendremos un apantalla como nos muestra la /igura siguiente +unciona primero seleccionando la /orma que se quiere dibu0ar y luego se marca los puntos en que queremos que se dibu0e esta /orma 3Hastar dos puntos coordenados para gra/icar4
Se/erencia1 Bburto !orrea Eed 'Bplique programacin en %isual !77 -gs R=, R=J
50
Lenguaje de Programacin II
$ni%ersidad &acional 'San (uis )on#aga* de Ica +acultad de Ingeniera Mecnica y El,ctrica Escuela de Ingeniera Electrnica
enI
!reacin de un proyecto para la creacin gr/icas de lneas curdas, sector circular, elipse a partir de las clases !-en, !Hrus" , !-anit 8! de la clase !8! Iniciar con un proyecto nue%o
Paso 61
51
(os steps siguientes indicarlos por de/ecto1 KKStepNL &oneA&ext>> 3?ipo de aplicacin que se desea crear4 KKStepOL &oneABcti%eF !ontorlsA&ext>> 3&o usar el soporte .(E4
52
Lenguaje de Programacin II
KKStepPL 8ocDing ?oolbarAInicial StatusHarA-rinting and -rint -re%ie6 A O8 !ontrols A &ormalA&ext >> 3(as caractersticas de la aplicacin4 KKStepJL M+! Standard A Ies pleaceABs s"ared 8(( A &ext >> 3Estilo de proyecto, generacin de comentarios y el uso de librera M+!4 KKStepRL +inis"A.D >> 3Muestra el listado con las caractersticas que el asistente est por "acer4 Paso3 En la %entana 6orDsapace la solapa Vie- el 6i#ard "a generado los cdigos siguientes1
)ra/icos " L Es el arc"i%o cabecera principal de la aplicacin )r/icos )ra/icos cpp L Brc"i%o de cdigo /uente de la aplicacin )r/icos 8e/ine el comportamiento de las clases StdB/x " L !ontiene los incluyes Standard )ra/icos pc"1 !abecera precompilada StdB/x ob0 1 ?ipo de in/ormacin pre=compilada StdB/x cpp LBc"i%os include del sistema Standard
53
)ra/icos rc L Este arc"i%o contiene los recursos que esta aplicacin utili#a1 iconos, bitmaps, 8ialog, Menu, etc Main+rm " y Main+rm cpp1 !ontiene la decaracin y de/inicin de la clase !main+rame )ra/icos8oc ", )ra/icos8oc cpp1 !ontiene la declaracin y de/inicin de la clase !)ra/icos8oc )ra/icos:ie6 ", )ra/icos:ie6 cpp1 !ontiene la declaracin y de/inicin de la clase !gra/icos:ie6 Sesource "1 Brc"i%o de cabecera que contiene los identi/icadores 3I84 de los recursos Paso4 Seleccionar de la %entana 5orDspace y en la pesta9a !lass:ie6 la /uncin OnDra-@CDCJ(DCB contenido en la clase Cgra*i!osVie-. %oid !)ra/icos:ie611.n8ra63!8![ p8!4 U !)ra/icos8oc[ p8oc L )et8ocument34< BSSES?Q:B(I83p8oc4< AA Bgregar la siguiente sentencia p8!dc=>?ext.ut31;;,N;;,*?exto gr/ico en el punto 1;;,N;;*4 V (uego %isuali#aremos al compilar 3!?S(7+J4
54
Lenguaje de Programacin II
Seleccionar la pesta9a !lass:ie6 en la %entana 5orDspace y elegir la /uncin OnDra-@CDCJ (DCB que se encuentra en la clase C1ra*i!osVie-. (uego adicionar el cdigo a la /uncin /oi# C1ra*i!osVie-88OnDra-@CDCJ (DCB
AA 8ibu0a una lnea en diagonal p8!=>(ine?o31;;,1;;4< p8!=> ?ext.ut3R;,N;, 'K=(nea en 8iagonal* 4<
Paso $! %so de la clase CPen Se introduce la codi/icacin para modi/icar la /orma de los dibu0os creados anteriormente1 1 N Editar la /uncin On#raBdicionar el cdigo a la /uncin '%oid !)ra/icos:ie611.n8ra63!8![p8!4* antes del cdigo que dibu0a las /iguras
55
AA Modi/ica la /orma de los dibu0os !-en [nQpincelLne6 !-en< nQpincel =>!reate-en3-SQS.(I8,R,S)H3NJJ,;,;44< AAIniciali#acin p8!=> Select.b0ect3nQpincel4< Paso &! %so de la clase C'rus( Se introduce la codi/icacin para modi/icar el interior de los dibu0os creados anteriormente1 1 N Editar la /uncin On#raBdicionar el cdigo a la /uncin '/oi# C1ra*i!osVie-88OnDra-@CDCJ(DCB * antes del cdigo que dibu0a las /iguras
AA Modi/ica el interior de los dibu0os !Hrus" [nQbroc"aLne6 !Hrus"< AA!rea un ob0eto nQbroc"a =>!reateEatc"Hrus" 3ESQ!S.SS,S)H3NJJ,;,;44< AAIniciali#acin p8!=> Select.b0ect3nQbroc"a4< +I&B(ME&?E1
56
Lenguaje de Programacin II
$ni%ersidad &acional 'San (uis )on#aga* de Ica +acultad de Ingeniera Mecnica y El,ctrica Escuela de Ingeniera Electrnica
<un!iones
enI
!reacin de un proyecto para gra/icar /unciones trigonom,tricas e0emplo la /uncin coseno, guardarlo con el nombre de Bpp?rigo en su rea de traba0o 81MI:EEM Iniciar con un proyecto nue%o
Paso 61
57
(os steps siguientes indicarlos por de/ecto1 KKStepNL &oneA&ext>> 3?ipo de aplicacin que se desea crear4 KKStepOL &oneABcti%eF !ontorlsA&ext>> 3&o usar el soporte .(E4
58
Lenguaje de Programacin II
KKStepPL 8ocDing ?oolbarAInicial StatusHarA-rinting and -rint -re%ie6 A O8 !ontrols A &ormalA&ext >> 3(as caractersticas de la aplicacin4 KKStepJL M+! Standard A Ies pleaceABs s"ared 8(( A &ext >> 3Estilo de proyecto, generacin de comentarios y el uso de librera M+!4 KKStepRL +inis"A.D >> 3Muestra el listado con las caractersticas que el asistente est por "acer4 Paso3 En la %entana 6orDsapace la solapa Vie- el 6i#ard "a generado los cdigos siguientes1
!reada la aplicacin "ay que ubicamos a la /uncin .n8ra634 de la !lase !Bpp?rigo:ie6, una %e# ubicada "acer doble clic sobre ella para editar su cdigo %oid !Bpp?rigo:ie611.n8ra63!8![ p8!4 U !Bpp?rigo8oc[ p8oc L )et8ocument34< BSSES?Q:B(I83p8oc4< AA Bgregar la siguiente sentencia
59
double y< int i< AA -ermite reali#ar tareas gr/icas sobre el rea cliente de una AA determinada %entana !!lient8! dc 3t"is4< dc Mo%e?o31;;,J;4< dc (ine?o31;;,OJ;4< dc Mo%e?o31;;,N;;4< dc (ine?o3J;;,N;;4< dc Mo%e?o31;;,N;;4< dc ?ext.ut3P;;,1;;, '+uncin !oseno*,1P4< /or 3iL;< iKP;;<i774 U y L 1N; [ cos3O 1P1J [ i [ 3OR; ;AP;;4A1W; ;4< dc (ine?o31;;7i,N;; ;=y4< V
60
Lenguaje de Programacin II
2ota8 &o ol%idar incluir el arc"i%o de cabecera mat" " en el /ic"ero CA((TrigoVie-.!(( para poder utili#ar la /uncin coseno 3cos4, para esto debe incluirse el arc"i%o de cabecera de la siguiente manera1 Kin!lu#e L atH.HM
?BSEBS1 14 Eacer los cambios de /unciones probar las R /unciones combinando ngulos dobles Eacer la presentacin de cada uno de los cambios N4 Seali#ar la sumatoria y la di/erencia de dos /unciones, combinar las /unciones y los ngulos Se/erencia Hibliogr/ica Zoel !arrasco Mu9o# ':isual !77 -gs NPW
61
$ni%ersidad &acional 'San (uis )on#aga* de Ica +acultad de Ingeniera Mecnica y El,ctrica Escuela de Ingeniera Electrnica
CLASE 11
62
Lenguaje de Programacin II
63
N=
En el Step N o/ P Bbout boxAO8 controlABcti%eF !ontrolsA-lease enter a title tour you dialog1 3Ingrese el ttulo41 'Ingresar a una %entana de dilogo desde otra %entana de dilogo*
64
Lenguaje de Programacin II
O = 8el Step O y P de0ar por de/ecto !lic en +inis"< y luego .G P = En la %entana de dilogo principal borrar el ob0eto lnea de texto 8ebe /igurar as1
!omen#aremos "a desarrollar la siguiente aplicacin Paso 2 a4 Sobre la %entana de dilogo principal "acer clic el botn derec"o del mouse y elegir propiedades
65
b4
B"ora agregaremos un nue%o dialogo para esto, en la %entana 5orDspaces, debe estar acti%a la solapa Sesource :ie6< Eaga clic con el botn derec"o del mouse sobre la carpeta 8ialogo y seleccione Insert 8ialog del men contextual 8el siguiente modo
c4
Bparecer una nue%a %entana de dilogo con los botones .G, !ancelar y por de/ecto I8 L I88Q8IB(.)1 ser rempla#ado por I88Q!$B8SB8.
66
Lenguaje de Programacin II
d4
!uando uno agrega un dialogo slo se incorpora un recurso 3arc"i%o de recurso4, que sera el aspecto %isual, pero para nada esta an %inculado con la aplicacin, pues necesita de una clase la cual traer consigo las /unciones miembro y los datos miembro -or eso cada %e# que inserte un cuadro de dialogo cree la clase del mismo, b!mo se "ace estoc< ubicarse en la %entana de dilogo1 que se "a insertado y simplemente presione !trl 75 y aparecer automticamente antes de entrar a !lass5i#ard la siguiente %entana1
Se detect que I88Q8IB(.)1 I88Q!$B8SB8. Es un nue%o recurso y que probablemente necesitaremos una nue%a clase para el mismo, entonces nos o/rece crear una nue%a o seleccionar una existente< elegiremos !reate a ne6 class y pulsamos O9 Bparecer una %entana pidiendo que ingresemos un nombre para la clase, all ingresaremos !8ialog1 !!uadrado, 3por con%encin todas las clases comien#an con la letra !41
67
Butomticamente en el campo +ile &ame aparecer BreaQ!uadrado cpp 3aqu se encontrara la de/inicin de la clase4 y la lista Hase !lass %eri/ique que se encuentra seleccionada !dialog -resione .G, pasara a !lass 5i#ard, presione nue%amente .G para cerrar el asistente
Ia tenemos entonces un nue%o cuadro de dialogo y una clase para el mismo, ob%iamente esto no "ace que nuestra nue%a %entana sea til en nuestro programa, a"ora deberemos escribir el cdigo necesario para poder mostrarla regresemos a la %entana principal, pues el cdigo que llamara a la nue%a %entana de dilogo se acti%ar al presionar el botn I8!QB!E-?BS, sin antes pre%iamente seleccionar el rea de la /igura a calcular -ero el dilogo donde est este botn reconocer la clase del nue%o dilogo si agregamos en el arc"i%o de implementacin del dilogo principal el arc"i%o de cabecera del nue%o dilogo que /u, generado por !lass 5i#ard, el cual tiene el mismo nombre que el de implementacin pero con extensin " 3en nuestra aplicacin ser BreaQ!uadrado "4 &o se ol%ide de agregar la lnea dinclude 2BreaQ!uadrado "2 en comunicacin de Ventanas Multi(lesDlg.!((
68
Lenguaje de Programacin II
8e la misma manera insertaremos las %entanas de dialogo para el area del triangulo, rectngulo , circulo ,procediendo con los pasos anteriores ya %istos anteriormente $bique los controles indicados1 1 1 P 1 etiqueta ca0a de grupo botones de opcin botn de comando Propiedades !aption !aption !aption I8 )roup !aption I8 !aption I8 !aption I8 !aption I8 !aption 8e/aultbutton )alor Ingresar a una %entana de dilogo desde otra %entana de dilogo BSEBS 8E +I)$SBS -(B&BS '* I8!Q!$B8SB8. ?rue !uadrado I8!Q?SIB&)$(. ?riangulo I8!QSE!?B&)$(. Sectangulo I8!Q!IS!$(. !irculo I8!QB!E-?BS TBceptar ?rue
Control I88Q:E&?B&BSM$(?I-(ESQ 8IB(.) I8!QS?B?I! I8!QS?B?I!3/rame4 I8!QSB8I.1 I8!QSB8I.N I8!QSB8I.O I8!QSB8I.P I8!QH$??.&
69
Paso 3 a4 B"ora procederemos a crear las %ariables miembro, in%ocando a !lasas 5i#ard y en la /ic"a Member :ariables1
70
Lenguaje de Programacin II
b4 8el mismo modo procedemos a crear una %entana de dilogo para el tringulo, rectngulo y el cculo c4 B"ora procederemos a digitar el cdigo para llamar a las %entanas de dilogo de las reas 3cuadrado, triangulo, rectangulo y circulo4 -ara esto "aga doble clic en el botn Bceptar 3generar automticamente el e%ento .nBceptar, "aga clic en .G4 y escriba1
71
case ;1 U int r< !BreaQ!uadrado dlgBreaQ!uadrado 3t"is4< rLdlgBreaQ!uadrado 8oModal34< V<breaD< case 11Uint r<!BreaQ?riangulo dlgBreaQ?riangulo 3t"is4< rLdlgBreaQ?riangulo 8oModal34<V<breaD< case N1Uint r<!BreaQSectangulo dlgBreaQSectangulo3t"is4< rLdlgBreaQSectangulo 8oModal34<V<breaD< case O1Uint r<!BreaQ!irculo dlgBreaQ!irculo 3t"is4< rLdlgBreaQ!irculo 8oModal34<V<breaD< V $pdate8ata3/alse4< V
2OTA8 En !BreaQ!uadrado dlgBreaQ!uadrado 3t"is4< se crea un ob0eto deri%ado de la clase!BreaQ!uadrado especi/icadondo !lase %ariable3t"is4, t"is es un puntero que "ace re/erencia al ob0eto actual, osea, el dialogo principal I en rLdlgBreaQ!uadrado 8oModal34 a tra%es de 8oModal34, del ob0eto reciben creado, se llama al dilogo, y es ms, se le pasa en este punto el control del programa, de manera tal que cuando se cierre el nue%o cuadro de dialogo el /lu0o del programa continuar despu,s de esta lnea Paso *4! Crear la +entana de di,logo Area del Cuadrado Seguidamente "acemos clicD en la carpeta 8ialog de la pesta9a Sesourse :ie6, y seleccionar I88Q!$B8SB8. $bique los controles indicados1 N etiqueta N ca0as de texto N botones de comando
72
Lenguaje de Programacin II
-ropiedades !aption !aption !aption I8 &umber I8 &umber Sead=only I8 !aption 8e/aultQbutton I8 !aption
:alor Brea del !uadrado (ado 1 Sesultado 1 I8!Q(B8. ?rue I8!QBSEB ?rue ?rue I8!Q!B(!$(BS T!alcular ?rue I8!Q&$E:. T&ue%o
$na %e# seleccionado esto modi/ique la %entana en tiempo de dise9o, la cual debe quedar de la siguiente manera1
B"ora procederemos a crear las %ariables miembro para las ca0as de texto de la siguiente manera, in%oque a !lass 5i#ard 3!trl754 en la /ic"a de Member :ariables la %entana de dilogo Brea del !uadrado1
73
B"ora procederemos a escribir el cdigo para nuestra aplicacin ?odo el cdigo ir en el botn !alcular !rear la /uncin miembro para el botn llamada .n!alcular34 dando doble clicD al botn de comando en el dialogo
B"ora digite las siguientes lneas de cdigo1 %oid !BreaQ!uadrado11.n!alcular34 U $pdate8ata3true4< mQBreaLmQ(ado[mQ(ado< $pdate8ata3/alse4< V B"ora escribiremos cdigo para que al presionar el botn &ue%o, las ca0as de texto %uel%an a un %alor ; de iniciali#acin, para esto primero "aga
74
Lenguaje de Programacin II
doble clicD para crear la nue%a /uncin miembro con el nombre de .n&ue%o1
y escriba el siguiente cdigo1 %oid !BreaQ!uadrado11.n&ue%o34 U mQBreaLmQ(adoL;< $pdate8ata3/alse4< V donde mQBrea es el resultado Paso * ! Crear la +entana de di,logo Area del tri,ngulo Seguidamente "acer clicD en la carpeta 8ialog de la pesta9a Sesourse :ie6, y seleccionar I88Q?SIB&)$(. $bique los controles indicados1 O etiqueta O ca0as de texto N botones de comando -ropiedades !aption !aption !aption !aption I8 &umber I8 &umber :alor Brea del ?ringulo Hase1 Bltura1 Sespuesta 1 I8!QHBSE ?rue I8!QB(?$SB ?rue
75
$na %e# seleccionado esto modi/ique la %entana en tiempo de dise9o, la cual debe quedar de la siguiente manera1
B"ora procederemos a crear las %ariables miembro para las ca0as de texto de la siguiente manera, in%oque a !lass 5i#ard 3!trl754 en la /ic"a de Member :ariables1
76
Lenguaje de Programacin II
B"ora procederemos a escribir el cdigo para nuestra aplicacin ?odo el cdigo ir en el botn !alcular !rear la /uncin miembro para el botn llamada .n!alcular34 dando doble clicD al botn de comando en el dialogo
B"ora digite las siguientes lneas de cdigo1 %oid !BreaQ?riangulo11.n!alcular34 U $pdate8ata3true4< mQSespuestaL3mQBltura[mQHase4AN< $pdate8ata3/alse4< V B"ora escribiremos cdigo para que al presionar el botn &ue%o, las ca0as de texto %uel%an a un %alor ; de iniciali#acin, para esto primero "aga doble clicD para crear la nue%a /uncin miembro con el nombre de .n&ue%o1
77
y escriba el siguiente cdigo1 %oid !BreaQ?riangulo11.n&ue%o34 U mQSespuestaLmQBlturaLmQHaseL;< $pdate8ata3/alse4< V Paso *$! Crear la +entana de di,logo Area del rectangulo 8e la misma manera "acer clicD en la carpeta 8ialog de la pesta9a Sesourse :ie6 ,y seleccionar I88Q8IB(.)N 3I88QSE!?B&)$(.4 $bique los controles indicados1 O etiquetas O ca0as de texto N botones de comando !ontrol I88QSE!?B&)$(. I8!QS?B?I!314 I8!QS?B?I!3N4 I8!QS?B?I!3O4 I8!QE8I? 1 I8!QE8I? N I8!QE8I? O I8!QH$??.&314 -ropiedades !aption !aption !aption !aption I8 &umber I8 &umber I8 &umber Sead=only I8 !aption :alor Brea del Sectangulo (ado Mayor1 (ado Menor 1 Sesultado 1 I8!Q(B8.MBI.S ?rue I8!Q(B8.ME&.S ?rue I8!QSES$(?B8. ?rue ?rue I8!Q!B(!$(BS T!alcular
78
Lenguaje de Programacin II
I8!QH$??.&3N4
$na %e# seleccionado esto modi/ique la %entana en tiempo de dise9o, la cual debe quedar de la siguiente manera1
B"ora procederemos a crear las %ariables miembro para las ca0as de texto de la siguiente manera, in%oque a !lass 5i#ard en la /ic"a de Member :ariables1
79
B"ora procederemos a escribir el cdigo para nuestra aplicacin ?odo el cdigo ir en el botn !alcular !rear la /uncin miembro para el botn llamada .n!alcular34 dando doble clicD al botn de comando en el dialogo
%oid !BreaQSectangulo11.n!alcular34 U $pdate8ata3true4< mQSesultadoLmQ(adoMayor[mQ(adoMenor< $pdate8ata3/alse4< V B"ora escribiremos cdigo para que al presionar el botn &ue%o, las ca0as de texto %uel%an a un %alor ;, para esto primero "aga doble clicD para crear la nue%a /uncin miembro con el nombre de .n&ue%o341
B"ora digite las siguientes lneas de cdigo1 %oid !BreaQSectangulo11.n&ue%o34 U mQSesultadoLmQ(adoMayorLmQ(adoMenorL;< $pdate8ata 3/alse4< V
80
Lenguaje de Programacin II
Paso *&! Crear la +entana de di,logo Area del C#rculo Eacer clicD en la carpeta 8ialog de la pesta9a Sesourse :ie6 ,y seleccionar I88Q8IB(.)N 3I88Q!IS!$(.4 $bique los controles indicados1 N etiquetas O ca0as de texto N botones de comando Control I88Q!IS!$(. I8!QS?B?I!314 I8!QS?B?I!3N4 I8!QE8I? 1 I8!QE8I? N I8!QH$??.&314 I8!QH$??.&3N4 Propiedades !aption !aption !aption I8 &umber I8 &umber Sead=only I8 !aption 8e/ault button I8 !aption +alor Brea del !irculo Sadio1 Sesultado 1 I8!QSB8I. ?rue I8!QBSEB ?rue ?rue I8!Q!B(!$(BS T!alcular ?rue I8!Q&$E:. T&ue%o
$na %e# seleccionado esto modi/ique la %entana en tiempo de dise9o, la cual debe quedar de la siguiente manera1
81
B"ora procederemos a crear las %ariables miembro para las ca0as de texto de la siguiente manera, in%oque a !lass 5i#ard en la /ic"a de Member :ariables1
B"ora procederemos a escribir el cdigo para nuestra aplicacin ?odo el cdigo ir en el botn !alcular !rear la /uncin miembro para el botn llamada .n!alcular34 dando doble clicD al botn de comando en el dialogo
82
Lenguaje de Programacin II
%oid !BreaQSectangulo11.n!alcular34 U $pdate8ata3true4< mQSesultadoLO 1P1JaN[ mQSadio[ mQSadio< $pdate8ata3/alse4< V B"ora escribiremos cdigo para que al presionar el botn &ue%o, las ca0as de texto %uel%an a un %alor ;, para esto primero "aga doble clicD para crear la nue%a /uncin miembro con el nombre de .n&ue%o341
B"ora digite las siguientes lneas de cdigo1 %oid !BreaQ!irculo11.n&ue%o34 U mQSesultadoLmQSadioL;< $pdate8ata 3/alse4< V
83
$na %e# culminado los pasos anteriores correctamente se e0ecutar el programa, obteniendo una %entana como esta1
84
Lenguaje de Programacin II
en la cual se puede reali#ar el clculo del rea del cuadrado, as mismo al seleccionar cada uno de los dems botones de opcin obtendremos las siguientes %entanas 3una a la %e#41
85
?area1 14
86
Lenguaje de Programacin II
$ni%ersidad &acional 'San (uis )on#aga* de Ica +acultad de Ingeniera Mecnica y El,ctrica Escuela de Ingeniera Electrnica
CLASE 1+
Se ana 1+
!reacin de un men principal utili#ando una aplicacin S8I, Blmacenar la aplicacin con el nombre MISDI Existe dos /ormas de categoras de aplicaciones 8ocumentosA:ista estos son el S8I y el M8I KK+ileA&e6AM+! Bpp5i#ard3exe4A-royect &ameLMIS8IA (ocation L 81MI:EEMBpp+ormasA.D>>
Seguidamente KKStep1L 8ocument SingleA&ext>> KKStepNL &oneA&ext>> KKStepOL &oneABcti%eF !ontorlsA&ext>> KKStepPL 8ocDing ?oolbarAInicial StatusHarA-rinting and -rint -re%ie6 A O8 !ontrolsAA&ormalA&ext >> KKStepJL M+! StandardAAIes pleaceABs s"ared 8((A&ext >> KKStepRL +inis"A.D >>
87
88
Lenguaje de Programacin II
El ob0eti%o de esta aplicacin es de %isuali#ar un men de barra y .pciones de men !olgante, solo usaremos las opciones euitar y -oner B9adimos las %ariables que necesitaremos, la primera de ellas se debe "acer manualmente, "acer un clic con el botn derec"o del mouse y escoger la opcin A## Me $er Varia$le del men, aqu declaramos la %ariable !anti#a# de tipo int y adems ser protegida 3-rotectec4
89
B"ora que ya se tiene la %ariable nos queda crear la /uncin miembro sobre la clase CMISDIDo!, se escoge la opcin A## Me $er <un!tion, creamos la /uncin O$tenerVaria$le@B de tipo int y adems marcaremos la opcin Pu$li!
90
Lenguaje de Programacin II
(a /uncin .btener :ariable debe tener la siguiente codi/icacin1 int !MIS8I8oc11.btener:ariable34 U return cantidad< V
B"ora utili#aremos el !lass5i#ard, presionando !trl 75, para obtener el cuadro de dilogo M+! !lass5i#ard, seleccionamos la solapa pesta9a Messages Ma(s, en el cuadro combinado Class 2a e buscamos y seleccionamos CMISDIDo! y lo mismo en la lista O$%e!t IDs, en el cuadro de lista Messages seleccionamos DeleteContents y luego pulsamos el botn A## <un!tion, /inalmente pulsamos el botn Edit !odeA.D
91
(a /uncin DeleteContents debe de tener la siguiente codi/icacin1 %oid !MIS8I8oc118elete!ontents34 U AA ?.8.1 Bdd your speciali#ed code "ere andAor call t"e base class cantidadL1< !8ocument118elete!ontents34< V (a /uncin 8elete!ontents tiene la /uncin de eliminar el contenido del documento que se est utili#ando -ara gra/icar la /igura del men lo "aremos mediante la /uncin OnDra-@CDCJ(DC4, esta /uncin se encuentra en la solapa !lass:ie6 en la opcin CMISDIVie-, esta /uncin se encarga del procesamiento de impresin y de la %ista pre%ia, entonces modi/icaremos esta /uncin para nuestra con%eniencia, "aremos doble clic para su respecti%a codi/icacin1 %oid !MIS8I:ie611.n8ra63!8![ p8!4 U !MIS8I8oc[ p8oc L )et8ocument34< BSSES?Q:B(I83p8oc4< AA ?.8.1 add dra6 code /or nati%e data "ere !Hrus"[ p.ldHrus"Lp8!=>)et!urrentHrus"34< AA!reamos una lnea de color Ver#u3!o !Hrus" brus< brus !reateSolidHrus"3S)H31;;,1;;,;44,
92
Lenguaje de Programacin II
p8!=>Select.b0ect3Tbrus4< /or 3int iL;<iKp8oc=>.btener:ariable34<i774 U int xLO;;=O;[i< p8!=>Sectangle3N;,x=J,NJ;,x=J;4< V p8!=>Select.b0ect3p.ldHrus"4< V Hien, a"ora mane0aremos las opciones del men, en la solapa Sesource:ie6 seleccionamos I8SQMBI&+SBME, "aciendo doble clic sobre este, la cual se encuentra dentro de la carpeta men
Se puede %isuali#ar el men generado por Bpp5i#ard el mismo que tiene opciones como Brc"i%o, Editar, :er, Byuda< al "acer clic sobre el men Brc"i%o se tiene las opciones de &ue%o, Bbrir, )uardar, )uardar como, Imprimir, -resentacin preliminar, !on/igurar impresora y Salir Entonces es sobre estos ob0etos 3E0em )uardar4 que "aremos doble clicD que nos mostrar las propiedades siguientes1
93
-ara adicionar un submen en la opcin :er y ubicamos en la barra en blanco las propiedades1
En el I8 escribimos I8!Qponer, en el !aption '$n rectngulo ms* y en el -rompt escribimos In!re entar, de manera anloga a9adimos una opcin ms al sub men, esta %e# el I8 deber ser I8!Qsacar, el !aption '$n Sectngulo menos*, por -rompt tendr 'Dis inuir*
94
Lenguaje de Programacin II
B"ora debemos darle las rdenes a estas opciones del men, para ello debemos abrir !lass5i#ard presionando ctrl 75, seleccionamos la solapa Message Map, debemos escoger CMISDIDo! en !lass &ame all debemos ubicar y seleccionar IDC:(oner en el cuadro de lista .b0ects I8s, luego escogemos COMMA2D en Messages y presionar el botn Bdd +unction, /inalmente presionamos el botn .D en el cuadro de dilogo Bdd Member +unction, como podemos %er se "a generado una /uncin llamada On(oner
95
<in #e la (ri era (arte8 )asta aPu= /an Ha o$tener el siguiente resulta#o8
Segunda parte1 !odi/icacin de las opciones de cada men 8espu,s de ingresar con Edit !ode Ingresar la codi/icacin siguiente1 %oid !MIS8I8oc11.nponer34 U AA ?.8.1 Bdd your command "andler code "ere AA Se incrementa cada %e# que se a9ade un rectngulo cantidad77< AABctuali#a la %ista $pdateBll:ie6s3&$((4< V Igualmente seguimos el mismo procedimiento que el anterior seleccionamos el IDC:sa!ar que nos dar como resultado una /uncin llamada Onsa!ar, seguidamente presionamos el botn Edit !ode donde se ingresar el siguiente cdigo1 %oid !MIS8I8oc11.nsacar34 U AA ?.8.1 Bdd your command "andler code "ere AA Se incrementa cada %e# que se a9ade un rectngulo i/ 3cantidad>;4 cantidad==< AA Bctuali#a la %ista $pdateBll:ie6s3&$((4< V
96
Lenguaje de Programacin II
Tareas8 14
:ariar las posiciones de impresin del bloque de modo %ertical y el incremento "acia la derec"a
Se/erencia1 Bburto !orrea Eed 'Bplique programacin en %isual !77 -gs 7=1, =7
97
$ni%ersidad &acional 'San (uis )on#aga* de Ica +acultad de Ingeniera Mecnica y El,ctrica Escuela de Ingeniera Electrnica
Manual Tutorial
Existen motores de bases de datos especiali#ados como son :isual Hasic, :isual +ox -ro, .racle -o6er Huilder que permiten gran %ersatilidad y :isual !77 no es la excepcin -rimeramente %amos "a generar una base de datos con Bccess llamada Mi Hase mbd, ser con esta base con la que traba0aremos, su estructura es muy sencilla, como se muestra +igura &ro ;141 Bbrir Bccsess, crear una base en blanco, crear una tabla en %ista de dise9o, ecribir los nombres de los campos como se indica en la gr/ica1 Id 3(a%e principal tipo Butonum,rico4, &ombre, Butor, )enero, 8isquera, +ecQpublic sern del tipo ?exto respecti%amente, el cual nos muestra la estructura de la tabla llamada DATOS M4SICALES1
<igura 2ro. 61
4SAMOS ODBC
-ara utili#ar .8H!, primero se debe de crear especi/ica el tipo de /uente de datos con la crearemos lle%ar el nombre de Bu!NetOStu**, simplemente "ace re/erencia a la base de "acemos esta operacin una /uente de datos 8&S, este cual se traba0ar1 el 8&S que el 8&S no es una base de datos, datos< entonces %eamos como
98
Lenguaje de Programacin II
Ia en el panel de control escogemos la opcin <uente #e #atos ODBC 3ON bits4, esta accin nos mostrar una pantalla como se muestra en la +igura &ro ;N que sigue, el mismo que corresponde al Bdministrador de orgenes de datos .8H! Si el sistema operati%o esta en 5indo6s F- ingrese a Eerramientas administrati%as, .rgenes de datos .8H!
<igura 2ro. 6+ Seleccionamos la sola(a D2S #e usuario y pulsamos el botn AgregarA esto nos mostrar el cuadro de dilogo !rear nue%o origen de datos, aqu seleccionaremos Mi!roso*t A!!ess Dri/er @J. #$B este es el controlador para el cual queremos instalar un origen de datos -ulsamos el Hotn +inali#ar para continuar con el traba0o
99
<igura 2ro. 60
(uego aparecer el cuadro de dilogo Instalacin .8H! para Microso/t Bccess, en el campo nombre origen de datos ingresamos Bu!NetOStu**, en el campo 8escripcin se puede colocar lo que ms le guste, se de0a a su eleccin
100
Lenguaje de Programacin II
<igura 2ro. 6; En la ca0a de )rupo Hase de datos pulsaremos el botn Sele!!ionar, para agregar la base de datos con la cual %amos "a traba0ar $na %e# que aparece la ca0a de dilogo Seleccionar base de datos, se debe de buscar en el disco duro la ruta del arc"i%o Mi Base. #$ generado por Bccess1 (a ruta ser1 81MI:EEMMi Hase mdb
<igura 2ro. 6C -ulsaremos Bceptar en todos los cuadros de dilogos que se pueda tener "asta que desapare#can todos +inalmente el dri%er Bu!NetOStu** es el que conecta entre la base de datos de Bccsess y la aplicacin :isual !77< como sigue1
101
<igura 2ro. 6D
CREACIO2 DE LA APLICACIO2
KK+ileA&e6AM+! Bpp5i#ard3exe4A-royect &ameLHBSE1A (ocation L 81MI:EEMHBSE1A.D>> Seguidamente KKStep1L 8ocument SingleA&ext>> KKStepNL 8atabase :ie6 5it"out +ile Support A8ata SourceA&ext>> !rearemos una aplicacin llamada HBSES1, ,ste ser del tipo S8I, opcin que marcaremos en el paso uno, debe tener un soporte Do!Vie-A en el paso dos debemos seleccionar la opcin Data$ase Vie- ,itHout <ile Su((ort, como se muestra1
102
Lenguaje de Programacin II
<igura 2ro. 6F En el Step 3N Y R4, se pulsa el botn 8ata Source, obse%aremos que aparece el cuadro de dilogo 8atabase .ptions, aqu eligiremos .8H!, con la que traba0aremos, en su lista desplegable seleccionaremos HucDet.Stu//
<igura 2ro. 67 En la ca0a de grupo Secordset ?ype marcamos la opcin 8ynaset, /inalmente pulsaremos el botn ON
103
<igura 2ro. 16 .bser%aremos que el Bpp5i#ard 3Step N de R4 nos mostrar la Hase de 8atos 3Select 8atabase ?ables4, entonces "emos seleccionamos la tabla 8B?.S M$SI!B(ES, en el Step N de R, pulsamos &ext (os pasos siguientes presionamos por de/ecto &ext, querr decir que estamos aceptando los %alores por de/ecto &tese que en el Step R la clase utili#ada es !Secord:ie6
<igura 2ro. 11
104
Lenguaje de Programacin II
Bl pulsar +inis" la Bpp5i#ard "a generado la aplicacin para bases de datos, nuestra primera inter/ace ya est terminada, nos queda implementar los controles necesarios para mane0ar y %isuali#ar la base de datos
<igura 2ro. 1+
105
(a inte/ace gr/ica ya est lista a"ora solo nos queda enla#ar las %ariables de los controles, y eso ser todo el traba0o por a"ora, entonces abrimos !lass5i#ard para continuar la labor Bl abrir el !lass5i#ard 3!trl 754, asegurese que en !lass &ame est, seleccionado !HBSES1:ie6 Seleccionamos la solapa Member :ariable -ara a9adir miembros necesarias 8el listado !ontrol I8s, seleccionamos I8!QI8 y luego pulsamos el botn Bdd :ariableC , apareciendo la pantalla Bdd Member :ariable &otemos que en Bdd :ariable &ame podemos escoger el nombre de un listado, como se muestra en la +igura &ro 1O, de este listado elegimos la .pcin mQpset=>mQId, y luego pulsamos el botn .D 8e manera anloga debemos "acerlo con el resto de controles, como se puede notar en la +igura &ro 1O, existe una %ariable asociada opr cada control Estas %ariables "an sido creadas 0untamente con el proyecto con !lass5i#ard Bsegrese de darle un mximo de caracteres a cada control para una mayor consistencia de los datos
<igura 2ro 10 Si compilamos nuestra aplicacin podemos acceder /cilmente a los datos que existen en la base de datos, notaremos adems que existe /orma de na%egar dentro de la base de datos ya que se cuenta con una barra de despla#amiento de registros as como tambi,n lo podemos "acer desde el men principal en la opcin Segistro
106
Lenguaje de Programacin II
?area1 14 N4 Seali#ar una aplicacin que muestre el %alor en o"mios segn la codi/icacin de colores para las resistencias utili#adas en electrnica Seali#ar una base de datos con los datos personales en la cual uno de los campos est, relacionado con la imagen de cada uno de los registros
Se/erencia1 Bburto !orrea Eed 'Bplique programacin en %isual !77 -gs 1=11,7 =11
107
!oloque el nombre correspondiente y de .G En la %entana siguiente seleccione1 8ialog based y d, clic a +inis"
108
Lenguaje de Programacin II
-ara buenos e/ectos de nuestra aplicacin tenemos que agregar algunos recursos 8ir0ase al 5orDSpace en la %ista de recursos y "aga clic derec"o sobre cualquier elemento
109
Eaga clic en Insert y le aparecera un cuadro de dialogo pidiendo que seleccionemos que tipo de recurso deseamos agregar Seleccionamos Hitmap y le damos Import
En el cuadro de dialogo elegimos todas las imgenes presentes en la carpeta Imgenes que se ad0unta1
!ierre cada uno de los bitmap que se muestran en la pantalla, a continuacin asigne un I8 a cada elemento nue%o segn su nombre de arc"i%o de la siguiente manera1
110
Lenguaje de Programacin II
I8HQSESIS?.S al bitmap resistor bmp< lo mismo para todos y cada uno de los elementos
-aso seguido agregue un nue%o recurso, pero esta %e# se trata de un men Bl igual como lo "i#o para las imgenes, a"ora agregue un men y d,le la apariencia siguiente1
I8Q-S.)SBMBQSB(IS I8Q!B(!$(BSQ:B(.S&.MI&B( I8Q!B(!$(BSQ!.8I).8E!.(.SES B"ora solo queda enla#ar el men al dialogo En las propiedades del dialogo, en el combo men, seleccione I8SQME&$11
111
8emos instrucciones para el Item Salir del men -rograma1 -resione !ontrol 7 5 y seleccione Bdd +unction como se muestra1
I luego "aga cliD Edit !ode Escriba1 %oid !SusbelQsosa8lg11.n-rogramaSalir34 U t"is=>8estroy5indo634< V Secuerde bien como agrego un controlador de e%ento puesto que mas adelante no detallaremos los pasos
112
Lenguaje de Programacin II
Bgreguemos los dilogos necesarios para nuestra aplicacin Eaga clic derec"o sobre cualquier elemento de la %entana de recursos y seleccione Insert 8ialog1
Bparecer un nue%o dialogo B"ora presione !ontrol 7 5 y obser%e que el !lass5i#ard detecto el nue%o dialogo Se nos pide una nue%a clase1
-resione .G
113
Ingrese los %alores mostrados Introdu#ca un nue%o dialogo y en la nue%a clase ingrese !!olores1
114
Lenguaje de Programacin II
En la parte superior del arc"i%o declare1 AA SusbelQsosa8lg cpp 1 implementation /ile dinclude 2stda/x "2 dinclude 2SusbelQsosa "2 dinclude 2SusbelQsosa8lg "2 -include .)alor/ominal0(. -include .Colores0(. Bl Item )alor nominal del men Calcular agregue el siguiente cdigo como se explico anteriormente1 %oid !:alor&ominal11.n!alcular:alornominal34 U !:alor&ominal dlg:alor&ominal3t"is4< dlg:alor&ominal 8oModal34< V Igualmente para el Item !odigo de colores1 %oid !SusbelQsosa8lg11.n!alcular!odigodecolores34 U !!olores dlg!olores3t"is4< dlg!olores 8oModal34< V Este cdigo que acabamos de escribir reali#a el llamado de los dilogos segn corresponda B"ora traba0aremos por separado cada uno de los dilogos agregados1
115
Pri er Dialogo8
Bgregue los siguientes controles y d,les la apariencia indicada1 J !ombo Hox 1W -ictures 1 Hutton N Edit Hox N )roup Hox R Static
116
Lenguaje de Programacin II
117
Control I8!QS?B?I!a I8!QS?B?I!b I8!QS?B?I!c I8!QS?B?I!d I8!QS?B?I!e I8!QS?B?I!/ I8!QS?B?I!1 I8!QS?B?I!N I8!QH$??.&1
Propiedad !aption !aption !aption !aption !aption !aption !aption !aption !aption I8 I8
)alor -rimer digito 1 Segundo digito 1 Multiplicador 1 ?olerancia 1 :alor 1 ?olerancia 1 Seleccione los parmetros 1 Sesultados 1 !alcular I8!Q!B(!$(BS I8!QS; HitMap I8HQ&E)S. I8!QS1 HitMap I8HQMBSS.& I8!QSN HitMap I8HQS.Z. I8!QSO HitMap I8HQ&BSB&ZB I8!QSP HitMap I8HQBMBSI((. I8!QSJ HitMap I8HQ:ES8E I8!QSR HitMap I8HQBf$( I8!QS7 HitMap
I8!QS?B?I!g
?ype Image I8
I8!QS?B?I!"
?ype Image I8
I8!QS?B?I!i
?ype Image I8
I8!QS?B?I!0
?ype Image I8
I8!QS?B?I!D
?ype Image I8
I8!QS?B?I!l
?ype Image
I8!QS?B?I!m
I8 ?ype
118
Lenguaje de Programacin II
Bdems los -icture con I8 del I8!QS; a I8!QS: deben estas en :isible L /alse B"ora declare el siguiente cuadro de %ariables1 I1 I8!Q!.MH.1 I8!Q!.MH.N I8!Q!.MH.O I8!Q!.MH.P I8!Q!.MH.J I8!QE8I?1 I8!QE8I?1 I8!QS; I8!QS1 I8!QSN I8!QSO I8!QSP I8!QSJ I8!QSR I8!QS7 I8!QSW I8!QSa I8!QS8 I8!QSI8!QS: I8!Q-SI I8!QSE) I8!QM$( I8!Q?.( 2ype !!omboHox !!omboHox !!omboHox !!omboHox !!omboHox 8ouble !string !Static !Static !Static !Static !Static !Static !Static !Static !Static !Static !Static !Static !Static !Static !Static !Static !Static 3iembro combo1 comboN combom combot comboescala %alor tolerancia S; S1 SN SO SP SJ SR S7 SW Sa S8 SS: -rimer Segn Multi tolera
B"ora en ,l presionamos !ontrol 7 5 y en el !lass5i#ard en la pesta9a MessageMaps ubicamos el siguiente elemento1 5MQI&I?8IB(.)
119
Eacemos clic en Bdd+unction y luego en Edit !ode Bgregamos el siguiente cdigo1 H..( !:alor&ominal11.nInit8ialog34 U !8ialog11.nInit8ialog34< AA ?.8.1 Bdd extra initiali#ation "ere combo1 combo1 combo1 combo1 combo1 combo1 combo1 combo1 combo1 combo1 comboN comboN comboN comboN comboN BddString32&egro24< BddString32Marron24< BddString32So0o24< BddString32&aran0a24< BddString32Bmarillo24< BddString32:erde24< BddString32B#ul24< BddString32:ioleta24< BddString32)ris24< BddString32Hlanco24< BddString32&egro24< BddString32Marron24< BddString32So0o24< BddString32&aran0a24< BddString32Bmarillo24<
120
Lenguaje de Programacin II
comboN comboN comboN comboN comboN combom combom combom combom combom combom combom combom combom combom combom combom
BddString32:erde24< BddString32B#ul24< BddString32:ioleta24< BddString32)ris24< BddString32Hlanco24< BddString32&egro24< BddString32Marron24< BddString32So0o24< BddString32&aran0a24< BddString32Bmarillo24< BddString32:erde24< BddString32B#ul24< BddString32:ioleta24< BddString32)ris24< BddString32Hlanco24< BddString328orado24< BddString32-lateado24<
combot BddString328orado24< combot BddString32-lateado24< combot BddString32&inguna24< comboescala BddString32o"m24< comboescala BddString32G o"m24< comboescala BddString32M o"m24< combo1 Set!urSel3;4< comboN Set!urSel3;4< combom Set!urSel3;4< combot Set!urSel3;4< comboescala Set!urSel3;4< primer SetHitmap3S; )etHitmap344< segun SetHitmap3S; )etHitmap344< multi SetHitmap3S; )etHitmap344< tolera SetHitmap3S8 )etHitmap344< return ?S$E< AA return ?S$E unless you set t"e /ocus to a control AA EF!E-?I.&1 .!F -roperty -ages s"ould return +B(SE V
121
case ;1 tolerancia L 2J^2<breaD< case 11 tolerancia L 21;^2<breaD< case N1 tolerancia L 2N;^2<breaD< V< s6itc"3combo1 )et!urSel344 U case ;1 %alorL;<breaD< case 11 %alorL1;<breaD< case N1 %alorLN;<breaD< case O1 %alorLO;<breaD< case P1 %alorLP;<breaD< case J1 %alorLJ;<breaD< case R1 %alorLR;<breaD< case 71 %alorL7;<breaD< case W1 %alorLW;<breaD< case a1 %alorLa;<breaD< V< s6itc"3comboN )et!urSel344 U case ;1 %alorL%alor 7 ;<breaD< case 11 %alorL%alor 7 1<breaD< case N1 %alorL%alor 7 N<breaD< case O1 %alorL%alor 7 O<breaD< case P1 %alorL%alor 7 P<breaD< case J1 %alorL%alor 7 J<breaD< case R1 %alorL%alor 7 R<breaD< case 71 %alorL%alor 7 7<breaD< case W1 %alorL%alor 7 W<breaD< case a1 %alorL%alor 7 a<breaD< V< s6itc"3combom )et!urSel344 U case ;1 %alorL%alor[1<breaD< case 11 %alorL%alor[1;<breaD< case N1 %alorL%alor[1;;<breaD< case O1 %alorL%alor[1;;;<breaD< case P1 %alorL%alor[1;;;;<breaD< case J1 %alorL%alor[1;;;;;<breaD< case R1 %alorL%alor[1;;;;;;<breaD< case 71 %alorL%alor[1;;;;;;;<breaD< case W1 %alorL%alor[1;;;;;;;;<breaD< case a1 %alorL%alor[1;;;;;;;;;<breaD< case 1;1%alorL%alor[; 1<breaD< case 111%alorL%alor[; ;1<breaD< V< s6itc"3comboescala )et!urSel344 U
122
Lenguaje de Programacin II
case 11 %alor L %alorA1;;;<breaD< case N1 %alor L %alorA1;;;;;;<breaD< V< $pdate8ata3/alse4< V B"ora con ayuda del !lass5i#ard agregue el mensa0e !H&QSE(!EB&)E de cada uno de los combos Edite el codigo de cada uno de los combos de la siguiente manera1
Co $o 18
%oid !:alor&ominal11.nSelc"ange!ombo134 U AA ?.8.1 Bdd your control noti/ication "andler code "ere $pdate8ata3true4< s6itc"3combo1 )et!urSel344 U case ;1 primer SetHitmap3S; )etHitmap344<breaD< case 11 primer SetHitmap3S1 )etHitmap344<breaD< case N1 primer SetHitmap3SN )etHitmap344<breaD< case O1 primer SetHitmap3SO )etHitmap344<breaD< case P1 primer SetHitmap3SP )etHitmap344<breaD< case J1 primer SetHitmap3SJ )etHitmap344<breaD< case R1 primer SetHitmap3SR )etHitmap344<breaD< case 71 primer SetHitmap3S7 )etHitmap344<breaD< case W1 primer SetHitmap3SW )etHitmap344<breaD< case a1 primer SetHitmap3Sa )etHitmap344<breaD< V< $pdate8ata3/alse4< V
Co $o +8
%oid !:alor&ominal11.nSelc"ange!omboN34 U AA ?.8.1 Bdd your control noti/ication "andler code "ere $pdate8ata3true4< s6itc"3comboN )et!urSel344 U case ;1 segun SetHitmap3S; )etHitmap344<breaD< case 11 segun SetHitmap3S1 )etHitmap344<breaD< case N1 segun SetHitmap3SN )etHitmap344<breaD< case O1 segun SetHitmap3SO )etHitmap344<breaD< case P1 segun SetHitmap3SP )etHitmap344<breaD< case J1 segun SetHitmap3SJ )etHitmap344<breaD< case R1 segun SetHitmap3SR )etHitmap344<breaD< case 71 segun SetHitmap3S7 )etHitmap344<breaD<
123
case W1 segun SetHitmap3SW )etHitmap344<breaD< case a1 segun SetHitmap3Sa )etHitmap344<breaD< V< $pdate8ata3/alse4< V
Co $o
%oid !:alor&ominal11.nSelc"ange!omboO34 U AA ?.8.1 Bdd your control noti/ication "andler code "ere $pdate8ata3true4< s6itc"3combom )et!urSel344 U case ;1 multi SetHitmap3S; )etHitmap344<breaD< case 11 multi SetHitmap3S1 )etHitmap344<breaD< case N1 multi SetHitmap3SN )etHitmap344<breaD< case O1 multi SetHitmap3SO )etHitmap344<breaD< case P1 multi SetHitmap3SP )etHitmap344<breaD< case J1 multi SetHitmap3SJ )etHitmap344<breaD< case R1 multi SetHitmap3SR )etHitmap344<breaD< case 71 multi SetHitmap3S7 )etHitmap344<breaD< case W1 multi SetHitmap3SW )etHitmap344<breaD< case a1 multi SetHitmap3Sa )etHitmap344<breaD< case 1;1 multi SetHitmap3S8 )etHitmap344<breaD< case 111 multi SetHitmap3S- )etHitmap344<breaD< V< $pdate8ata3/alse4< V
Co $o t8
%oid !:alor&ominal11.nSelc"ange!omboJ34 U AA ?.8.1 Bdd your control noti/ication "andler code "ere $pdate8ata3true4< s6itc"3combot )et!urSel344 U case ;1 tolera SetHitmap3S8 )etHitmap344<breaD< case 11 tolera SetHitmap3S- )etHitmap344<breaD< case N1 tolera SetHitmap3S: )etHitmap344<breaD< V< $pdate8ata3/alse4< V
124
Lenguaje de Programacin II
Segun#o Di>logo8
Bgregue los siguientes controles y d,les la apariencia indicada1 N !ombo Hox 1W -ictures 1 Hutton N Edit Hox N )roup Hox 1O Static
125
Control I8!QS?B?I!a I8!QS?B?I!b I8!QS?B?I!c I8!QS?B?I!d I8!QS?B?I!e I8!QS?B?I!/ I8!QS?B?I!g I8!QS?B?I!" I8!QS?B?I!i
Propiedad !aption !aption !aption !aption !aption !aption !aption !aption !aption
)alor &egro Marrn So0o &aran0a Bmarillo :erde B#ul :ioleta )ris
I8!QH$??.&1
!aption I8 I8
I8!QS?B?I!m
?ype Image I8
I8!QS?B?I!n
?ype Image
126
Lenguaje de Programacin II
I8 I8!QS?B?I!o ?ype Image I8 I8!QS?B?I!p ?ype Image I8 I8!QS?B?I!q ?ype Image I8 I8!QS?B?I!r ?ype Image I8 I8!QS?B?I!s ?ype Image I8 I8!QS?B?I!t ?ype Image
I8!QSN HitMap I8HQS.Z. I8!QSO HitMap I8HQ&BSB&ZB I8!QSP HitMap I8HQBMBSI((. I8!QSJ HitMap I8HQ:ES8E I8!QSR HitMap I8HQBf$( I8!QS7 HitMap I8HQ:I.(E?B
127
I8 I8!QS?B?I!u ?ype Image I8 I8!QS?B?I!% ?ype Image I8 I8!QS?B?I!6 ?ype Image I8 I8!QS?B?I!x ?ype Image I8 I8!QS?B?I!y ?ype Image I8 I8!QS?B?I!# ?ype Image I8 I8!QS?B?I!#1 ?ype Image
I8!QSW HitMap I8HQ)SIS I8!QSa HitMap I8HQH(B&!. I8!QS8 HitMap I8HQ8.SB8. I8!QSHitMap I8HQ-(B?EB8. I8!QS: HitMap I8HQ:B!I. I8!QS; HitMap I8HQ&egro I8!QIM) HitMap I8HQSESIS?.S
128
Lenguaje de Programacin II
I8 I8!QS?B?I!#N ?ype Image I8 I8!QS?B?I!#N ?ype Image I8 I8!QS?B?I!#P ?ype Image I8 I8!QS?B?I!#J ?ype Image
I8!Q-SI HitMap I8HQ&E)S. I8!QSE) HitMap I8HQ&E)S. I8!QM$( HitMap I8HQ&E)S. I8!Q?.( HitMap I8HQ:B!I.
I8!Q!.MH.1, I8!Q!.MH.N
?ype Sort
Bdems los -icture con I8 del I8!QS; a I8!QS: deben estas en :isible L true Bgregue el siguiente cuadro de %ariables1 I1 I8!Q!.MH.1 I8!Q!.MH.N I8!QE8I?1 I8!QS; I8!QS1 I8!QSN I8!QSO 2ype !!omboHox !!omboHox 8ouble !Static !Static !Static !Static 3iembro !omboescala combotolerancia %alornominal S; S1 SN SO
129
I8!QSP I8!QSJ I8!QSR I8!QS7 I8!QSW I8!QSa I8!QS8 I8!QSI8!QS: I8!Q-SI I8!QSE) I8!QM$( I8!Q?.(
!Static !Static !Static !Static !Static !Static !Static !Static !Static !Static !Static !Static !Static
Bdems de ellas agregue las siguientes %ariables "aciendo clic derec"o sobre la clase !!olores y Bdd member :ariable1 Int pri< int seg< int M< double %alor
130
Lenguaje de Programacin II
%alornominal L 1< primer SetHitmap3S; )etHitmap344< segun SetHitmap3S; )etHitmap344< multi SetHitmap3S; )etHitmap344< tolera SetHitmap3S8 )etHitmap344< return ?S$E< AA return ?S$E unless you set t"e /ocus to a control AA EF!E-?I.&1 .!F -roperty -ages s"ould return +B(SE V
131
pri L int3%alorA1;4< seg L int3%alor4^1;< M L ;< V i/3%alor>aa TT %alorK1;;;4 U double aux< aux L %alor< M L 1< auxLauxApo631;,M4< pri L int3auxA1;4< seg L int3aux4^1;< V i/3%alor>aaa4 U double aux< aux L %alor< ML3int3log1;3aux44714=N< auxLauxApo631;,M4< pri L int3auxA1;4< seg L int3aux4^1;< V s6itc"3pri4 U case case case case case case case case case case V< s6itc"3seg4 U case case case case case case case case case case
;1 primer 11 primer N1 primer O1 primer P1 primer J1 primer R1 primer 71 primer W1 primer a1 primer
SetHitmap3S; SetHitmap3S1 SetHitmap3SN SetHitmap3SO SetHitmap3SP SetHitmap3SJ SetHitmap3SR SetHitmap3S7 SetHitmap3SW SetHitmap3Sa
)etHitmap344<breaD< )etHitmap344<breaD< )etHitmap344<breaD< )etHitmap344<breaD< )etHitmap344<breaD< )etHitmap344<breaD< )etHitmap344<breaD< )etHitmap344<breaD< )etHitmap344<breaD< )etHitmap344<breaD<
;1 segun 11 segun N1 segun O1 segun P1 segun J1 segun R1 segun 71 segun W1 segun a1 segun
SetHitmap3S; SetHitmap3S1 SetHitmap3SN SetHitmap3SO SetHitmap3SP SetHitmap3SJ SetHitmap3SR SetHitmap3S7 SetHitmap3SW SetHitmap3Sa
)etHitmap344<breaD< )etHitmap344<breaD< )etHitmap344<breaD< )etHitmap344<breaD< )etHitmap344<breaD< )etHitmap344<breaD< )etHitmap344<breaD< )etHitmap344<breaD< )etHitmap344<breaD< )etHitmap344<breaD<
132
Lenguaje de Programacin II
V< s6itc"3M4 U case case case case case case case case case case case case V< $pdate8ata3/alse4< V En el arc"i%o colores cpp no se ol%ide de declarar el arc"i%o de cabecera 'mat" cpp* dinclude 2stda/x "2 dinclude 2SusbelQsosa "2 dinclude 2!olores "2 -include .mat(0(. di/de/ Q8EH$) dde/ine ne6 8EH$)Q&E5 dunde/ ?EISQ+I(E static c"ar ?EISQ+I(E_` L QQ+I(EQQ< dendi/ +inalmente podemos iniciar nuestro programa ;1 multi SetHitmap3S; )etHitmap344<breaD< 11 multi SetHitmap3S1 )etHitmap344<breaD< N1 multi SetHitmap3SN )etHitmap344<breaD< O1 multi SetHitmap3SO )etHitmap344<breaD< P1 multi SetHitmap3SP )etHitmap344<breaD< J1 multi SetHitmap3SJ )etHitmap344<breaD< R1 multi SetHitmap3SR )etHitmap344<breaD< 71 multi SetHitmap3S7 )etHitmap344<breaD< W1 multi SetHitmap3SW )etHitmap344<breaD< a1 multi SetHitmap3Sa )etHitmap344<breaD< 1;1 multi SetHitmap3S8 )etHitmap344<breaD< 111 multi SetHitmap3S- )etHitmap344<breaD<
133
ANEXOS
134
Lenguaje de Programacin II
$ni%ersidad &acional 'San (uis )on#aga* de Ica +acultad de Ingeniera Mecnica y El,ctrica Escuela de Ingeniera Electrnica
IVEE
A2EEO 1
LE214AJE DE PRO1RAMACIO2 II
SILABO
I. DATOS 1E2ERALES 8 1 1 +acultad 1 N Escuela Bcad,mico -ro/esional 1 O 8epartamento Bcad,mico 1 1 1 1 1 1 P J R 7 W a Semestre Bcad,mico !digo !iclo !r,ditos Eoras Semanales -re=Sequisitos 1 +acultad de Ingeniera Mecnica y El,ctrica 1 Ingeniera de Electrnica 1 !iencias de la In%estigacin de la Ingeniera 1 +667 Q I 1 ;ZO;P+ 1 !uarto 3I:EE=1, I:EE=N4 1 ;O 1 ;P 3?eora1 ;1< (aboratorio1 ;O4 1 ;ZO;OE (engua0e de -rogramacin I 1ZO;NP Blgoritmos y Estructuras de 8atos 1 Ingg 5ilder Enrique Somn Muni%e -ro/esor Bsociado 8 E Ingeniero Mecnico Electricista Ingg Za%ier Ec"egaray So0o -ro/esor Bsociado 8 E Ingeniero Mecnico Electricista Ingg Zos, !"a%e# Espino#a -ro/esor Buxiliar 8 E Ingeniero Mecnico Electricista
1 1; -ro/esor Sesponsable
135
)ORA
($&ES
MBS?ES 71O; Y 1;1O; I:E=1 B 3(aboratorio4 3[[4 1;1O; Y 11O; I:E=1 H 3(aboratorio4 3[[4
)ORARIO MIES!.(ES Z$E:ES 71O; Y 1;1O; I:E=N B 3(aboratorio4 3[[4 1;1O; Y 11O; I:E=N H 3(aboratorio4 3[[4
:IES&ES
SBHB8.
3[4 1 !lases en aulas 3[[4 1 !lases en el laboratorio 'H* -or )rupos BAH
II. S4MILLA 8 (a presente asignatura proporcionar a los estudiantes de Ingeniera Electrnica los conocimientos aptitudes y destre#as necesarias para el mane0o de aplicaciones cient/icas basadas en programacin estructurada y la programacin orientada a ob0etos utili#ando para ello la aplicacin de Microso/t :isual !77 Bs como el conocimiento sobre de/inicin de datos, tipos, conceptos de /unciones, libreras, bsquedas, ordenamiento, -ilas, !olas, Brboles Blgoritmos recursi%os, listas ligadas, !adena de !aracteres, con0unto de caracteres, con0unto de gra/os Segistros< +iloso/a de programacin basada en la utili#acin de ob0etos, desarrollo de aplicaciones 3programas4 de modo !onsole Bplication, 5inON Bplication, $so de !lases, .b0etos, M,todos, uso de controles, !lases Hsicas para la inter/a# de usuario, uso de aplicaciones utili#ando M+! Microso/t +oundation !lases %entanas de dialogo, uso de libreras cabeceras resources, libreras estticas OBJETIVOS8 Bl /inali#ar esta asignatura el alumno ser capa# de1 a4 .HZE?I:.S )E&ESB(ES1 1 !onocer los conceptos de la programacin estructurada, y programacin orientada a ob0etos, conociendo las di/erencias entre las metodologas utili#adas en el desarrollo de sub= programas aplicadas en el curso de (engua0e de -rogramacin II !apacitar a los alumnos en el uso de "erramientas y aplicaciones usando el lengua0e de programacin de programacin en el entrono de Microso/t :isual !77, que se aplicarn en el laboratorio de computo
136
Lenguaje de Programacin II
b4 .HZE?I:.S ES-E!I+I!.S1 1 Moti%ar al estudiante en la utili#acin de las aplicaciones de los lengua0es de alto ni%el de programacin en modo estructurado y la programacin orientada a ob0etos Bl /inali#ar el ciclo el estudiante deber estar en la capacidad de poder manipular la codi/icacin utili#ada en el lengua0e de programacin y aplicati%os en /orma prctica en el desarrollo de sus dems asignaturas en su /ormacin pro/esional Impartir al alumno el desarrollo de clases netamente prcticas con materiales %isuales prcticos que se podrn comprobar y practicar en computadoras /uera de "ora de clases El estudiante podr alcan#ar con ,xito los "bitos de desarrollar los di%ersos problemas que se presentan en los cursos de pre= grado estructurndolos en una aplicacin prctica que le ayudar a resol%er di/erentes problemas que se presenten en dic"os cursos, el mismo que se encontrar preparado para en/rentar los lengua0es de programacin orientados a ob0etos en la carrera de Ingeniera Electrnica
O P
IV. CRO2O1RAMA 8
SEMA2A ;1
CO2TE2IDO Introduccin, ?eora de .b0etos, conceptos de la terminologa usada en -rogramacin por .b0etos (a clase !8ialog, miembros de la clase !8ialog, Bplicacin, 8ialogo Bplicacin, :isuali#acin de datos, +uncin 5inExec34 MACRO 06RD6 !lase !edit, Miembros de la !lase, !lase !string, Miembros de la clase !string, +uncin $pdate8ata Bplicacin !uadro de ?exto Importar Imagen !ontroles button, Insertar %ariables miembro, propiedades de control button
;N
;O
Del 6+ al 6F O!t.
;P ;J
!ontroles Sadio Hutton, !"ecD Hox, $so de identi/icadores String para salida +unciones de con%ersin itoa34, gc%t34 ?ratamiento de controles de dilogo Joel C. 1;0
137
Pri era Pr>!ti!a Cali*i!a#a +unciones y propiedades del control !ombobox, e%ento !H&QSE(!EB&)E, BddStrihng34, Set!urSel34, )et!ount34 y 8eleteString !omando de control num,rico Spin /unciones de control SetSange34 Set-os34 Joel C. 1FC +ormas Hsicas, uso de la /uncin .n-aint34, punteros !-oint34, 5MQ(H$??.&8.5& Simulacin de -aint de 5indo6 PRIMER EESME2 PARCIAL !lases !8! 3!ontexto de dispositi%os4, Miembros de la !lase !8!, !lase !-en, !Hrus", !paint8!, !!lient8! Sistema de coordenadas Ma!ro +6D !reacin de Bplicacin simple para dibu0ar $tili#ando /uncin S"o6+onts3p8!4 Joel C. +00 +uncin S"o6-ens3p8!4 Joel C. +07 +uncin S"o6Hrus"ers3p8!4 Joel C. +;0 !reacin de una aplicacin que permita dibu0ar la /uncin seno +uncin .n8ra63!8![ p8!4 de la clase !Bpp:ie6 Segun#a Pr>!ti!a Cali*i!a#a )estin de 8ilogos, %entanas de dilogo modal y no modal !onstruccin de una aplicacin de Hsica +unciones !8ialog11!reate, !5indo611S"o65indo6, Bplicaciones M8I Ma!ro 1DC. Joel C. 070 !reacin de men, !lase men, Men personali#ado, )estin de mensa0es de comandos de men +unciones !reateMenu34, !reate-opupMenu34, (oadMenu Men contextuales Joel C. 066A 0;D Hases de datos !lases .8H!, !8atabase, !Secordset, !Secord:ie6, !(ongHinary, !8HExecption y !+ielExc"ange .b0etos Bcti%eF para acceso de datos Modelo de ob0eto .8., 8B. y S8. Ma!ro 0GD !reacin de -royecto de /in de curso, Bplicacin Integral a Soluciones electrnicas 3)rupales4 Ter!era Pr>!ti!a Cali*i!a#a EESME2 <I2AL S4STIT4TORIOS
;R
Del +0 al +7 #e O!t.
;7
Del 01 #e O!t. al 6; #e 2o/. Del 6+ al 6D 2o/. Del 67 al 10 2o/. Del 1C al +6 2o/. Del ++ al +F 2o/.
;W ;a
1;
11
1N
1O
Del 6D al 11 Di!.
1P
1J 1R 17
138
Lenguaje de Programacin II
1W
Del 17 al +0 Ene.
APLATADOS
V. METODOLO1IA -ara el cumplimiento de los ob0eti%os se utili#ar las siguientes metodologas y t,cnicas1 ?eora -ractica 1 1 M,todo Inducti%o Y 8educti%o Explicati%a y expositi%a Y 8ialogada !on sustentaciones de traba0os de in%estigacin en aula
Teor=a1 Se desarrolla los conceptos de algoritmos, las estructuras de datos y sintaxis de programacin del :isual !77 -resentaciones de diapositi%as que resumen los temas a tratar La$oratorio 8 Se reali#a aplicando los conceptos %ertidos en las clases tericas aplicndolos, de inmediato y a modo de prctica dirigida que los alumnos deben alcan#ar como ob0eti%os encomendados< el material de estudio lo tienen distribuidos en cada una de las computadoras a tra%,s de la red y le internet desde el ser%idor central, igualmente los alumnos deben reali#ar traba0os prcticos y de in%estigacin para cada clase VI. MATERIAL DE E2SEUA2TA 8 -ara el desarrollo de la asignatura se cuenta con de traba0o4, copias, manuales tutoriales preestablecidos, libros prcticos de especialidad mismas, cuadernos de apuntes, pi#arra, mota, exposiciones, tiles de escritorio VII. SISTEMA DE EVAL4ACIO2 8 7 1 8e las notas1 7 1 1 El nmero mnimo de prcticas de laboratorio en la asignatura es ;O en el laboratorio del centro de cmputo 7 1 N (as sustentaciones del traba0o de /in de curso /ormar la cuarta prctica de laboratorio, puede ser grupal no ms de tres alumnos por grupo libros 3textos principales en !8s , programas para la aplicacin de las plumones, ob0etos para
139
7 1 O (a e%aluacin permanente es el resultado de1 o E%aluacin de asistencia, puntualidad o E%aluacin de pasos escritos u orales o ?raba0os de in%estigacin y sustentacin de los mismos o E%aluacin de inter%enciones en clases o E%aluacin de participacin de acti%idades :eri/icando con ello si el alumno alcan# destre#a que constituye la meta de cada clase 7 1 P El promedio de los exmenes parciales, prcticas cali/icadas, prcticas de laboratorio y e%aluaciones permanentes no se redondean Solo se redondea el promedio /inal, considerndose como 1 punto a /a%or del alumno la /raccin mayor o igual a ; J 7 N !ondiciones de Bprobacin1 7 N 1 El alumno debe obtener 11 o ms puntos como promedio /inal durante el semestre acad,mico (a cali/icacin aprobatoria ser 11 y menos de 11 si no logra alcan#ar los ob0eti%os establecidos 7 N N El tipo de e%aluacin para este curso es el ?I-. '8*
3N [ -romQ-rcticas4 7 3O[-arciales4 7 3E%aluacin -ermanente4 -S.ME8I. +I&B( L ======================================================================================= R
7 N O Se tomar asistencia en todas las clases programadas 7 N P El O;^ de inasistencias del total de clases programadas en el curso in"abilita al alumno para todos sus e/ectos VIII. CO2TE2IDO DEL C4RSO 5 DESARROLLO DEL SILABO POR SEMA2AS8 C4RSO LE214AJE DE PRO1RAMACIO2 II 1R4POS 8 VSSQ1 . VSSR+ @+66DRIIB SEMA2A 1 @Del 17 al +0 #e SetB 1 1 Introduccin 1 N ?eora de .b0etos 1 O !onceptos de la terminologa usada en -rogramacin por .b0etos SEMA2A + @Del +C al 06 #e SetB N 1 (a clase !8ialog N N Miembros de la clase !8ialog N O 8ialogo Bplicacin
140
Lenguaje de Programacin II
N P :isuali#acin de datos N J +uncin 5inExec34 SEMA2A 0 @Del 6+ al 6F O!t.B O O O O 1 N O P !lase !edit, Miembros de la !lase !lase !string, Miembros de la clase !string +uncin $pdate8ata Bplicacin !uadro de ?exto
SEMA2A ; @Del 6G al 1; #e O!tB P 1 Importar Imagen P N !ontroles button P O Insertar %ariables miembro P P propiedades de control button SEMA2A C @Del 1D al +1 #e O!t.B J J J J 1 N O P !ontroles Sadio Hutton, !"ecD Hox $so de identi/icadores String para salida +unciones de con%ersin itoa34, gc%t34 ?ratamiento de controles de dilogo
PRIMERA PRSCTICA CALI<ICADA SEMA2A D @Del +0 al +7 #e O!t.B R 1 +unciones y propiedades del control !ombobox R N E%ento !H&QSE(!EB&)E, BddStrihng34, Set!urSel34, )et!ount34 y 8eleteString R O !omando de control num,rico Spin /unciones de control SetSange34 Set-os34 SEMA2A F @Del 01 #e O!t. al 6; #e 2o/.B 71 7N 7O +ormas Hsicas $so de la /uncin .n-aint34, punteros !-oint34, 5MQ(H$??.&8.5& Simulacin de -aint de 5indo6
SEMA2A 7 @Del 6+ al 6D 2o/B EEAME2 PARCIAL SEMA2A G @Del 67 al 10 2o/.B a 1 !lases !8! 3!ontexto de dispositi%os4, a N Miembros de la !lase !8!, !lase !-en, !Hrus", !paint8!, !!lient8! a O Sistema de coordenadas SEMA2A 16 @Del 1C al +6 2o/.B
141
1; 1 !reacin de Bplicacin simple para dibu0ar 1; N $tili#ando /uncin S"o6+onts3p8!4 1; O +uncin S"o6Hrus"ers3p8!4 SEMA2A 11 @Del ++ al +F 2o/B SE142DA PRSCTICA CALI<ICADA 11 1 !reacin de una aplicacin que permita dibu0ar la /uncin seno 11 N +uncin .n8ra63!8![ p8!4 de la clase !Bpp:ie6 SEMA2A 1+ @Del +G 2o/ al 6; Di!B 1N 1N 1N 1N 1N 1 N O P J )estin de 8ilogos %entanas de dilogo modal y no modal !onstruccin de una aplicacin de Hsica +unciones !8ialog11!reate, !5indo611S"o65indo6 Bplicaciones M8I
SEMA2A 10 @Del 6D al 11 Di!.B 1O 1O 1O 1O 1O 1 N O P J !reacin de men !lase men Men personali#ado )estin de mensa0es de comandos de men +unciones !reateMenu34, !reate-opupMenu34, (oadMenu
SEMA2A 1; @Del 10 al 17 Di!.B 1P 1 Hases de datos 1P N !lases .8H!, !8atabase, !Secordset, !Secord:ie6, !(ongHinary, !8HExecption y !+ielExc"ange 1P O .b0etos Bcti%eF para acceso de datos 1P P Modelo de ob0eto .8., 8B. y S8. SEMA2A 1C @Del +6 al +0 Di!.B 1J 1 !reacin de -royecto de /in de curso 1J N Bplicacin Integral a Soluciones electrnicas 3)rupales4 Ter!era Pr>!ti!a Cali*i!a#a SEMA2A 1D @Del 60 al 67 Ene.B EEAME2 <I2AL SEMA2A 1F @Del 16 al 1C Ene.B
142
Lenguaje de Programacin II
EEAME2 S4STIT4TORIOS SEMA2A 17 @Del 17 al +0 Ene.B EEAME2 APLATADOS DESARROLLO DEL SILABO POR SEMA2AS8 El desarrollo de las clases tericas se lle%ar a cabo en las aulas de la +acultad de Ingeniera Mecnica y El,ctrica, mientras que las clases prcticas se dictarn en el laboratorio del centro de cmputo de la +acultad El docente encargado desarrollar la parte terica y prctica
IE. BIBLIOBRA<IA BASICA. 1. 2. 3. 4. 5. 6. 7. Z.IB&ES (uis 1 ?urbo !77, Mc )ra6 Eill, 1aaN !EHB((.S ZB:IES1 !urso de -rogramacin !77 .rientada a .b0etos Editorial Sama Bbril Y 1aa1 ((B!!$B Za%ier, :BSe$Ef Zulio1 -rogramacin con .b0etos en Horland -ascal Ed San Marcos, N;;; Z :BSe$Ef -BSB)$((B )ua de -rogramacin en !A!77 Ed $ni%ersitaria San Martn de -orras 1aaW Z !BSSBS!. M$i.f1 !reacin de -rogramas con :isual !77, Ed $ni%ersidad &acional de Ingeniera 1ra Edicin &o% N;;N 8B&E( SB+BE( +SB&!IB< :isual !77 R ; Editorial Macro 1ra Edicin (ima Y -er B !.SSEB, E H(BI8ES, -B&?I).S. SI(:B -rogramacin en :isual !77 R ; $ni%ersidad &acional 'San Marcos*, Editorial Hyte N;;1
,EB SITE 8 "ttp1AA666 "ttp1AA666 ldinto 10. "ttp1AA666 11. "ttp1AA666 12. "ttp1AA666 8. 9. programamersers"ea%en comA monogra/ias comAtraba0osJA%isualcursoA%isualcursoAs"tm monogra/ias comAtraba0osJA%isualcursoA%isualcursoA modelo edu mxAuni%A%irtec"AprogracAcpreproc "tm modelo edu mxAuni%A%irtec"AprogracAcplusO "tm
143
$ni%ersidad &acional 'San (uis )on#aga* de Ica +acultad de Ingeniera Mecnica y El,ctrica Escuela de Ingeniera Electrnica
IVEE +66D II
RECOME2DACIO2ES PARA LA PRESE2TACIO2 DE 42 TRABAJO DE I2VESTI1ACIO2. Curso8 Lengua%e #e Progra a!i"n II R +66D II ;1 En la cartula debe indicar adems el nombre del tema "a in%estigar, el nmero de traba0o, /ec"a de entrega, integrante3s4
A2EEO +
;N 8ebe iniciar con una presentacin que es el resumen del traba0o que se esta presentando con palabras propias ;O Se debe de "acer un ndice enumerado de los ttulos y sub ttulos 3-ara locali#ar los temas directamente4
;P En el resumen se debe citar la /uente de in/ormacin cada %e# que se realice un cambio de contenido, con el /in de ampliar los conceptos para aquel que quisiera seguir in%estigando Autor, t&tulo, edicin, !echa y p#ina% ,-e los te'tos revisados. ;J Hibliogra/a1 Es el resumen de todas las re/erencias bibliogr/icas que se encuentran a pie de pgina ;R Se/erencias de la 5eb Site1 !uando se re/erencie a las -ginas 5eb, se debe indicar la ruta directa, la pgina %isitada y la /ec"a 3Esto por el constante cambio4 El )losario de t,rminos1 Se encuentra despu,s de la bibliogra/a y son las de/iniciones de t,rminos nue%os palabras nue%as utili#ados en el presente traba0o "ecomendacin para la edicin1 $n traba0o debe ser resumido y no copiado estrictamente, debe contener el mnimo de "o0as necesarias
;7
;W
;a (a presentacin de aplicati%os en guas de estudio1 Se debe considerar la siguiente estructura a4 8e/inicin de los temas a tratar 3Marco ?erico4 b4 Bplicaciones o E0emplos que muestre paso a paso el desarrollo de la aplicacin c4 -resentar en un manual 3)ua prctica4 El Pro*esor #el Curso
144