📄 test4.java
字号:
import java.io.*;
/*
4 编写一个程序:要求输入五个学生的成绩(从0到100的整数),并将这五个数保存到文件“data.txt”中。
然后再编写一个程序:从文件“data.txt”中读取这五个学生的成绩,将第一个学生的成绩改成这五个学生
的平均分,将第二和第三个学生的成绩改成这五个学生的最高分,将第四和第五个学生的成绩改成这五个
学生的最低分,最后将这五个新数追加到文件“data.txt”中。
*/
public class test4
{
public static void main(String args[]) throws IOException
{
int sc=0;
int aversc=0;
int name[]=new int[5];
int name1[]=new int[5];
/*DataOutputStream out=new DataOutputStream(new FileOutputStream("data.txt"));
for (int i=1 ;i<6 ;i++ )
{
int n=0;
System.out.println("请输入第"+i+"个学生的成绩:\n");
InputStreamReader ins=new InputStreamReader(System.in);
BufferedReader in =new BufferedReader(ins);
sc=Integer.parseInt(in.readLine());
if ((sc>100)||(sc<0))
{
System.out.println("你输入的成绩不错误,请重新输入:");
i = i-1;
continue;
}
name[i-1]=sc;
}//end for 成绩输入
System.out.println();
for (int i=0; i<5 ;i++ )
{
out.writeInt(name[i]);
}//end for 写入分数到文件
*/
RandomAccessFile fil=new RandomAccessFile("data.txt","rw");
sc=0;
for (int i=0; i<5 ;i++ )
{
name1[i]=fil.readInt();
name[i]=name1[i];
aversc=name1[i]+aversc;//求总分
}//end for 读出分数到数组
fil.close();
aversc=aversc/5;
java.util.Arrays.sort(name1);//对数组排序,升序排序
name[0]=aversc;
sc=name1[4];//升序排序,最后一个为最高分
name[2]=sc;
name[1]=sc;
sc=name1[0];//第一个为最低分
name[3]=sc;
name[4]=sc;
RandomAccessFile fi=new RandomAccessFile("data.txt","rw");
long n=fi.length();
fi.seek(n);
for (int i=0; i<5;i++ )//追加文件
{
fi.writeInt(name[i]);
}//end for 写入分数到文件
fi.close();
/*RandomAccessFile f=new RandomAccessFile("data.txt","rw");//测试数据读写是否正确
for (int i=0; i<11;i++ )//追加文件
{
System.out.println(f.readInt());
}//end for 写入分数到文件
f.close();*/
}//end main
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -