0

我正在为评估项目制作费用跟踪程序,但问题是,问题表太模糊了。问题之一是,我不确定我应该坚持使用一维数组还是多维数组。

整个想法是这样的;用户选择一个月份,它将提示一个选项,允许用户将费用分配给该月份和某个项目。它看起来像这样:

输入月份(1 月 1 - 12 月 12 日):1

一月支出(最多10项)输入第1项(按ENTER退出):快餐

输入金额:$10

我应该使用什么样的维度数组?似乎随着我进入数组的不同维度,这有点像打开一罐蠕虫。

到目前为止,我得到了这个:

  int m = 12;
int exp = 10;

int[][] month = new int [m][exp];


public void data(){


}



public void monthlyExp(){
    String[] mth = {"Jan", "Feb", "Mar", "Apr",
            "May", "Jun", "Jul", "Aug", "Sep",
            "Oct","Nov","Dec"
    };

    System.out.print("Enter month > ");
    int mon = input.nextInt();

    for (int i = 0; i < month.length; i++){
        System.out.println();
        if (i == (mon-1)){
            System.out.println(mth[i] + " expenditure <max 10 items>");
            while (true){
                for (int h = 0; h < exp; h++);
                System.out.print("Enter item " + (h + 1) + "(PRESS ENTER TO EXIT)");
            }
4

2 回答 2

0

一种方法是创建一个 POJO 类,其中包含月份、费用和费用描述的属性,并拥有一个 POJO 对象数组。如果您觉得令人困惑,请尝试使用并行数组或更好的 ArrayLists。也就是说,每个月、费用和描述都有一个单独的数组。每次您的分类帐中有一个新条目时,使用相同的索引向每个数组添加一个元素,然后为下一个条目增加索引。

于 2014-01-16T10:25:14.693 回答
0
public static void main(String[] args) {
    int[] arr = new int[5];
    int[][] newArr = new int[5][5];
    // arr = newArr;    compile time error 
    // newArr = arr;    compile time error
    newArr[0]=arr;    // valid. But this is not preferred and is considered a bad practice. You might run into trouble later on with this little piece of code. So use Objcts/collections whereever possible instead of arrays.

    for(int i=0;i<5;i++)
    {
        newArr[0][i]=i;  // ArrayIndexOutOfBoundsException at runtime (arr has size of 5 remember?). So, be wary of such assignments. Everything seems fine until it breaks. 
    }
}
于 2014-01-16T10:49:55.313 回答