我必须实现readFile方法来打开输入文件,按照本文档“文件格式”部分中显示的顺序读入输入变量(标题除外),然后关闭文件。 程序应从输入文件中读取数据元素的数量,然后为所有图表动态分配所有标签和数据数组。 这些大小还必须用于从文件中读取标签或数据元素的循环。不应初始化其他变量(字符串除外),并且必须声明但不分配数组。它表示pieLabels [i]有错误= input.next(); 我不确定是什么问题。 我在执行FOR循环错误吗? 还是不应该是一个FOR循环?

这是我必须从中读取的文件

5

8

6

诺基亚12.2

苹果15.6

谷歌23.7

三星16.4

摩托罗拉32.1

74.0

35.0

63.0

43.6

47.7

27.0

13.3

41.0

55.0

44.7

34.0

48.1

62.0

32.4

34.5

45.0

35.0 5.0 17.0 25.0 32.7 12.4

32.3 41.0 20.6 1.0 13.9 17.5

26.5 11.2 3.9 14.9 33.0 41.4

数据文件中的第一个条目是饼图中的数据项数,其后是相同数量的标签和双精度数(因此5)。 接下来是条形图中的数据项数量,其后是两个数据系列,每个数据都有相同的双精度数(因此为8)。 接下来是折线图中的数据项数量,其后是三个具有相同双精度数(因此为6)的数据系列。

static String pieTitle = "Pie Chart";
static int pieCount;
static String[] pieLabels;
static double[] pieData;


// Bar chart data
static String barTitle = "Bar Chart";
static int barCount;
static double[] barData0;
static double[] barData1;

// Line graph data
static String lineTitle = "Line Graph";
static int lineCount;
static double[] lineData0;
static double[] lineData1;
static double[] lineData2;

public static void main(String[] args) {
    // TODO Auto-generated method stub
    readFile(args[0]);
    displayCharts();
}
private static void readFile(String inputFile) 
{
     try {

            // Open input stream
            Scanner input = new Scanner(new File(inputFile));

            // Read pie chart data
            pieCount = input.nextInt();
            for (int i = 0; i < pieCount; i++)
                pieLabels[i] = input.next();
            for (int i = 0; i < pieCount; i++)
                pieData[i] = input.nextDouble();

            // Read pie chart data
            barCount = input.nextInt();
            for (int i =  0; i < barCount; i++)
                barData0[i] = input.nextDouble();
            for (int i = 0; i < barCount; i++)
                barData1[i] = input.nextDouble();

            // Read line graph data
            lineCount = input.nextInt();
            for (int i = 0; i < lineCount; i++)
                lineData0[i] = input.nextDouble();
            for (int i = 0; i < lineCount; i++)
                lineData1[i] = input.nextDouble();
            for (int i = 0; i < lineCount; i++)
                lineData2[i] = input.nextDouble();
            input.close();

        } catch (IOException e) {
            System.out.println("Cannot read file: " + inputFile);
            System.exit(0);
        }
}

  ask by user3530319 translate from so

本文未有回复,本站智能推荐:

关注微信公众号