java存储学生成绩并求平均成绩写到文本文件中

上节课留的课堂作业,大概意思是控制台输入

zhangsan49 
lisi60 
wangwu80 
end

之后求出平均成绩,并且写入文本文件中。

有几个不会的地方:

1.用list存储,

2.字符串中提取出成绩,并分别把名字写入list.name,成绩写入list.grade。

//正则取出数字
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Getcj {
	public static void main(String args[]) {
		String str = "zhangsan";
        Pattern p = Pattern.compile("(\\d+(\\.\\d+)?)");
        Matcher m = p.matcher(str);
        if(m.find()){
            System.out.println(m.group());
        }
        else {
        	System.out.println(0);
        }
	}
	
}

3.end结束输入

BufferedReader br=new BufferedReader(reader)) {//将普通Reader包装秤BufferedReader
			String line=null;
			while((line=br.readLine())!=null) {//采用循环方式一行一行的读取
				if(line.equals("exit")) {
					System.exit(1);
				}
				System.out.println("输入内容为:"+line);
			}

4.平均成绩写入文本文件

        直接在list后面加

大概是这么写的:

student.java

public class Student {
	public String name;
	public int grade;
	
	@Override
	public String toString() {
		return "Student [name=" + name + ", grade=" + grade + "]";
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getGrade() {
		return grade;
	}
	public void setGrade(int grade) {
		this.grade = grade;
	}
	
}
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Grade {
	public static void main(String[] args) throws IOException {
		int num=0;
		int sum=0;
		List std=new ArrayList();
		System.out.println("请输入学生数:");
		Scanner sc = new Scanner(System.in); 
		num=sc.nextInt();
		sc.nextLine();
        for(int i = 0; i < num; i++) { 
            Student st = new Student(); 
            System.out.println("请输入第"+ (i+1) + "个学生的姓名:"); 
            st.name = sc.next(); 
            System.out.println("请输入第" + (i+1) + "个学生的成绩:"); 
            st.grade = sc.nextInt(); 
            std.add(st); 
        }
        
            for(int i = 0; i < std.size(); i++) { 
                Student stu = (Student) std.get(i); 
                sum+=stu.grade;
                System.out.println("学生姓名:" + stu.name + "学生成绩:" + stu.grade); 
            } 
        System.out.println("平均成绩为:"+sum/std.size()); 
        std.add(sum/std.size());
        File f=new File("d://average.txt");
		BufferedWriter bw=new BufferedWriter(new FileWriter(f));
		for(int i = 0; i < std.size(); i++) {
			bw.write(std.get(i).toString());
			bw.newLine();
		}
		
		bw.close();
     }	
}

猜你喜欢

转载自blog.csdn.net/fuckingone/article/details/82950041