Jump to content

Recommended Posts

Posted

Bem... eu ainda sou bastante verde nestas andanças e para aprender a fazer algumas coisas estou a tentar fazer uma pequena quiz.

A quiz funciona assim:

Aparece uma pergunta numa form, selecciono a resposta em quatro possibilidades e carrego em "próxima", depois de carregar a form desaparece e aparece uma nova com uma nova pergunta.

A parte de por a aparecer e a desaparecer e isso já está mas agora estou com dois problemas.

1º - Como é que eu faço para se escolher a resposta certa ter X pontos e se errar 0 pontos e depois no final aparecer a pontuação final numa TextBox?

2º - Como é que faço para aparecer uma janela a dizer "Erro" se não se escolher nenhuma resposta?

Desde já obrigado^^

Posted

1º - Fazes, na primeira form:

Public Property pontuacao() As Integer
Get
End Get
'etc

Depois verificas se a resposta é a correcta, então adicionas-lhe a pontuação, senão não adicionas.

2º -

MessageBox.Show("A resposta está errada!");

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Posted

1º-

-Crias uma variável para a pontuação:

dim pontuacao as integer

-Depois vais somando pontos se a resposta estiver certa:

dim resposta_certa as boolean=false

if resposta_certa=true then

pontuacao += 1 (ou outro valor, depende dos pontos que queiras dar)

end if

2º-

Não sei bem com o que estás a trabalhar, pode ser com checkbox, radiobutton, ...

Por isso vou dizero código do programa todo em geral:

-Se não estiverem seleccionadas respostas então:

dim resposta_seleccionada as boolean=false

if resposta_seleccionada=true then

'verifica se a resposta está certa:

if resposta=true then

'dá pontuação:

pontuacao += 1

end if

-mostrar próxima pergunta

else

msgbox("Resposta errada", "Aviso!")

end if

Metes isto dentro de um botão. Fiz com variáveis booleans. 🙂

Posted

1º - Fazes, na primeira form:

Public Property pontuacao() As Integer
Get
End Get
'etc

Depois verificas se a resposta é a correcta, então adicionas-lhe a pontuação, senão não adicionas.

2º -

MessageBox.Show("A resposta está errada!");

Não percebi bem como utilizar o código no 1º problema. Podes explicar melhor?

Obrigado também ao ricafilipe pela ajuda 😉

Posted
Dim propriedade As Integer = 0
Public Property valor_pontuacao() As Integer
        Get
            Return propriedade
        End Get
        Set(ByVal value As Integer)
            propriedade = value
        End Set
    End Property

'Para aceder ao valor da propriedade
'nome_do_form_em_que_foi_daclarada_a_propriedade.nome_da_propriedade.Text
frm_main.valor_pontuacao.Text

Assim, tratas isto como uma variável. 😉

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Posted

@scorch,

Por uma questão de melhor interpretação do código deves usar como variável temporária da propriedade um nome semelhante ao da propriedade. Neste caso se a propriedade é valor_pontuacao, o nome da variável interna deveria ser m_valor_pontuacao ou _valor_pontuacao.

Posted

Bem... para entenderem melhor o que estou a fazer vou por uns prints aqui.

Primeiro aparece isto:

http://img262.imageshack.us/img262/2430/61376691.png

Carrego em começar para iniciar o questionário.

Depois começam as questões:

http://img147.imageshack.us/img147/268/62089076.png

Eu quero que ao carregar no botão "Próximo" mude de questão e se tiver escolhido a opção certa contabilize 10 pontos, se estiver errada 0 e se não responder apareça uma janela a dizer "Escolha uma opção" e não mude de questão.

No fim aparece isto:

http://img144.imageshack.us/img144/325/41256886.png

E quero que dentro da textbox apareça o somatório dos pontos.

Basicamente é isto.

Agora vamos lá ver se entendi o que disseram...

Eu tenho que meter o código que o scorch me deu no código do botão "próximo" em todas as questões (não sei se é isto).

Mas tenho que alterar algumas coisas no código adaptando-o à situação. Pelo que percebi tenho que alterar o "propriedade" e o "valor_pontuação" (digam-me se faltar algo).

Isto tudo para o somatório da pontuação.

Para a janela de erro não percebi muito bem.

Desculpem lá o incómodo e o estar a ser um bocado chato mas eu quero mesmo aprender e quando quero muito uma coisa sou um chato do pior lol.

Desculpem lá também a minha lentidão a compreender isto xD

Desde já um grande obrigado a todos^^

Posted

1º as perguntas são sempre as mesmas, não mudam de ordem?

2º a posição das múltiplas respostas são sempre as mesmas, não mudam de ordem?

Se não mudam é muito simples, é uma questão de criar uma variável para saber em que pergunta estás (incrementas essa variável no evento do botão "Próximo")

e usas o código se pergunta=X e resposta=Y então somas (pontuação = pontuação +10), caso contrário msgbox com a dizer que falhou.

Agora se a ordem das perguntas varia, se não são sempre as mesmas (por exemplo 10 de 100), se a posição das respostas também não é sempre a mesma, então dá um bocado de trabalho.

Ricardo Timóteo

Posted

Então é muito fácil:

Arrancas pergunta=0

No evento do botão "Proximo"

Se pergunta 0

Muda as labels das perguntas e das resposta para a próxima pergunta, limpa os botões radio e incrementa pergunta

Se pergunta 1 e resposta 3 (por exemplo) soma, senão mensagem de erro

Muda as labels das perguntas e das resposta para a próxima pergunta, limpa os botões radio e incrementa pergunta

Se pergunta 2 e resposta 2 (por exemplo) soma, senão mensagem de erro

Muda as labels das perguntas e das resposta para a próxima pergunta, limpa os botões radio e incrementa pergunta

etc...

Ricardo Timóteo

Posted

Não, não variam...

As ordens são sempre as mesmas.

Obrigado pela ajuda^^

Ate podes fazer de uma maneira mais fácil pk não fazes assim...

não mostras a msgbox("Erro na pregunta!?")...

assim se a pergunta for certa fazes um variável_cont=integer(no inicio do prog!?

depois dizes que a  variável_cont+=10(cada vez que acerta?)

depois quando e para mostrar: fazes o seguinte...

crias labels

label1"Acertou em  X preguntas e os pontos sao Y"

label2"Errou X perguntas,devia estudar mais sobre energias renovaveis... 😄 " para saber as erradas cada vez que errou...(fazes outra variavel_errou=integer depois vais somando...(acho que assim fica mais amigável o programa do que os pontos numa BOX!?..)

Força ai com esse projecto...

😁

...º(>_<)º...

Posted

Bem... gostei do método do Tim mas não entendi bem como criar a variável e onde coloca-la... faço isso no evento do botão "Próximo"?

Aquela parte das labels agradou-me mas como faço para aparecer o nº de respostas certas e a pontuação na label1? A mesma coisa para a label2.

Posted

Bem... gostei do método do Tim mas não entendi bem como criar a variável e onde coloca-la... faço isso no evento do botão "Próximo"?

Aquela parte das labels agradou-me mas como faço para aparecer o nº de respostas certas e a pontuação na label1? A mesma coisa para a label2.

entao fazes assim:

no inicio do prog declaras as variasveis!? certo?

depois na load? vais dizer?

acertou=0

pontos=0

errou=0

depois para aparecer fazes assim

Label1.text="Acertou em "+variavel_acertou+" preguntas ganho"+variavel_pontos+" Pontos"

fazes o mesmo para a lebel 2 soq ue mudas a s variaveis...

(para cada pregunta podes por uma imagem acerca da pregunta)...

...º(>_<)º...

Posted
Dim propriedade As Integer = 0
Public Property valor_pontuacao() As Integer
        Get
            Return propriedade
        End Get
        Set(ByVal value As Integer)
            propriedade = value
        End Set
    End Property

Eu estou a usar este código para criar as variáveis... mas eu já tentei usar de 1001 formas e nada...

Eu coloquei este código em todos os eventos do botão "Próximo" e alterei onde diz "propriedade" para "pontuacao". Mas é assim... 1º -  não sei se estou a fazer certo e 2º - se está certo não sei o que fazer depois...

Podem me ajudar... o que me custa é a primeira vez... depois de entrar no cérebro não sai mais lol xD

Posted

Dim propriedade As Integer = 0
Public Property valor_pontuacao() As Integer
        Get
            Return propriedade
        End Get
        Set(ByVal value As Integer)
            propriedade = value
        End Set
    End Property

Eu estou a usar este código para criar as variáveis... mas eu já tentei usar de 1001 formas e nada...

Eu coloquei este código em todos os eventos do botão "Próximo" e alterei onde diz "propriedade" para "pontuacao". Mas é assim... 1º -  não sei se estou a fazer certo e 2º - se está certo não sei o que fazer depois...

Podem me ajudar... o que me custa é a primeira vez... depois de entrar no cérebro não sai mais lol xD

Não tou a ver para que estas a fazer dessa maneira-.- quando podes fazer de maneira mais facil -.-"

...º(>_<)º...

Posted

Então explica-me ao pormenor a maneira mais fácil... xDDDDD

É que eu tentei e não consegui também... devo estar a fazer algo mal lol

entao posta aqui o codigo como é que tentas fazer!?

...º(>_<)º...

Posted

Tu disseste para criar as variáveis...

Eu pus isto no evento da form, fora do evento do botão "Próximo":

Dim pontuacao As Integer = 0

E pus em todas as forms das perguntas...

E depois usei no botão "Próximo" de cada form com pergunta este para aparecer a pontuação na textbox da ultima form:

If RadioButton1,2,... (depende da resposta).Checked = True Then
    TextBox1.Text = +10
End If

E depois não fiz mais nada pois dá um erro neste código no TextBox1.Text

Eu sei que estou a fazer mal pois nao estou a dar uso à variável... mas também não sei como usa-la...

Posted

Tu disseste para criar as variáveis...

Eu pus isto no evento da form, fora do evento do botão "Próximo":

Dim pontuacao As Integer = 0

E pus em todas as forms das perguntas...

E depois usei no botão "Próximo" de cada form com pergunta este para aparecer a pontuação na textbox da ultima form:

If RadioButton1,2,... (depende da resposta).Checked = True Then
    TextBox1.Text = +10
End If

E depois não fiz mais nada pois dá um erro neste código no TextBox1.Text

Eu sei que estou a fazer mal pois nao estou a dar uso à variável... mas também não sei como usa-la...

faz assim:

no inicio do progrma defina:

dim acertou,errado as Integer

na form1_load metes

acertou=0

errou=0

depois se a o Radiobutton1..=true(se for o certo)?

acertou+=10

assim sucesivamente cada ves que a resposta for certa?

depois metes um

else(se nao for esse radiobutton entao)

errou+=1

👍

...º(>_<)º...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.