java 读取文件内容并计算后格式输出!
从文件courseData.txt读入学生成绩,文件格式为0.300.300.40//平时期中期末的所占比例1613333706050444450505055558090...
从文件courseData.txt读入学生成绩,文件格式为
0.30 0.30 0.40 // 平时 期中 期末的所占比例
161
3333 70 60 50
4444 50 50 50
5555 80 90 80
0 //读到0时此循环结束
162
1212 90 85 92
6666 60 80 90
计算并输出所有学生的总评并判断通过与否和平均值
输出样式:
学好 作业 期中 期末 学期成绩 总评
--------------------------------------------------------------------------------------------------------
3333 70 60 50 59.00 Pass
4444 50 50 50 50.00 Fail
5555 80 90 80 83.00 Pass
Class Average: 64.00 展开
0.30 0.30 0.40 // 平时 期中 期末的所占比例
161
3333 70 60 50
4444 50 50 50
5555 80 90 80
0 //读到0时此循环结束
162
1212 90 85 92
6666 60 80 90
计算并输出所有学生的总评并判断通过与否和平均值
输出样式:
学好 作业 期中 期末 学期成绩 总评
--------------------------------------------------------------------------------------------------------
3333 70 60 50 59.00 Pass
4444 50 50 50 50.00 Fail
5555 80 90 80 83.00 Pass
Class Average: 64.00 展开
4个回答
展开全部
public static void main(String[] args) throws IOException {
String pathname = "c:/vke.txt";
read(pathname);
}
public static void read(String pathname) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(pathname));
int first = 0, count = 0;
double a = 0, b = 0, c = 0, all = 0;
String line = "";
while ((line = reader.readLine()) != null) {
if (line.equals("0"))
continue;
if (0 == first++) {
String[] p = line.trim().split(" ");
a = Double.parseDouble(p[0]);
b = Double.parseDouble(p[1]);
c = Double.parseDouble(p[2]);
continue;
}
String[] s = line.trim().split(" ");
double[] g = new double[s.length];
for (int i = 0; i < g.length; i++) {
g[i] = Double.parseDouble(s[i]);
}
double result = g[0] * a + g[1] * b + g[2] * c;
all = all + result;
count++;
System.out.println(s[0] + " " + s[1] + " " + s[2] + " " + result + " ");
}
System.out.println("Average:" + all / count);
}
如果不给分,真想给你一巴掌
String pathname = "c:/vke.txt";
read(pathname);
}
public static void read(String pathname) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(pathname));
int first = 0, count = 0;
double a = 0, b = 0, c = 0, all = 0;
String line = "";
while ((line = reader.readLine()) != null) {
if (line.equals("0"))
continue;
if (0 == first++) {
String[] p = line.trim().split(" ");
a = Double.parseDouble(p[0]);
b = Double.parseDouble(p[1]);
c = Double.parseDouble(p[2]);
continue;
}
String[] s = line.trim().split(" ");
double[] g = new double[s.length];
for (int i = 0; i < g.length; i++) {
g[i] = Double.parseDouble(s[i]);
}
double result = g[0] * a + g[1] * b + g[2] * c;
all = all + result;
count++;
System.out.println(s[0] + " " + s[1] + " " + s[2] + " " + result + " ");
}
System.out.println("Average:" + all / count);
}
如果不给分,真想给你一巴掌
追问
谢谢!!!我来完善一下。 最後一句话显得很多馀。 给分了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
try {
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
StringBuffer sb = new StringBuffer();
String line = br.readLine();
while(line!=null){
sb.append(line);
sb.append("\n");
line = br.readLine();
if(line.trim().equals("0"))
break;
}
br.close();
fr.close();
System.out.println(sb.toString());
} catch (IOException e) {
e.printStackTrace();
}
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
StringBuffer sb = new StringBuffer();
String line = br.readLine();
while(line!=null){
sb.append(line);
sb.append("\n");
line = br.readLine();
if(line.trim().equals("0"))
break;
}
br.close();
fr.close();
System.out.println(sb.toString());
} catch (IOException e) {
e.printStackTrace();
}
追问
怎么解决0.30 0.30 0.40的问题
追答
拿到第一行数据,
把这一行数据进行 split(" "); 得到 平时 期中 期末
70 * 0.3 + 60*0.3+ 50*0.4 可以得到你想要的结果!
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用IO流对文件readLine()一行一行的读取,每一行是一个字符串(String),再吧字符串拆分成String[]
最后根据String[]的索引来操作对应的数据
最后根据String[]的索引来操作对应的数据
追问
能否具体点?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
推荐的不错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询