2015-08-29 3 views
-4

У меня есть это приложение для экзамена по окончательному экзамену, которое я написал в java, но я не могу получить математику правильно.Перевести это уравнение ... Пожалуйста,

Вот мой код

import java.awt.EventQueue; 
import javax.swing.JOptionPane; 
import javax.swing.JFrame; 
import javax.swing.JTextField; 
import javax.swing.UIManager; 
import javax.swing.UnsupportedLookAndFeelException; 
import javax.swing.JButton; 
import javax.swing.JLabel; 
import java.awt.event.KeyAdapter; 
import java.awt.event.KeyEvent; 
import java.awt.event.ActionListener; 
import java.awt.event.ActionEvent; 

public class MyFirstApp { 

private JFrame frame; 
private JTextField textField; 
private JTextField textField_1; 
private JTextField textField_2; 

/** 
* Launch the application. 
*/ 
public static void main(String[] args) { 


    try { 
     // Set System L&F 
    UIManager.setLookAndFeel(
     UIManager.getSystemLookAndFeelClassName()); 
} 
catch (UnsupportedLookAndFeelException e) { 
    // handle exception 
} 
catch (ClassNotFoundException e) { 
    // handle exception 
} 
catch (InstantiationException e) { 
    // handle exception 
} 
catch (IllegalAccessException e) { 
    // handle exception 
} 

    EventQueue.invokeLater(new Runnable() { 
     public void run() { 
      try { 
       MyFirstApp window = new MyFirstApp(); 
       window.frame.setVisible(true); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 

    }); 
} 

/** 
* Create the application. 
*/ 
public MyFirstApp() { 
    initialize(); 
} 

/** 
* Initialize the contents of the frame. 
*/ 
private void initialize() { 
    frame = new JFrame(); 
    frame.setBounds(100, 100, 342, 281); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.getContentPane().setLayout(null); 

    textField = new JTextField(); 
    textField.addKeyListener(new KeyAdapter() { 
     @Override 
     public void keyTyped(KeyEvent e) { 
      char c=e.getKeyChar(); 
      if(!(Character.isDigit(c) || (c==KeyEvent.VK_BACK_SPACE) || c==KeyEvent.VK_DELETE)) { 
       e.consume(); 
      } 

     } 

    }); 



    textField.setBounds(88, 37, 150, 20); 
    frame.getContentPane().add(textField); 
    textField.setColumns(10); 

    textField_1 = new JTextField(); 
    textField_1.addKeyListener(new KeyAdapter() { 
     @Override 
     public void keyTyped(KeyEvent e) { 
      char c=e.getKeyChar(); 
      if(!(Character.isDigit(c) || (c==KeyEvent.VK_BACK_SPACE) 
        || c==KeyEvent.VK_DELETE)) { 

       e.consume(); 

      } 
     } 
    }); 
    textField_1.setColumns(10); 
    textField_1.setBounds(88, 84, 150, 20); 
    frame.getContentPane().add(textField_1); 

    textField_2 = new JTextField(); 
    textField_2.addKeyListener(new KeyAdapter() { 
     @Override 
     public void keyTyped(KeyEvent e) { 
      char c=e.getKeyChar(); 
      if(!(Character.isDigit(c) || (c==KeyEvent.VK_BACK_SPACE) || c==KeyEvent.VK_DELETE)) { 
       e.consume(); 
      } 
     } 
    }); 
    textField_2.setColumns(10); 
    textField_2.setBounds(127, 129, 71, 20); 
    frame.getContentPane().add(textField_2); 

    JButton btnNewButton = new JButton("Calculate"); 
    btnNewButton.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 

      String gradestring = textField.getText(); 
      String wantstring = textField_1.getText(); 
      String finalstring = textField_2.getText(); 

      int gradeparse = Integer.parseInt(gradestring); 
      int wantparse = Integer.parseInt(wantstring); 
      int finalpercentage = Integer.parseInt(finalstring); 



      int findworthpercentage = finalpercentage; 
      int showfinal = 

      JOptionPane.showMessageDialog(null, "This is what you need " + showfinal/100); 

     } 
    }); 
    btnNewButton.setBounds(116, 181, 101, 39); 
    frame.getContentPane().add(btnNewButton); 

    JLabel lblGrade = new JLabel("Grade:"); 
    lblGrade.setBounds(45, 40, 43, 14); 
    frame.getContentPane().add(lblGrade); 

    JLabel lblWant = new JLabel("Want:"); 
    lblWant.setBounds(45, 87, 33, 14); 
    frame.getContentPane().add(lblWant); 

    JLabel lblWorth = new JLabel("Worth:"); 
    lblWorth.setBounds(85, 132, 43, 14); 
    frame.getContentPane().add(lblWorth); 

    JLabel label = new JLabel("%"); 
    label.setBounds(202, 132, 11, 14); 
    frame.getContentPane().add(label); 

    JLabel label_1 = new JLabel("%"); 
    label_1.setBounds(242, 87, 11, 14); 
    frame.getContentPane().add(label_1); 

    JLabel label_2 = new JLabel("%"); 
    label_2.setBounds(242, 40, 11, 14); 
    frame.getContentPane().add(label_2); 
} 
} 

место, где мне нужно математику, чтобы работать является ИНТ showfinal. Вот уравнение:

Grade = экзамен Worth × экзамен Score + (1 - экзамен Worth) × Текущий класс

Мне нужна помощь в переводе это в мой проект. Спасибо, извините за плохой английский.

+0

Где вы пытаетесь реализовать указанное уравнение. В 'btnNewButton.addActionListener'? –

+0

Эй, я пытаюсь реализовать уравнение под методом public void actionPerformed (ActionEvent e). Я хочу напечатать результат в сообщенииDialogBox, и поэтому мне нужно будет сохранить результат уравнения в переменной int showfinal. – TheHoop

+2

Пожалуйста, посмотрите [помощь], а также [как задать хорошие вопросы] (http://stackoverflow.com/help/how-to-ask), чтобы узнать, как вы можете улучшить этот вопрос и увеличить свои шансы на получение достойные ответы. –

ответ

2

Вместо: int showfinal есть это будет двойной для более правильных ответов: double showfinal

Затем, считая, что Текущий класс является процентом, таким как 95 (A), вот уравнение, которое кс:

double showfinal = (wantparse/100.0 - ((1 - findworthpercentage/100.0) * gradeparse/100.0))/(findworthpercentage/100.0); 
showfinal = Math.round(showfinal*100.0)/100.0; 

Затем, если вы хотите, чтобы отобразить процент, изменение: JOptionPane.showMessageDialog(null, "This is what you need " + showfinal/100);

умножению 100, вместо: JOptionPane.showMessageDialog(null, "This is what you need " + showfinal*100);

Если вы хотите десятичную, не размножаются 100.

Если я понял ваше намерение, это уравнение даст в качестве примера:

gradeparse = 85 //Current Grade percentage 
wantparse = 90 //Grade wanted percentage 
findworthpercentage = 50 //Final is worth half of overall grade 

showfinal = 0.95 //Grade needed in Final. Again, multiply by 100 for the percentage. 
+0

Это работало как волшебный шарм! Я знаю, что это довольно простой материал, но вроде бы аккуратной программы, учитывая, что я начал изучать java день назад. Огромный человек! – TheHoop

+0

@ TheHoop Нет проблем. Удачи. –

2

so,
findworthpercentage = экзамен стоит?
wantparse = экзамен оценка?
gradeparse = текущий класс?

, если это так, то:

showfinal = findworthpercentage * wantparse + (1 - findworthpercentage) * gradeparse; 

ваших переменных использование & именование немного запутанным