java编程之输入并进行计算

/*
 *使用 字符流 编程实现以下功能 (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();//关闭输出对象
       
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值