public class checkGpa extends JFrame implements ActionListener { static JButton backButton = new JButton("back"); JFrame frame = new JFrame("GPA"); Label averageGPALabel = new Label("average GPA"); JTextField averageGPAField = new JTextField(); Label weightedGPALabel = new Label("weighted GPA"); JTextField weightedGPAField = new JTextField();使用tdd修改
时间: 2023-12-18 08:02:24 浏览: 120
Java Swing 常用控件
首先,我们需要创建一个测试类来测试`checkGpa`类的方法。测试类可以命名为`checkGpaTest`。
```java
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class checkGpaTest {
@Test
void testCalculateAverageGPA() {
checkGpa gpa = new checkGpa();
double[] grades = {3.0, 3.5, 4.0, 2.5};
double expectedAverageGPA = 3.25;
double actualAverageGPA = gpa.calculateAverageGPA(grades);
assertEquals(expectedAverageGPA, actualAverageGPA, 0.01);
}
@Test
void testCalculateWeightedGPA() {
checkGpa gpa = new checkGpa();
double[] grades = {3.0, 3.5, 4.0, 2.5};
double[] credits = {3.0, 4.0, 3.0, 2.0};
double expectedWeightedGPA = 3.36;
double actualWeightedGPA = gpa.calculateWeightedGPA(grades, credits);
assertEquals(expectedWeightedGPA, actualWeightedGPA, 0.01);
}
}
```
在测试类中,我们使用JUnit框架提供的`@Test`注解来标记测试方法。然后,在测试方法中,我们创建`checkGpa`对象,并传入测试用例中的参数。接着,我们调用`calculateAverageGPA()`和`calculateWeightedGPA()`方法,将实际结果和预期结果进行比较。
对于`calculateAverageGPA()`方法和`calculateWeightedGPA()`方法,我们需要在`checkGpa`类中进行修改。
```java
public class checkGpa extends JFrame implements ActionListener {
static JButton backButton = new JButton("back");
JFrame frame = new JFrame("GPA");
Label averageGPALabel = new Label("average GPA");
JTextField averageGPAField = new JTextField();
Label weightedGPALabel = new Label("weighted GPA");
JTextField weightedGPAField = new JTextField();
public double calculateAverageGPA(double[] grades) {
double sum = 0;
for (double grade : grades) {
sum += grade;
}
return sum / grades.length;
}
public double calculateWeightedGPA(double[] grades, double[] credits) {
double sum = 0;
double totalCredits = 0;
for (int i = 0; i < grades.length; i++) {
sum += grades[i] * credits[i];
totalCredits += credits[i];
}
return sum / totalCredits;
}
}
```
在`calculateAverageGPA()`方法中,我们遍历传入的成绩数组,将所有成绩相加,并返回平均值。在`calculateWeightedGPA()`方法中,我们遍历传入的成绩数组和学分数组,计算加权成绩总和和总学分数,并返回加权平均值。
这样,我们就完成了对`checkGpa`类的TDD修改。
阅读全文