繁体   English   中英

Java 初学者分配。:在文件中插入用户控制的随机数并求和

Java beginner assign.: insert user controlled random numbers in a file and sum it

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

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

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

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

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 个回复

我稍微更改了您的代码,现在它似乎可以正常工作,就像您希望的那样。 阅读我的评论以了解您做错了什么。

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

    }
}
2 无重复的随机数。 初级等级

在这种情况下,如何随机生成数字而不重复? let lottoArray = []; lottoGame() function lottoGame () { do { let addNumber = Math.floor(Math.random()* 30); lottoArray.push(add ...

3 Python 初学者(猜随机数游戏)

游戏要求用户输入一个1到5之间的数字,看看它们是否与计算机的随机猜测相符。 当我使用if else语句时,我的代码似乎不起作用,并且无法弄清楚。 ...

2016-03-15 05:28:49 3 97   python
4 初学者。 cshtml if,随机数和传递数据

我是一名C程序员,正在尝试使用Visual Studio 2015 Community Edition学习C#ASP.NET MVC。 所以,我有自己的看法,我想随机展示两个“选择问题”中的一个: 要么 但事实证明我无法弄清楚任何一个要求: 生成一个50/50的随 ...

5 Java初学者挑战:在while循环中生成随机数

这个挑战来自Joseph P. Russell的第4章“绝对入门的Java编程”。 编写一个while循环,该循环生成1到100之间的随机数,并在两次生成相同的数字后停止循环。 我最大的担心是,我不知道如何继续初始化数组(如果您在这里完全使用数组),因为我不知道数组的大小(如果 ...

2012-01-28 22:11:08 5 1979   java
6 获取用户 ID 并将其保存在 function - Solidity 初学者

这是我的第一个Solidity项目。 我正在尝试创建一种供应链,而不仅仅是练习代码。 我遇到了一个我无法解决或在网上找到解决方案的问题。 问题:我想获取用户 ID 并将其保存在每个function中,所以它看起来像...... 我试过这个... 但一直要求我将数据放在memory中。 我尝试过但对我 ...

7 我是 python 的初学者,我想用 tkinter 制作一个缺席的队友随机数程序

我的问题是当我单击按钮时,它已经立即随机化了我所有的 34 个朋友。 我想要的是,每次我点击“acak”按钮时,我随机的同学中有 1 个被插入到文本框中,并且在我所有的 34 个朋友都得到他们的队友之前不能加倍。 顺便问一下,我如何将那个缺席的号码与我的 34 个同学联系起来? 所以当按下“ac ...

9 如何在“较高或较低”游戏中正确使用随机数。 我只是一个初学者

这是代码: 问题是脚本的最后一部分。 除了在print(r2)之后的脚本末尾,其他所有内容都可以正常运行。...都可以正常工作,但是答案总是在“做得很好”和“不幸”之间切换。 有时它会同时说明。 有人知道问题出在哪里吗? 我认为发生这种情况的原因很简单,它是随机的,随着我们沿着脚 ...

10 随机数生成器C ++初学者[关闭]

您好,我正在尝试将随机数生成器作为计算器的一部分。 我过去几周一直在学习C ++,但不确定是什么问题。 代码块无法检测到任何错误,但无法正常运行。 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM