我是一个初学者,被困在一个我不知道该怎么做的地方。 作业要求这样:

1)要求用户输入文件名或“完成”以退出
2)增加文件名:添加“ _n”
3)向用户询问随机数的上限(最大为100)
4)向用户询问应写入文件的随机数(m)
5)创建文件并放置(m)个随机整数(用户插入的最大值小于100)
6)打开创建的文件,读取并汇总所有值并显示
7)循环回到#1 8)当用户输入“完成”时,显示在会话期间创建的文件数

这是我到目前为止所拥有的:

import javax.swing.JOptionPane;                                                                            
import java.io.*;                    
import java.util.Random;                
import java.util.Scanner;                             

public class Program {
public static void main (String[] args)                  
        throws IOException {

    String fileName;
    String sum = null;

    String upperRangeLimit;
    String userRandomNumber;

    boolean done = false;
    int x = 1;
    //int n;

    while (!done)
    {
        fileName = JOptionPane.showInputDialog("Enter a file name or done to exit: ");

        if (!(fileName.equals("done")))
            fileName = "fileName" + "_" + x++;

        Random randomNumbers = new Random(100);
        upperRangeLimit = JOptionPane.showInputDialog("Enter the upper range limit:\n Maximum range is 100");       
        userRandomNumber = JOptionPane.showInputDialog("Error; Maximum range is 100. Enter another number: ");

        File file = new File(fileName);

        PrintWriter outputFile = new PrintWriter(fileName);
            //for (n = 1; n < upperRangeLimit; n++)
            //{
            //  sum = 
            //} 
        outputFile.println(randomNumbers);
        outputFile.close();`enter code here`


        Scanner inputFile = new Scanner(file); 

        while (inputFile.hasNext())
        {
            sum = inputFile + inputFile.nextLine();
        }
            System.out.println(sum);
            inputFile.close();


        if (fileName.equals("done"))
            done = true;
    }

}

}

非常需要帮助,感谢您!

#1楼 票数:0

我对您的代码进行了一些更改,现在它似乎可以按您希望的那样正常工作。 阅读我的评论以了解您做错了什么。

import javax.swing.JOptionPane;
import java.io.*;
import java.util.Random;
import java.util.Scanner;

public class Program{
    public static void main(String[] args) throws IOException {

        String fileName;
        int sum = 0; // this should be integer because you want to sum the numbers...

        String upperRangeLimit;
        String userRandomNumber;

        boolean done = false;
        int x = 1;
        // int n;

        while (!done) {
            fileName = JOptionPane.showInputDialog("Enter a file name or done to exit: ");

            if (!(fileName.equals("done")))
                fileName = fileName + "_" + x++; // you wrote "fileName" like that which means you dont actually
                                                    // reference the variable

            // I didnt understand this part , i mean you ask for the input correctly but the text you provide to the user isnt write
            upperRangeLimit = JOptionPane.showInputDialog("Enter the upper range limit:\n Maximum range is 100");
            userRandomNumber = JOptionPane.showInputDialog("Error; Maximum range is 100. Enter another number: ");

            File file = new File(fileName);

            // convert user input to integers
            int limit = Integer.parseInt(upperRangeLimit);
            int range = Integer.parseInt(userRandomNumber);

            // write to the file
            PrintWriter outputFile = new PrintWriter(fileName);

            for (int n = 1; n < limit; n++) {
                // (Math.random() * ((max - min) + 1)) + min => way to generate random number in
                // range
                int random = (int) ((Math.random() * ((range - 1) + 1)) + 1);
                outputFile.println(random);
            }
            outputFile.close();

            // read the file
            Scanner inputFile = new Scanner(file);

            while (inputFile.hasNext()) {
                // sum up all of the lines
                // the integers are written in the file as strings so you have to convert them
                // back to integers again
                int nextNum = Integer.parseInt(inputFile.nextLine());
                sum = sum + nextNum;
            }
            System.out.println(sum);
            inputFile.close();

            if (fileName.equals("done"))
                done = true;
        }

    }
}

  ask by Peter Lee translate from so

未解决问题?本站智能推荐:

2回复

文件保存500个随机数,范围从0到1000.将这些数字写入文件然后打开文件并逐个读取数字

找到while循环中的难度。 我不确定如何开始调用和/或读取生成的文件中的每个数字,以便我可以确定最小和最大的数字,以及总和。 如果可能的话,有人可以解释如何编写代码,以便如果任何数字是连续的,它会计算多少次。
4回复

JAVA:读取.txt文件并将双打存储到数组中

我已经有以下代码,甚至可以追加双打。 代码读取的文件每行都有一个双精度 例如: 1 2 3 4 五 ... 如何将每个双打存储到数组中?
2回复

如何让我的Android应用生成随机数?

我是Java新手并制作Android应用程序。 你如何根据用户输入的内容制作一个滚动大量骰子的Java程序? 我创建的Java程序只掷一个骰子。 你如何让Java从一到六随机滚动? 你如何让Java根据用户想要的次数制作随机数? 最后,如何让Java根据用户输入的数字绘制图像?
2回复

如何读取1行数字并将其转换为具有所有连续int的java的数组?

目前,我有2500个文本文件,需要在这4个循环中读取所有文件。 前两个for循环用于循环遍历2500个名为1_1.txt,1_2.txt的文件,依次类推到1_50.txt,然后像这样继续:2_1.txt,2_2.txt等...其他2个for循环用于绘制16X16像素的正方形。 这些像素的颜色
2回复

扫描文件中的标记词时,数据多次插入到DB中

我有一个可以扫描文本文件中某些单词的应用程序,如果找到这些单词,则会更新数据库表。 我通过文件逐行扫描某些单词,像这样 我的程序成功地拾取了单词,但是用它们多次填充了数据库。 例如。 将word1,word2,word2发送到数据库,然后第二次单击数据库,其中包含word1,word2
2回复

根据.txt文件中的信息检查用户输入

我正在创建一个我们进行货币兑换的项目。 步骤之一是我必须让用户输入他们想要从美元转换为哪种类型的货币。 我必须做一个while循环来检查并确保文本文件输入正确。 文本文件只有这个 光盘1.05 0.93 熔点0.11 0.095 欧盟1.554 1.429 因此,该人将
1回复

从文本文件中获取所有单词(Java)

我正在尝试显示文件中可以水平和垂直找到的所有单词,并且我正在尝试打印每个单词(行和列)的第一个字符的位置。 我让它水平显示每个单词而不是垂直显示。 这是我到目前为止使用的代码 它应该水平和垂直搜索文件以查找单词。 一旦找到一个单词,它应该显示单词的第一个字母的位置(EG grammar: row 8
2回复

遍历某些目录中的文件,而不会在Java中产生循环

循环访问特定文件夹中但没有循环的最佳方法是什么? 也就是说,当一次检查所有文件时,for循环将结束。 我的示例代码(带循环):