Usuário com melhor resposta
Sistema de Médias de alunos

Pergunta
-
Boa tarde galera estou com o seguinte problema estou tentando fazer um sistema de média de alunos só que esta havendo provavelmente um erro de lógica, pois a programação esta toda certa não aparecem erros nenhum só quem não segue a sequencia lógica correta. Quero que ele verifique se quando eu selecionar uma determinada matéria ele me fale a média através de um MessegeBox, mas ele não faz ele somente verifica o primeiro IF já os demais ele não verifica queria saber o pq disso. Segue o código abaixo:
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace Sistema_Médias
{
public partial class Form1 : Form
{
double n1, n2, media;private void button3_Click(object sender, EventArgs e)
{
if (MessageBox.Show("Deseja sair do programa?", " Finalizando Programa", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
this.Close();
}
else
{
textNOME.Clear();
textNOME.Focus();
}
}private void button2_Click(object sender, EventArgs e)
{
comboCURSO.ResetText();
textNOME.Clear();
comboTURNO.ResetText();
comboPERIODO.ResetText();
comboSEMESTRE.ResetText();
comboDISCIPLINA.ResetText();
textNOTA1.Clear();
textNOTA2.Clear();
listBOLETIM.Visible = false;
listBOLETIM.Items.Clear();
}private void btINSERIR_Click(object sender, EventArgs e)
{
if ((textNOME.Text == "") || (comboDISCIPLINA.Text == "") || (textNOTA1.Text == "") || (textNOTA2.Text == ""))
{
MessageBox.Show("Todos os dados devem ser preenchidos.", " ATENÇÃO ", MessageBoxButtons.OK, MessageBoxIcon.Error);}
else if ((comboDISCIPLINA.SelectedItem.ToString()== "Cenários e Tecnologias da Informação")||(media >= 6) || (n1 >= 4) || (n2 >= 4))
{
n1 = Convert.ToDouble(textNOTA1.Text);
n2 = Convert.ToDouble(textNOTA2.Text);
media = (n1 + n2) / 2;
media = Math.Round(media, 2);
MessageBox.Show("Parabéns você esta aprovado sua média é:" + media);listBOLETIM.Visible = true;
listBOLETIM.Items.Add("Curso: " + comboCURSO.SelectedItem);listBOLETIM.Items.Add("Nome: " + textNOME.Text);listBOLETIM.Items.Add("Turno: " + comboTURNO.SelectedItem);listBOLETIM.Items.Add("Periodo: " + comboPERIODO.SelectedItem);listBOLETIM.Items.Add("Semestre: " + comboSEMESTRE.SelectedItem);listBOLETIM.Items.Add(comboDISCIPLINA.SelectedItem.ToString() + media);listBOLETIM.Items.Add("-------------------------------------------------------------------------");
}else if ((comboDISCIPLINA.SelectedItem.ToString() == "Cenários e Tecnologias da Informação")||(media < 6) || (n1 < 4) || (n2 < 4))
{
n1 = Convert.ToDouble(textNOTA1.Text);
n2 = Convert.ToDouble(textNOTA2.Text);
media = (n1 + n2) / 2;
media = Math.Round(media, 2);
MessageBox.Show("Que pena você terá que fazer a AV3, sua média é: " + media);}}private void comboDISCIPLINA_SelectedIndexChanged(object sender, EventArgs e)
{}private void comboCURSO_SelectedIndexChanged(object sender, EventArgs e)
{}public Form1()
{
InitializeComponent();
listBOLETIM.Visible = false;
}private void Form1_Load(object sender, EventArgs e)
{}
}
}
Respostas
-
' Calcule a média antes da verificação no bloco do IF com os valores:
'Para calcular a média, você pode importar o namespace system.math, é próprio para isso e é bom para uma série de dados grandes, mas somente para dois valores é tranquilo.
Então faça assim:
if ((textNOME.Text == "") || (comboDISCIPLINA.Text == "") || (textNOTA1.Text == "") || (textNOTA2.Text == ""))
{
MessageBox.Show("Todos os dados devem ser preenchidos.", "ATENÇÃO", MessageBoxButtons.OK, MessageBoxIcon.Error);
}else{//calcula a média antes do bloco de verificação
n1 = Convert.ToDouble(textNOTA1.Text);
n2 = Convert.ToDouble(textNOTA2.Text);
media = (n1 + n2) / 2;
media = Math.Round(media, 2);
if ((media >= 6))
{
MessageBox.Show("Parabéns você esta aprovado sua média é:" + media);
listBOLETIM.Visible = true;
listBOLETIM.Items.Add("Curso: " + comboCURSO.SelectedItem);
listBOLETIM.Items.Add("Nome: " + textNOME.Text);
listBOLETIM.Items.Add("Turno: " + comboTURNO.SelectedItem);
listBOLETIM.Items.Add("Periodo: " + comboPERIODO.SelectedItem);
listBOLETIM.Items.Add("Semestre: " + comboSEMESTRE.SelectedItem);
listBOLETIM.Items.Add(comboDISCIPLINA.SelectedItem.ToString() + media);
listBOLETIM.Items.Add("-------------------------------------------------------------------------");
}
else
{
MessageBox.Show("Que pena você terá que fazer a AV3, sua média é: " + media);
}}- Marcado como Resposta Levi DomingosModerator domingo, 20 de março de 2016 17:37
Todas as Respostas
-
' Calcule a média antes da verificação no bloco do IF com os valores:
'Para calcular a média, você pode importar o namespace system.math, é próprio para isso e é bom para uma série de dados grandes, mas somente para dois valores é tranquilo.
Então faça assim:
if ((textNOME.Text == "") || (comboDISCIPLINA.Text == "") || (textNOTA1.Text == "") || (textNOTA2.Text == ""))
{
MessageBox.Show("Todos os dados devem ser preenchidos.", "ATENÇÃO", MessageBoxButtons.OK, MessageBoxIcon.Error);
}else{//calcula a média antes do bloco de verificação
n1 = Convert.ToDouble(textNOTA1.Text);
n2 = Convert.ToDouble(textNOTA2.Text);
media = (n1 + n2) / 2;
media = Math.Round(media, 2);
if ((media >= 6))
{
MessageBox.Show("Parabéns você esta aprovado sua média é:" + media);
listBOLETIM.Visible = true;
listBOLETIM.Items.Add("Curso: " + comboCURSO.SelectedItem);
listBOLETIM.Items.Add("Nome: " + textNOME.Text);
listBOLETIM.Items.Add("Turno: " + comboTURNO.SelectedItem);
listBOLETIM.Items.Add("Periodo: " + comboPERIODO.SelectedItem);
listBOLETIM.Items.Add("Semestre: " + comboSEMESTRE.SelectedItem);
listBOLETIM.Items.Add(comboDISCIPLINA.SelectedItem.ToString() + media);
listBOLETIM.Items.Add("-------------------------------------------------------------------------");
}
else
{
MessageBox.Show("Que pena você terá que fazer a AV3, sua média é: " + media);
}}- Marcado como Resposta Levi DomingosModerator domingo, 20 de março de 2016 17:37
-