求前辈帮忙做一下噢,这只是小题目而已,我有我的原因。代码贴上蛤,感激不尽!!
题目如下:
编程:文本123.txt中存有某学校的教师信息,教师信息包括教师姓名,基本工资,奖金,它们之间用空格分隔,每个教师占一行然后编制程序读取每个教师信息(注意:是读取教师的全部信息,即读取教师姓名 基本工资和奖金),然后统计所有教师基本工资的总额,奖金总额并输出!
题目如下:
编程:文本123.txt中存有某学校的教师信息,教师信息包括教师姓名,基本工资,奖金,它们之间用空格分隔,每个教师占一行然后编制程序读取每个教师信息(注意:是读取教师的全部信息,即读取教师姓名 基本工资和奖金),然后统计所有教师基本工资的总额,奖金总额并输出!
估计是作业贴,考的是字符串分割和文件处理。题目出的还是不错的。
package com.walkman.august.weekone;import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;/**
* 读取文本文件中特定的数值
* 2011-8-2
* @author walkman
*/
public class ReadSalaryFromText { public static void main(String[] args) {
// TODO Auto-generated method stub
File file = new File("d:\\salary.txt");
BufferedReader br = null;
FileReader fr = null;
String record = "";
double baseSalary;
double extraSalary;
double allBaseSalary = 0.00;
double allExtraSalary = 0.00;
try {
fr = new FileReader(file);
br = new BufferedReader(fr);
while((br.read()) != -1) {
record = br.readLine();
String[] temp = record.split(" ");
baseSalary = Double.parseDouble(temp[2]);
extraSalary = Double.parseDouble(temp[3]);
allBaseSalary += baseSalary;
allExtraSalary += extraSalary;
}
System.out.println("所有基本工资的总和为:" + allBaseSalary);
System.out.println("所有资金的总和为:" + allExtraSalary);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}}
我把allBaseSalary 和 allExtraSalary 定义时候的赋初值为0.00删除了,没有给他们赋初值,这时候编译的时候出错了,为什么呢?
import java.io.File;
import java.io.FileReader;public class TestDataFromTxt {
public static void main(String[] args)throws Exception {
int sumSalary =0;
int sumCommit = 0;
File file = new File("d:\\salary.txt");
FileReader fr = new FileReader(file);
BufferedReader br = null;
String s = null;;
String[] record = null;
br = new BufferedReader(fr);
while((s=br.readLine())!= null) {
record = s.split(" ");
System.out.print("教师姓名:"+record[0]+" ");
System.out.print(" 工资:"+record[1]+" ");
System.out.print(" 奖金:"+record[2]);
System.out.println();
sumSalary +=Integer.parseInt(record[1]);
sumCommit +=Integer.parseInt(record[2]);
}
System.out.println("所有教师基本工资的总额:"+sumSalary+",奖金总额:"+sumCommit);
}
}