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


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

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類,用來獲取學生的平均成績 的工具類

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中

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
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 有10個學生,每個學生的數據包括學號、姓名、3門課的成績,從鍵盤輸入10個學生數據,要求打印出3門課總平均成績,以及最高分的學生的數據(包括學號、姓名、3門課的成績、平均分數)。 10.15有一個班4個學生,5門課。(1)求第一門課的平均分;(2)找出有兩門以上課程不及格的學生,輸出他們的學號和全部課程成績及平均成績;(3)找出平均成績在90分以上或全部課程成績在85分以上的學生。分別編3個函數實現上3個要求。 輸入3個學生4門課的成績{(60,70,65,75),(**,**,**,**),(95,75,90,65)}, 計算每個學生的總分和平均成績並輸出,結果保留一位小數。 查詢有2門及以上不及格科目的學生姓名及其平均成績 mysql查詢每個學生的各科成績,以及總分和平均分 【Python】實現輸出成績最高或最低分的學生姓名以及低於平均分的學生姓名 有一個班4個學生,5門課程①求第1門課程的平均分; ②找出有兩門以上課程不及格的學生,輸出他們的學號和全部課程成績及平均成績; ③找出平均成績在90分以上或全部課程成績在85分以上的學生 有n個結構變量,內含學生學號,姓名和3門課程的成績。要求輸出平均成績的學生的信息 【sql: 練習題 28 ,29】查詢所有學生的課程及分數情況(存在學生沒成績,沒選課的情況),查詢任何一門課程成績在 70 分以上的姓名、課程名稱和分數 練習8--查詢兩門及其以上不及格課程的同學的學號,姓名及其平均成績
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM