java编写程序实现以下功能

(1)产生5000个1~9999之间的随机整数,并将其存入文本文件a.txt中。(2)从文件中读取这五千个整数,并计算其最大值、最小值、平均值。急——... (1)产生5000个1~9999之间的随机整数,并将其存入文本文件a.txt中。
(2)从文件中读取这五千个整数,并计算其最大值、最小值、平均值。

急——
展开
 我来答
老冯文库
2011-04-13 · 知道合伙人软件行家
老冯文库
知道合伙人软件行家
采纳数:1139 获赞数:8734

向TA提问 私信TA
展开全部
/*
(1)产生5000个1~9999之间的随机整数,并将其存入文本文件a.txt中。
(2)从文件中读取这五千个整数,并计算其最大值、最小值、平均值。
*/
import java.io.*;
import java.util.*;

public class Test {
public static void main(String[] args) {
String fileName = "a.txt";
WriteData(5000, fileName);
ReadData(fileName);
}

//产生num个1~9999之间的随机整数,并将其存入fileName文件
public static void WriteData(int num, String fileName){
try{
Writer fw = new FileWriter(fileName);
int i, temp;
Random rand = new Random();

for(i=0; i<num; i++){
do{
temp = rand.nextInt(10000); //产生[0, 10000)之间的随机数
}while(temp<1 || temp>9999);

fw.write(temp + "\n");
}
fw.flush();
fw.close();
}
catch(Exception e){
e.printStackTrace();
}
}

//从fileName文件中读取所有整数,并计算其最大值、最小值、平均值
public static void ReadData(String fileName){
String str;
int count = 0;
int temp;
int max = 0, min = 10000;
long sum = 0;
double avg;

try{
BufferedReader br = new BufferedReader(new FileReader(fileName));
while((str = br.readLine()) != null){
count++;
temp = Integer.parseInt(str);
sum += temp;
if(temp > max){
max = temp;
}
if(temp < min){
min = temp;
}
}
avg = 1.0 * sum / count;

System.out.println("最大值:" + max);
System.out.println("最小值:" + min);
System.out.println("平均值:" + avg);
}
catch(Exception e){
e.printStackTrace();
}
}
}
cailovefeng
2011-04-13 · TA获得超过132个赞
知道答主
回答量:106
采纳率:0%
帮助的人:81.6万
展开全部
public static void main(String[] args)
{
test();
}
public static void test()
{
String tempStr="";
for(int i=0;i<5000;i++)
{
double a=Math.random()*9999;
int aa=(int)a+1;
tempStr+=aa+"\r\n";
}
outputData("c:\\a.txt",tempStr);
test1();
}
public static void outputData(String filePath, String text)
{
try
{
BufferedWriter rw = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(filePath), "UTF-8"));
rw.write(text);
rw.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static void test1()
{
String s=new String();
int leng=0;
int test[]=new int[5000];
try
{
BufferedReader input = new BufferedReader(new FileReader("c:\\a.txt"));
while ((s = input.readLine()) != null&&leng<5000)
{
test[leng]=Integer.parseInt(s);
leng++;
}
input.close();
int max=test[0];
int min=test[0];
int sum=0;
for(int i=0;i<5000;i++)
{
if(test[i]<min)
min=test[i];
if(test[i]>max)
max=test[i];
sum+=test[i];
}
System.out.println("max="+max);
System.out.println("min="+min);
System.out.println("avg="+(double)sum/5000);
}
catch (Exception e)
{
e.printStackTrace();
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式