本文共 2142 字,大约阅读时间需要 7 分钟。
上节课留的课堂作业,大概意思是控制台输入
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();
}
}
转载地址:http://yfcpo.baihongyu.com/