• Language

    Java using Swing

  • Description

    Create a pseudocode based on the calculation on Student grades restricted to below conditions
    - The user must input the Marks based on each Of Assessment: Q1, Q2, Q3, Project 1, Project 2, Assignment 1, Assignment 2, Midterm, Final.
    - The Distribution Percentage of each Type of Assessment are listed below. Calculate the total Marks based on the input marks for each assessment.

    | Assessment | Percentage (%) |
    | Quiz (Q1 to Q3) | 9 |
    | Project (Project 1 and Project 2) | 30 |
    | Assignment (Assignment 1 and Assignment 2) | 16 |
    | Midterm | 15 |
    | Final | 30 |

    - Below is the Grade based on Marks. Output the Grade based on the calculated marks

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class StudentGradesCalculation extends JFrame implements ActionListener {

    private static final long serialVersionUID = 1L;
    private JTextField field_Assignment_1, field_Assignment_2, field_Final, field_Midterm, field_Project_1, field_Project_2, field_Q1, field_Q2, field_Q3;
    private JLabel label_Marks, label_Point;
    private JButton button;

    public Algorithm() {
        field_Assignment_1 = new JTextField(4);
        field_Assignment_2 = new JTextField(4);
        field_Final = new JTextField(4);
        field_Midterm = new JTextField(4);
        field_Project_1 = new JTextField(4);
        field_Project_2 = new JTextField(4);
        field_Q1 = new JTextField(4);
        field_Q2 = new JTextField(4);
        field_Q3 = new JTextField(4);
        label_Marks = new JLabel("", JLabel.RIGHT);
        label_Point = new JLabel("", JLabel.RIGHT);
        button = new JButton("Process");
        Container pane = getContentPane();
        pane.setLayout(new BorderLayout());
        JPanel panel, subpanel;
        panel = new JPanel(new BorderLayout());
        subpanel = new JPanel(new GridLayout(9, 1));
        subpanel.add(new JLabel("Enter the value of Assignment 1:"));
        subpanel.add(new JLabel("Enter the value of Assignment 2:"));
        subpanel.add(new JLabel("Enter the value of Final:"));
        subpanel.add(new JLabel("Enter the value of Midterm:"));
        subpanel.add(new JLabel("Enter the value of Project 1:"));
        subpanel.add(new JLabel("Enter the value of Project 2:"));
        subpanel.add(new JLabel("Enter the value of Q1:"));
        subpanel.add(new JLabel("Enter the value of Q2:"));
        subpanel.add(new JLabel("Enter the value of Q3:"));
        panel.add(subpanel, BorderLayout.WEST);
        subpanel = new JPanel(new GridLayout(9, 1));
        subpanel.add(field_Assignment_1);
        subpanel.add(field_Assignment_2);
        subpanel.add(field_Final);
        subpanel.add(field_Midterm);
        subpanel.add(field_Project_1);
        subpanel.add(field_Project_2);
        subpanel.add(field_Q1);
        subpanel.add(field_Q2);
        subpanel.add(field_Q3);
        panel.add(subpanel);
        pane.add(panel, BorderLayout.NORTH);
        panel = new JPanel(new FlowLayout());
        panel.add(button);
        pane.add(panel);
        panel = new JPanel(new BorderLayout());
        subpanel = new JPanel(new GridLayout(2, 1));
        subpanel.add(new JLabel("Value of Marks:"));
        subpanel.add(new JLabel("Value of Point:"));
        panel.add(subpanel, BorderLayout.WEST);
        subpanel = new JPanel(new GridLayout(2, 1));
        subpanel.add(label_Marks);
        subpanel.add(label_Point);
        panel.add(subpanel);
        pane.add(panel, BorderLayout.SOUTH);
        button.addActionListener(this);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        pack();
        setLocationRelativeTo(null);
    }

    @Override
    public void actionPerformed(ActionEvent actionEvent) {
        double Assignment_1, Assignment_2, Final, Marks, Midterm;
        double Point, Project_1, Project_2, Q1, Q2;
        double Q3;
        try {
            Assignment_1 = Double.parseDouble(field_Assignment_1.getText());
            Assignment_2 = Double.parseDouble(field_Assignment_2.getText());
            Final = Double.parseDouble(field_Final.getText());
            Midterm = Double.parseDouble(field_Midterm.getText());
            Project_1 = Double.parseDouble(field_Project_1.getText());
            Project_2 = Double.parseDouble(field_Project_2.getText());
            Q1 = Double.parseDouble(field_Q1.getText());
            Q2 = Double.parseDouble(field_Q2.getText());
            Q3 = Double.parseDouble(field_Q3.getText());
        } catch (NumberFormatException numberFormatException) {
            return;
        }
        Marks=(Q1+Q2+Q3)*0.09/3+(Project_1+Project_2)*0.3/2+(Assignment_1+Assignment_2)*0.16/2+Midterm*0.15+Final*0.3;
        Point=0;
        if(Marks>=90&&Marks<=100)
        {
            javax.swing.JOptionPane.showMessageDialog(this, "Grade: A+");
            Point=4;
        }
        if(Marks>=80&&Marks<90)
        {
            javax.swing.JOptionPane.showMessageDialog(this, "Grade: A");
            Point=4;
        }
        if(Marks>=75&&Marks<80)
        {
            javax.swing.JOptionPane.showMessageDialog(this, "Grade: A-");
            Point=3.67;
        }
        if(Marks>=70&&Marks<75)
        {
            javax.swing.JOptionPane.showMessageDialog(this, "Grade: B+");
            Point=3.33;
        }
        if(Marks>=65&&Marks<70)
        {
            javax.swing.JOptionPane.showMessageDialog(this, "Grade: B");
            Point=3;
        }
        if(Marks>=60&&Marks<65)
        {
            javax.swing.JOptionPane.showMessageDialog(this, "Grade: B-");
            Point=2.67;
        }
        if(Marks>=55&&Marks<60)
        {
            javax.swing.JOptionPane.showMessageDialog(this, "Grade: C+");
            Point=2.33;
        }
        if(Marks>=50&&Marks<55)
        {
            javax.swing.JOptionPane.showMessageDialog(this, "Grade: C");
            Point=2;
        }
        if(Marks>=45&&Marks<50)
        {
            javax.swing.JOptionPane.showMessageDialog(this, "Grade: C-");
            Point=1.67;
        }
        if(Marks>=40&&Marks<45)
        {
            javax.swing.JOptionPane.showMessageDialog(this, "Grade: D+");
            Point=1.33;
        }
        if(Marks>=35&&Marks<40)
        {
            javax.swing.JOptionPane.showMessageDialog(this, "Grade: D");
            Point=1;
        }
        if(Marks>=30&&Marks<35)
        {
            javax.swing.JOptionPane.showMessageDialog(this, "Grade: D-");
            Point=0.37;
        }
        if(Marks<30)
            javax.swing.JOptionPane.showMessageDialog(this, "Grade: E");
        label_Marks.setText(String.valueOf(Marks));
        label_Point.setText(String.valueOf(Point));
        pack();
    }

    public static void main(String[] args) {
        new Algorithm().setVisible(true);
    }

}