在專案資料夾裡面創建一個【data.txt】,
說明: 第一行:科目名稱 第二行:分數 第三行:學分
|
程式碼 |
import java.io.BufferedReader; import java.io.FileReader; import java.util.ArrayList; public class d { public static void main(String[] args) throws Exception { BufferedReader data = new BufferedReader(new FileReader("src/data.txt")); String s = ""; ArrayList<String> ming_cheng = new ArrayList<String>();//科目名稱 ArrayList<String> cheng_ji = new ArrayList<String>();//成績 ArrayList<String> xue_fen = new ArrayList<String>();//學分 for (int i = 0; (s = data.readLine()) != null; i++) { System.out.println(s); switch (i) { case 0://第1行:科目名稱 ming_cheng = cuen_array(s); break; case 1://第2行:成績 cheng_ji = cuen_array(s); break; case 2://第3行:學分 xue_fen = cuen_array(s); break; } }// for end---------- System.out.println("//---------------"); System.out.println("加權總分:" + ji_zong(cheng_ji, xue_fen)); System.out.println("加權平均:" + (float)ji_zong(cheng_ji, xue_fen) / (float)ji_zxue_fen(xue_fen)); }//main end---------- //計算【總學分】(傳入 學分ArrayList ;回傳 總學分int) static int ji_zxue_fen(ArrayList<String> array) { int sum = 0; for (String string : array) { sum += Integer.valueOf(string); } return sum; } //計算【加權總分】 //(傳入 成績ArrayList , 學分ArrayList;回傳 加權總分int ) static int ji_zong(ArrayList<String> array_1, ArrayList<String> array_2) { int sum = 0; for (int i = 0; i < array_1.size(); i++) { sum += Integer.valueOf(array_1.get(i)) * Integer.valueOf(array_2.get(i)); } return sum; } //存入Arraylist(傳入 要分割的String;回傳ArrayList) static ArrayList cuen_array(String s) { ArrayList<String> array = new ArrayList<String>(); String ch = ""; array.add(""); int w = 0; for (int j = 0; j < s.length(); j++) { ch = String.valueOf(s.charAt(j)); if (ch.equals(",")) { w++; array.add(""); } else { array.set(w, array.get(w) + ch); } } return array; } } |
截圖: