|
Executar el programa m5p1.exe per conèixer el seu comportament. Veure el llistat del codi del programa, m5p1. Executar Visual Basic per editar el projecte (acabat): m5p1.vbp. Preguntes i respostes utilitzant una matriuAquesta activitat consisteix a demanar la contestació a preguntes que es presenten en un formulari i en presentar un missatge en funció de la resposta. Està dividida en dues parts en funció de la manera en la qual s'emmagatzemen les dades:Primera part: les dades s'emmagatzemen en una matriu (array de dades). És aquesta pràctica. Segona part: les dades s'emmagatzemen en un fitxer. És la pràctica següent. Part primera: utilitzant una matriu de dades per emmagatzemar les preguntes i les respostes El formulari d'aquesta activitat inclou cinc controls: tres caixes de text (una per mostrar la pregunta, una per escriure la resposta i una altra per mostrar un missatge en funció de la resposta donada), una etiqueta i un botó de comandament per realitzar la pregunta. El formulari que creareu serà semblant al presentat aquí: Creeu un directori nou: C:\VBCurs\VBActivi\m5\p1 i un nou projecte, en aquest directori, que anomenareu m5p1. En ell, desareu tots els fitxers d'aquesta activitat. Fase de disseny de la interfície d’usuariEls controls que intervenen i les seves propietats són els següents:
Fase de programació de respostes a eventsCal declarar les variables i procediments que inicialitzen els valors de la matriu que conté les preguntes i les respostes:Declaracions generals d'àmbit el formulari principal: Declaracions de variables: Dim matriuPreguntes(3, 2) As String Dim m As Integer Procediments: Sub IniciaMatriuPreguntes () matriuPreguntes(1, 1) = "Quin és el nom de la ciutat on hi ha una torre inclinada molt famosa?" matriuPreguntes(1, 2) = "Pisa" matriuPreguntes(2, 1) = "Quants dies té un any de traspàs?" matriuPreguntes(2, 2) = "366" matriuPreguntes(3, 1) = "Quin mes se celebra Sant Jordi?" matriuPreguntes(3, 2) = "Abril" End Sub Mètodes associats a l'event Load Per al formulari principal: Sub Form_Load () IniciaMatriuPreguntes 'Aquesta és la crida al procediment definit anteriorment txtPregunta.Visible = False lblResposta.Visible = False txtResposta.Visible = False txtAvaluacióResposta.Visible = False End Sub En obrir el formulari, es donen valors als components de la matriu i s'amaguen tots els botons llevat del botó de comandament: Observeu la crida al procediment IniciaMatriuPreguntes declarat d'àmbit general a tot el formulari principal. Mètodes associats a l'event Click Per al botó cmdNovaPregunta: Sub cmdNovaPregunta _Click () txtAvaluacióResposta.Visible = False Randomize m = Int(3 * Rnd + 1) txtPregunta.Text = matriuPreguntes(m, 1) lblResposta.Visible = True txtPregunta.Visible = True txtResposta.Visible = True txtResposta.SetFocus txtResposta.Text = "" End Sub S'escull una pregunta a l'atzar i es presenta en la caixa de text txtPregunta. Els altres controls es fan visibles. Podeu observar que l'expressió m = Int(3 * Rnd + 1) serveix per establir, de manera aleatòria, la pregunta escollida ja que el valor d'aquesta expressió adopta un valor entre 1 i 3 (ambdós inclosos). Per altra banda, la instrucció txtResposta.SetFocus té la finalitat de situar el cursor a la caixa de text i fer que aquesta tingui el focus, és a dir, que estigui activada. Tema: SetFocus Subtema: SetFocus Method Mètodes associats a l'event KeyDown Per a la caixa de text txtResposta: Sub txtResposta_KeyDown (Keycode As Integer, Shift As Integer) If Keycode = 13 Then txtAvaluacióResposta.Visible = True If (matriuPreguntes(m, 2) = txtResposta.Text) Then 'Avaluació de la resposta txtAvaluacióResposta.Text = "Molt bé" Else txtAvaluacióResposta.Text = "La resposta correcta és: " & matriuPreguntes(m, 2) End If End If End Sub En prémer la tecla RETORN (event KeyDown), i estant situat el cursor a la caixa de text txtResposta, la resposta és avaluada i apareix el missatge adient a la caixa de text txtAvaluacióResposta. ExercicisPer enviar al professor tutor. (Directori C:\VBCurs\VBExerci\m5\p1 )E1. Dissenyeu un projecte de preguntes i respostes per a la vostra matèria semblant al de la pràctica. La matriu contindrà 4 camps: la pregunta, dos camps de respostes i un camp addicional per especificar quina de les dues respostes és la bona. El programa presentarà en pantalla la pregunta i les dues respostes. L'alumne haurà d'escollir una de les dues i el programa donarà un missatge en funció de la resposta escollida. No cal que hi poseu gaire preguntes. La finestra principal del programa ha de quedar més o menys així: Cal enviar els següents fitxers:
Fitxer formulari m5p1e1.frm Fitxer executable m5p1e1.exe |