java程式設計之輸入並進行計算
阿新 • • 發佈:2019-02-13
/* *使用 字元流 程式設計實現以下功能 (1)從鍵盤輸入姓名、學號、成績,並儲存到文字檔案中,重複進行,直到輸入空字串為止 (2)從檔案中讀取各學生的成績,並計算所有學生成績的平均值、最大值和最小值 */ import java.io.*; public class inputdata{ public static void main(String args[]) throws IOException{ String s; //暫存字串 InputStreamReader isr=new InputStreamReader(System.in);//建立輸入流 BufferedReader br=new BufferedReader(isr);//建立緩衝BufferedReader物件br,關聯到isr FileWriter fw=new FileWriter("c:\\student.txt");//建立檔案輸出 FileWriter類物件fw BufferedWriter bw=new BufferedWriter(fw);//建立帶緩衝的BufferedWriter類物件bw,並關聯到fw System.out.println("請輸入姓名:(以空行結束)");//將讀入字串寫入到檔案中 int linenum=0; while(true){//迴圈讀入字串 System.out.println("輸入姓名、學號: "); linenum++; System.out.flush();//清空輸出緩衝區 s = br.readLine();//讀入輸入的一行 if(s.length()==0)break;//若遇到空行則break,結束讀-寫工作 bw.write(s);//將本行字串寫出到物件bw bw.newLine(); //在物件bw中建立新行,為下一行輸出做準備 System.out.println("輸入成績: ");//以下與上方同理 linenum++; System.out.flush(); s = br.readLine(); bw.write(s); bw.newLine(); } br.close();//關閉輸出物件 bw.close(); System.out.println("輸入的姓名,學號,成績存入到c:\\student.txt檔案"); FileReader fr=new FileReader("c:\\student.txt"); //建立File物件,並開啟檔案,作為寫出資料的目標 BufferedReader br1=new BufferedReader(fr); //建立緩衝BufferedReader物件br1,關聯到fr String s1; // 變數的宣告 double temp=0,average=0,sum=0,min=100,max=0; linenum=0; s1=br1.readLine(); //讀入一行 while(s1!=null){ //當不為空時執行下列語句 linenum++; //行數加一 if(linenum%2==0){ //判斷行數 如果是2 的倍數 即為成績行 進行如下操作 //bw.write(s); //寫入s temp=Double.parseDouble(s1); //強制轉換成double型 sum=sum+temp; //加和 if(temp>max){ //判斷如果temp比max大 max=temp; //則將temp值賦給max } if(temp<min){ //判斷如果temp比min小 min=temp; //則將temp值賦給min } } //bw.newLine(); //新建行 s1=br1.readLine(); //讀行 } average=sum/(linenum/2); //成績的總和除以成績數計算平均值 System.out.println("成績的平均值"+average); //輸出結果 System.out.println("成績的最大值"+max); System.out.println("成績的最小值"+min); br1.close();//關閉輸出物件 } }