
求助代码。java编程
求助代码。java编程输入5个学生的基本信息(包括姓名,学号,班级,java成绩),规定java成绩的整数部位最大为2位,求学生的总分,平均分,并将学生的基本信息和计算结...
求助代码。java编程输入5个学生的基本信息(包括姓名,学号,班级,java成绩),规定java成绩的整数部位最大为2位,求学生的总分,平均分,并将学生的基本信息和计算结果保存在文件Javascore.text中。 要求:利用BufferReader类读取5个学生的基本信息,并将成绩转换成浮点数进行储存。利用NumberFormat类的方法对成绩进行格式化,然后计算总分和平均分。分别创建File和FileWriter类的对象,调用FileWriter的方法writer()将基本信息和计算结果保存到指定的文件中。
展开
展开全部
/*完全按照你的要求写的,可以的给采纳。有什么问题可以继续问我。*/
package Test;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* 文件保存格式为
* 学号,姓名,班级,java成绩
* 学号,姓名,班级,java成绩
* 学号,姓名,班级,java成绩
* 学号,姓名,班级,java成绩
* 学号,姓名,班级,java成绩
* 总分,平均分
* @author Administrator
*
*/
public class ZhiDao {
public static void main(String[] args) {
File file = new File("javascore.text");
List<String[]> infos = null;
if (file.exists()) {
System.out.println("已有信息:");
infos = getInfos(file);
System.out.println(printInfos(infos));
System.exit(0);
} else {
try {
file.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
System.out.println("无法创建文件" + e.getMessage());
System.exit(1);
}
}
infos = new ArrayList<String[]>();
Scanner scan = new Scanner(System.in);
String info = null;
String[] strs = null;
int count = 0;
NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMinimumFractionDigits(2);
nf.setMaximumFractionDigits(2);
float totalScore = 0;
while (count < 5) {
System.out.println("请输入第 " + (count + 1) + "名学生的基本信息[分别为学号、姓名、班级、java成绩,以英文逗号分隔]:");
info = scan.next().trim();
//判断成绩合法性
strs = info.split(",");
if (strs.length != 4) {
System.out.println("输入信息不正确,请重新输入!");
continue;
}
try {
if (Float.valueOf(strs[3]) > 100) {
System.out.println("成绩不能超过100分!");
continue;
}
} catch (NumberFormatException e) {
// TODO: handle exception
System.out.println("成绩输入有误!" + e.getMessage());
continue;
}
totalScore += Float.valueOf(strs[3]);
infos.add(strs);
count++;
}
infos.add(new String[]{nf.format(totalScore), nf.format(totalScore / 5)});
System.out.println(printInfos(infos));
saveInfos(infos);
System.out.println("保存完成!");
}
public static String printInfos(List<String[]> infos) {
String str = "";
for (String[] ss:infos) {
if (ss.length == 2) {
str += "总分:" + ss[0] + "\n平均分:" + ss[1] + "\n";
continue;
}
str += "****************************\n" + "学号:" + ss[0] + "\n"
+ "姓名:" + ss[1] + "\n"
+ "班级:" + ss[2] + "\n"
+ "java成绩:" + ss[3] + "\n\n\n";
}
return str;
}
public static void saveInfos(List<String[]> infos){
FileWriter writer = null;
BufferedWriter buffWriter = null;
try {
writer = new FileWriter(new File("javascore.text"));
buffWriter = new BufferedWriter(writer);
String str = null;
for (String[] ss:infos) {
str = ss[0] + "," + ss[1];
if (ss.length > 2) {
str += "," + ss[2] + "," + ss[3];
}
buffWriter.write(str);
buffWriter.newLine();
}
buffWriter.flush();
} catch (Exception e) {
// TODO: handle exception
System.out.println("保存信息到文件出错:" + e.getMessage());
System.exit(1);
} finally {
if (writer != null) {
try {
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (buffWriter != null) {
try {
buffWriter.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
public static List<String[]> getInfos(File f) {
FileReader reader = null;
BufferedReader buffReader = null;
List<String[]> infos = new ArrayList<String[]>();
try {
reader = new FileReader(f);
buffReader = new BufferedReader(reader);
String str = null;
while ((str = buffReader.readLine()) != null) {
infos.add(str.split(","));
}
} catch (Exception e) {
System.out.println("从文件中读取信息出错..." + e.getMessage());
System.exit(1);
//e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (buffReader != null) {
try {
buffReader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return infos;
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询