要求编写一个程序,从一个文件读取学生们的成绩(0-200分),要求将成绩按以下范围分类:0-24,24-49,50-74,75-99,100-124,125-149,150-174,175-200. 输出分数范围和相应的人数。 学生成绩(CX09EX04data.txt)内容为:76,89,150,135,200,76,12,100,150,28,178,189,167,200,175,150,87,99,129,149,176,200,87,35,157,189.用数组怎么解决????
解决方案 »
- java学习遇到了 很大的麻烦!跪求高手指点迷津! 谁能给出java 学习的高校学习方法!
- JBuilder 2007中JFileChooser问题
- 关于getProperty 的使用问题,从来没有成功过。。。
- 自己写的关于接口的例子,希望大家批评指正
- 从10个数中随机取出不重复的数的问题
- java关于时间的问题
- udp在发送中文数据包(英文没有影响)只接收到一半,是什么原因怎么解决呀
- 用JAVA上传文件,文件大小问题,如何突破1MB!
- JBuilder 5 查询数据库的问题
- 请教,编译好的java程序如何修改其界面上的Title
- 大量数据生成xml文件
- 100分请教一个关于setPreferredSize和setMinimumSize 的问题!
String[] Score=你的值.split(","); //这里是java的分割成绩 asp.net我忘了!
int a,b,c,d,c,d,e,f,g ;
for(int i = 0;i < Score.leng; i++){
if(Score[i]>=0 & Score[i] <=24)
{
a++;
}else if(Score[i]>=24 & Score[i] <=49)
{
b++;
}
还有自己写自己打~ ~
}
public class ScoreRangeCount
{
public static void main(String[] args)
{
int[] scores = {76,89,150,135,200,76,12,100,150,28,178,189,167,200,175,150,87,99,129,149,176,200,87,35,157,189};
int[] scoreRangeCount = new int[8]; for (int x:scores)
{
if (x==200)
{
scoreRangeCount[7]++;
continue;
}
for (int j = 0; j<8; j++)
{
if ((x>=j*25) && (x < (j+1)*25))
{
scoreRangeCount[j]++;
break;
}
}
} for (int i = 0; i<8; i ++)
{
System.out.println("Count of Score in ["+(i*25) + ", " +((i+1)*25) + "]: "+ scoreRangeCount[i]);
}
}
}
代码应该能看懂吧
没写类,只是介绍下我的思想而已Count of Score in [0, 25): 1
Count of Score in [25, 50): 2
Count of Score in [50, 75): 0
Count of Score in [75, 100): 6
Count of Score in [100, 125): 1
Count of Score in [125, 150): 3
Count of Score in [150, 175): 5
Count of Score in [175, 200]: 8
25-50:28,35,
50-75:
75-100:76,89,76,87,99,87,
100-125:100,
125-150:135,129,149,
150-175:150,150,167,150,157,
175-200:200,178,189,200,175,176,200,189,
package fileProcess;import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
public class FileTest { /**
* @param args
*/
public static void main(String[] args) { new ClassifyDisplay();
}}class ClassifyDisplay
{
public ClassifyDisplay()
{
int scroes[] = getAllScore();
int[][] result = new int[LevelNum][scroes.length];
for (int i = 0; i < scroes.length; i++)
{
int level = getLevel(scroes[i]);
for (int j = 0; j < scroes.length; j++)
{
if (result[level][j] == 0)
{
result[level][j] = scroes[i];
break;
}
}
}
display(result);
}
private void display(int[][] result)
{
for (int i = 0; i < result.length; i++)
{
System.out.print(getLevelDecription(i) + ":");
for (int j = 0; j< result[i].length; j ++)
{
if (result[i][j] > 0)
{
System.out.print(result[i][j] + ",");
}
else
{
System.out.println();
break;
}
}
}
}
/**
* 返回等级
* @param score
* @return
*/
private int getLevel(int score)
{
if (score == 200)
{
return 7;
}
return score/25;
}
private String getLevelDecription(int level)
{
String dsp = (level* 25) + "-" + (level +1)* 25;
return dsp;
}
private int[] getAllScore()
{
String fileContent = getStringFromFile("1.txt").trim();
String[] arr = fileContent.split(",");
int[] intarr = new int[arr.length];
for (int i = 0; i < arr.length; i++)
{
intarr[i] = Integer.valueOf(arr[i]);
}
return intarr;
}
public String getStringFromFile(String filePath)
{
try {
StringBuffer sBuffer = new StringBuffer();
BufferedReader in = new BufferedReader(new FileReader(filePath));
if(!new File(filePath).exists())
{
return null;
}
while (in.ready()) {
sBuffer.append(in.readLine() + "\r\n");
}
in.close();
return sBuffer.toString();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
private final int LevelNum = 200/ 25;
}
switch(array[i])在处理大量数据时有更高速度