/*
*使用 字符流 编程实现以下功能 (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();//关闭输出对象
}
}
java编程之输入并进行计算
最新推荐文章于 2021-10-26 11:52:50 发布