實驗截圖以下:
java
實驗截圖以下:
vim
題目:4. 實現學生成績管理功能(增刪改,排序,查找),並進行測試(正常狀況,異常狀況,邊界狀況)。框架
class Menu { public static void paint() { clrscr(); for (int i = 0; i < 80; i++) { System.out.print('='); } System.out.println(); System.out.println(" 學生成績管理系統 "); System.out.println(); System.out.println(" 1 輸入記錄 2 輸出全部記錄"); System.out.println(" 3 按平均成績排序並輸出 4 查找記錄"); System.out.println(" 5 統計各分數段人數 6 刪除記錄"); System.out.println(" 0 退出"); for (int i = 0; i < 80; i++) { System.out.print('='); } System.out.println(" "); System.out.println(); System.out.print("請輸入命令:"); }
public Student(int number, String name, int java, int math, int english) { this.number = number; this.name = name; this.english = english; this.math = math; this.java = java; total = english + math + java; average = total/3; } public int getNumber() { return number; } public String getName() { return name; } public int getEnglish() { return english; } public int getMath() { return math; } public int getJava() { return java; } public int getAverage() { return average; } public int getTotal() { return total; } }
class StudentSet { private static final int maxLen = 1000; private static int len = 0; private static Student[] data = new Student[maxLen]; public static int getMaxLen() { return maxLen; } public static int getLen() { return len; } public static Student getData(int index) { return data[index]; } public static int addData(Student newData) { if (len < maxLen) { data[len] = newData; len++; return 0; } else { return -1; } } public static void sortData() { for (int i = 0; i < len -1; i++) { int minIndex = i; for (int j = i+1; j < len; j++) { if (data[minIndex].getAverage() > data[j].getAverage()) { minIndex = j; } } if (minIndex != i) { Student temp = data[i]; data[i] = data[minIndex]; data[minIndex] = temp; } } } public static int search(int number) { for(int i = 0; i < len; i++) { if (data[i].getNumber() == number) { return i; } } return -1; } public static int delete(int number) { for (int i = 0; i < len; i++) { if (data[i].getNumber() == number) { for (int j = i + 1; j < len; j++) { data[j-1] = data[j]; } len--; return 0; } } return -1; } public static int stat(int min, int max) { int sum =0; for (int i = 0; i < len; i++) { if ((data[i].getAverage() >= min) && (data[i].getAverage() <= max)) { sum++; } } return sum; } }
運行結果截圖:
測試
遇到的問題和解決過程this
在運行時,出現
命令行
解決方法:翻看前面的代碼,發現前面輸入java成績部分的java輸入錯誤,致使與錯誤行中的java不對應,致使找不到該變量。debug
步驟 | 耗時 | 百分比 |
---|---|---|
需求分析 | 5min | 4% |
設計 | 20min | 20% |
代碼實現 | 60min | 57% |
測試 | 15min | 15% |
分析總結 | 5min | 4% |