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

解决方案 »

  1.   

    Random类数组你都知道了,怎么不动下脑勒!欢迎加入 JAVA交流群 72923840
      

  2.   

    Random类数组你都知道了,怎么不动下脑勒!欢迎加入 JAVA交流群 72923840
      

  3.   

    给你提示啊:    //定义几个变量分别代表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
       然后在分析判断百分比啊,平均分什么的
      

  4.   

    我再详细地给你一个参考的思路,代码还是要自己写哈!首先,利用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))的人数、所占百分比,平均分"这个根据数组就可以计算了。
      

  5.   

    jffffffffffffffffffffffffffffffffffffffffffffffffffff
      

  6.   

    首先用Random类随机产生一个数字,然后把它存入文本文件中。在for循环1000便上面的过程
    ...
      

  7.   


    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;
    }
    }
      

  8.   


    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自己补充!