我的成绩簿计划(我们放入成绩并找到平均值)在打印出excel文档时不能正常工作。只有学生1和标题打印中的平均值和学生1的平均值是0,没有测试成绩或任何东西。
这是我的代码:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.DecimalFormat;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
public class array {
public static final String Dabook = "wording.xls";
@SuppressWarnings("unused")
public static void main(String[] args) throws IOException {
HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream("wording.xls"));
HSSFSheet sheet = wb.getSheet("Sheet1");
int col = 0, num = 1;
Row startRow = sheet.createRow(0);
Cell startCell = startRow.createCell(0);
int cellNumber = 0;
double total = 0;
double [ ] [ ] gridGrades =
{ { 87.5, 61.0, 70.5 },
{ 90.0, 88.5, 87.5 },
{ 78.0, 65.5, 70.5 },
{ 80.0, 79.0, 81.5 },
{ 60.5, 55.5, 50.0 } };
for (int colTest = 0; colTest < gridGrades[colTest].length + 1; colTest++) {
for (int testNum = 0; testNum < gridGrades[colTest].length + 1;testNum++) {
if (testNum == 1) {
startCell.setCellValue("");
}
if (testNum == gridGrades[0].length) {
startCell = startRow.createCell(testNum + 1);
startCell.setCellValue("Average");
startCell = startRow.createCell(testNum + 2);
}
}
}
for (double grade[] : gridGrades) {
startRow = sheet.createRow(num);
startCell = startRow.createCell(cellNumber);
startCell.setCellValue("Student " + num);
for (int poop = 0; poop < gridGrades[num - 1].length; poop++) {
if (poop == gridGrades[0].length - 1) {
double average = total / gridGrades[num - 1].length;
startCell = startRow.createCell(poop + 2);
DecimalFormat df = new DecimalFormat("###.##");
Double averageDouble = Double.parseDouble(df
.format(average));
startCell.setCellValue(averageDouble);
startCell = startRow.createCell(poop + 3);
total = 0;
}
for (int Scott = 0; startRow.getCell(Scott) != null; Scott++) {
sheet.autoSizeColumn(Scott);
}
FileOutputStream output = new FileOutputStream("wording.xls");
wb.write(output);
output.close();
}
}
{
System.out.printf(" Test %d: Test %d: Test %d: Average:%n", num, num+1, num+2);
for(double[] grade : gridGrades) {
double average = (grade[col] + grade[col+1] + grade[col+2])/3;
System.out.printf("Student %d %.2f %.2f %.2f %.2f %n", num, grade[col], grade[col+1], grade[col+2], average);
num++;
}
}
} }
我做错了什么?
答案 0 :(得分:0)
num++
语句。total
。希望这有帮助。