我可能没有说明白,我把我的代码贴出来,让大家帮我看一下,问题到底是出在哪里啦?
这是个学生类:- package com.itheima;
- import java.util.*;
- import java.io.*;
- /**
- * 学生类
- * @author
- *
- */
- public class Student
- {
- String name;
- double c1,c2,c3;//成绩
- static double sum;
- /**
- * 设置学生对象的属性
- */
- public void SetStudent()
- {
- Scanner keyboard=new Scanner(System.in);
- System.out.println("请依次输入姓名,语文成绩,数学成绩,英语成绩,中间以逗号隔开");
- String getstr=keyboard.next();
- String[] str=getstr.split(",");
- this.name=str[0];
- this.c1=Double.parseDouble(str[1]);
- this.c2=Double.parseDouble(str[2]);
- this.c3=Double.parseDouble(str[3]);
- sum=c1+c2+c3;
- System.out.println("总成绩为:"+sum);
- }
-
- /**
- * 总成绩从高到低排序
- * @throws IOException
- */
- public static void Sort(Student[] stu)
- {
- for(int i=1;i<stu.length;i++)
- {
- if(stu[i].sum<stu[i-1].sum)
- {
- stu[i-1]=stu[i];
- }
- }
- }
-
- /**
- * 把处理的数据写入文件
- * @param Student类型的数组
- * @throws IOException
- */
- public static void FileOp(Student[] stu) throws IOException
- {
- FileWriter fw=new FileWriter("stu.txt",true);
- BufferedWriter bw=new BufferedWriter(fw);
- try
- {
- for(int i=0;i<stu.length;i++)
- {
- bw.write("姓名:"+stu[i].name);
- bw.newLine();
- bw.write("语文成绩:"+Double.toString(stu[i].c1));
- bw.newLine();
- bw.write("数学成绩:"+Double.toString(stu[i].c2));
- bw.newLine();
- bw.write("英语成绩:"+Double.toString(stu[i].c3));
- bw.newLine();
- bw.flush();
- }
- System.out.println("数据信息写入成功!");
- }
- catch(IOException e)
- {
- System.out.println("文件写入出错:"+e.getMessage());
- }
- finally
- {
- if(bw!=null)
- bw.close();
- }
- }
- }
复制代码 这是个调用类:- package com.itheima;
- import java.io.IOException;
- /**
- * 有五个学生,每个学生有3门课(语文、数学、英语)的成绩,写一个程序接收从键盘输入学生的信息,
- * 输入格式为:name,30,30,30(姓名,三门课成绩),然后把输入的学生信息按总分从高到低的顺序写入
- * 到一个名称"stu.txt"文件中。
- * 要求:stu.txt文件的格式要比较直观,打开这个文件,就可以很清楚的看到学生的信息。
- * @author
- *
- */
- public class Test3 {
- /**
- * @param args
- * @throws IOException
- */
- public static void main(String[] args) throws IOException
- {
- //当使用下边的代码进行实例化,并设置学生的信息时,可以实现,但是代码太长,我想使用循环来实现
- Student s=new Student();
- s.SetStudent();
- Student s1=new Student();
- s1.SetStudent();
- Student s2=new Student();
- s2.SetStudent();
- Student s3=new Student();
- s3.SetStudent();
- Student s4=new Student();
- s4.SetStudent();
- Student[] stu=new Student[]{s,s1,s2,s3,s4};
- Student[] student=new Student[]{};
- //使用循环实现输入n多个学生信息(就是这里出的问题,只能输入一个学生的信息)
- for(int i=0;i<student.length;i++)
- {
- student[i].SetStudent();
- }
- try
- {
- Student.Sort(stu);
- Student.FileOp(stu);
- }
- catch(IOException e)
- {
- System.out.println("文件写入错误:"+e.getMessage());
- }
- }
- }
复制代码 我想使用循环来实现学生信息的录入,而不是进行一个一个的设置才可以!请大神们帮一下忙! |