输入5个学生的信息(包括学号,姓名,英语成绩,计算机语言成绩和数据库成绩), 统计各学生的总分,然后将学生信息和统计结果存入test.txt文件中


题目分析:

1.首先想到的是数组存放数据,数组肯定是String类型.

2.String类型的数组,5行6列.要把从第0行第2列到第4行第4列的数据取出转换成数值型,再统计三科总分.最后把计算出的总分转换成String类型放回数组的第5列.

3.将string类型的数组写入到文件,再从文件读出显示到控制台

遇到的困难:

1.反复的类型转换

 1 import java.io.File;
 2 import java.io.FileOutputStream;
 3 import java.io.FileReader;
 4 import java.io.OutputStream;
 5 import java.io.PrintStream;
 6 import java.util.Scanner;
 7 public class Test2 {
 8 public static void main(String[] args) throws Exception{
 9     float sum=0f;
10     Scanner input=new Scanner(System.in);
11     File f = new File("D:"+File.separator+"test.txt");
12     PrintStream ps = new PrintStream(f);  
13     ps.println("姓名             学号                英语      计算机语言        数据库           总分");
14     OutputStream out = new FileOutputStream(f,true);
15     //用FileOutputSteam包装文件,并设置文件可追加
16     String[][] stu=new String[5][6];
17     float[][] score=new float[5][5];//接收各科分数
18     
19     System.out.println("请依次输入学生的学号,姓名,英语,计算机语言和数据库的成绩");
20     for(int i=0;i<5;i++){
21         System.out.println("第"+(i+1)+"位:");
22         for(int j=0;j<5;j++){
23         stu[i][j]=input.nextLine();    //从键盘接收数据,以回车分隔
24     }
25     }
26     for(int i=0;i<5;i++){
27         for(int j=2;j<5;j++){
28             score[i][j]=Float.parseFloat(stu[i][j]);//String类型转换为Float类型
29             sum+=score[i][j];//总分
30         }
31         stu[i][5]=(String.valueOf(sum));//float类型转换为string类型放回String数组
32         sum=0;        //计算完一位同学的总分后清零
33     }
34     for(int i=0;i<5;i++){
35         for(int j=0;j<6;j++){
36         out.write(stu[i][j].getBytes()); //将String转换为byte类型,向文件中写入数据
37         out.write('\t');//各数据之间的分隔,相当于tab
38         }
39         out.write('\r');//换行符
40     }
41     out.close();    //关闭输出流
42     System.out.println("写入成功!");
43     
44     FileReader fr = new FileReader("d:\\test.txt");
45     char[] bchar= new char[1024];
46     int len = 0;
47     while((len = fr.read(bchar)) != -1){//直到文件读取结束
48         System.out.print(new String(bchar,0,len));//输出文件所有内容
49     }
50     fr.close();
51 }
52 }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



猜您在找 有n个学生的信息(包括学号,姓名,成绩),要求按照成绩的高低顺序输出各学生的信息 学生成绩表数据包括:学号,姓名,高数,英语和计算机三门课成绩,计算每个学生总分,每课程平均分,最高分和最低分 IO流(1)-键盘录入学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低存入文本文件 【C语言】利用文本编辑软件在磁盘上建立一个有n个学生的学号、姓名及英语、数学和计算机三门课程成绩的数据文件。编写程序将数据文件读入,且求出每个学生的平均成绩。 输入两个学生的学号,姓名和成绩,输出成绩较高的学生的学号,姓名和成绩 有n个结构变量,内含学生学号,姓名和3门课程的成绩。要求输出平均成绩的学生的信息 某班有5个学生, 每名学生的数据包括学号,姓名,3门课成绩,从键盘上输入5名学生数据,要求打印出3门课的总平均成绩以及最高分的学生数据(包括学号,姓名,3门课成绩) 有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求打印出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数)。 /* * 有五个学生,每个学生有3门课的成绩,从键盘输入以上数据 *(包括学生号,姓名,三门课成绩),计算出平均成绩, *将原有的数据和计算出的平均分数存放在磁盘文件"stud"中。 */ 代码实现:键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM