/* * 有五個學生,每一個學生有3門課的成績,從鍵盤輸入以上數據 *(包括學生號,姓名,三門課成績),計算出平均成績, *將原有的數據和計算出的平均分數存放在磁盤文件"stud&...

1.Student類:類中有五個變量,分別是學號,姓名,三門成績java

package test3; public class Student { private int num; private String name; private  double Chinese; private double English; private double math; private double avg; public Student() { } @Override public String toString() { return "學生學號:" + num + ", 姓名:" + name + ", 語文成績:" + Chinese + ", 英語成績:" + English + ", 數學成績:"
                + math + ",平均成績:" + avg ; } public int getNum() { return num; } public void setNum(int num) { this.num = num; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getChinese() { return Chinese; } public void setChinese(double chinese) { Chinese = chinese; } public double getEnglish() { return English; } public void setEnglish(double english) { English = english; } public double getMath() { return math; } public void setMath(double math) { this.math = math; } public void setAvg(double avg) { this.avg=avg; } public double getAvg() { return avg; } }

2.StudentDao類,用來獲取學生的平均成績 的工具類windows

package test3; public class StudentDao { static Student stu; static double avg; public static double getAvg(Student s) { stu=s; double cw; double en; double ma; cw=stu.getChinese(); en=stu.getEnglish(); ma=stu.getMath(); avg=(cw+en+ma)/3; return avg; } }

3.主類,用來獲取學生的信息和把學生的信息輸入到本地文件stud中ide

package test3; import java.io.BufferedOutputStream; import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import java.util.Scanner; /* * 有五個學生,每一個學生有3門課的成績,從鍵盤輸入以上數據 *(包括學生號,姓名,三門課成績),計算出平均成績, *將原有的數據和計算出的平均分數存放在磁盤文件"stud"中。 */
public class test { static ArrayList<Student> list = new ArrayList<Student>(); static BufferedWriter out = null; public static void main(String[] args) throws Exception { getStu(); saveStu(); } // 從鍵盤獲取學生信息
    public static void getStu() { Scanner scan = new Scanner(System.in); int count = 1; while (list.size() < 3) { System.out.println("--------請輸入學生信息--------"); System.out.println("請輸入" + count + "學生的學號:"); int num = scan.nextInt(); System.out.println("請輸入" + count + "學生的姓名:"); String name = scan.next(); System.out.println("請輸入" + count + "學生的語文成績:"); double cw = scan.nextDouble(); System.out.println("請輸入" + count + "學生的數學成績:"); double sx = scan.nextDouble(); System.out.println("請輸入" + count + "學生的英語成績:"); double yy = scan.nextDouble(); Student s = new Student(); // 判斷學生成績是否正確
            if (!(cw < 0) && !(yy < 0) && !(sx < 0)) { s.setNum(num); s.setName(name); s.setChinese(cw); s.setEnglish(yy); s.setMath(sx); s.setAvg(StudentDao.getAvg(s)); list.add(s); count += 1; } else { System.out.println("成績輸入錯誤!"); continue; } } System.out.println(list); } // 把學生信息錄入本地文件
    public static void saveStu() { // 建立一個字符緩衝輸出流
        try { out = new BufferedWriter(new FileWriter("stud.txt")); for (int i = 0; i < list.size(); i++) { out.write("姓名:" + list.get(i).getName() + " 學號:" + list.get(i).getNum() + " 語文成績:"
                        + list.get(i).getChinese() + " 數學成績" + list.get(i).getMath() + "英語成績:"
                        + list.get(i).getEnglish() + " 平均成績:" + list.get(i).getAvg()); out.newLine(); } } catch (IOException e) { e.printStackTrace(); } finally { try { if (out != null) { out.close(); } } catch (IOException e) { e.printStackTrace(); } } } }

/*
* 帶緩衝區的流中的特殊方法
* readLine()屬於BufferedReader
* newLine()屬於BufferedWriter
*
* newLine 和 \r\n的區別
* newLine是跨平臺的方法
* \r\n只支持的是windows系統
*/
---------------------
做者:Soar_Sir
來源:CSDN
原文:https://blog.csdn.net/SoarFly0807/article/details/76034807
版權聲明:本文爲博主原創文章,轉載請附上博文連接!工具

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息
相關文章