文件存储学生成绩

import java.io.*;
import java.util.*;
public class filestudent{
public static void main(String[] args)
{
while(true)
{
try{
    Scanner a=new Scanner(System.in);//一个对象只能负责输入一种类型的数,a负责输入int类型的的对象
Scanner a1=new Scanner(System.in);//负责输入String类型的对象
System.out.print("请输入人数:");
int num=a.nextInt();
    System.out.println("请输入你要输入的数据");
System.out.println("----------------------");
    int b[]=new int[num];
String name[]=new String[num];//定义了string类型的数组
int math[]=new int[num];
int english[]=new int[num];
int java[]=new int[num];
int count1=0,count2=0,count3=0;
int count4[]=new int[num];
for(int i=0;i<num;i++)
{
System.out.println("请输入学号:");
b[i]=a.nextInt();
System.out.println("请输入姓名:");
      name[i]=a1.nextLine();
System.out.println("请输入数学成绩:");
math[i]=a.nextInt();
System.out.println("请输入外语成绩:");
english[i]=a.nextInt();
System.out.println("请输入java成绩:");
java[i]=a.nextInt();
System.out.println("-----------------------");
count1=math[i]+count1;
count2=english[i]+count2;
count3=java[i]+count3;
count4[i]=math[i]+english[i]+java[i];
}
double aver=(count1+count2+count3)/num;
double mathaver=count1/num;
double englishaver=count2/num;
double javaaver=count3/num;

FileWriter fw=new FileWriter("jia.txt");//定义了输入数据到文件jia.txt的对象,如果内部没有该文件将自动进行创建
for(int i=0;i<num;i++)
{
 fw.write("学号;"+b[i]+"  姓名:"+name[i]+"  数学成绩:"+math[i]+"  外语成绩:"+english[i]+"  java成绩:"+java[i]+"  平均分:"+count4[i]/3+"\n");
}//利用fw对象使用write方法向文件输入数据,\n在文件内表示换行
fw.write("数学平均分:"+mathaver+"  外语平均分:"+englishaver+"  java平均分:"+javaaver+"\n");
fw.write("总平均分:"+aver+"\n");
fw.close();//关闭文件
FileReader fr=new FileReader("jia.txt");//定义了输出文件内容的对象
LineNumberReader in=new LineNumberReader(fr);//进行包装,为输入数据附加行号
 boolean change=true;
 while(change)
 {
 String x=in.readLine();
 if(x==null)
 change=false;
 else
 System.out.println(in.getLineNumber()+":"+x);//输出行号和内容
 }
 in.close();
}catch(IOException e){
}
catch(InputMismatchException e)
{System.out.println("数字无效,重新输入,请输入整数!!!!!");}
}
}
}

猜你喜欢

转载自blog.csdn.net/xdkprosperous/article/details/53907821