急急!一道程序题, 请各位帮帮忙!!散分!!!!

caojiang35072 2008-11-05 12:56:03
用Java编写程序:
利用随机数产生1000个0~100之间的考试分数,将其存入一个文本文件中,然后程序从这个文件中读取这1000个考试分数,统计其中各分数段(A[90,100],B[80,90), C[70,80), D[60,70), F[0,60))的人数、所占百分比,平均分。
提示:产生随机数可以用Random类(可以产生0—100之间的任意数)



...全文
276 点赞 收藏 26
写回复
26 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lihan6415151528 2008-11-05
靠,发现现在遍地都是广告了!
回复
caojiang35072 2008-11-05
真的谢谢各位了!
回复
caojiang35072 2008-11-05
谢谢各位了!
回复
zhao_tk 2008-11-05

package com.ztk.csdn;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.util.Random;

public class RandomTest {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] score = new int[1000];
Random rd = new Random();
for(int i=0;i<score.length;i++){
score[i] = rd.nextInt(100);
}
String str = "";
for(int i=0;i<score.length;i++){
str+=score[i]+",";
}

str = str.substring(0, score.length-1);
try {
FileWriter fw = new FileWriter("D://test.txt");
fw.write(str);
fw.close();
} catch (Exception e) {
e.printStackTrace();
}
StringBuffer buffer = new StringBuffer();
try {
//FileReader fr = new FileReader("D://test.txt");
BufferedReader bufferreader = new BufferedReader(new InputStreamReader(new FileInputStream("D://test.txt")));


String line = bufferreader.readLine();
while (line !=null) {
buffer.append(line);
line = bufferreader.readLine(); // 读取下一行
}


} catch (Exception e) {
e.printStackTrace();
}
//System.out.print(buffer.toString());
String scoreString = buffer.toString();
String[] scoreStringArr = scoreString.split(",");
int[] scoreStringArrInt = new int[scoreStringArr.length];
for(int i=0;i<scoreStringArr.length;i++){
scoreStringArrInt[i]=Integer.parseInt(scoreStringArr[i]);
}

int count1=0;
int count2=0;
for(int i=0;i<scoreStringArrInt.length;i++){
if(scoreStringArrInt[i]>=90&&scoreStringArrInt[i]<=100){
count1++;
}
}
}

}




剩下的,lz自己补充!
回复
link_1029 2008-11-05



package com.train.first;

import java.util.ArrayList;
import java.util.List;

public class Test
{
private static final int AMOUNT = 1000;

private static List<Group> groups;

private static int[] scores = new int[AMOUNT];

/**
* 初始化分组信息
* @param group
*/
private static void initGroup()
{
groups = new ArrayList<Group>();
groups.add(new Group("ALL"));
groups.add(new Group("A"));
groups.add(new Group("B"));
groups.add(new Group("C"));
groups.add(new Group("D"));
groups.add(new Group("F"));
}

/**
* 根据分数进行分组
* @param score
*/
private static void doGroup(int score)
{
groups.get(0).add(score);

if (score >= 90)
{
groups.get(1).add(score);
}
else if (score >= 80)
{
groups.get(2).add(score);
}
else if (score >= 70)
{
groups.get(3).add(score);
}
else if (score >= 60)
{
groups.get(4).add(score);
}
else
{
groups.get(5).add(score);
}
}

/**
* 获取[start,end]中的一个随即整数
* @param start
* @param end
* @return
*/
private static int getRandom(int start, int end)
{
return Double.valueOf(Math.random() * (end - start + 1)).intValue() + start;
}

public static void main(String[] args)
{
//省略了文件读写
//...

for (int i = 0; i < AMOUNT; i ++)
{
scores[i] = getRandom(0, 100);
}

initGroup();

for (int i = 0; i < scores.length; i++)
{
doGroup(scores[i]);
}

System.out.println(groups.get(0).getAverage()); //总平均分
System.out.println(groups.get(1).getAmount()); //A等级的人数
System.out.println(groups.get(2).getSum()); //B等级的总分
System.out.println(groups.get(3).getPercent(AMOUNT)); //C等级所占百分比
System.out.println(groups.get(4).getAverage()); //D等级的平均分
System.out.println(groups.get(5).getPercent(AMOUNT)); //F等级所占百分比
}
}

class Group
{
private String name;

private int amount = 0;

private int sum = 0;

/**
* 增加一个符合条件的分数
* @param score
*/
public void add(int score)
{
amount += 1;
sum += score;
}

/**
* 获取平均分
* @return
*/
public int getAverage()
{
if (amount == 0)
{
return 0;
}

return sum / amount;
}

/**
* 获取所占百分比
* @param totalAmount
* @return
*/
public int getPercent(int totalAmount)
{
return amount * 100 / totalAmount;
}

public Group(String name)
{
this.name = name;
}

public int getAmount()
{
return amount;
}

public void setAmount(int amount)
{
this.amount = amount;
}

public String getName()
{
return name;
}

public void setName(String name)
{
this.name = name;
}

public int getSum()
{
return sum;
}

public void setSum(int sum)
{
this.sum = sum;
}
}













回复
jh54 2008-11-05
首先用Random类随机产生一个数字,然后把它存入文本文件中。

在for循环1000便上面的过程


...
回复
lc7cl 2008-11-05
jffffffffffffffffffffffffffffffffffffffffffffffffffff
回复
shuaiAWP 2008-11-05
写程序太懒了相当不好
回复
KingZChina 2008-11-05
跟着up了
回复
shenjie1989 2008-11-05
自己先写一点嘛,如果有错误可以问,自己动手会有很多收获的。
回复
ouyangxiaokang6 2008-11-05
up
回复
-box- 2008-11-05
mark
回复
huangyangweiyue 2008-11-05
mark
回复
renmms 2008-11-05
我再详细地给你一个参考的思路,代码还是要自己写哈!

首先,利用file类新建个文本文件,

利用random函数随机出100个函数,可以写个循环,循环100次,

循环体里写文件(需要用try-catch),简单点可以每次写一行,一行就一个数字,这样,后面读的时候一行一行读也方便。。

100个随机数都在文本里后,再新建一个100个长度的int数组和5个int数组(分别存放A-F段的数据),

利用读文件的readinLine()函数读出100个随机数,先转换成数字,再判断数字大小分别放在A-F的INT数组里(SWITCH)

"统计其中各分数段(A[90,100],B[80,90), C[70,80), D[60,70), F[0,60))的人数、所占百分比,平均分"

这个根据数组就可以计算了。
回复
liuzhengkang 2008-11-05
[Quote=引用 9 楼 qusic 的回复:]
给你提示啊:
Java code

//定义几个变量分别代表5个成绩段的人数
int a = 0, b = 0, c = 0, d = 0, e = 0;
//产生随机数:
Random rnd = new Random();
int i = rnd.nextInt(101); //产生0~100之间的随机数
//往文件里面写可以使用DataOutputStream,一个一个挨着写
DataOutputStream dos = new DataOutputStream( new FileOutputStream("file name"));
dos.writeInt(i);
//读取的时候用…
[/Quote]
顶楼上的

回复
qusic 2008-11-05
给你提示啊:

//定义几个变量分别代表5个成绩段的人数
int a = 0, b = 0, c = 0, d = 0, e = 0;
//产生随机数:
Random rnd = new Random();
int i = rnd.nextInt(101); //产生0~100之间的随机数
//往文件里面写可以使用DataOutputStream,一个一个挨着写
DataOutputStream dos = new DataOutputStream( new FileOutputStream("file name"));
dos.writeInt(i);
//读取的时候用DataInputStream ,一个一个读
定义一个数组:int[] all = new int[1000];
int j = 0;
DataInputStream dis = new DataInputStream ( new FileInputStream("file name") );
all[j] = dis.readInt();//注意,别读过界了哦

//读出来的时候判断这个成绩是属于哪中情况的,就把相应的变量加1
然后在分析判断百分比啊,平均分什么的

回复
caojiang35072 2008-11-05
好的, 知道了, 谢谢!
回复
macfan 2008-11-05
先产生1000个0-100随机数,遍历一遍把他们分组统计个数,直接就算出人数、所占百分比,平均分了.
提示已经很明白了.
LZ应该自己写代码.
回复
badboy_blue 2008-11-05
Random类

数组

你都知道了,怎么不动下脑勒!

欢迎加入 JAVA交流群 72923840
回复
badboy_blue 2008-11-05
Random类

数组

你都知道了,怎么不动下脑勒!

欢迎加入 JAVA交流群 72923840
回复
加载更多回复
相关推荐
发帖
Java SE
创建于2007-09-28

6.2w+

社区成员

Java 2 Standard Edition
申请成为版主
帖子事件
创建了帖子
2008-11-05 12:56
社区公告
暂无公告