⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sales.java

📁 Java the UML Way 书中所有源码
💻 JAVA
字号:
/*
 * Sales.java   E.L. 2001-08-14
 *
 */

class Sales {
  private String department;
  private int[][] theSales;

  public Sales(String initDepartment, int noOfWeeks, int noOfDays) {
    department = initDepartment;
    theSales = new int[noOfWeeks][noOfDays];
  }

  public String getDepartment() {
    return department;
  }

  public int getNoOfWeeks() {
    return theSales.length;
  }

  public int getNoOfDaysPerWeek() {
    if (theSales.length > 0) {  // no of weeks
      return theSales[0].length;
    }
    return -1;   // no data
  }

  /*
   * Three utility methods to control the index validity.
   * These methods are of no interest for the clients,
   * therefore they are made private.
   */
  private boolean validWeekNo(int weekNo) {
    if (weekNo >= 0 && weekNo < theSales.length) return true;
    else return false;
  }

  private boolean validDayNo(int weekNo, int dayNo) {
    if (theSales.length > 0 // at least one week has to be registered
        && dayNo >= 0 && dayNo < theSales[weekNo].length) return true;
    else return false;
  }

  private boolean validIndices(int weekNo, int dayNo) {
    if (validWeekNo(weekNo) && validDayNo(weekNo, dayNo)) return true;
    else return false;
  }

  /*
   * The method registers the sales for a given day.   
   */
  public boolean setSales(int weekNo, int dayNo, int newSales) {
    if (validIndices(weekNo, dayNo)) {
      theSales[weekNo][dayNo] = newSales;
      return true;
    } else return false;  // return false if invalid day or week
  }

  /*
   * The method gets the sales for a given day.
   */
  public int getSales(int weekNo, int dayNo) {
    if (validIndices(weekNo, dayNo)) {
      return theSales[weekNo][dayNo];
    } else return -1;   // return -1 if invalid day or week
  }

  public int getSalesForAWeek(int weekNo) {
    if (validWeekNo(weekNo)) {
      int sum = 0;
      for (int i = 0; i < theSales[weekNo].length; i++) {
        sum += theSales[weekNo][i];
      }
      return sum;
    } else return -1;   // return -1 if invalid weekNo
  }

  public int getSalesForAWeekDay(int dayNo) {
    if (validDayNo(0, dayNo)) {
      int sum = 0;
      for (int i = 0; i < theSales.length; i++) {
        sum += theSales[i][dayNo];
      }
      return sum;
    }
    return -1;   // either no data, or invalid day
  }

  public int getTotalSales() {
    int sum = 0;
    for (int i = 0; i < theSales.length; i++) {
      for (int j = 0; j < theSales[i].length; j++) {
        sum += theSales[i][j];
      }
    }
    return sum;
  }

  public int getMostProfitDay() {
    if (theSales.length > 0) {
      int mostProfitToDay = 0;
      int sumMaxSales = getSalesForAWeekDay(0);
      for (int i = 1; i < theSales[i].length; i++) {
        int theSales = getSalesForAWeekDay(i);
        if (theSales > sumMaxSales) {
          mostProfitToDay = i;
          sumMaxSales = theSales;
        }
      }
      return mostProfitToDay;
    }
    return -1;  // no data
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -