列联表

时间:2012-05-28 16:35:31

标签: java

我正在努力为这个问题找到Java代码。首先,我处于初级水平,这个问题我很难回答。我知道这使用了2D阵列吗?但我有问题为这个问题编写Java代码。

以下是问题:

  

编写一个

的Java程序      
      
  1. 向用户查询列联表的行数和列数,
  2.   
  3. 逐行读取数据
  4.   
  5. 以表格形式显示数据以及行总计,列总计和grand   总。
  6.         

    例如,如果2x3表的六个数据是

         

    1,3,6,7,9和8.程序将这六个数字一起显示   以适当的总数

    1 3 6   | 10  
    7 9 8   | 24  
    8 12 14 | 34  
    
         

    字符'|'用于将数据与行总计分开

2 个答案:

答案 0 :(得分:1)

我首先建议您忘记“数组”并多考虑“课程”。 Java是一种面向对象的语言。封装您在类中所需的行为。我们称之为Tableau

您的班级需要至少有四种不同的行为:

  1. 从某种类型的流或读取器中将值读入Tableau(例如PrintStreamFileInputStream
  2. 计算Tableau的行和列总和
  3. 将Tableau呈现为字符串。
  4. 将Tableau写入某种OutputStream或Writer。
  5. 计算机科学是将复杂的任务分解为更小,更易于管理的部分。它被称为“分解”。这是学习它的好机会。

    所以这是一个开始:

    package model;
    
    public class Tableau {
        private int numRows; 
        private int numCols; 
        private int[][] values;
    
        public Tableau(int numRows, int numCols) {
            if (numRows <= 0) throw new IllegalArgumentException("numRows must be positive");
            if (numCols <= 0) throw new IllegalArgumentException("numCols must be positive");
            this.numRows = numRows; 
            this.numCols = numCols; 
            this.values = new int[numRows+1][numCols+1];
        }
    
        // You add the rest
        public String toString() { 
            StringBuilder builder = new StringBuilder();
    
            return builder.toString();
        }
    }
    

答案 1 :(得分:0)

嗯,在你的例子中: 首先创建一个2x3阵列, 然后询问用户每个单元格的输入(提示:两个循环) 然后,当您打印行时,请遍历行并将其添加以打印最后一个数字。 最后,遍历列并添加它们。母鸡打印。

实际代码将为您完成作业,但是如果您可以将这些步骤翻译成java,那么您可以保持良好的理解,并且可以很好地理解2D数组。

最佳。