package com.sinosoft.know;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.Scanner;
/**
* 百度知道——統計學生分數 * 這裏每個類均返回本類對象,方便調用方法 * @author cherry * */public class CalScores {
/* 學生姓名 */
private String stuName;
/* 學生學號 */
private String stuIdno;
/* 學生成績 */
private float stuScore;
/* 前面5個存儲學生姓名;後面5個存儲學生學號 */
private String[] stuInfoArray = new String[10];
/* 存儲學生成績 */
private float[] stuScoreArray = new float[5];
private float allScore = 0.0f;//學生的總成績
private float allAveg = 0.0f;//學生的平均成績
/**
* 輸入數據函數
*/
public CalScores inputData() {
Scanner input = new Scanner(System.in);
for(int i = 0; i < 5; i++) {
System.out.print("請錄入學生姓名:");
stuName = input.next();
System.out.println("請錄入學生學號:");
stuIdno = input.next();
/* 註這裏沒有加是否為數字校驗,如果在成績處輸入字符將會出異常 */
System.out.println("請錄入學生java課程成績:");
stuScore = input.nextFloat();
stuInfoArray[i] = stuName;
stuInfoArray[i+5] = stuIdno;
stuScoreArray[i] = stuScore;
}
return this;
}
/**
* 數據處理函數
*/
public CalScores dealData() {
/* 計算總成績 */
for(float a : stuScoreArray) {
allScore += a;
}
/* 計算平均值 */
allAveg = allScore / 5;
return this;
}
/**
* 輸出到文件函數
*/
public CalScores outPutData() {
try {
System.out.println("文件將被寫入d盤");
BufferedWriter writer = new BufferedWriter(new FileWriter(new File("d:\\Result.txt"), false));
writer.write("姓名\t學號\t成績\n");
for(int i = 0; i < 5; i++) {
writer.write(stuInfoArray[i]+"\t\t"+stuInfoArray[i + 5]+"\t\t"+stuScoreArray[i]+"\n");
}
writer.write("總成績為:" + allScore);
writer.write("平均成績為:" + allAveg);
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
}
return this;
}
/**
* 主程序入口
* @param args
*/
public static void main(String[] args) {
CalScores cs = new CalScores();
cs.inputData().dealData().outPutData();
}
}